1、 武汉大学电子信息学院 电子系统综合设计课程论文 基于51单片机电子时钟设计与实现 专 业: 年 级: 作 者: 指引教师: 6月 26日 目 录 1 课题背景与立项缘由 1 2 实验方案设计 2 2.1设计规定 2 2.2数字钟构成 2 2.3系统总体框图 3 3 软件系统方案设计与选取 4 3.1主程序流程图 4 3.2定期器子程序流程图 6
2、3.3方案选取 7 4 硬件系统方案设计与选取 7 4.1单片机构造 7 4.2开发板构造和用法... 8 4.3方案选取... 10 5 系统测试 11 5.1测试环境 11 5.2测试过程 11 5.3测试成果... 12 6 实验心得 12 参照文献 13 附录1 系统电路图 13 附录2 系统软件代码 14 附录3 系统器件清单 38 1 课题背景及立项缘由 所谓单片机,就是把中央解决器CPU(Central Processing Unit)、存储器(Memory)、定期器、I/0(Input/Output)接口电路等某些计算机重要功能部件集成在一
3、块集成电路芯片上微型计算机。虽然单片机只是一种芯片,但从构成和功能上看,它已具备了微型计算机系统含义。中文“单片机”称呼由英文名称“Single Chip Microcomputer”直接翻译而来。单片机把微型计算机各重要某些集成在一块芯片上,大大缩短了系统内信号传送距离,从而提高了系统可靠性及运营速度。因而在工业测控领域中,单片机系统是最抱负控制系统。因此,单片机是典型嵌人式系统,是嵌入式系统低端应用最佳选取。单片机发展经历了如下4个阶段: 1、芯片化摸索阶段 20世纪70午代,美国Fairchild(仙童)公司一方面推出了第一款单片机F-8,随后Intel公司推出了影响面大、应用更广M
4、CS48单片机系列。MCS48单片机系列推出标志着在工业控制领域,进入到智能化嵌入式应用芯片形态计算机摸索阶段。参加这一摸索阶段尚有Motorola、Zilog和TI等大公司,它们都获得了满意摸索效果,确立了在SCMC嵌入式应用中地位。 2、构造体系完善阶段 在MCS-48摸索成功基本上不久推出了完善、典型单片机系列MCS-5l。MCS-51系列单片机推出,标着Single Chip Microcomputer体系构造完善。 3、从SCMC向MCU化过渡阶段 Intel公司推出MCS96单片机,将某些用于测控系统模数转换器(ADC)、程序运营监视器(WDT)、脉宽调制器(PWM)、高速
5、I/O口纳入片中,体现了单片机微控制器特性。MCS-51单片机系列向各大电气商广泛扩散,许多电气商竞相使用80C51为核,将许多测控系统中使用电路技术、接口技术、可靠性技术应用到单片机中;随着单片机内外围功能电路增强,强化了智能控制器特性。微控制器(Microcontrollers)成为单片机较为精确表达名词。 4、MCU百花齐放阶段 单片机发展到这一阶段,表白单片机已成为工业控制领域中普遍采用智能化控制工具-----小到玩具、家电行业,大到车载、舰船电子系统,遍及计量测试、工业过程控制、机械电子、金融电子、商用电子、办公自动化、工业机器人、军事和航空航天等领域。为满足不同规定,浮现了高速
6、大寻址范畴、强运算能力和多机通信能力8位、16位、32位通用型单片机,小型便宜型、外围系统集成专用型单片机,以及形形色色各具特色当代单片机。可以说,单片机发展进人了百花齐放时代,为顾客选取提供了空间。 在寻常生活和工作中,咱们经常使用到定期控制。早起惯用某些时间控制单元都是使用模仿电路设计和制作,其定期精确性和重复精度都不是很抱负,当前基本上都是基于数字技术新一代产品,随着单片机性能价格比不断提高,新一代产品应用也越来越广泛,大可构成复杂工业过程控制系统,完毕复杂控制功能。小则用于家电控制,大则用于工业和科学研究中精准时间定位,配以恰当接口芯片,可以构造各式各样微电子产品。 咱们专业
7、在本学期数字逻辑电路实验中已经能使用脉冲信号发生器、有关芯片、数码管和导线在实验箱上实现基于基本门电路数字时钟;在电子系统综合设计(2)这门课上,咱们学习了单片机有关知识,理解了其低功耗、可靠性和稳定性强、可以在内部EPROM上写入和擦除程序相对先进特点与功能。因而,咱们但愿在有单片机芯片开发板上通过编程实现数字钟,并盼望它能有更多功能和更好稳定性。 2 实验方案设计 2.1 设计规定 u 实现时、分、秒计时功能 u 实现年、月、日日历功能 u 体现平闰年区别,各时间单位之间进制精确 u 实现闹钟报警功能 2.2 数字钟构成 数字钟事实上是一种对原则频率(1HZ)进行计数计数电
8、路.由于计数起始时间不也许与原则时间一致,故需要在电路上加一种校时电路,同步原则1MHZ时间信号必要做到精确稳定.普通使用石英晶体振荡器电路构成数字钟。 ⑴晶体振荡器电路 晶体振荡器电路给数字钟提供一种频率稳定精确12MHz方波信号,可保证数字钟走时精确及稳定.不论是指针式电子钟还是数字显示电子钟都使用了晶体振荡器电路。 ⑵时间计数器电路 时间计数电路由秒个位和秒十位计数器,分个位和分十位计数器电路构成,秒个位和秒十位计数器,分个位和分十位计数器为60进制计数器。 ⑶译码驱动电路 译码驱动电路将计数器输出8421BCD码转换为数码管需要逻辑状态,并且为保证数码管正常工作提供足
9、够工作电流。 ⑷数码管 数码管普通有发光二极管(LED)数码管和液晶(LCD)数码管,本设计提供为LED数码管。 2.3 系统总体框图 开始 系统初始化 显示计时 判断按键与否有按下 年、月、日 调节时分秒 调节定期 调节星期 3 软件系统方案设计与选取 3.1 主程序流程图 3.1主程序流程图(续) 3.2 定期器子程序流程图 3.3方案选取与有关技术 方案一:基本门电路搭肩,用基本门电路来实现数字钟,电路构造复杂,鼓掌系数大,不易调试。 方案二:单片机编程,用单片机设计电路,由于使用软硬件结合方式,因此电路构造简朴,调试
10、也相对以便。 与第一种方案比较长处是非常明显。咱们选取了第二种方案。 4 硬件系统方案设计与选取 4.1 单片机构造 4.1.1 构造框图 4.2 开发板构造与用法 4.2.1开发板构造 4.2.2 通过SST51实现开发板只读模式和程序烧写切换 打开SSTEasyIAP11F.exe程序,选取串口 选取芯片型号和内部程序存储器 选取PC串口,MCU晶振和波特率 先选取拟定在复位MCU 通讯成功后窗口右上角显示芯片信息和版本信息 点击Download SoftICE选项,将MCU中BOOT LOADER监控程序替代为Soft ICE监控程序 选取确认更
11、换 打开Keil C51程序,新建一种工程 保存在自己新建文献夹中 点击保存浮现CPU选取对话框,选取SST系列89X516RD2 浮现与否添加原则51初始代码对话框,选“否” 工程建立之后新建源程序文献,点击”File”菜单下“New”选项 保存在工程文献夹内,C程序文献后缀为“.C”,汇编程序文献后缀为“.ASM” 在文本编辑区编写源程序并保存;在Source Group上右击选取“Add Files To Group…”选项添加源文献至工程 选取编写好源程序文献,点击Add添加所选文献 点击编译按钮,编译工程 进入目的板调试选项设立,点击“Project”菜单下“Op
12、tions for Target…”选项 选取为硬件仿真功能 点击Setting进入通讯参数设定菜单,去掉所有Cache选项。至此设立完毕,进入仿真调试阶段 点击DEBUG下“Start/Stop Debug Session”选项进入DEBUG界面 进入后可以看到信息栏中由显示连接成功信息。在此仿真界面可以进行单步、全速、断点等调试方式 由Soft ICE监控程序转换回SST Boot-Strap Loader监控程序 打开编辑器SUPERPRO程序 进入SUPERPRO程序界面,单击“选取器件选项” 进入器件选取对话框,在器件类型处选取“MCU/MPU”在查找处输入要器件名称
13、找到之后选取“拟定” 单击“装入文献”选项 进入下载文献选取对话框,选取要下载Soft ICE监控程序,文献格式普通为“.hex”或“.bin”格式 由于SST单片机监控程序存储在Block1中,Block1地址为10000h,故数据缓冲区起始地址改为“10000”,下载普通执行程序则直接默认 详细环节为:Erase=》Program=》Verify; 打开SST BOOT-STRAP LOADER软件工具,并按之前环节与单片机通讯连接成功。在界面右下方IAP Function菜单中有下载选项,选取“Download”选项下载程序 进入了下载文献选取界面 在文献查找对话框中找到
14、要下载顾客程序,普通为.Hex或.bin格式文献 选取好顾客程序后,单击环节二中OK选项开始下载,界面最下面状态栏显示下载进度,当显示为Done时表达程序下载已经完毕,单片机上电执行顾客程序了 4.3 方案选取与有关技术 4.3.1显示模块 显示模块是本次单片机课程设计最核心某些。 方案一:采用LCD1602。LCD1602为工业字符型液晶,可以同步显示16x02即32个字符。其采用原则16脚接口,该液晶模块内部字符发生存储器(CGROM)已经存储了160个不同点阵字符图形,因此可分容易实现数字钟数码显示。 方案二:采用LED共阴极数码管。共阴数码管在应用时将公共极COM接到地
15、线GND上,当某一字段发光二极管阳极为高电平时,相应字段就点亮。当某一字段阳极为低电平时,相应字段就不亮。 基于以上分析,咱们考虑到现实经济因素,因此选取了方案二。 共阴极数码管要正常显示,就要用驱动电路来驱动数码管各个段码,从而显示出咱们要数字,因而依照数码管驱动方式不同,可以分为静态式和动态式两类: 方案一:静态显示驱动。就是每一种数码管显示屏都要占用单独具备锁存功能I/O接口用于笔划段字形代码。这样单片机只要把要显示字形代码发送到接口电路,直到要显示新数据时,再发送新字形码,因而,使用这种办法单片机中CPU占用较小。但对于静态显示方式,所需数据锁存装置诸多,引线多而复杂,且可靠性也
16、较低。 方案二:动态显示驱动。通过单片机对数码管位选通COM端电路控制,只要将需要显示数码管选通控制打开,该位就显示出字形,没有选通数码管就不会亮。通过度时轮流控制各个数码管COM端,就使各个数码管轮流受控显示,这就是动态驱动。动态显示可以大幅度地减少硬件成本和电源功耗,由于某一时刻只有一种数码管工作,也就是所谓分时显示,故显示所需要硬件电路可分时复用。动态显示方式,可以避免静态显示问题。但设计上如果解决不当,易导致亮度低,闪烁问题。因而合理设计既应保证驱动电路易实现,又要保证显示后数据稳定,无闪烁。动态显示采用多路复用技术动态扫描显示方式,复用限度不是无限增长,由于运用动态扫描显示使咱们看
17、到一幅稳定画面实质是运用了人眼暂留效应和发光二极管发光时间长短,发光亮度等因素. 咱们通过实验发现,当扫描刷新频率(发光二极管停闪频率) 为50Hz,发光二极管导通时间≥1m s 时,显示亮度较好,无闪烁感.。 鉴于上述方案分析,咱们采用方案二 4.3.2闹铃模块 方案一:采用语音芯片ISD1110闹铃。ISD1110 具备各种采样率相应,各种录放时间,可以运用振荡电阻自已决定采样率。操作简朴,灵活。音质好,适应电压范畴广。可先对录放音设备录入一段音乐或其她报时方式,当到设定期间时,单片机控制录放音设备放音。 方案二:采用蜂鸣器闹铃,当到设定期间时,单片机向蜂鸣器送出低电平,蜂鸣
18、器响铃。采用蜂鸣器闹铃构造简朴,只需要单路信号控制,发出闹铃声音可以依照响和不响不同软件延时时间来控制,固然也能发出音乐声音。 基于两种方案分析,虽然语音芯片ISD1110具备更多长处,但鉴于经济因素,咱们本次设计还是决定采用方案二。 4.3.3 LED灯显示模块 采用LED灯可以以便用不同流水方式或单个LED灯来判断系统工作状态,实现不同显示功能,是一种经济又实用方式。 5 系统测试 5.1 测试环境 硬件平台:计算机一台、通讯电缆一根、数据线一根、单片机系统学习平台V1.1 软件平台:WINDOWS XP操作系统、SoftICE监控程序、Keil软件 5.2 测试过程
19、 硬件测试: 用SoftICE查看和变化单片机工作状态 软件测试:将数字钟程序烧入单片机,并测试其功能与否完善 5.3 测试成果 时钟精度分析: 为进一步使本次系统做得更完美,我使用了原则秒表对自己设计时间进行了精度测量。本次设计系统使用晶振为12MHZ.数码管显示 00:5:00时,用秒表测得相应数据如表3所示: 序号 1 2 3 4 5 T(min) 5.00.5781 5.00.4787 5.00.5040 5.00.3096 4.59.2587 序号 6 7 8 9 10 T(min) 5.01.4335 5.00. 4.59
20、4556 5.01.2026 5.00.2597 序号 11 12 13 14 15 T(min) 4.58.9750 5.00.1181 5.00.9604 5.02.5060 4.59.8985 序号 16 17 18 19 20 T(min) 10.00.1081 10.01.0545 10.00.9560 10.00.7854 5.00.4355 通过计算可得数码管显示:00:5:00时 秒表测得数值平均值为:00:5:2343 6 实验心得 本次数字钟实验耗时好久,最后做出来功能也是通过重复多次调试才所有达标,是一次很故
21、意义学习和动手经历。从完全不懂单片机到在单片机上编出数字钟程序,咱们感受重要有一下几点: u 看再多课本也许效果也不如实际编程学习效率高。事实上咱们编跑马灯程序时候缺什么就看什么,非常有针对性,在短时间内掌握了汇编语言编程基本。从本课程角度来说,实践对理论反馈作用体现更加明显。 u 调试程序比编程自身枯燥多,但是在某种意义上更加重要。编程是靠灵感,脑袋里有了算法可以不久写出来,但是实际成果能不能达到还要看调试,要考虑算法逻辑、语法、内存地址等诸多方面。这一点在对硬件编程上体现尤为明显。 u 本实验最后完毕了数字钟诸多功能,并没有向其她领域拓展功能,是比较遗憾地方。但愿能在电子系统综合设计
22、2)中得到弥补! 参照文献 [1] 楼然苗.《单片机课程设计指引》.北京航空航天大学出版社,.7. [2] 苏家健.《单片机原理及应用技术》.高等教诲出版社,.11. [3] 深圳市精敏数字机器有限公司 单片机入门背景知识,.5. [4] 张毅坤 陈善久 裘雪红. 单片微型计算机原理及应用. 西安电子科技大学出版,1998.91版. [5] 李学海.《原则80C51单片机基本教程:原理篇》.北京航空航天大学出版社,. [6] 王建校.《51系列单片机及C51程序设计》.科学出版社,. [7] 陈龙三.《C语言控制与应用》.清华大学出版社,1999.8. [8] 赵建领.《5
23、1系列单片机开发宝典》. 电子工业出版社,. 附录一 系统电路图 附录二 软件完整代码 ORG 0000H LJMP MAIN ORG 0003H ;时钟中断入口 LJMP JIA1 ORG 000BH ;日期中断入口 LJMP CLOCK ORG 0013H LJMP JIAN1 ORG 001BH LJMP NAOZHO ORG 0030H DATELED1 EQU 55H ;日期月地址 DATELED2 EQU 56H ;日期日地址 DATELED3 EQU
24、 57H ;日期年高位地址 DATELED4 EQU 67H ;日期年低位地址 SHUNAO EQU 58H NAOH EQU 59H NAOM EQU 40H DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH ORG 0100H MAIN: MOV R3,#0 MOV R0,#12 MOV R1,#0 MOV NAOH,#12 MOV NAOM,#0 MOV SHUNAO,#40 MOV P1,#0FFH MOV R5,#0FFH MOV 66H,#0FFH MOV SP,#30H MOV R2
25、0 MOV R7,#7FH MOV DATELED1,#01 MOV DATELED2,#01H MOV DATELED3,#00H MOV DATELED4,#20 MOV TMOD,#21H MOV TH0,#3CH MOV TL0,#0B0H MOV TH1,#00H MOV TH0,#00H SETB TR0 CLR TR1 MOV IE,#087H SETB IT1 ;外部中断模式 SETB IT0 CLR PS CLR PT1 CLR PT0 SETB PX1 SETB PX0
26、 LED: MOV A,R0 MOV R7,#7FH LCALL LED1 LCALL TIME MOV A,R0 CJNE A,NAOH,NONAO MOV A,R1 CJNE A,NAOM,NONAO JB TR1,NONAO LJMP NAOKAI NONAO: INC NAOM MOV A,NAOM MOV 38H,R1 CJNE A,38H,NONAO1 CLR TR1 NONAO1: DEC NAOM MOV A,R1 MOV R7,#0EFH LCALL LED1 LCALL TIME MOV A,R2 MOV R7,#0FDH L
27、CALL TIME LCALL LED1 LCALL TIME JNB P3.4,SETM JNB P3.5,DATEH LJMP LED NAOKAI: SETB ET1 SETB TR1 LJMP NONAO DATEH: LJMP DATE SETM: CLR ET1 LCALL TIME3 JB P3.4,LED SETM3: JNB P3.4,SETM3 LCALL TIME3 JNB P3.4,SETM3 MOV P1,#11111110B SETM1: MOV A,R1 MOV R7,#0EFH LCALL LED1 LCALL TIME
28、 MOV A,R0 MOV R7,#7FH LCALL LED1 LCALL TIME JB P3.4,SETM1C1 LCALL TIME3 JNB P3.4,SETH SETM1C1:DJNZ R5,SETM1 MOV R5,#0FFH SETM2: MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#0EFH MOVX @DPTR,A LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH
29、 MOV A,#0F7H MOVX @DPTR,A LCALL TIME MOV A,R0 MOV R7,#7FH LCALL LED1 LCALL TIME JB P3.4,SETM1C2 LCALL TIME3 JNB P3.4,SETH SETM1C2:DJNZ R5,SETM2 MOV R5,#0FFH LJMP SETM1 SETH: JNB P3.4,SETH LCALL TIME3 JNB P3.4,SETH MOV P1,#11111101B SETH1: MOV A,R0 MOV R7,#07FH LCALL LED1 LCA
30、LL TIME MOV A,R1 MOV R7,#0EFH LCALL LED1 LCALL TIME JB P3.4,SETH2 LCALL TIME3 JNB P3.4,SETD SETH2: DJNZ R5,SETH1 MOV R5,#0FFH SETH3: MOV A,R1 MOV R7,#0EFH LCALL LED1 LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#07FH MOVX @DPTR,A LCALL TIME MOV A,#0
31、0H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#0BFH MOVX @DPTR,A LCALL TIME JB P3.4,SETH4 LCALL TIME3 JNB P3.4,SETD SETH4: DJNZ R5,SETH3 MOV R5,#0FFH LJMP SETH1 SETD: JNB P3.4,SETD LCALL TIME3 JNB P3.4,SETD MOV P1,#11111011B SETD1: MOV A,DATELED4 MOV R7,#7FH LCALL L
32、ED1 LCALL TIME MOV A,DATELED3 MOV R7,#0DFH LCALL LED1 LCALL TIME MOV A,DATELED1 MOV R7,#0F7H LCALL LED1 LCALL TIME MOV A,DATELED2 MOV R7,#0FDH LCALL LED1 LCALL TIME JB P3.4,AGAIN2 LCALL TIME3 JNB P3.4,SETDM AGAIN2: DJNZ R5,SETD1 MOV R5,#0FFH SETD3: MOV A,DATELED4 MOV R7,#7F
33、H LCALL LED1 LCALL TIME MOV A,DATELED3 MOV R7,#0DFH LCALL LED1 LCALL TIME MOV A,DATELED1 MOV R7,#0F7H LCALL LED1 LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#0FDH MOVX @DPTR,A LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH
34、 MOV A,#0FEH MOVX @DPTR,A LCALL TIME JB P3.4,AGAIN3 LCALL TIME3 JNB P3.4,SETDM AGAIN3: DJNZ R5,SETD3 MOV R5,#0FFH LJMP SETD1 SETDM: JNB P3.4,SETDM LCALL TIME3 JNB P3.4,SETDM MOV P1,#11110111B SETDM1:MOV A,DATELED4 MOV R7,#7FH LCALL LED1 LCALL TIME MOV A,DATELED3 MOV R7,#0
35、DFH LCALL LED1 LCALL TIME MOV A,DATELED1 MOV R7,#0F7H LCALL LED1 LCALL TIME MOV A,DATELED2 MOV R7,#0FDH LCALL LED1 LCALL TIME JB P3.4,AGAIN1 LCALL TIME3 JNB P3.4,SETDYD AGAIN1:DJNZ R5,SETDM1 MOV R5,#0FFH SETDM3: MOV A,DATELED4 MOV R7,#7FH LCALL LED1 LCALL TIME MOV A,DATELED3 MOV
36、 R7,#0DFH LCALL LED1 LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#11110111B MOVX @DPTR,A LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#11111011B MOVX @DPTR,A LCALL TIME MOV A,DATELED2 MOV R7,#0FDH LCALL LED1 L
37、CALL TIME JB P3.4,AGAIN LCALL TIME3 JNB P3.4,SETDYD AGAIN:DJNZ R5,SETDM3 MOV R5,#0FFH LJMP SETDM1 SETDYD: JNB P3.4,SETDYD LCALL TIME3 JNB P3.4,SETDYD MOV P1,#11101111B SETDYD1: MOV A,DATELED4 MOV R7,#7FH LCALL LED1 LCALL TIME MOV A,DATELED3 MOV R7,#0DFH LCALL LED1 LCALL T
38、IME MOV A,DATELED1 MOV R7,#0F7H LCALL LED1 LCALL TIME MOV A,DATELED2 MOV R7,#0FDH LCALL LED1 LCALL TIME JB P3.4,AGAIND4 LCALL TIME3 JNB P3.4,SETDYG AGAIND4:DJNZ R5,SETDYD1 MOV R5,#0FFH SETDYD3:MOV A,DATELED4 MOV R7,#07FH LCALL LED1 LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX
39、@DPTR,A MOV DPTR,#0FBFFH MOV A,#11011111B MOVX @DPTR,A LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#11101111B MOVX @DPTR,A LCALL TIME MOV A,DATELED1 MOV R7,#0F7H LCALL LED1 LCALL TIME MOV A,DATELED2 MOV R7,#0FDH LCALL LED1 LCALL TIME JB P3
40、4,AGAIND9 LCALL TIME3 JNB P3.4,SETDYG AGAIND9: DJNZ R5,SETDYD3 MOV R5,#0FFH LJMP SETDYD1 SETDYG: JNB P3.4,SETDYG LCALL TIME3 JNB P3.4,SETDYG MOV P1,#11011111B SETDYG1: MOV A,DATELED4 MOV R7,#7FH LCALL LED1 LCALL TIME MOV A,DATELED3 MOV R7,#0DFH LCALL LED1 LCALL TIME MOV A,DATELED1
41、 MOV R7,#0F7H LCALL LED1 LCALL TIME MOV A,DATELED2 MOV R7,#0FDH LCALL LED1 LCALL TIME JB P3.4,AGAING4 LCALL TIME3 JNB P3.4,NAOSETM AGAING4:DJNZ R5,SETDYG1 MOV R5,#0FFH SETDYG3: MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#01111111B MOVX @DPTR,A LCALL TIME
42、 MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#10111111B MOVX @DPTR,A LCALL TIME MOV A,DATELED3 MOV R7,#0DFH LCALL LED1 LCALL TIME MOV A,DATELED1 MOV R7,#0F7H LCALL LED1 LCALL TIME MOV A,DATELED2 MOV R7,#0FDH LCALL LED1 LCALL TIME JB P3.4,AGAING9 LCALL
43、TIME3 JNB P3.4,NAOSETM AGAING9: DJNZ R5,SETDYG3 MOV R5,#0FFH LJMP SETDYG1 NAOSETM: JNB P3.4,NAOSETM LCALL TIME3 JNB P3.4,NAOSETM MOV P1,#10111111B NAOSETM1: MOV A,NAOM MOV R7,#0EFH LCALL LED1 LCALL TIME MOV A,NAOH MOV R7,#7FH LCALL LED1 LCALL TIME JB P3.4,SETM1CN LCALL TIME3 JNB
44、P3.4,NAOSETH SETM1CN:DJNZ R5,NAOSETM1 MOV R5,#0FFH NAOSETM2: MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#0EFH MOVX @DPTR,A LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#0F7H MOVX @DPTR,A LCALL TIME MOV A,NAOH MOV R7,#7FH LCALL LED
45、1 LCALL TIME JB P3.4,SETM1CN2 LCALL TIME3 JNB P3.4,NAOSETH SETM1CN2:DJNZ R5,NAOSETM2 MOV R5,#0FFH LJMP NAOSETM1 NAOSETH: JNB P3.4,NAOSETH LCALL TIME3 JNB P3.4,NAOSETH MOV P1,#01111111B NAOSETH1: MOV A,NAOH MOV R7,#07FH LCALL LED1 LCALL TIME MOV A,NAOM MOV R7,#0EFH LCALL LED1
46、 LCALL TIME JB P3.4,NAOSETH2 LCALL TIME3 JNB P3.4,NOSET NAOSETH2: DJNZ R5,NAOSETH1 MOV R5,#0FFH NAOSETH3: MOV A,NAOM MOV R7,#0EFH LCALL LED1 LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @DPTR,A MOV DPTR,#0FBFFH MOV A,#07FH MOVX @DPTR,A LCALL TIME MOV A,#00H MOV DPTR,#0FAFFH MOVX @
47、DPTR,A MOV DPTR,#0FBFFH MOV A,#0BFH MOVX @DPTR,A LCALL TIME JB P3.4,NAOSETH4 LCALL TIME3 JNB P3.4,NOSET NAOSETH4: DJNZ R5,NAOSETH3 MOV R5,#0FFH LJMP NAOSETH1 NOSET: MOV P1,#0FFH JNB P3.4,$ LCALL TIME3 JNB P3.4,NOSET LJMP LED CLOCK: INC R3 MOV TH0,#3CH ;定期器复位 MOV TL0,#0B
48、0H CJNE R3,#20,CHUAN ;如下为小时,分钟,秒进一 INC R2 MOV R3,#00H CJNE R2,#60,CHUAN INC R1 MOV R2,#00H CJNE R1,#60,CHUAN INC R0 MOV R1,#00H CJNE R0,#24,CHUAN INC DATELED2 MOV R0,#00H MOV R4,DATELED1 ;如下是月份和平闰年选取及进一 MOV R6,DATELED2 CJNE R4,#01,CLOCK1 CJNE R6,#32,CHUAN
49、 INC DATELED2 MOV DATELED1,#01H LJMP ENDD CLOCK1: CJNE R4,#02,CLOCK3 MOV B,#4 ;平闰年选取 MOV A,DATELED3 DIV AB MOV A,B JNZ CLOCK2 CHUANX2: CJNE R6,#30,CHUANX1 ;闰年二月 INC DATELED1 MOV DATELED2,#01H LJMP ENDD CLOCK2: CJNE R6,#29,CHUANX2
50、 ENDDX: INC DATELED1 ;平年二月 MOV DATELED2,#01H LJMP ENDD CHUAN: LJMP ENDD CHUANX1: CJNE R6,#31,CHUANX11 LJMP ENDDX CHUANX11: CJNE R6,#32,CHUAN LJMP ENDDX CLOCK3: CJNE R4,#3,CLOCK4 CJNE R6,#32,CHUAN ; INC DATELED1 MOV DATELED2,#0






