首页 PROTEUS编译51汇编实例--源程序.ASM

PROTEUS编译51汇编实例--源程序.ASM

举报
开通vip

PROTEUS编译51汇编实例--源程序.ASMPROTEUS编译51汇编实例--源程序.ASM ;MCU:AT89C2051 ;FSYS:12MHZ ;--------------------------------------------------------------------- TIME1_FLAG EQU 0A0H TIME2_FLAG EQU 0A1H DELAY5 EQU 0A2H COUNTER3 EQU 0A3H COUNTER4 EQU 0A4H TIME3_FLAG EQU 0A5H TIME_CNT EQU 0A...

PROTEUS编译51汇编实例--源程序.ASM
PROTEUS编译51汇编实例--源程序.ASM ;MCU:AT89C2051 ;FSYS:12MHZ ;--------------------------------------------------------------------- TIME1_FLAG EQU 0A0H TIME2_FLAG EQU 0A1H DELAY5 EQU 0A2H COUNTER3 EQU 0A3H COUNTER4 EQU 0A4H TIME3_FLAG EQU 0A5H TIME_CNT EQU 0A6H TwoSec EQU 0A7H DELAY1 EQU 0F8H DELAY2 EQU 0F9H DELAY3 EQU 0FAH DELAY4 EQU 0FBH COUNTER1 EQU 0FCH COUNTER2 EQU 0FDH PULSE_FIG EQU 0FEH ALARM_FIG EQU 0FFH IN_SCAN EQU 0B0H ;P3.0 OUT_CONTROL EQU 0B1H ;P3.1 SET_UP EQU 0B2H ;P3.2 SET_DOWN EQU 0B3H ;P3.3 START EQU 0B4H ;P3.4 TO_SPEAK EQU 0B5H ;P3.5 CP1 EQU 0B7H ;P3.7 CP2 EQU 97H ;P1.7 ONE_SEC_CNT EQU 13 ;1s的定时 LED_TIME_ADJ EQU 10000 ;*根据实际情况调节*LED显示的刷新调节时间,其值范围:1000--20000 ;********************************************************************* ORG 0000H JMP AAAA ORG 000BH JMP BBBB ORG 001BH JMP CCCC ;********************************************************************* 主程序 ;-----------------------------;初始化显示 AAAA: SETB OUT_CONTROL MOV A,#00H MOV TIME_CNT,A MOV A,#03H ;十位显示3 MOV COUNTER2,A MOV A,#00H ;个位显示0 MOV COUNTER1,A MOV A,#1EH MOV COUNTER4,A MOV TMOD,#11H MOV TH0,#LOW(00536 - LED_TIME_ADJ) MOV TL0,#HIGH(00536 - LED_TIME_ADJ) SETB TR0 MOV IE,#8AH UP_SCAN: ;SET-UP键 检测 工程第三方检测合同工程防雷检测合同植筋拉拔检测方案传感器技术课后答案检测机构通用要求培训 与处理 SETB SET_UP JNB SET_UP,DELAY_UP LJMP DOWN_SCAN DELAY_UP: LCALL DELAY_10MS ;防按键抖动 JNB SET_UP,UP_DEAL LJMP DOWN_SCAN UP_DEAL: MOV A,COUNTER4 CJNE A,#3CH,NEXT1 JMP WI_UP_REL MOV A,COUNTER2 ;十位为6不再增加调节 CJNE A,#05H,NEXT1 LJMP DOWN_SCAN NEXT1: MOV A,COUNTER4 ADD A,#05H MOV COUNTER4,A JMP WI_UP_REL MOV A,COUNTER1 ;个位为0时则个位加5 CJNE A,#0AH,NEXT10 MOV A,#04H MOV COUNTER1,A LJMP DOWN_SCAN NEXT10: MOV A,#09H ;个位为5时则个位变为0,十位加1 MOV COUNTER1,A INC COUNTER2 WI_UP_REL: JNB SET_UP,WI_UP_REL DOWN_SCAN: ;SET-DOWN键检测与处理 SETB SET_DOWN JNB SET_DOWN,DELAY_D LJMP START_SCAN DELAY_D: LCALL DELAY_10MS ;防按键抖动 JNB SET_DOWN,DOWN_DEAL LJMP START_SCAN DOWN_DEAL: MOV A,COUNTER4 CJNE A,#0AH,NEXT2 JMP WI_DOWN_REL MOV A,COUNTER2 CJNE A,#09H,NEXT2 ;十位若为0则将个位变为0后不再减数 MOV A,#09H MOV COUNTER1,A LJMP START_SCAN NEXT2: MOV A,COUNTER4 CLR C SUBB A,#05H MOV COUNTER4,A JMP WI_DOWN_REL MOV A,COUNTER1 ;十位若不为0,个位若为0则个位变为5,十位减1 CJNE A,#09H,NEXT20 MOV A,#04H MOV COUNTER1,A DEC COUNTER2 LJMP DOWN_SCAN NEXT20: MOV A,#04H ;十位不为0,个位若为5则个位变为0 MOV COUNTER1,A WI_DOWN_REL: JNB SET_DOWN,WI_DOWN_REL START_SCAN: ;START键检测与处理 SETB START JNB START,DELAY_S LJMP UP_SCAN DELAY_S: CLR OUT_CONTROL LCALL DELAY_10MS ;防按键抖动 JNB START,WI_START_REL LJMP UP_SCAN WI_START_REL: JNB START,WI_START_REL MOV A,#ONE_SEC_CNT MOV COUNTER3,A MOV A,#02H MOV TwoSec,A MOV TH1,#LOW(01536-0500) MOV TL1,#HIGH(01536-0500) SETB TR1 CLR TIME1_FLAG START_DEAL: WAIT_IT: MOV A,TIME_CNT CJNE A,#00H,WI_NEXT_IT JMP WAIT_IT WI_NEXT_IT: MOV A,TIME_CNT CLR C SUBB A,#01H MOV TIME_CNT,A DJNZ COUNTER3,WAIT_IT MOV A,#ONE_SEC_CNT MOV COUNTER3,A DEC TwoSec MOV A,TwoSec CJNE A,#00H,NO_IN_SCAN MOV A,#02H MOV TwoSec,A SETB IN_SCAN JB IN_SCAN,NO_IN_SCAN LJMP IN_ALARM_SOUND ;有IN_SCAN键后的报警音 NO_IN_SCAN: DJNZ COUNTER4,WAIT_IT JMP DONE_HINT_SOUND ;倒计时完成后跳到提示音 NEXT3: DEC COUNTER1 JB TIME2_FLAG,START_DEAL SETB TIME1_FLAG LJMP START_DEAL FIG2: MOV A,COUNTER2 ;若十位数也为0则停止减数 CJNE A,#0AH,NEXT3 LJMP UP_SCAN ;转至按键扫描 NEXT4: DEC COUNTER2 ;十位减数 LJMP START_DEAL IN_DEAL: ;输入报警 SETB OUT_CONTROL ;输出至低电平 ;LCALL ALARM_SOUND ;报警输出 JMP IN_DEAL IN_ALARM_SOUND: ;有IN_SCAN键后的报警音 SETB OUT_CONTROL CLR TR1 LCALL subInAlarmSound SETB START JNB START,RESET_SYSTEM JMP IN_ALARM_SOUND DONE_HINT_SOUND: ;倒计时完成后跳到提示音 SETB OUT_CONTROL CLR TR1 LCALL subDoneHintSound SETB START JNB START,RESET_SYSTEM JMP AAAA RESET_SYSTEM: ;复位系统 CLR EA CLR CP1 CLR CP2 SETB OUT_CONTROL CLR TR0 CLR TR1 RS_START_REL: JNB START,RS_START_REL JMP RESET ;*****************************子程序 DISP: DISP_SHI: ;显示十位数 CLR CP2 MOV A,COUNTER4 MOV B,#0AH DIV AB MOV R0,A MOV DPTR,#TABLE ; 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 格地址送数据指针 MOV A,R0 ;送显示 MOVC A,@A+DPTR ;指向表格地址 MOV P1,A SETB CP1 RET DISP_GE: ;显示个位数 CLR CP1 MOV A,COUNTER4 MOV B,#0AH DIV AB MOV R0,B MOV DPTR,#TABLE ;表格地址送数据指针 MOV A,R0 ;送显示 MOVC A,@A+DPTR ;指向表格地址 MOV P1,A SETB CP2 RET TABLE: ;字型码表 DB 3FH ;0 DB 06H ;1 DB 5BH ;2 DB 4FH ;3 DB 66H ;4 DB 6DH ;5 DB 7DH ;6 DB 07H ;7 DB 7FH ;8 DB 6FH ;9 DELAY_1MS: MOV A,#0FAH ;1ms MOV DELAY1,A LOOP1: NOP DJNZ DELAY1,LOOP1 NOP RET DELAY_10MS: MOV A,#0AH ;10ms MOV DELAY4,A LOOP4: ACALL DELAY_1MS DJNZ DELAY4,LOOP4 RET DELAY_100MS: MOV A,#0AH ;100ms MOV DELAY5,A LOOP5: ACALL DELAY_10MS DJNZ DELAY5,LOOP5 RET subInAlarmSound: ;有IN_SCAN键后的报警音 SETB TO_SPEAK LCALL DELAY_100MS CLR TO_SPEAK LCALL DELAY_10MS LCALL DELAY_10MS LCALL DELAY_10MS RET subDoneHintSound: ;倒计时完成后跳到提示音 SETB TO_SPEAK LCALL DELAY_100MS LCALL DELAY_100MS LCALL DELAY_100MS LCALL DELAY_100MS LCALL DELAY_100MS LCALL DELAY_100MS LCALL DELAY_100MS LCALL DELAY_100MS LCALL DELAY_100MS LCALL DELAY_100MS CLR TO_SPEAK LCALL DELAY_100MS RET BBBB: PUSH PSW PUSH ACC PUSH B MOV TH0,#LOW(00536 - LED_TIME_ADJ) MOV TL0,#HIGH(00536 - LED_TIME_ADJ) SETB TR0 MOV A,TIME3_FLAG CJNE A,#01H,TI_GE MOV A,#00H MOV TIME3_FLAG,A CALL DISP_SHI JMP TIME0_END TI_GE: MOV A,#01H MOV TIME3_FLAG,A CALL DISP_GE TIME0_END: POP B POP ACC POP PSW RETI CCCC: PUSH PSW MOV TH1,#LOW(01536-0500) MOV TL1,#HIGH(01536-0500) SETB TR1 INC TIME_CNT POP PSW RETI END
本文档为【PROTEUS编译51汇编实例--源程序.ASM】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_637320
暂无简介~
格式:doc
大小:33KB
软件:Word
页数:14
分类:互联网
上传时间:2017-11-12
浏览量:26