简单的51单片机数字钟设计由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“51单片机多功能数字钟”。
成都大学电子信息工程学院
07级单片机课程设计
题目:简单51单片机数字时钟设计
院 系: 电子信息工程 专 业:电信专业 班 级:08级电信本科三班 姓 名: 刘 涛 学 号:200810312340 老 师:杨加国
2010-6
成都大学电子信息工程学院
摘要
班级学号 ···········1 设计内容 ···········3 进度安排 ···········3 MCS-51单片机系统简介·····3 课程设计背景 ·········4 课程设计目的 ·········4 MCS-51单片机内部定时器/计数器中
断系统简介 ···········4 课程设计原理 ·········5 课程设计代码 ·········6 设计相关说明·········10
345 成都大学电子信息工程学院
MOV 20H,#0;秒个位寄存器清零 MOV 21H,#0;秒十位寄存器清零 MOV 22H,#0;分个位寄存器清零 MOV 23H,#0;分十位寄存器清零 MOV 24H,#0;时个位寄存器清零
MOV 25H,#0;时十位寄存器清零 LJMP DISPLAY TIMER_0: CLR EA INC R6 INC R5
MOV TH0,#03CH MOV TL0,#0B0H;重新赋初值,定时50ms SETB EA RETI ADD_TIME: CJNE R6,#20,EXIT;定时器中断20次,1秒到 MOV R6,#0 INC 20H
MOV A,20H
CJNE A,#10,EXIT;如果秒个位等于10,清零 MOV 20H,#00H INC 21H
MOV A,21H
CJNE A,#6,EXIT;如果秒十位等于6,清零 MOV 21H,#00H
INC 22H
MIN: MOV A,22H
CJNE A,#10,EXIT;如果分个位等于10,清零 MOV 22H,#00H
INC 23H
MOV A,23H
CJNE A,#6,EXIT;如果分十位等于6,清零 MOV 23H,#00H INC 24H
HOUR: MOV A,25H CJNE A,#2,LOOP;如果时十位等于2,检查时个位 MOV A,24H CJNE A,#4,EXIT;如果时个位等于4,清零 MOV 24H,#00H;清零时个位 MOV 25H,#00H;清零时十位
成都大学电子信息工程学院
CLR P2.2 LCALL DELAY SETB P2.2;显示“-” MOV A,24H MOVC A,@A+DPTR MOV P0,A CLR P2.1 LCALL DELAY SETB P2.1;显示时个位
MOV DPTR,#TABLE1;该位使用TABLE1以消除前置0 MOV A,25H MOVC A,@A+DPTR MOV P0,A CLR P2.0 LCALL DELAY SETB P2.0;显示时十位
CJNE R5,#4,EXIT0;当R5到4时,扫描按键 MOV R5,#0 KEY_SCAN: JNB K1,ADD_HOUR JNB K2,ADD_MIN LJMP ADD_TIME;无键按下,跳至走时 ADD_HOUR: INC 24H;小时加1 LJMP HOUR;更新 ADD_MIN: INC 22H;分钟加1 LJMP MIN;更新 EXIT0: LJMP ADD_TIME DELAY: MOV R7,#150;扫描延时
DJNZ R7,$ RET
TABLE:;数码管字形显示编码表
DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;字形显示编码
TABLE1: DB 0FFH,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;小时位的十位数编码,该位如果为0则不显示
END;程序结束-