ORG 0000HLJMPMAIN ;跳到主程序ORG 000BHLJMPTIMER0 ;跳到T0服务程序ORG 0100HMAIN:MOV TMOD,#01H ;设置T0方式1定时MOV TH0,#3CH ;送50ms时间常数MOV TL0,#0B0HMOV R7,#20 ;设置软件计数20次,定时1sSETBET0 ;允许T0中断SETBEACLR PT0 ;设置T0中断为低级中断SETBTR0 ;启动T0定时SJMP$ ;等待中断ORG0200H ;进入中断服务程序TIMER0:DJNZR7,BACK ;1s时间未到转入BACKMOVR7,#20 ;1s时间到重设软件计数器CPLP1.0 ;对P1.0信号取反BACK:MOVTH0,#3CH ;重装时间常数MOVTL0,#0B0H RETI ;中断返回ENDORG 00HTICK EQU 10000 ;10000×100uS=1ST100uS EQU 156 ;100uS时间常数(12M)C100uS EQU 30H ;100uS记数单元LEDBUF EQU 40HLED BIT P1.0LJMP START ;跳至主程序ORG 000BH ;中断子程序起始地址T0INT: PUSH PSW ;状态保护MOV A,C100uS1JNZ GOONDEC C100uS ;秒计数值减1GOON: DEC C100uS1MOV A,C100uSORL A,C100uS1JNZ EXIT ;100uS记数器不为0,返回MOV C100uS,#HIGH(TICK) ;100uS记数器为0,重置记数器MOV C100uS1,#LOW(TICK)CPL LEDBUF ;取反LEDEXIT: POP PSWRETISTART: MOV TMOD,#02H ;方式2,定时器MOV TH0,#T100uS ;置定时器初始值MOV TL0,#T100uSMOV IE,#10000010B ;EA=1,IT0=1SETB TR0 ;开始定时CLR LEDBUFCLR LEDMOV C100uS,#HIGH(TICK) ;设置10000次计数值MOV C100uS1,#LOW(TICK)LOOP:MOV C,LEDBUFMOV LED,CLJMP LOOPEND
本文档为【实验P1.0取反(1)】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。