1、基于单片机的数字万年历的设计与实现基础课程设计(论文)基于单片机的数字万年历的设计与实现 专 业: 电气工程及其自动化指导教师:小组成员: 信息技术学院电气工程系2014年12月15日摘要 本次设计就是设计一款万年历,以C51单片机为核心,配备数码管显示模块、按键等功能模块。万年历采用24小时制方式显示时间,在数码管上显示年、月、日、小时、分钟、秒等功能。设计的核心主要包括硬件设计和软件编程两个方面。硬件电路设计主要包括中央处理单元电路、时钟电路、执行电路等几部分。软件用汇编语言来实现,主要包括主程序、键盘扫描子程序、时间设置子程序等软件模块。近年来随着计算机在社会领域的渗透和大规模集成电路的
2、发展,单片机的应用正在不断地走向深入,由于它具有功能强,体积小,功耗低,价格便宜,工作可靠,使用方便等特点,因此特别适合于与控制有关的系统,越来越广泛地应用于自动控制,智能化仪器,仪表,数据采集,军工产品以及家用电器等各个领、域,单片机往往是作为一个核心部件来使用,在根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。而51系列单片机是各单片机中最为典型和最有代表性的一种,通过本次课程设计进一步对单片机学习和应用,从而更熟悉单片机的原理和相关设计并提高了开发软、硬件的能力。本设计主要设计一个基于 80C51单片机的电子时钟,并在LED上显示相应的时间,通过两个控制键和44键盘来实现
3、时间的调节功能。应用Proteus软件实现单片机数字时钟系统的设计与仿真。关键词:单片机 时钟电路 C51 万年历1绪论多功能数字万年历已成为人们日常生活中必不可少的物品,广泛用于个人家庭以及车站、码头、医院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大的方便。随着技术的发展,人们已不再满足于钟表原先简单的报时功能,希望出现一些别的功能,诸如日历的显示、闹钟的应用等,以带来更大的方便,而所有这些,又都是以数字化的电子时钟为基础的。因此,研究实用电子时钟及其发展应用,有着非常现实的意义,具有很大的实用价值。由于数字集成电路技术的发展和采用了先进的石英技术,使电子钟具有走时准确、性能稳
4、定、携带方便等优点它还用于计时、自动报时及自动控制等各个领域。虽然现在市场上已有现成的电子钟集成电路芯片出售,价格便宜,使用灵活,如可以随意设置时、分、秒的输出,改变显示数字的大小等,并且由于集成电路技术的发展,特别是MOS集成电路技术的发展,使电子钟具有体积小、携带方便,但是这里介绍的实用电子钟可以满足使用者的一些特殊要求,输出方式灵活、功耗低、x时准确、性能稳定、维护方便等优点。多功能数字万年历是一个时间控制系统,既能作为一般的时间显示器,同时可以根据需要扩展其功能1.1 方案选择与DIY电子万年历的研究情况1.1.1时钟芯片选择选择串行接口时钟芯片DS1302 芯片主特性:(1)实时时钟
5、具有能计算2100 年之前的秒分时日日期星期月年的能力,还有闰年调整的能力(2)31 8 位暂存数据存储RAM(3)串行 I/O 口方式使得管脚数量最少(4)宽范围工作电压2.0 5.5V(5)工作电流 2.0V 时小于300nA(6)读/写时钟或RAM 数据时有两种传送方式单字节传送和多字节传送字符组方式(7)8 脚DIP 封装或可选的8 脚SOIC 封装根据表面装配(8)简单 3 线接口(9)与 TTL 兼容Vcc=5V(10)可选工业级温度范围-40 +85优点:串行接口的日历时钟芯片,使用简单,接口容易,与微型计算机连线较少等特点,在单片机系统尤其是手持式信息设备中己得到了广泛的应用。
6、 图1 DS1302管脚图1.1.2键盘选择选择独立式键盘独立式键盘电路图如图2所示。 图2 独立式键盘独立式键盘是指各个按键相互独立地连接到各自的单片机的I/O 口,I/O口只需要做输入口就能读到所有的按键。特点: 电路简单,程序容易写,适用于按键数较少的情况。1.1.3显示模块选择选择LCD12864作为一种输出方式液晶显示最大的特点就是能够实现友好的人机界面。它己经广泛应用于现代工业控制和智能化仪器仪表等领域,它己经成为单片机就用开发领域典型模块之一。能够方便的显示文字和数字。1.2 DIY万年历的研究情况目前电子爱好者所设计的万年历大部分都采用LCD1602或数码管显示只能显示阳历不能
7、带显示阴历,而且没有阴历相对应的的天干地支和生肖年,没有达到多功能的效果。我们采用LCD12864显示通过算法实现能正确显示阴历,具有友好的界面。为了追求时间的准确,我们采用芯片DS1302通过单片机控制,读出时间显示在LCD上。我们除了用芯片DS18B20,通过程序控制把温度也显示出来外还通过算法控制把阴历相对应的天干地支和生肖年也显示出来,达到多功能效果。2 主要硬件描述2.1 89C51模块Mcs-51单片机管脚图如图所示。 图3 单片机管脚图 (1)一个8位的微处理器(CPU)(2)片内数据存储器RAM(128B/256B)(3)片内程序存储器ROM/EPROM(4kB/8kB)(4)
8、4个8位并行I/O拉口P0-P3每个口既可以作输入,也可以作输出(5)2个16位定时器/计数器(6)5个中断源的中断控制系统(7)1个全双工的串行I/O接口(8)片内时钟振荡器2.2 显示模块LCM128642.2.1液晶模块概述我们采用FG12864J显示模块。它是一种图形点阵液晶显示器。它主要采用动态驱动原理由行驱动控制器和列驱动器两部分组成了128(列)64(行)的全点阵液晶显示。2.2.2液晶模块特点(1)工作电压为+5V10% ,可自带驱动 LCD 所需的负电压(2)全屏幕点阵,点阵数为128(列)64(行),可显示8(/行)4(行)个(1616 点阵)汉字,也可完成图形,字符的显示
9、(3)与 CPU 接口采用5 条位控制总线和8 位并行数据总线输入输出,适配M6800 系列时序(4)内部有显示数据锁存器(5)简单的操作指令 显示开关设置,显示起始行设置,地址指针设置和数据读/写等指令 图4 FG12864J显示模块2.3 芯片DS1302简介DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式。DS1302 与单片机之间能简单地采用同步串行的方式进行通信
10、仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW。 DS1302的管脚描述如表1所示。表1 DS1302管脚X1 X232.758KHz晶振管脚GND地RST复位I/O数据输入/输出引脚SCLK串行时钟Vcc1 Vcc2电源供电管脚 2.4 芯片DS18B20简介DS18B20温度传感器当仁不让。超小的体积,超低的硬件开消,抗干扰能力强,精度高,附加功能强。对电子爱好者来说,DS18B20是我们开发温度相关的首选小产品。 DS18B20引脚功
11、能如表2所示。表2 DS18B20引脚功能GND地DQ单数据总线VDD电源电压NC 空引脚 3 硬件设计与实现该万年历以C51作为控制核心,外接DS18B20温度传感器,DS1302时钟芯片,显示采用LCM12864,调表采用矩阵式键盘,整体硬件电路的框图如图5所示。 图5 硬件电路框图3.1 单片机最小系统的设计89C51单片机为40引脚双列直插芯片,有四个I/O口P0,P1,P2,P3, MCS-51单片机共有4个8位的I/O口(P0、P1、P2、P3),每一条I/O线都能独立地作输出或输入。单片机的最小系统如图6所示,18引脚和19引脚接时钟电路,XTAL1接外部晶振和微调电容的一端,在
12、片内它是振荡器倒相放大器的输入,XTAL2接外部晶振和微调电容的另一端,在片内它是振荡器倒相放大器的输出。第9引脚为复位输入端,接上电容,电阻及开关后够上电复位电路,20引脚为接地端,40引脚为电源端。 图6 单片机最小系统 3.2 时钟电路的设计本系统采用有DS1302串行时钟芯片作为主时钟电路,该电路使用单独的32.768M的晶振和单独的电源供电,减小主控的负担。电路图如图7所示。图7 时钟电路3.3 温度采集模块的设计采用数字式温度传感器DS18B20,它是数字式温度传感器,具有测量精度高,电路连接简单特点,此类传感器仅需要一条数据线进行数据传输,使用0.7与DS18B20的I/O口连接
13、加一个上拉电阻,Vcc接电源,Vss接地。电路图如图8所示。 图8 温度采集电路3.4 人机交互模块设计该系统输入模块采用独立式式键盘输入,显示模块采用LCM12864,很好的实现了人机交互,液晶与主控制器的接口如图9所示。 图9 液晶接口电路4 系统软件设计与实现4.1 主要算法流程图描述以80C51为核心,处理外转电路传进来的信号,实现时钟数据的读取、保存、显示其及键盘操作。流程图如图10所示。 图10 主程序流程图阳历和时分秒都是通过DS1302读出来的,经过主控的转换和处理最终显示在LCM12864上,该程序流程图如图11所示。 图11 计算阳历和时分秒流程图阴历是通过一种算法转换过来
14、,首先得到阳历值,然后根据这种算法把阳历转换成阴历,最终显示在LCM12864模块上,该程序流程图如图12所示。 图12 计算阴历程序流程图时间调整是通过四个独立按键来调整时间值,时间调整流程图如图13所示。 图13 时间调整程序流程图星期的计算方法如下:星期=(日期年份+所过闰年数+月校正数)%7,如果是在闰年又不到3月份上述之和要减一天再除7,其1到12月的校正数据为 6 2 2 5 0 3 5 1 4 6 2 4,该程序中采用1个字节表示年份闰年数也只计算1900 年以后的闰年数。该程序的流程图如图14所示。图14 流程图4.2各子程序设计1 键盘扫描子程序键盘扫描流程图如图15 图15
15、键盘扫描流程图键盘扫描子程序如下:L2: MOV R3,#0F7H MOV R1,#00HL3: MOV A,R3 MOV P1,A MOV A,P1 MOV R4,A SETB C MOV R5,#04HL4: RLC A JNC KEYIN INC R1 DJNZ R5,L4 CALL DISP MOV A,R3 SETB C RRC A MOV R3,A JC L3 JMP L22 LED显示子程序 LED显示流程图如图16图16 LED显示流程图LED显示子程序如下:DISP:MOV R0,#45HDISP1: MOV A,R0 ADD A,#50H MOV P0,A CALL DEL
16、AY DEC R0 MOV A,R0 ADD A,#40H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#30H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#20H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#10H MOV P0,A CALL DELAY DEC R0 MOV A,R0 ADD A,#00H MOV P0,A CALL DELAY RET3 密码比较和报警程序密码比较和报警流程图如17图17密码较和报警流程密码比较和报警程序:COMP: MOV R1,#
17、45H MOV R0,#35H MOV R2,#06HC1: MOV A,R1 XRL A,R0 JNZ C3 DEC R1 DEC R0 DJNZ R2,C1 CLR P2.0 MOV R2,#200C2: MOV R6,#248 DJNZ R6,$ DJNZ R2,C2C3: INC R5 MOV A,R5 MOV R5,A CJNE R5 ,#03H,C4 CLR P2.1 MOV R5,#00H C4: JMP START心得体会课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日
18、异,单片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不好,通过这次课程设计之后,一定把以前所学过的知识重新温故。这次课程设计终于顺利完成了,在同学的帮助下,终
19、于游逆而解。非常感谢!参考文献1 周兴华编著 手把手教你学单片机C程序设计北京:北京航空航天大学出版社,20072 侯玉宝编著. 基于Proteus的51系列单片机设计与仿真 北京:电子工业出版社,20083 张义和编著. 例说51单片机(C语言). 北京:人民邮电出版社. 20084 李朝青编著. 单片机原理及接口技术. 北京:北京航空航天大学出版社,20055 周慈航编著. 单片机应用程序设计基础. 北京:北京航空航天大学出版社,19916 马忠梅编著. 单片机的C语言应用程序设计. 北京:北京航空航天大学出版社,20037 李广弟编著. 单片机基础. 北京:北京航空航天大学出版社,19948 曾巧媛编著. 单片机原理及应用. 北京:电子工业出版社,19979 邱丽芳编著. 单片机原理与应用. 人民邮电出版社,200710 何立民编著. MCS-51系列单片机应用系统设计. 北京航空航天大学出版社,2003
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1