⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dianzizhong.txt

📁 微机原理课程设计 电子钟程序 大家可以参考参考
💻 TXT
字号:
HOUR EQU 40H ;存放时信息的单元 
MINUTE EQU 41H ;存放分信息的单元 
SECOND EQU 42H ;存放秒信息的单元 
NUM EQU 43H ;存放T0溢出次数的单元 
ORG 0000H ;程序入口 
AJMP MAIN 
ORG 0030H ;主程序入口 
MAIN:MOV SP,#60H ;指定堆栈栈底 
MOV HOUR,#00H 
MOV MINUTE,#00H 
MOV SECOND,#00H ;将时、分、秒分别清零 
MOV NUM,#0 
MOV TMOD,#01H ;设T0工作于方式1,用于定时 
MOV TH0,#4CH ;设置T0的初始值 
MOV TL0,#00H 
MOV IE,#00H ;关中断 
SETB TR0 ;开启定时器T0 
LOOP:NOP 
NOP 
ACALL DISPLAY ;调用显示子程序 
NOP 
NOP 
LOOP1:JB TF0,TIME ;等待定时溢出 
LJMP LOOP1 
TIME:CLR TR0 ;关闭定时器 
PUSH DPL ;保护现场 
PUSH DPH 
PUSH ACC 
MOV TH0,#4CH ;重新设置T0的值 
MOV TL0,#00H 
SETB TR0 ;开启T0 
MOV A,NUM 
INC A ;溢出次数+1 
MOV NUM,A 
CJNE A,#0AH,TT1 ;检测键盘 
MOV P1,#0FH ;设键盘初值 
MOV R0,#04H ;延时消抖 
LCALL DELAY 
JNB P1.0,T0C1 ;为0表示P1.0按下,转T0C1调整秒 
JNB P1.1,T0C2 ;为0表示P1.1按下,转T0C2调整分 
JNB P1.2,T0C3 ;为0表示P1.2按下,转T0C3调整时 
TT1: CJNE A,#140,RR4 
MOV NUM,#00H 
T0C1:MOV A,SECOND 
INC A ;秒单元内容加1 
DA A ;调整为BCD码 
MOV SECOND,A 
CJNE A,#60H,RR4 ;不为60秒继续等待 
setb flag: 
clr flag 
RR1: MOV SECOND,#00H ;为60秒将秒单元清零 
T0C2:MOV A,MINUTE 
INC A ;分单元内容加1 
DA A ;调整为BCD码 
MOV MINUTE,A 
CJNE A,#60H,RR4 ;不为60分继续等待 
RR2: MOV MINUTE,#00H ;为60分,分单元清零 
T0C3:MOV P1,#0F0H ; 1小时闪一次 
LCALL DELAY ;延时 
MOV P1,#0FH 
MOV A,HOUR 
INC A ;时单元内容加1 
DA A ;调整为BCD码 
MOV HOUR,A 
CJNE A,#24H,RR4 ;不为24小时继续等待 
RR3: MOV HOUR,#00H ;为24小时,时单元清零 
RR4: POP ACC ;恢复现场 
POP DPH 
POP DPL 
LJMP LOOP 
DELAY:MOV R1,#10H ;延时子程序 
DELAY1:MOV R2,#20H 
DJNZ R2,$ 
DJNZ R1,DELAY1 
DJNZ R0,DELAY 
RET 
DISPLAY:MOV DPTR,#TAB ;送表头基地址 
MOV A,HOUR 
ANL A,#0FH ;屏蔽时高位 
MOVC A,@A+DPTR ;查时高位 
MOV P0,A 
CLR P2.6 ;开显示 
MOV R0,#1 ;延时消除鬼影 
LCALL DELAY 
SETB P2.6 ;关显示 
MOV A,HOUR 
ANL A,#0F0H 
SWAP A 
MOVC A,@A+DPTR 
MOV P0,A 
CLR P2.7 
MOV R0,#1 
LCALL DELAY 
SETB P2.7 
MOV A,MINUTE 
ANL A,#0FH 
MOVC A,@A+DPTR 
MOV P0,A 
CLR P2.4 
MOV R0,#1 
LCALL DELAY 
SETB P2.4 
MOV A,MINUTE 
ANL A,#0F0H 
SWAP A 
MOVC A,@A+DPTR 
MOV P0,A 
CLR P2.5 
MOV R0,#1 
LCALL DELAY 
SETB P2.5 
MOV A,SECOND 
ANL A,#0FH 
MOVC A,@A+DPTR 
MOV P0,A 
CLR P2.2 
MOV R0,#1 
LCALL DELAY 
SETB P2.2 
MOV A,SECOND 
ANL A,#0F0H 
SWAP A 
MOVC A,@A+DPTR 
MOV P0,A 
CLR P2.3 
MOV R0,#1 
LCALL DELAY 
SETB P2.3 
RET 
TAB: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H 
END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -