数字电子时钟设计报告

发布时间 : 星期一 文章数字电子时钟设计报告更新完毕开始阅读

单片机课程设计报告

2.数字时钟源程序

SUDAT00 EQU 40H ;加(减数) SUDAT01 EQU 41H SUDAT02 EQU 42H AJMP ORG TIME0 0013H RETI SUDAT03 EQU 43H

SUDAT10 EQU 44H ;SUDAT11 EQU 45H SUDAT12 EQU 46H SUDAT13 EQU 47H

DISPDAT0 EQU 29H ;DISPDAT1 EQU 2AH DISPDAT2 EQU 2BH DISPDAT3 EQU 2CH DISPDAT4 EQU 2DH DISPDAT5 EQU 2EH DISPDAT6 EQU 2FH

DISPLONG EQU 31H ;DISPCON EQU 32H ;KEYDAT EQU 30H ;HOURH EQU 34H ;HOURL EQU 35H MINH EQU 36H MINL EQU 37H

EDMOD EQU 39H ;SUCON EQU 3AH ;SUBIT EQU 20H.1 ;DP EQU 20H.2 ;KEYBIT EQU 20H.3 ;SU EQU 20H.4 ;TIME EQU 20H.5 ;TIMESET EQU 20H.6 ;

ORG 0000H AJMP START ORG 0003H RETI

ORG

000BH

加(被减数) 显示数据区 显示长度 显示计位 键码 时间数据 流水灯模式 输入计数 减标示 秒显标示 有键码标示 计算标示 时间标示 时间设置标示 ORG

001BH LJMP TIME1 0023H RETI

ORG

0050H

START:

MOV A,#00H MOV R0,#20H MOV R1,#30H LOOP0:

MOV @R0,A INC R0

DJNZ R1,LOOP0

MOV SP,#50H

MOV DISPLONG,#07 SETB RS0 SETB RS1

MOV R0,#DISPDAT0 MOV R2,#200 MOV R3,#120 MOV R4,#00 MOV R5,#00 MOV R6,#0FEH MOV R7,DISPLONG CLR RS0 MOV R2,#50 MOV R3,#30 CLR RS1 MOV LEDMOD,#02 MOV DISPLONG,#07 MOV DISPCON,#07 MOV KEYDAT,#0FFH SETB TIME

MOV TL0,#0AH ;1E定时2.5MS

ORG

单片机课程设计报告

MOV TH0,#0F7H MOV IE,#8AH ;开T0,T1

MOV TMOD,#11H ;定时方式1

SETB TR0

MOV TL1,#00H ;定时10MS MOV TH1,#0DCH SETB TR1 MAIN:

ACALL KEY

JNB KEYBIT,MAIN1 ACALL DOKEY MAIN1:

JB TIME,MAIN2 JB TIMESET,MAIN2 JB SU,MAIN3 MAIN2: MOV R0,#HOURH MOV R1,#DISPDAT0 MOV R2,#04H MAINLOOP:

MOV A,@R0 ;时间转七段码送显示数据区

MOV DPTR,#TAB MOVC A,@A+DPTR MOV C,DP MOV ACC.7,C MOV @R1,A INC R0 INC R1

DJNZ R2,MAINLOOP SJMP MAIN MAIN3:

MOV R0,#SUDAT00 ;计算数转段码送显区

MOV R1,#DISPDAT0 MOV R2,#04H SJMP MAINLOOP TAB: DB 40H,79H,24H,30H,19H

DB 12H,02H,78H,00H,10H

DB

7FH,7FH,7FH,7FH,7FH,7FH;0A-0FF全黑 ;显示子程序

;R0显示数址,R6位选值, R7显示计数,DISPL0NG显

示数长度

;DISPDATA0显示数据区首址 DISPLAY:

MOV P2,#0FFH MOV P0,@R0 MOV P2,R6 INC R0

DJNZ R7,DISPLAY1 MOV R7,DISPLONG MOV R0,#DISPDAT0 MOV R6,#0FEH SJMP DISPOUT DISPLAY1:

MOV A,R6 RL A MOV R6,A DISPOUT: RET ; 键盘扫描程序

;KEYDAT存放键码,双键按下只认前键 ;KEYBIT有键标示 KEY:

MOV P1,#0F0H MOV A,P1 ORL A,#0FH XRL A,#0FFH JZ KEYOUT0 MOV A,#60H LCALL DELAY MOV P1,#0F0H MOV A,P1 ORL A,#0FH XRL A,#0FFH JZ KEYOUT0

MOV P1,#0FEH ;KEYDAT存放键码

JNB P1.4,KEY1 JNB P1.5,KEY2 JNB P1.6,KEY3 JNB P1.7,KEY4 MOV P1,#0FDH JNB P1.4,KEY5 JNB P1.5,KEY6

单片机课程设计报告

JNB P1.6,KEY7 JNB P1.7,KEY8 MOV P1,#0FBH JNB P1.4,KEY9 JNB P1.5,KEY10 JNB P1.6,KEY11 JNB P1.7,KEY12 MOV P1,#0F7H JNB P1.4,KEY13 KEY10:

MOV KEYDAT,#03H SJMP KEYOUT KEY11:

MOV KEYDAT,#02H SJMP KEYOUT KEY12:

MOV KEYDAT,#01H SJMP KEYOUT JNB P1.5,KEY14 JNB P1.6,KEY15 JNB P1.7,KEY16 MOV KEYDAT,#0FFH CLR KEYBIT KEYOUT0:

AJMP KEYOUT1 KEY1:

MOV KEYDAT,#0AH SJMP KEYOUT KEY2:

MOV KEYDAT,#09H SJMP KEYOUT KEY3:

MOV KEYDAT,#08H SJMP KEYOUT KEY4:

MOV KEYDAT,#07H SJMP KEYOUT KEY5:

MOV KEYDAT,#0BH SJMP KEYOUT KEY6:

MOV KEYDAT,#06H SJMP KEYOUT KEY7:

MOV KEYDAT,#05H SJMP KEYOUT KEY8:

MOV KEYDAT,#04H SJMP KEYOUT KEY9:

MOV KEYDAT,#0CH SJMP KEYOUT

KEY13:

MOV KEYDAT,#0DH SJMP KEYOUT KEY14:

MOV KEYDAT,#0EH SJMP KEYOUT KEY15:

MOV KEYDAT,#00H SJMP KEYOUT KEY16:

MOV KEYDAT,#0FH KEYOUT:

SETB KEYBIT MOV P1,#0F0H MOV A,P1 ORL A,#0FH XRL A,#0FFH JNZ KEYOUT MOV A,#100H LCALL DELAY KEYOUT1: RET ;键盘处理,

; SU计算标志,TIME时间标志,TIMSET时间设置标志

;SUCON计算输入位数 ,TSETCON时间设置位数 ;DISPCON显示位数

;SUDAT00-03加数(减数),SUDAT10-13 加数(被减数)

;LEDMOD流水灯模式, TSETCON时间设置位数,DISPCON显示位数

;ADDBIT加法标示,SUBBIT减法标示 DOKEY:

MOV A,KEYDAT

单片机课程设计报告

CLR C

SUBB A,#10H ;大于16为错码

JNC DONEXT CLR C MOV A,KEYDAT

SUBB A,#0AH ;大于10为功能键,小于10为数字键 JC NEXT MOV B,#03 MUL AB

MOV DPTR,#DOFKEY ;功能键处理 JMP @A+DPTR DOFKEY:

LJMP DOFKEY1 LJMP DOFKEY2 LJMP DOFKEY3 LJMP DOFKEY4 LJMP DOFKEY5 LJMP DOFKEY6 NOP NOP DONEXT:

LJMP DOKEYOUT NEXT:

LJMP DOSKEY

DOFKEY1: ;计算功能

LCALL TIMDB

JNB TIMESET,DOFKEY11 PUSH PSW SETB RS0 SETB RS1 MOV R2,#200 MOV R3,#120 POP PSW DOFKEY11:

SETB SU ;SU计算标志

CLR

TIME ;TIME时间标志 CLR

TIMESET ;TIMSET时间设置标志

MOV

SUCON,#04H ;SUCON计算输入位数 SETB DP CLR SUBIT MOV SUDAT00,#00H MOV SUDAT01,#00H MOV SUDAT02,#00H MOV SUDAT03,#00H MOV SUDAT10,#00H MOV SUDAT11,#00H MOV SUDAT12,#00H MOV SUDAT13,#00H LJMP DOKEYOUT

DOFKEY2: ;计时功能 LCALL TIMDB

JNB TIMESET,DOFKEY21 PUSH PSW SETB RS0 SETB RS1 MOV R2,#200 MOV R3,#120 POP PSW DOFKEY21:

SETB TIME CLR SU CLR TIMESET MOV SUCON,#00H SETB DP LJMP DOKEYOUT

DOFKEY3: ;时间设置功能

LCALL TIMDB SETB TIMESET CLR TIME CLR SU MOV SUCON,#00H SETB DP LJMP DOKEYOUT

DOFKEY4: ;流水灯功能

MOV A,LEDMOD CLR C SUBB A,#01H

联系合同范文客服:xxxxx#qq.com(#替换为@)