0000-9999加减计数器.doc

  1. 1、本文档共8页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
0000-9999加减计数器

************************************ ;文件名: 加减计数.asm ;功能:自制MCS-51单片机学习板实验演示程序 ;说明: 1.4位数码管从0000加计数到9999,再从9999减计数到0000 ;????? 2.采用两个字节除法程序处理显示数据 ;????? 3.采用定时器中断+延时子程序延时,晶振为11.0592M ;代码编写作者:杨鹏勋 ;QQ:154983799 ;E-mail: bonxun@126.com ;最后修改时间: 2007年3月6日 ;**************************************************************************** ???? Divd_High? EQU? 30H???? ;存放被除数的高位 ??? ?Divd_Low?? EQU? 31H???? ;存放被除数的低位 ??? ?Divs_High? EQU? 32H???? ;存放除数的高位 ??? ?Divs_Low?? EQU? 33H???? ;存放除数的低位 ??? ?Com_High?? EQU? 34H???? ;存放商的高位 ??? ?Com_Low??? EQU? 35H???? ;存放商的低位 ?????A_BYTE???? EQU? 36H???? ;第四位数码管显示缓冲地址 ???? B_BYTE???? EQU? 37H???? ;第三位数码管显示缓冲地址 ???? C_BYTE???? EQU? 38H???? ;第二位数码管显示缓冲地址 ???? D_BYTE???? EQU? 39H???? ;第一位数码管显示缓冲地址 ???? EQUZ_High? EQU? 3AH???? ;存放计数值高位 ???? EQUZ_Low?? EQU? 3BH???? ;存放计数值低位 ???? BCC??????? BIT? 00H???? ;加计数与减计数标志位,低为减计数,高为加计数 ???? ORG?? 00H ???? AJMP? START???????????? ;跳到主程序开始 ???? ORG?? 0BH ???? AJMP? INFT0???????????? ;转T0中断服务程序 ???? ORG?? 30H ;************** T0中断入口 ***************** ;占用通用寄存器R4,累加器A,进位位C,标志位BCC ;******************************************* INFT0: ???? PUSH? ACC?????????????? ;累加器A入栈保护 ???? PUSH? PSW?????????????? ;程序状态字入栈保护 ???? MOV?? TH0,#4CH ???? MOV?? TL0,#08H????????? ;同步时间修正,定时50MS ???? DJNZ? R4,INFT0_3??????? ;判定定时时间1S到否 ???? MOV?? R4,#20??????????? ;时间到R4赋初值50MS*20=1S ???? JNB?? BCC,INFT0_1?????? ;识别是加计数还是减计数,如是减计数则跳转到INFT0_1 ???? INC?? EQUZ_Low????????? ;计数值低位自增一次 ??? ?MOV?? A,EQUZ_Low ??? ?JNZ?? INFT0_0?????????? ;判断低位是否计满256次 ??? ?INC?? EQUZ_High???????? ;超过256次高位增1 INFT0_0: ??? ?MOV?? A,EQUZ_High ???? CJNE? A,#27H,INFT0_3??? ; ???? MOV?? A,EQUZ_Low ???? CJNE? A,#0FH,INFT0_3??? ;判断是否加计数到9999 ???? CPL?? BCC?????????????? ;到则置低标志位,下次中断到时变为减计数 ???? SJMP? INFT0_3?????????? ; INFT0_1: ???? DEC?? EQUZ_Low????????? ;计数值低位自减一次 ???? MOV?? A,EQUZ_Low??????? ???? CJNE? A,#0FFH,INFT0_2?? ;判断低位是否减满256次 ??? ?DEC?? EQUZ_High???????? ;超过256次低位减1 INFT0_2: ??? ?MOV?? A,EQUZ_High ??? ?JNZ?? INFT0_3?????????? ; ??? ?MOV?? A,EQUZ_Low ????

文档评论(0)

jgx3536 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6111134150000003

1亿VIP精品文档

相关文档