数字电子日历
基于单片机电子万年历的设计毕业论文

基于单片机电子万年历-的设计毕业论文号:毕业设计(论文)说明书课题名称:基于单片机的电子万年历设计院(系):计算机工程系专业:通信工程班级:通信072班学生姓名:黄董学号: 200700402056指导教师:袁浩浩2011年 05月25日摘要电子万年历是一种应用非常广泛日常计时工具,对现代社会越来越重要。
此电子万年历在硬件方面主要采用STC89C52单片机作为主控核心,由DS1302时钟芯片提供时钟、1602LCD液晶显示屏显示。
STC89C52单片机是由Atmel公司推出的,功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;对于数字电子万年历采用直观的数字显示,数字显示是采用的1602LED液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。
此外,该电子万年历还具有时间校准等功能。
在软件方面,主要包括日历程序、时间调整程序,显示程序等。
所有程序编写完成后,在Keil软件中进行调试,确定没有问题后,烧写到单片机上进行测试。
此设计主要由时钟芯片DS1302和温度传感器DS18B20采集数据到单片机进行处理再通过LCD1602显示出来,本论文主要研究了液晶显示器LCD及时钟芯片DS1302,温度传感器DS18B20与单片机之间的硬件互联及通信,对数种硬件连接方案进行了详尽的比较,在软件方面对日历算法也进行了论述。
关键词:单片机;DS1302;DS18B20;LCD1602AbstractElectronic calendar is a widely used tool for the daily time, more and more important in modern society. The electronic calendar in terms of hardware as the main control mainly STC89C52 microcontroller core, provided by the DS1302 clock chip clock, 1602LCD LCD display. STC89C52 microcontroller by Atmel introduced, the power consumption, voltage can be selected 4 ~ 6V voltage power supply; DS1302 clock chip introduced in the United States DALLAS low-power real time clock chip, which can be year, month, day, week, hours, minutes and seconds time, but also has leap-year compensation, and other functions, and the DS1302's long life, small error; for digital electronic calendar using an intuitive digital display, digital display is used 1602LED LCD screen to display, you can also shows year, month, day, week, hours, minutes, seconds and other information. In addition, the electronic calendar is also a time calibration and other functions. In terms of software, including calendar, time to adjust procedures, display procedures. All programming is completed, the Keil software debugging, make sure that no problem, programmed into the microcontroller for testing.This design mainly by the clock chip DS1302 temperature sensor to the microcontroller DS18B20 collect data for processing and then through the LCD1602 display, this thesis, the liquid crystal display LCD and clock chip DS1302, temperature sensor and microcontroller DS18B20 interconnection and communication between the hardware on Several hardware connection scheme for a detailed comparison of algorithms in software on the calendar have also been discussed.Key words: SCM; DS1302; DS18B20; LCD1602目录摘要 (I)Abstract (II)第 1 章绪论 (1)1.1课题背景 (1)1.2 课题意义 (1)1.3国内外现状及水平 (1)第2章基于单片机万年历的方案研究 (2)2.1 系统基本方案选择和论证 (2)2.1.1 单片机芯片的选择 (2)2.1.2 显示模块选择方案和论证 (3)2.1.3 时钟芯片的选择方案和论证 (3)2.1.4 温度传感器的选择方案与论证 (3)2.2 电路设计最终方案决定 (4)2.3 DS1302,DS18B20和LCD1602的原理及说明42.3.1 LCD1602工作原理及说明 (4)2.3.2 DS1302原理及说明 (5)2.3.3 DS18B20工作原理及说明 (6)第3章系统的硬件设计与实现 (7)3.1电路设计框图 (7)3.2系统硬件概述 (7)3.3 主要模块电路的设计 (8)3.3.1 STC89C52单片机主控制模块的设计. 83.3.2时钟电路模块的设计 (10)3.3.3温度采集模块设计 (11)3.3.4 显示模块的设计 (11)3.4各模块电路原理图 (12)3.4.1电源电路 (12)3.4.2复位电路 (12)3.4.3振荡电路 (13)3.4.4温度采集电路 (13)3.4.5通信电路 (14)3.4.6显示电路 (15)3.4.7键盘电路 (15)第4章系统的软件设计 (16)4.1 程序流程框图: (16)第5章系统测试 (19)5.1 硬件测试 (19)5.2 软件测试 (19)结束语 (20)致谢 (21)参考文献 (22)附录1:程序 (24)第 1 章绪论1.1课题背景在当代繁忙的工作与生活中,时间与我们每一个人都有非常密切的关系,每个人都受到时间的影响,随着社会、科技的发展,人类得知时间,从观太阳、摆钟到现在电子钟,不断研究、创新。
2013-2014(1)数字电子技术教学日历—64学时(1-7 12-16)

2.5 2。6 2.7 2。8
2.9 2.10 2.11
2.13(必做)
3.3 3. 4 3. 5 3. 7
3.8 3.9 3.10(b)
3.11 3.12 3.13 3.16
4. 1 4。2..4. 3 4。4
4.5 4. 6 4.7(双)
4.8(b)4.10 4.11
5.1概述
5.2时序逻辑电路的分析
续5。2
5.3时序逻辑电路的设计
续5。3
续5。3
续5。3
第四、五章习题课
第六章脉冲波形的产生与整形
6.1概述
6.2集成555定时器
续6。2
6.3多谐振荡器
6.4脉冲整形电路
第七章半岛体存储器
7.1概述
7.2存储器
第八章可编程逻辑器件
8.1概述
8.2可编程阵列逻辑
8.3通用阵列逻辑器件
五
一
三
五
一
三
五
一
三
五
一
三
五
一
三
五
一
三
五
一
三
五
一
三
五
一
三
五
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2
2ห้องสมุดไป่ตู้
2
2
2
2
2
2
2
2
2
第一章数字电路基础
1.1概述
1.2数制和码制
电子万年历的电路原理与设计

湖南信息科学职业学院毕业论文(设计)电子万年历电路原理与设计学生姓名:刘文明学号:08120126年级专业:二00八级计算机控制技术专业指导老师:凌双明湖南·长沙提交日期:2011年5月目录摘要 (3)1前言 (3)2设计要求与方案论证 (3)2.1设计要求 (4)2.2系统基本方案选择和论证 (4)2.2.1 显示模块选择方案和论证 (4)2.2.2单片机串口通信的选择方案和论证 (4)3 系统的硬件设计与实现 (5)3.1 电路设计框图 (5)3.1.1万年历显示设计框图 (5)3.1.2液晶显示设计框图 (5)3.1.3单片机之间、电脑单片机联机设计图 (5)3.2 系统硬件概述 (6)3.3主要单元电路的设计 (6)3.3.1万年历单片机主控制模块的设计 (7)3.3.2光控开关模块的设计 (7)3.3.3万年历显示模块的设计 (7)3.3.4温度感应模块的设计 (8)3.3.5串口通信模块的设计 (9)4结束语 (9)参考文献 (10)附录 (10)附录1系统使用说明书 (11)附录2万年历实物图 (12)电子万年历的电路原理与设计作者:刘文明指导老师:凌双明(湖南信息科学职业学院电子信息系2008级计算机控制技术专业,长沙410128)摘要:随着当今世界经济的快速发展和信息化时代的来临,各种各样的小型智能家电产品陆续出现在我们的生活当中。
日历是人们不可或缺的日常用品。
但一般日历都为纸制用品,使用不便,寿命不长。
电子万年历采用智能电子控制和显示技术,改善了纸制日历的缺陷。
万年历具有读取方便、显示直观、功能多样、电路简洁、成本低廉等诸多优点,符合电子仪器仪表的发展趋势,具有广阔的市场前景。
关键词:单片机89C52,串口通信,控制模块,显示模块,发声模块, 12864LCD 液晶1.前言万年历可以显示年、月、日、时、分、秒、星期等,具有日期和时间校准、闰年补偿、温度显示、闹钟、光控开关,秒表等多种功能,万年历串口通信具有电脑一键校准时间,利用电脑联机,设置心情语悟,增加名片等功能。
数字的日历表示

数字的日历表示数字在我们日常生活中随处可见,我们用数字来计算时间、表示年龄、标记日期等。
而数字的日历表示,更是给我们提供了一种清晰、简洁、方便的方式来记录和查看日期。
本文将探讨数字的日历表示的原理、使用方法以及其在实际生活中的应用。
一、数字的日历表示原理数字的日历表示是一种将日期用数字表示的方法,其基本原理是将一个特定的日期与数字进行对应。
一般而言,我们习惯使用以1月1日为起点的连续数字来表示日期。
具体表示方法如下:1. 年份表示:使用四位数字表示年份,例如2022年用数字“2022”来表示。
2. 月份表示:使用从1到12的数字表示月份,即1表示1月,2表示2月,依此类推。
3. 日期表示:根据具体的日期,使用相应的数字进行表示。
以每个月的1号为起点,按顺序依次递增。
比如1月1日用数字“1”表示,1月2日用数字“2”表示,依此类推。
例如,2022年1月1日可以用数字“20220101”来表示,2022年2月15日可以用数字“20220215”来表示。
二、数字的日历表示使用方法数字的日历表示具有简洁、直观、易于计算的特点,因此在实际生活中被广泛应用。
以下是几种常见的使用方法:1. 日期计算:通过数字的加减运算,可以方便地计算两个日期之间的天数差距。
例如,要计算2022年3月15日与2022年1月1日之间相隔的天数,可以将它们的数字表示相减即可,即“20220315 - 20220101 = 214”。
2. 日期比较:通过数字的大小比较,可以确定两个日期的先后顺序。
例如,要比较2022年6月1日和2022年5月15日哪个日期更晚,只需比较它们的数字表示大小即可,即“20220601 > 20220515”。
3. 日期查询:通过将日期转换为数字表示,我们可以方便地在电子设备或计算机中进行日期的查询和比较。
很多软件和应用程序都支持通过数字的日历表示来进行日期的输入和搜索。
三、数字的日历表示的应用数字的日历表示在实际生活中有着广泛的应用。
基于单片机的电子万年历的设计与制作

郑州航空工业管理学院毕业论文(设计)题目基于单片机的电子万年历的设计与制作二О一三年五月二十三日摘要单片机应用技术飞速发展,从导弹的导航装置到飞机上各种仪表的控制,从计算机的网络通讯与数据传输到工业自动化过程的实时控制和数据处理,以及生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机。
单片机是集CPU、RAM、ROM 、定时、计数和多种接口于一体的微控制器。
它体积小,成本低,功能强,广泛应用于智能产业和工业自动化上。
本文通过对一个基于单片机的能实现万年历功能电子时钟的设计,系统由主控制器STC89C52为控制中心,DS12C887产生时钟,DS18B20产生温度,12864液晶显示对日期、时间等进行显示,按键可以设置时间、闹钟等。
能实现时钟、日历、时间和温度显示的功能。
今后万年历将会朝着精准度更高,外观更加美丽,价格更加实惠的方向发展,并且将会出现更多的辅助功能。
关键词:单片机,农历查询,万年历,温度显示ABSTRACTAs the rapid development of Single-chip Microcomputer Application technology, from the navigation device of missile to the various instruments on the aircraft control and from computer communication network and data transmission to industrial real-time automation process control and data processing, as well as the extensive use of the smart card and electronic pets in live, All of this is inseparable from the microcontroller. SCM is set to CPU, RAM, ROM, timing, counting and multiple interfaces in one microcontroller. It has the advantages of small volume, low cost, strong function, widely used in smart industries, and industrial automation.This paper designed a electronic clock which can achieve calendar function based on microcontroller, the system consists of main controller STC89C52, clock circuit, display circuit, DS12C887circuit, and a reset circuit components,the main control system as the control center, DS12C887 generates a clock, DS18B20 generates temperature, a 12864 LCD display the date and time, the key can set the time, alarm clock, achieved the clock calendar and time display function.In the future, the calendar will be more accurate, look more beautiful; more affordable prices of the direction of development, and will appear more auxiliary function.Keywords: Monolithic single-chip,lunar calendar demand, perpetual calendars display temperature目录摘要 (I)ABSTRACT (II)第1章绪论 (1)1.1 课题的背景 (1)1.2 电子万年历的发展 (1)1.3 电子万年历设计 (1)第2章设计要求与方案论证 (3)2.1 设计要求 (3)2.2 方案论证 (3)2.2.1 控制部分方案设计 .......................................... .32.2.2 显示部分的设计 ........................................... ..42.2.3 单片机芯片的选择方案和论证 (4)2.2.4 时钟芯片的选择方案和论证 (4)2.2.5 温度传感器的选择方案和论证 (5)2.2.6 电源的选择方案 (5)第3章硬件设计 (6)3.1 电路的设计框图 (6)3.2 主要单元电路的设计 (6)3.2.1 单片机主控电路设计 (6)3.2.2 时钟振荡电路设计 (8)3.2.3 复位电路设计 (9)3.2.4 温度传感器电路设计 (9)3.2.5 时钟电路设计 (12)3.2.6 显示电路设计 (13)3.2.7 按键电路设计 (16)3.2.8 报警电路设计 (16)第4章软件设计 (17)4.1 程序流程图 (17)4.1.1 主程序流程 (17)4.1.2 时间调整程序流程图 (18)4.1.3 时钟芯片读写程序流程 (20)4.1.4 温度测量元件控制程序流程 (20)4.1.4 公历转换成农历的基本原理 (21)4.2 操作与调试 (22)4.2.1 软件调试 (22)4.2.2 万年历实物 (23)总结与展望 (26)致谢 (27)参考文献 (28)附录一:系统硬件原理图 (29)附录二:元器件清单 (30)附录三:设计程序 (31)第1章绪论1.1 课题的背景随着社会的发展和科技水平的提高,人类获得和计算时间的方法,历经观天阳、摆钟到现在电子钟,经过不断发展和创新,计时的精度越来越准确。
数字电路课程设计 电子日历

数字电路综合设计报告电子日历一、 设计要求1.能显示年、月、日,星期; 2.年月日,星期可调; 3.不考虑闰年。
二、 题目分析题目可概括如下:通过一个时钟信号计时,电路需要按照历法规则准确计数,并将年月日星期显示出来,此外还要求可以人工调整日期。
为了实现功能,主要需搭设出一个可靠的时钟信号发生器,用于计数的计数模块,用于显示计数结果的模块。
三、 设计过程 A. 设计思路此设计主要分为三个模块:时钟信号发生模块、时分秒计数模块、年月日计数模块。
其中,时钟信号发生模块通过晶振发生一定频率的时钟信号,再通过分频,将晶振发出的信号分频成1hz 的秒脉冲信号,最后将秒脉冲信号送入。
时分秒计数模块。
时分秒计数模块在秒脉冲信号的控制下按规则计数,在满24小时时进位,并将进位信号送入年月日计数模块。
年月日模块在时分秒模块进位信号的控制下计数,每收到一个进位信号就加一,并把每一时刻的计数结果通过数码管显示出来。
各模块的关系如图一所示:B. 各框架设计a) 时钟信号发生模块此模块采用晶振电路产生时钟信号,再通过390、161以及D 触发器分频最后得到频率为1Hz 的秒脉冲输出信号。
基本框架如下:仿真电路如下:b) 时分秒计数模块在此模块中,利用390、161构成两个六十进制和一个二十四进制计数器,分别对应秒、分、时。
在时钟信号发生模块的输出信号控制下进行逐级计数,最后将二十四进制计数器的进位信号作为输出信号。
基本框架如下:晶振电路分频电路输出时钟信号输入计数器进位信号输出c)年月日计数模块此模块中利用一块161、160,分别构成七进制,二十八进制、三十进制、三十一进制、十二进制、100进制计数器。
为了实现大小月功能,使用了151数据选择器,将不同触发条件作为输入数据,将12进制的触发信号作为地址输入,因此可根据“月”的状态选择“日”的清零触发条件。
为了实现年月日星期设置功能,采用四个单刀双掷开关,一边连时钟模块,一边连接按键式单脉冲。
微机原理课程设计---万年历设计

微机原理课程设计---万年历设计目录目录.....................................................1、课程设计内容 (1)1.1任务要求 (1)1. 2方案选择 (1)1. 3项目进度计划 (2)2、硬件选型及电路设计 (3)2. 1硬件的选型 (3)2.2电路的设计 (4)3.系统软件设计 (10)3.1 DS1302读写程序设计 (10)3.2 PCB板设计源文件及原理图展示 (12)4.课程设计总结 (13)4. 1 本人在项目实现中的分工 (13)4.2 个人遇到的困难与获得的主要成果 (14)4.3 课程设计完成结果分析与个人小结 (14)参考文献 (15)1 课程设计内容1.1任务要求目的系统以AT89S52单片机为控制器,以串行时钟日历芯片DS1302记录日历和时间,它可以对年、月、日、时、分、秒进行计时,从而以达到对时间计时,完成万年历的基本功能。
背景二十一世纪是数字化技术高速发展的时代,而单片机在数字化高速发展的时代扮演着极为重要的角色。
电子万年历的开发与研究在信息化时代的今天亦是当务之急,因为它应用在学校、机关、企业、部队等单位礼堂、训练场地、教学室、公共场地等场合,可以说遍及人们生活的每一个角落。
所以说电子万年历的开发是国家之所需,社会之所需,人民之所需。
由于社会对信息交换不断提高的要求及高新技术的逐步发展,促使电子万年历发展并且投入市场得到广泛应用。
随着科技的快速发展,时间的流逝,从观太阳、摆钟到现在电子钟,人类不断研究,不断创新纪录。
它可以对年、月、日、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小。
对于数字电子万年历采用直观的数字显示,可以同时显示年、月、日、周日、时、分、秒和温度等信息,还具有时间校准等功能。
该电路采用STC89C52单片机作为核心,功耗小,能在5V的低压工作,电压可选用4.5~5.5V电压供电。
用Excel做电子万年历

用Excel制作电子万年历先看一下最终效果(秀一下萌娃(*^_^*)):本电子万年历的功能包括:1.自动显示当月日历,突出显示当日日历;2.显示当月所有周别;3.显示当月所有节日和特殊日子(可自定义);4.可查询年月,包括该月的节日和特殊日子;5.具有个性化表盘时钟。
需要用到的Excel函数和符号有:if、year、month、today、day、date、weekday、text、DBNum、vlookup、iserror、weeknum、concatenate、mod、mid、now、minute、hour、$、>、&需要用到的Excel技巧有:1.插入背景;2.设置行高和列宽;3.输入有序文本;4.设置数据有效性;5.快速选择整列;6.设置条件格式;7.选择性粘贴;8.设置单元格格式;9.隐藏网格线;10.制作圆环图和饼图、保存和调用图表模板;11.图表的组合;12.冻结窗格;13.工作表加密制作步骤:第一步,设置万年历背景和区域:在“页面布局”选项卡选择“背景”,选择需要作为背景的图片,单击“插入”,插入后效果如图:在第一张图片中间选择一个25行*8列的区域作为日历区域(这里选择了C5:J29区域),框线按下图设置(也可以按照其他方式设置),并调整单元格的行高和列宽。
第二步,设置万年历标题:在“C6”(C6:H6单元格合并)单元格输入“电子万年历”;“C9”(C9:D9单元格合并)单元格输入“查询年月”;“F9”单元格输入“年”;“H9”单元格输入“月”;C11:J11单元格分别输入“周别”、“日”、“一”、“二”、“三”、“四”、“五”、“六”。
第三步,设置可查询的年月:在“N5”单元格输入“年份”,“O6”单元格输入“月份”;在“N6:N206”单元格分别输入年份“1900”、“1901”、“1902”……“2099”、“2010”(当然还可以往后输入更多);在“O6:O17”单元格分别输入月份“1”、“2”、“3”……“11”、“12”。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数字电子日历学生:王晨指导教师:廖晓伟.淮南师范学院电气信息工程系摘要:随着科技的飞速发展,单片机的应用正在不断地走向深入,同时带动传统控制检测日新月益更新。
本次设计的题目是数字电子日历,电子日历具有性能稳定、精确度高、成本低、易于产品化,以及方便、实用等特点。
适用于家庭、公司、机关等众多场所。
为人们的日常生活、出行安排提供了方便,成为人们日常生活中不可缺少的一部分。
本设计主要设计了一个基于AT89C51单片机的电子日历。
能在数码管上进行年、月、日、星期、时、分、秒等自动显示。
应用Proteus软件实现了单片机电子日历系统的设计与仿真。
该方法仿真效果真实、准确,节省了硬件资源。
关键词:日历;单片机;仿真Digital Electronic CalendarStudent:Wang ChenInstructor:Liao XiaoweiHuainan Normal UniversityDepartment of Electrical Engineering and InformationAbstract:With the rapid development of science and technology, SCM applications are continually deepening, the traditional control test drive at the same time benefit to upgrade the new moon. The design of the subject is a digital electronic calendar, electronic calendar, with stable performance, high accuracy, low cost, easy-to-commercialization, as well as convenient and practical features. For families, companies, institutions, and many other places. For people's daily life, travel arrangement provides a convenient, daily life become an indispensable part. This design mainly designed based on AT89C51 microcontroller electronic calendar. Onthe digital control in the year, month, day, week, hours, minutes, seconds, etc. automatically. Application Proteus software electronic calendar, the MCU system design and simulation. Simulation results of the method is true, accurate, saving hardware resources.Key word:SCM, Electronic calendar, Simulation.前言单片机因将其主要组成部分集成在一个芯片上而得名,就是把中央处理器、随机存储器、只读存储器、中断系统、定时器/计数器以及I/O接口电路等部件集成在一个芯片上。
单片机以其极高的性能价格比,受到人们的重视和关注,应用很广、发展很快。
单片机具有体积小、功能多、价格低廉、使用方便、系统设计灵活等优点。
电子日历是一种利用数字电路来显示年、月、日、星期、时、分、秒的计时装置,由于数字集成电路的发展和石英晶体振荡器的广泛应用,使得数字钟的精度,远远超过老式钟表。
如今它已成为人们日常生活中的必需品,广泛应用于家庭、车站、码头、剧院、办公室等场所,给人们的生活、学习、工作带来极大的方便。
2 系统组成及工作原理单片机最小系统是总的控制系统,提供的各种接口与外部各个电路相连。
此图中还包含一些其他元件的电路,实现与外电路相连。
该最小系统包含了单片机,晶振电路,复位电路,串口电路,供电模块电路。
最小系统中的晶振电路结合单片机内部的电路,产生单片机所必需的时钟频率,微控制器的一切指令的执行都是建立在这个基础上的,晶振提供的时钟频率越高,那微控制器的运行速度也就越快。
晶振用于提供稳定,精确的单频振荡。
晶振的作用是为系统提供基本的时钟信号,通常一个系统共用一个晶振,便于各部分保持同步。
复位电路用于工作的电路要恢复初始状态的电路,由一个按键S1,一个1K电阻,一个10K电阻和一个12UF电容组成。
单片机在工作过程中可能需要复位,以使CPU及系统各部件处于确定的初始状态。
89系列单片机的复位信号时从RST引脚输入到芯片内的施密特触发器中的。
当系统处于正常工作时,且振荡稳定后,如果RST引脚上有一个高电平并维持2个机器周期以上,则CPU就可以响应并将系统复位。
电源部分用于为单片机提供直流+5V电压,它包括两个部分:一部分是开关控制器件,另一部分是指示电路,用于指示电源电路工作正常。
开关用的是SW-DPDT,显示灯部分有一个C10的电容,一个1K电阻和一个LED 灯,还要VCC供电!用一个CON3与外界连接用于供电。
图1单片机最小系统图图2串口电路工作原理:利用单片机作为控制芯片,实现对年、月、日、星期、时、分、秒的控制3显示模块图3LCD液晶显示模块LCD(液晶屏)具有汉字显示的功能,不但可以指示旗帜的位置,还可以显示相应的控制命令,如升旗、降旗等,信息量丰富且直观易懂。
另外,液晶显示有功耗低,体积小,质量轻,寿命长,不产生电磁辐射污染等优点。
所以此次设计选择LCD液晶显示。
4系统软件流程图图4主程序流程图图5中断程序流程图附录程序设计:#include <reg51.h>#include <intrins.h>#include <absacc.h>#define uchar unsigned char#define uint unsigned int#define BUSY 0x80 //lcd忙检测标志#define DATAPORT P1 //定义P0口为LCD通讯端口sbit LCM_RS=P2^0; //数据/命令端sbit LCM_RW=P2^1; //读/写选择端sbit LCM_EN=P2^2;uchar second; //定义并初始化时钟变量uchar minite;uchar hour;uchar mstcnt=0;uchar t,set=0;uchar code str0[]={"DATE :2009-04-15"};uchar code str1[]={"TIME : : : "};void delay_LCM(uint); //LCD延时子程序void initLCM( void); //LCD初始化子程序void lcd_wait(void); //LCD检测忙子程序void WriteCommandLCM(uchar WCLCM,uchar BusyC); //写指令到ICM子函数void WriteDataLCM(uchar WDLCM); //写数据到LCM子函数void DisplayOneChar(uchar X,uchar Y,uchar DData); //显示指定坐标的一个字符子函数void DisplayListChar(uchar X,uchar Y,uchar code *DData); //显示指定坐标的一串字符子函数void init_timer0(void); //定时器初始化void displayfun(void);void delay_LCM(uint k){uint i,j;for(i=0;i<k;i++){for(j=0;j<60;j++){;}}}void WriteCommandLCM(uchar WCLCM,uchar BusyC){if(BusyC)lcd_wait();DATAPORT=WCLCM;LCM_RS=0; // 选中指令寄存器LCM_RW=0; // 写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;}void WriteDataLCM(uchar WDLCM){lcd_wait( ); //检测忙信号DATAPORT=WDLCM;LCM_RS=1; // 选中数据寄存器 LCM_RW=0; // 写模式LCM_EN=1;_nop_();_nop_();_nop_();LCM_EN=0;}void lcd_wait(void){DATAPORT=0xff;LCM_EN=1;LCM_RS=0;LCM_RW=1;_nop_();while(DATAPORT&BUSY){ LCM_EN=0;_nop_();_nop_();LCM_EN=1;_nop_();_nop_();}LCM_EN=0;}void initLCM( ){DATAPORT=0;delay_LCM(15);WriteCommandLCM(0x38,0); //三次显示模式设置,不检测忙信号delay_LCM(5);WriteCommandLCM(0x38,0);delay_LCM(5);WriteCommandLCM(0x38,0);delay_LCM(5);WriteCommandLCM(0x38,1); //8bit数据传送,2行显示,5*7字型,检测忙信号WriteCommandLCM(0x08,1); //关闭显示,检测忙信号WriteCommandLCM(0x01,1); //清屏,检测忙信号WriteCommandLCM(0x06,1); //显示光标右移设置,检测忙信号WriteCommandLCM(0x0c,1); //显示屏打开,光标不显示,不闪烁,检测忙信号}void DisplayOneChar(uchar X,uchar Y,uchar DData){Y&=1;X&=15;if(Y)X|=0x40; //若y为1(显示第二行),地址码+0X40X|=0x80; //指令码为地址码+0X80WriteCommandLCM(X,0);WriteDataLCM(DData);}void DisplayListChar(uchar X,uchar Y,uchar code *DData){uchar ListLength=0;Y&=0x01;X&=0x0f;while(X<16){DisplayOneChar(X,Y,DData[ListLength]);ListLength++;X++;}}void displayfun(void){WriteCommandLCM(0x0c,1); //显示屏打开,光标不显示,不闪烁,检测忙信号DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);DisplayOneChar(7,1,hour/10+0x30); //液晶上显示小时DisplayOneChar(8,1,hour%10+0x30);DisplayOneChar(10,1,minite/10+0x30); //液晶上显示分DisplayOneChar(11,1,minite%10+0x30);DisplayOneChar(13,1,second/10+0x30); //液晶上显示秒DisplayOneChar(14,1,second%10+0x30);}void init_timer0(void){TMOD=0x01; //time0为定时器,方式1TH0=0x3c; //预置计数初值TL0=0xb0;EA=1;ET0=1;TR0=1;}void timer0(void) interrupt 1 using 0 //定时器0方式1,50ms 中断一次TH0=0x3c;TL0=0xb0;mstcnt++;if(mstcnt>=20 ){second++;mstcnt=0;}if(second>=60){minite++;second=0;}if(minite>=60){hour++;minite=0;delay_LCM(200); }if(hour>=24){hour=0;}void main(void){P1=0xff; //初始化p1口,全设为1delay_LCM(500); //延时500ms启动initLCM( ); //LCD初始化init_timer0( ); //时钟定时器0初始化DisplayListChar(0,0,str0);DisplayListChar(0,1,str1);while (1){displayfun();delay_LCM(1000);}}总结本文介绍的是利用AT89C51单片机设计的电子日历。