200字范文,内容丰富有趣,生活中的好帮手!
200字范文 > 基于51单片机电子秒表倒计时器proteus仿真 汇编程序 数码管显示LCD1602显示

基于51单片机电子秒表倒计时器proteus仿真 汇编程序 数码管显示LCD1602显示

时间:2024-07-15 18:39:00

相关推荐

基于51单片机电子秒表倒计时器proteus仿真 汇编程序 数码管显示LCD1602显示

刚刚咱们讲了电子秒表用的是C语言,接下来咱们再讲一讲用汇编。

硬件设计

电路图1:

数码管显示;时间清零;启动计时;暂定计时;继续计时;

电路图2

程序设计

TLOW EQU 78HTHIGH EQU 0ECHLED_WEI_ProEQU 0f0H;数码管位选保护位;寄存器设置COUN_INT EQU 21H;5ms * 20 = 100ms = 0.1SCOUN_PASSNUM EQU22H;COUN_TIME_LEQU 23H;时间累加 低位 100MS加1COUN_TIME_HEQU 24H;时间累加 高位COUN_WEI EQU 3CH ;显示位DISP_BUFEQU50H;端口配置LED_WEIEQU P2;数码管位选LED_DATEQU P0;数码管数据BEEP_PINEQU P3.7;蜂鸣器KEY_START EQU P3.0;启动KEY_STOPEQU P3.1 ;停止/归零键;标志位配置FLAG_TIMING EQU 20H.1;20H.1 为计时状态标记FLAG_GO EQU 20H.2;20H.2 为使能标记BEEP_ENEQU 20H.3;蜂鸣器响使能;--------------------------------------------------ORG 0000HJMP MAINORG 0BHJMP T0_INT;--------------------------------------------------MAIN:MOV SP,#60HMOV A,#00HMOV COUN_WEI,AMOV COUN_PASSNUM,A;MOV COUN_TIME_L,AMOV COUN_TIME_H,ACLR CCLR FLAG_GOCLR FLAG_TIMING;刚开机为非计时状态SETB BEEP_EN;开机响一声CALL INIT_TIMERSETB TR0LOOP:CALL BEEPK1:JBKEY_START,K2;启动NOPJNB KEY_START,$SETB BEEP_EN;蜂鸣器响JB FLAG_GO,LOOPSETB FLAG_GOSETB FLAG_TIMINGJMP LOOPK2:JB KEY_STOP,LOOP;暂停、归零键NOPJNB KEY_STOP,$SETB BEEP_EN;蜂鸣器响JB FLAG_TIMING,STOP;计时中按此键则暂停计时,暂停时按此键则归零RESET_TIME:;归零CLR FLAG_GOCLR FLAG_TIMINGMOV COUN_TIME_L,#00HMOV COUN_TIME_H,#00HCALL DISP_TRANSDATJMP LOOPSTOP:;暂停CLR FLAG_GOCLR FLAG_TIMING;暂停计时JMP LOOP;;;------------------------- ;;------------------------- ;;显示子程序;;使用寄存器组:第2组寄存器;;出口:;;入口:;;--------------------------DISPLAY:PUSH ACCPUSH PSWCLR PSW.3;RS1、RS0(PSW.4、PSW.3):1 0SETB PSW.4; MOV DISP_BUF,#1H ;test; MOV DISP_BUF+1,#2H; MOV DISP_BUF+2,#3H; MOV DISP_BUF+3,#4HMOV A,COUN_WEICJNE A,#0,CJMP1JMP DISP_WEI1CJMP1:CJNE A,#1,CJMP2JMP DISP_WEI2CJMP2:CJNE A,#2,CJMP3JMP DISP_WEI3CJMP3:CJNE A,#3,CJMP4JMP DISP_WEI4CJMP4:MOV COUN_WEI,#0DISP_WEI1:MOV A,LED_WEI;P3ANL A,#LED_WEI_ProORL A,#01H;CPL AMOV LED_WEI,AJMP DISP_WEI_ENDDISP_WEI2:MOV A,LED_WEIANL A,#LED_WEI_ProORL A,#02H;CPL AMOV LED_WEI,AJMP DISP_WEI_ENDDISP_WEI3:MOV A,LED_WEIANL A,#LED_WEI_ProORL A,#04H;CPL AMOV LED_WEI,AJMP DISP_WEI_ENDDISP_WEI4:MOV A,LED_WEIANL A,#LED_WEI_ProORL A,#08H;CPL AMOV LED_WEI,ADISP_WEI_END:MOV R0,#DISP_BUFMOV A,COUN_WEIADD A,R0MOV R0,AMOVA,@R0MOV DPTR,#LED_TABMOVC A,@A+DPTRMOV B,AMOV A,COUN_WEICJNE A,#2,DISP_WEI_NODOT;增加小数点MOV A,BANL A,#7FHMOV B,ADISP_WEI_NODOT:MOV A,BMOV LED_DAT,AINC COUN_WEIPOP PSWPOP ACCRETLED_TAB:;共阳数码管表DB 0C0H ;"0" DB 0F9H ;"1"DB 0A4H ;"2"DB 0B0H ;"3"DB 99H ;"4"DB 92H ;"5"DB 82H ;"6"DB 0F8H ;"7"

附:http://www.jh-/archives/7292

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。