当前位置:首页 > 单片机 > 单片机
[导读]以下程序择晶振为12MHz时钟i周期为晶振的倒数,位1/f(晶振),机器周期为时钟周期的12分频,即为12*1/f(晶振),故12MHz的机器周期为1us定时器1/0 ORG 0000H ;复位入口地址 AJMP START ;熟记长跳转和短跳

 

以下程序择晶振为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

 

 

 

 

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭