多功能电子时钟设计(汇编语言完美版) - 图文 下载本文

电子时钟实验报告

FEN:

MOV A,MINUTE; SUBB A,37H;

JZ MIAO ;判断分是否到闹铃所定时间,若到,则对秒进行判断;若不到,则对定时进行判断 AJMP DSPDKQ MIAO: MOV A,SECOND SUBB A,#0

JZ SHENGYIN1 ;判断秒是否到闹铃所定时间,若到,则时,分,秒都到达闹铃时刻,进入响铃子程序;若不到则判断定时 AJMP DSPDKQ

RERING: ;闹铃重响判断程序

JNB F0, RE ;标志位F0为0,不进行闹铃重响设定 CPL F0

MOV 3CH,#1 ;定时判断标志位赋1, 定时判断功能开启 JNB P0.7,M1 ;闹铃重响间隔时间选取 MOV R4,#0 ;闹铃重响间隔30秒 MOV R3,#30 AJMP MAIN

M1: ;闹铃重响间隔60秒 MOV R4,#1 MOV R3,#0 AJMP MAIN

DSPDKQ: ;判断是否应该进行定时判断

MOV A,3CH ;3CH是引入的判断因子,当其为0时,不对定时时间是否到0进行判断

JNZ DSPD2 ;当3CH不是0时,跳转到定时判断程序

13

电子时钟实验报告

AJMP MAIN DSPD2: MOV A,R4;

JZ S_PD ;R4所存定时分数为0,则转而判断R3所存定时秒数 AJMP MAIN; S_PD: MOV A,R3;

JNZ MAIN ;R4,R3JNB P0.6,SHENGYIN2 ;AJMP TISHI ;AJMP MAIN CESHI: ACALL RING AJMP MAIN

SHENGYIN1: ;LCALL RING AJMP MAIN

SHENGYIN2:

SETB F0 ;LCALL RING ;CLR F0 ;AJMP MAIN NLTZZ:

AJMP NLTZ1 ; DSTZ: 所存参数减为0, 定时长度已到 闹铃重响功能开启时,跳入响铃程序

不是闹铃重响定时,则定时时间到时,跳入提示程序 调用响铃子程序 闹铃重响标志位设定 响铃 标志位复位 跳入闹铃调整程序 14

电子时钟实验报告

AJMP DSTZ1 ;跳入定时调整程序 DATETZ:

AJMP DATETZ1 ;跳入日期调整程序

STOPWATCHTZ:

AJMP STOPWATCHTZ1 ;跳入秒表程序

B.2.4 显示子程序

8个数码管轮流进行显示,分别显示1ms,依赖人的视觉 暂留效应,给人以数码管持续高亮的错觉。该段程序如下:

DISP: ;时间显示子程序

JNB P3.7,OUT1 ;判断节能开关7是否按下,按下则数码管不显示,延长其寿命 MOV DPTR,#LEDTAB

MOV A,SECOND ;显示当前时间秒位 MOV B,#10

DIV AB ;A存十位,B存个位 MOVC A,@A+DPTR MOV P1,A CLR SEC_S

ACALL D_1MS ;显示当前时间秒十位 SETB SEC_S MOV A,B MOVC A,@A+DPTR MOV P1,A CLR SEC_G

ACALL D_1MS ;显示当前时间秒个位 SETB SEC_G

15

电子时钟实验报告

MOV A,MINUTE ;显示当前时间分位 MOV B,#10 DIV AB

MOVC A,@A+DPTR MOV P1,A CLR MIN_S ACALL D_1MS SETB MIN_S MOV A,B MOVC A,@A+DPTR MOV P1,A CLR MIN_G ACALL D_1MS SETB MIN_G

MOV A,HOUR ;MOV B,#10 DIV AB

MOV DPTR,#LEDTAB MOVC A,@A+DPTR MOV P1,A CLR HOU_S ACALL D_1MS SETB HOU_S MOV A,B MOVC A,@A+DPTR MOV P1,A CLR HOU_G ACALL D_1MS 显示当前时间时位 16