×
单片机 > 单片机程序设计 > 详情

单片机模板程序(asm)

发布时间:2020-05-26 发布时间:
|

以下程序择晶振为12MHz


时钟i周期为晶振的倒数,位1/f(晶振),机器周期为时钟周期的12分频,即为12*1/f(晶振),故12MHz的机器周期为1us


定时器1/0


      ORG 0000H           ;复位入口地址

      AJMP START          ;熟记长跳转和短跳转的区别:跳转时有范围的

      LJMP MAIN

      ORG 001BH           ;T1中断服务程序入口地址,若要实现T0中断,则地址改为000BH

      AJMP TIME1             

      ORG 0030H           ;主程序

START:  

      MOV SP, #60H       ;初始化程序

      MOV TMOD, #10H     ;设置T1工作于定时方式1(有16位计数)

      MOV TH1, #3CH      ;设置加1计数器的计数初值高字节    (和TL1一起计数了50ms)要设置定时器0的话则把1改为0,下同

      MOV TL1, #0B0H     ;设置加1计数器的计数初值低字节

      SETB TR1           ;开定时器1

      SETB ET1           ;开定时器1的中断

      SETB EA            ;开总中断

MIAN:

      AJMP MAIN          ;死循环直到计数器溢出

TIME1:

      MOV TL1, #0B0H      ;先赋低8位

      MOV TH1, #3CH



                          ;保护现场 PUSH PSW PUSH ACC

                          ;恢复现场 POP ACC POP PSW    遵循后进先出



      RETI                ;中断返回

      END


外部中断1/0



      ORG 0000H             ;复位入口地址

      AJMP START         

      LJMP MAIN

      ORG 0013H             ;INT1中断服务程序入口地址,若要实现INT0中断,则地址改为0003H

      AJMP INT1             

      ORG 0030H             ;主程序

START:  

                          

      SETB EX1             ;开启外部中断1    (若要设置外部中断0则把1该位0,下同)

      SETB IT1             ;为电平触发方式

      SETB EA              ;开总中断

MIAN:

      AJMP MAIN            ;死循环直到有中断的触发

INT1:


                          ;保护现场 PUSH PSW PUSH ACC

                          ;恢复现场 POP ACC POP PSW    遵循后进先出


      RETI

      END


 


关键字:单片机  模板程序  asm 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
ARM 汇编的必知必会