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

您所在的位置:网站首页 数码管显示程序c语言代码 基于51单片机电子秒表倒计时器proteus仿真 汇编程序 数码管显示LCD1602显示

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

2024-07-15 00:41| 来源: 网络整理| 查看: 265

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

硬件设计

附:http://www.jh-tec.cn/archives/7292 电路图1: 数码管显示;时间清零;启动计时;暂定计时;继续计时; 在这里插入图片描述 电路图2

在这里插入图片描述

程序设计 TLOW EQU 78H THIGH EQU 0ECH LED_WEI_Pro EQU 0f0H;数码管位选 保护位 ;寄存器设置 COUN_INT EQU 21H ;5ms * 20 = 100ms = 0.1S COUN_PASSNUM EQU 22H ; COUN_TIME_L EQU 23H ;时间累加 低位 100MS加1 COUN_TIME_H EQU 24H ;时间累加 高位 COUN_WEI EQU 3CH ;显示位 DISP_BUF EQU 50H ;端口配置 LED_WEI EQU P2 ;数码管位选 LED_DAT EQU P0 ;数码管数据 BEEP_PIN EQU P3.7 ;蜂鸣器 KEY_START EQU P3.0 ;启动 KEY_STOP EQU P3.1 ;停止/归零键 ;标志位配置 FLAG_TIMING EQU 20H.1 ;20H.1 为计时状态标记 FLAG_GO EQU 20H.2 ;20H.2 为使能标记 BEEP_EN EQU 20H.3 ;蜂鸣器响使能 ;-------------------------------------------------- ORG 0000H JMP MAIN ORG 0BH JMP T0_INT ;-------------------------------------------------- MAIN: MOV SP,#60H MOV A,#00H MOV COUN_WEI,A MOV COUN_PASSNUM,A; MOV COUN_TIME_L,A MOV COUN_TIME_H,A CLR C CLR FLAG_GO CLR FLAG_TIMING;刚开机为非计时状态 SETB BEEP_EN;开机响一声 CALL INIT_TIMER SETB TR0 LOOP: CALL BEEP K1: JB KEY_START,K2;启动 NOP JNB KEY_START,$ SETB BEEP_EN;蜂鸣器响 JB FLAG_GO,LOOP SETB FLAG_GO SETB FLAG_TIMING JMP LOOP K2: JB KEY_STOP,LOOP;暂停、归零键 NOP JNB KEY_STOP,$ SETB BEEP_EN;蜂鸣器响 JB FLAG_TIMING,STOP;计时中按此键则暂停计时,暂停时按此键则归零 RESET_TIME:;归零 CLR FLAG_GO CLR FLAG_TIMING MOV COUN_TIME_L,#00H MOV COUN_TIME_H,#00H CALL DISP_TRANSDAT JMP LOOP STOP:;暂停 CLR FLAG_GO CLR FLAG_TIMING;暂停计时 JMP LOOP ;;;------------------------- ;;------------------------- ;;显示子程序 ;;使用寄存器组:第2组寄存器 ;;出口: ;;入口: ;;-------------------------- DISPLAY: PUSH ACC PUSH PSW CLR PSW.3 ;RS1、RS0(PSW.4、PSW.3): 1 0 SETB PSW.4 ; MOV DISP_BUF,#1H ;test ; MOV DISP_BUF+1,#2H ; MOV DISP_BUF+2,#3H ; MOV DISP_BUF+3,#4H MOV A,COUN_WEI CJNE A,#0,CJMP1 JMP DISP_WEI1 CJMP1: CJNE A,#1,CJMP2 JMP DISP_WEI2 CJMP2: CJNE A,#2,CJMP3 JMP DISP_WEI3 CJMP3: CJNE A,#3,CJMP4 JMP DISP_WEI4 CJMP4: MOV COUN_WEI,#0 DISP_WEI1: MOV A,LED_WEI;P3 ANL A,#LED_WEI_Pro ORL A,#01H ; CPL A MOV LED_WEI,A JMP DISP_WEI_END DISP_WEI2: MOV A,LED_WEI ANL A,#LED_WEI_Pro ORL A,#02H ; CPL A MOV LED_WEI,A JMP DISP_WEI_END DISP_WEI3: MOV A,LED_WEI ANL A,#LED_WEI_Pro ORL A,#04H ; CPL A MOV LED_WEI,A JMP DISP_WEI_END DISP_WEI4: MOV A,LED_WEI ANL A,#LED_WEI_Pro ORL A,#08H ; CPL A MOV LED_WEI,A DISP_WEI_END: MOV R0,#DISP_BUF MOV A,COUN_WEI ADD A,R0 MOV R0,A MOV A,@R0 MOV DPTR,#LED_TAB MOVC A,@A+DPTR MOV B,A MOV A,COUN_WEI CJNE A,#2,DISP_WEI_NODOT;增加小数点 MOV A,B ANL A,#7FH MOV B,A DISP_WEI_NODOT: MOV A,B MOV LED_DAT,A INC COUN_WEI POP PSW POP ACC RET LED_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"


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3