毕业设计—基于单片机的12864时钟显示
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学士学位毕业论文(设计)题目:基于单片机的12864时钟显示
摘要
电子时钟是一种非常广泛日常计时工具,给人们的带来了很大的方便,在社会上越来越流行。
它可以对年、月、日、星期、时、分、秒进行计时,采用直观的数字显示,可以同时显示年月日时分秒等信息,还有时间校准等功能。
该电子时钟主要采用STC89C52单片机作为主控核心,用DS1302时钟芯片作为时钟、液晶12864显示屏显示。
STC89C52单片机是由深圳宏晶科技公司推出的,功耗小,电压可选用4~6V电压供电;DS1302时钟芯片是美国DALLAS公司推出的具有细电流充电功能的低功耗实时时钟芯片,它可以对年、月、日、星期、时、分、秒进行计时,还具有闰年补偿等多种功能,而且DS1302的使用寿命长,误差小;数字显示是采用的12864液晶显示屏来显示,可以同时显示年、月、日、星期、时、分、秒等信息。
此外,该电子时钟还具有时间校准等功能。
关键词:STC89C51单片机,DS1302时钟芯片,液晶12864
Abstract
Electronic clock is a very extensive daily timing tool, to the people has brought great convenience, more and more popular in the community. It can be the year, month, date, day, hour, minute, second for a time, using intuitive digital display, can display information such as year, month, day, hour, and time alignment functions. The electronic clock is used mainly as a master STC89C52 microcontroller core, with theDS1302 clock chip as a clock, LCD display12864. STC89C52 SCM is a Shenzhen Hong Crystal Technology has introduced, power consumption, voltage can be selected 4 ~ 6V voltage power supply; DS1302 clock chip is American DALLAS company launched with a fine current charging low-power real-time clock chip, it can year, month, date, day, hour, minute, second for a time, also has a leap year compensation and other functions, DS1302 and long life, small error; 12864 LCD digital display is
used to display that can display year, month, date, day, hour, minute, second and so on. In addition, the electronic clock also has a time calibration function.
Key Words:STC89C51 microcontroller, DS1302 clock chip, LCD 12864
目录
1绪论 (3)
1.1时钟发展史 (3)
1.2 目前的研究现状 (4)
1.3研究目的及意义 (4)
2 总体方案设计 (5)
2.1 方案的选择 (5)
2.1.1设计要求 (5)
2.1.2方案的选择 (5)
2.2总体方案组成框图 (6)
3系统硬件设计 (6)
3. 1主芯片模块 (6)
3.1.1 中断系统 (8)
3.1.2常用寄存器 (8)
3.2晶振和复位电路 (10)
3.2.1晶振电路 (10)
3.2.2复位电路 (11)
3.3 DS1302时钟芯片电路 (11)
3.3.1 DS1302引脚图 (11)
3.3.2 DS1302寄存器 (12)
3.3.3 DS1302外围电路 (13)
3.4 LCD12864显示模块 (13)
3.4.1 LCD12864引脚功能 (13)
3.4.2 LCD12864指令说明 (14)
3.4.3 LCD12864电路接线 (15)
3.5 红外遥控模块 (16)
4 系统软件设计 (17)
4.1 主程序设计 (17)
4.2 LCD12864驱动程序 (19)
4.3 DS1302驱动程序 (21)
4.4 红外遥控程序 (24)
5 调试结果 (25)
5.1 正常显示日期时间画面 (26)
5.2 进入调整时间日期画面 (26)
5.3图片显示画面 (26)
6总结 (27)
致谢 (28)
参考文献 (29)
附录一 (31)
附录二 (32)
1绪论
1.1时钟发展史
很早以前,人类主要是利用天文现象和流动物质的连续运动来计时。
例如,日晷是利用日影的方位计时,阴雨天和夜里没法使用且测量误差较大;漏壶和沙漏是利用水流和沙流的流量计时,虽然晚上可以使用,但是水容易结冰,误差还是大。
后来人们发明了机械钟,以机械振动系统为时间基准,实现对时间的计量,误差达到一天一分钟左右。
而如今的数字钟用数字电路实现时、分、秒,精度较高,一天的误差不到一秒。
目前精度最高的时钟要属原子钟,其每天的误差小于一亿分之一秒。
随着人们生活水平的提高和生活节奏的加快,对时间的要求越来越高,精准数字计时的消费需求也是越来越多。
二十一世纪的今天,最具代表性的计时产品就是电子万年历,它是近代世界钟表业界的第三次革命。
第一次是摆和摆轮游丝的发明,相对稳定的机械振荡频率源使钟表的走时差从分级缩小到秒级,代表性的产品就是带有摆或摆轮游丝的机械钟或表。
第二次革命是石英晶体振荡器的应用,发明了走时精度更高的石英电子钟表,使钟表的走时和月差从分级缩小到秒级。
第三次革命就是单片机数码计时技术的应用(电子万年历),使计时产品的走时日差从分级缩小到1/600万秒,从原有传统指针计时的方式发展为人们日常更为熟悉的夜光数字显示方式,直观明了,并增加了全自动日期、星期、温度以及其他日常附属信息的显示功能,它更符合消费者的生活需求!因此,电子万年历的出现带来了钟表计时业界跨跃性的进步。
1.2 目前的研究现状
我国生产的电子万年历有很多种,总体上来说以研究多功能电子万年历为主,使万年历除了原有的显示时间,日期等基本功能外,还具有闹铃,报警等功能。
商家生产的电子万年历更从质量,价格,实用上考虑,不断的改进电子万年历的设计,使其更加的具有市场。
在国内,电子钟因LCD数字显示效用直接有效,所以大多运用在城市的主要营业场所,以及车站、码头等公共场所。
在对公共场所的电子钟设定的时候,使用者还可根据周边的气候、温度等对LCD屏进行设置。
同时,因为LCD的显示耗电量很省,所以能够保持持续的工作效果。
1.3研究目的及意义
电子钟亦称数字显示钟,是一种用数字电路技术实现时、分、秒计时的装置,与机械时钟相比,直观性为其主要显著特点,且因非机械驱动,具有更长的使用寿命,相较石英钟的石英机芯驱动,更具准确性。
电子钟已成为人们日常生活中必不可少的必需品,广泛用于个人家庭以及车站、码头、剧院、办公室等公共场所,给人们的生活、学习、工作、娱乐带来极大地方便。
相对于其他时钟类型,它的特点可归结为“两强一弱”:比机械钟强在观时显著,比石英钟强在走时准确,但是它的弱点为显示较为单调。
钟表的数字化给人们生产生活带来了极大的方便,而且大大地扩展了钟表原先的报时功能。
诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备甚至各种定时电气的自动启用等,所有这些,都是以钟表数字化为基础的。
因此,研究数字钟及扩大其应用,有着非常现实的意义。
除了采用集成化的时钟芯片外,还有采用MCU的方案,利用STC89系列单片微机制成万年历电路,采用软件和硬件结合的方法,控制输出,分别用来显示年、月、日、时、分、秒,其最大特点是:硬件电路简单,安装方便易于实现,软件设计独特,可靠。
STC89C51是由深圳宏晶科技公司推出的一种小型单片机。
其主要特点为采用Flash存贮器技术,降低了制造成本,其软件、硬件与MCS-51完全兼容,可以很快被广大用户接受。
本文介绍了基于STC89C51单片机设计的
电子时钟。
可以同时显示年、月、日、星期、时、分、秒等信息,还具有时间红外校准等功能。
2 总体方案设计
2.1 方案的选择
2.1.1设计要求
A.具有年、月、日、周、时、分、秒的显示功能;
B.具有年、月、日、周、时、分、秒的校准功能;
C.具有图片显示功能;
D.具有红外遥控功能。
2.1.2方案的选择
本课题是基于单片机控制的电子时钟设计,MCS-51系列的单片机集成了8位CPU、4K字节ROM、128字节RAM、2个16位定时器/计数器和4个8位I/O 口等基本功能部件,基本能满足本课题的研究,所以主控芯片选择STC89C51单片机。
时钟的显示功能用128*64LCD来实现,其显示分辨率为128×64,内置8192个16*16点汉字,和128 个16*8 点ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4 行16×16 点阵的汉字,也可完成图形显示。
低电压低功耗是其又一显著特点。
由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶
模块。
为了更精确的显示时间,需要一时钟芯片来进行计时。
DS1302是由美国DALLAS 公司推出的具有涓细电流充电能力的低功耗实时时钟芯片。
它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。
对于红外遥控功能,主要用来调整时间和切换显示页面。
本课题中选用通用红外遥控器和红外接收头。
2.2总体方案组成框图
根据以上硬件的选择,系统的硬件框图2.1所示。
图2.1 系统硬件框图
3系统硬件设计
3. 1主芯片模块
STC89C51单片的引脚功能图如图3.1所示,逻辑符号如图3.2所示,它有40个引脚。
图3.1 STC89C51引脚图图3.2 STC89C51逻辑图
(1)电源引脚
(a) VCC(40):电源正端,外接+5V。
(b) VSS(20):接地。
(2)时钟电路引脚
XTAL1(18)、XTAL2(19):XTAL1为片内振荡电路的输入端,XTAL2为
片内振荡电路的输出端。
8051的时钟有两种方式,一种是片内振荡
方式,需在这两个脚外接石英晶体和振荡电容,振荡电容一般取10p~
30p;另一种是外部时钟方式,即将XTAL 1接地,外部时钟信号从XTAL 2脚输入。
(3)控制引脚
(a) ALE/PROG(30):地址锁存控制信号/编程脉冲输入端。
(b) PSEN(29):外部程序存储器的选通信号。
(c) EA/VPP(31):外部程序存储器地址允许输入端/编程电压输入
端。
(d) RESET/VPT(9):复位/备用电源输入引脚。
在该引脚上输入24个时钟周期以上的高电平,系统即复位。
(4)输入/输出引脚
(a) P0.0~P0.7(39~32):8位双向并行I/O口,P0口可作为通用双向I/O口。
在外接数据、程序存储器时,可作为低8位地址
/数据总线复用引脚。
(b) P1.0~P1.7(1~8):8位双向并行I/O口。
(c) P2.0~P2.7(21~28):8位双向并行I/O口。
P0口可作为通用双向I/O口。
在外接数据、程序存储器时,可作为高8位地
址输出引脚。
(d) P3.0~P3.7(10~17):8位双向并行I/O口。
P3口除了作为通用I/O口使用外,每一个引脚都可以复用。
3.1.1 中断系统
8051单片机允许5个中断源:
(1)外部中断源(2个)
由INT0(P3.2)引脚和INT1(P3.3)引脚引入。
这两个中断源的请求方式有两种:低电平触发或下降沿触发。
(2)内部中断源(2个)
T0:定时/计数器0中断,由T0溢出引起。
T1:定时/计数器1中断,由T1溢出引起。
(3)TI/RI(1个)
串行I/O口中断,由一帧字符发送/接收完后引起。
3.1.2常用寄存器
(1)定时器方式控制寄存器TMOD
工作方式选择位M1、M0定义如下:
GATE=0:软件启动定时器,使TRx置“1”即可启动定时器;
=1:软件和硬件共同启动定时器,除了要使TRx置“1”外,外部中断请求信号输入端INTx还必须输入高电平才能启动定时器。
C/T=0:定时器方式工作;
=1:计数器方式工作。
(2)定时控制寄存器TCON
TF0/TF1:定时器溢出中断申请标志位(由硬件自动置位)。
TF0/TF1=0:定时器未溢出;
=1:定时器溢出时硬件自动置位,申请中断。
TR0/TR1:定时器启动/停止控制位。
TR0/TR1=0:定时器停止;
=1:定时器启动。
IE0/IE1:外部中断申请标志位(由硬件自动置位,中断响应后转向中断服务程序时,由由硬件自动清零)
IE0/IE1=0:没有外部中断申请;
=1:有外部中断申请。
IT0/IT1:外部中断请求的触发方式控制位。
IT0/IT1=0:在INT0/INT1端申请中断的信号低电平有效;
=1:在INT0/INT1端申请中断的信号下降沿有效。
(3)中断允许寄存器IE。
ES——串行口中断允许位。
=0:禁止中断;=1允许中断。
ET1——定时/计数器T1的溢出中断允许位。
=0:禁止中断;=1允许中断
EX1——外部中断1中断允许位。
=0:禁止中断;=1允许中断
ET0——定时/计数器T0的溢出中断允许位。
=0:禁止中断;=1允许中断
EX0——外部中断0中断允许位。
=0:禁止中断;=1允许中断
EA——总的中断允许控制位(总开关)。
=0:禁止所有中断;=1:允许中断。
3.2晶振和复位电路
3.2.1晶振电路
如图3.3所示,STC89C51单片机的内部有一个用于构成振荡器的高增益反相放大器,它的输入端为XTAL1引脚,输出端为XTAL2引脚,两个跨接石英晶体及两个电容就可以构成稳定的自激振荡器。
电容器通常取30pF左右。
图3.3 晶振电路图3.4 复位电路
3.2.2复位电路
往单片机的复位引脚上输入24个时钟周期以上的高电平,即执行复位操作。
按键复位是指系统在运行时,按下一个开关,就能在RST引脚产生一段时间的高电平,使系统复位,常见的按键复位电路如图3.4所示。
对12MHz晶振频率而言,电路中C取10pF,R取1KΩ。
3.3 DS1302时钟芯片电路
3.3.1 DS1302引脚图
如图3.5为DS1302的引脚图,图3.6为逻辑图。
图3.5 DS1302引脚图图3.6 DS1302逻辑图
各引脚的功能为:
Vcc1:主电源;
Vcc2:备用电源。
当Vcc2>Vcc1+0.2V时,由Vcc2向DS1302供电,当Vcc2< Vcc1时,由Vcc1向DS1302供电。
SCLK:串行时钟,输入,控制数据的输入与输出;
I/O:双向数据线;
X1、X2:晶振引脚;
CE:输入信号,在读、写数据期间,必须为高。
该引脚有两个功能:第一,CE开始控制字访问移位寄存器的控制逻辑;其次,CE提供结束单字节或多字节数据传输的方法。
3.3.2 DS1302寄存器
DS1302有关日历、时间的寄存器共有12个,其中有7个寄存器(读时81H~8DH,写时80H~8CH),存放的数据格式为BCD码形式,如图3.7所示。
图3.7 DS1302日历、时间寄存器
小时寄存器(85h、84h)的位7用于定义DS1302是运行于12小时模式还是24小时模式。
当为高时,选择12小时模式。
在12小时模式时,位5是,当为1时,表示PM。
在24小时模式时,位5是第二个10小时位。
秒寄存器(81h、80h)的位7定义为时钟暂停标志(CH)。
当该位置为1时,时钟振荡器停止,DS1302处于低功耗状态;当该位置为0时,时钟开始运行。
控制寄存器(8Fh、8Eh)的位7是写保护位(WP),其它7位均置为0。
在任何的对时钟和RAM的写操作之前,WP位必须为0。
当WP位为1时,写保护位防止对任一寄存器的写操作。
3.3.3 DS1302外围电路
图3.8 DS1302外围电路
DS1302只有3个引脚与单片机相连,分别是RST(5)、SCLK(7)和I/O (6),其2、3引脚接32768Hz晶振,如图3.8。
3.4 LCD12864显示模块
3.4.1 LCD12864引脚功能
管脚号管脚名称管脚功能
1 VSS 接地
2 VDD 电源+5V
3 V0 对比度调整
4 RS RS=H,DB0-DB7为数据
RS=L,DB0-DB7为指令
5 R/W R/W=H,E=H,读数据
R/W=L,E=H→L,写数据
6 E 使能端
7--14 DB0—DB7 8位数据口
15 PSB PSB=H,并行方式
PSB=L,串行方式
16 NC 空脚
17 RST 复位端,低电平有效
18 V out LCD驱动电压输出端
19 A 背光源正端+5
3.9 12864引脚图
图3.9所示为带中文字库LCD12864引脚图,表3.1为引脚说明。
该液晶显示模块由128*64点阵组成,可显示汉字及图形,内置8192个中文汉字(16*16点阵)、128个字符(8*16)点阵,8位并行及串行连接方式。
控制引脚说明
(a)RS、R/W四种模式
(b)E信号
说明:BF标志提供内部工作情况BF=1表示模块在进行内部操作,
此时模块不接受外部指令和数据.BF=0时,模块为准备状态,随时可
接受外部指令和数据。
3.4.2 LCD12864指令说明
(1)显示开/关设置
功能:设置屏幕显示开/关。
DB0=H,开显示;DB0=L,关显示。
(2)设置显示起始行
功能:执行该命令后,所设置的行将显示在屏幕的第一行。
显示起始行是由Z 地址计数器控制的,该命令自动将A0-A5位地址送入Z地址计数器,起始地址可以是0-63范围内任意一行。
Z地址计数器具有循环计数功能,用于显示行扫描同步,当扫描完一行后自动加一。
(3)设置列地址
功能: DDRAM 的列地址存储在Y地址计数器中,读写数据对列地址有影响,在对DDRAM进行读写操作后,Y地址自动加一。
(4)状态检测
功能:读忙信号标志位(BF)、复位标志位(RST)以及显示状态位 (ON/OFF)。
BF=H:内部正在执行操作;BF=L:空闲状态。
RST=H:正处于复位初始化状态;RST=L:正常状态。
ON/OFF=H:表示显示关闭;ON/OFF=L:表示显示开。
(5)写显示数据
功能:写数据到DDRAM,DDRAM是存储图形显示数据的,写指令执行后Y 地址计数器自动加1。
D7-D0位数据为1表示显示,数据为0表示不显示。
(6)读显示数据
功能:从DDRAM读数据,读指令执行后Y地址计数器自动加1。
3.4.3 LCD12864电路接线
单片机P2口作为指令/数据接口,右DB0-DB7输入,数据命令选择端RS
接单片机P1.2,读写控制信号端R/W接单片机P1.1,使能端E接单片机P1.0,串/并行方式选择端PSB接P1.6,复位端RST接P1.7,16、18号引脚可以不接,如图3.10所示。
图3.10 LCD12864电路图
3.5 红外遥控模块
本课题采用红外遥控功能对时钟进行校准,包括年、月、日、周、时、分秒的加减操作,还有切换显示、复位的功能。
红外遥控装置包括红外发送(即遥控器)和红外接收两部分组成。
发射机一般由指令按键、指令编码系统、调制电路、驱动电路、发射电路等几部分组成。
当按下指令键时,指令编码电路产生所需的指令编码信号,指令编码信号对载波进行调制,再由驱动电路进行功率放大后由发射电路向外发射经调制定的指令编码信号。
接收电路一般由接收电路、放大电路、调制电路、指令译码电路、驱动电路、执行电路等几部分组成。
接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。
指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制。
其大致工作过程如图3.11所示。
图3.11 红外工作原理
红外遥控器采用通用遥控器,接收器为红外接收头,如图3.11所示。
图3.12为红外接收头电路,其信号输出端接单片机引脚P3.2。
图3.11 红外遥控器和接收头图3.12 红外接收头电路
4 系统软件设计
4.1 主程序设计
本课题程序编写为C语言,编译软件为Keil5,程序分为4个模块,分别是主函数main.c、LCD12864程序LCD12864.h、时钟芯片DS1302程序DS1302.h
和红外遥控程序IRIN.h 。
程序流程图如图4.1所示。
图4.1 程序流程图
开始 12864 初始化DS1302初始化 DS1302写数据 12864显示时间 判断按键 12864显示图片
进入调时模式 判断按键 结束
4.2 LCD12864驱动程序
图4.2 12864写操作时序
根据以上写时序,可以写出写指令函数和写数据函数。
(1)写指令
void lcd_wcmd(uchar cmd) //写指令函数
{
while(lcd_busy()); //判忙
LCD_RS = 0; //RS=L
LCD_RW = 0; //RW=L
LCD_EN = 0; //EN 上升沿
_nop_();
_nop_();
P2 = cmd;
delayNOP();
LCD_EN = 1;
delayNOP();
LCD_EN = 0;
}
(2)写显示数据
void lcd_wdat(uchar dat) //写显示数据函数
{
while(lcd_busy()); //判忙
LCD_RS = 1; //RS=H
LCD_RW = 0; //RW=L
LCD_EN = 0; //EN 上升沿
P2 = dat;
delayNOP();
LCD_EN = 1;
delayNOP();
LCD_EN = 0;
}
(3)设定显示位置
void lcd_pos(uchar X,uchar Y)
{
uchar pos;
if (X==1)
{X=0x80;} //第一行首地址
else if (X==2)
{X=0x90;} //第二行首地址
else if (X==3)
{X=0x88;} //第三行首地址
else if (X==4)
{X=0x98;} //第四行首地址
pos = X+Y ;
lcd_wcmd(pos); //显示地址,行地址加列地址}
(4)图形显示
void photodisplay(uchar *bmp)
{
uchar i,j;
lcd_wcmd(0x34); //写数据时,关闭图形显示
for(i=0;i<32;i++)
{
lcd_wcmd(0x80+i); //写入垂直坐标值
lcd_wcmd(0x80); //先写入水平坐标值
for(j=0;j<16;j++) //再写入两个8位元的数据
lcd_wdat(*bmp++);
delay1(1);
}
for(i=0;i<32;i++)
{
lcd_wcmd(0x80+i);
lcd_wcmd(0x88);
for(j=0;j<16;j++)
lcd_wdat(*bmp++);
delay1(1);
}
lcd_wcmd(0x36); //写完数据,开图形显示
}
4.3 DS1302驱动程序
DS1302读写时序如图所示,图4.4为单字节读时序,图4.5为单字节写时序。
图4.4 DS1302单字节读时序
图4.5 DS1302单字节写时序
(1)DS1302写一个字节
void Write_Ds1302_Byte(unsigned char temp)
{
unsigned char i;
for (i=0;i<8;i++) //循环8次写入数据
{
SCK=0; //SCK为上升沿
IO=temp&0x01; //每次传输低字节
temp>>=1; //右移一位
SCK=1;
}
}
(2)写入DS1302
void Write_Ds1302( unsigned char address,unsigned char dat ) {
RST=0;
_nop_();
SCK=0;
_nop_();
RST=1;
_nop_(); //启动
Write_Ds1302_Byte(address); //发送地址
Write_Ds1302_Byte(dat); //发送数据
RST=0; //恢复
}
(3)读出DS1302数据
unsigned char Read_Ds1302 ( unsigned char address ) {
unsigned char i,temp=0x00;
RST=0;
_nop_();
_nop_();
SCK=0;
_nop_();
_nop_();
RST=1;
_nop_();
_nop_();
Write_Ds1302_Byte(address);
for (i=0;i<8;i++) //循环8次读取数据
{
if(IO)
temp|=0x80; //每次传输低字节
SCK=0;
temp>>=1; //右移一位
_nop_();
_nop_();
_nop_();
SCK=1;
}
RST=0;
return (temp); //返回
}
4.4 红外遥控程序
红外遥控结合单片机P3.2口外部中断INT0来执行命令,红外遥控器共21个按键,其键值分别为
45 46 47
44 40 43
07 15 09
16 19 0D
0C 18 5E
08 1C 5A
42 52 4A
void IR_IN(void) interrupt 0 // 外部中断0
{
unsigned char j,k,N=0;
EX0 = 0;
IRdelay(15);
if (IRIN==1)
{ EX0 =1;
return;
}
//确认IR信号出现
while (!IRIN) //等IR变为高电平,跳过9ms的前导低电平信号。
{IRdelay(1);}
for (j=0;j<4;j++) //收集四组数据
{
for (k=0;k<8;k++) //每组数据有8位
{
while (IRIN) //等IR 变为低电平,跳过4.5ms的前导高电平信号。
{IRdelay(1);}
while (!IRIN) //等IR 变为高电平
{IRdelay(1);}
while (IRIN) //计算IR高电平时长
{
IRdelay(1);
N++;
if (N>=50)
{
EX0=1;
return;
} //0.14ms计数过长自动离开。
} //高电平计数完毕
IRCOM[j]=IRCOM[j] >> 1; //数据最高位补“0”
if (N>=8) {IRCOM[j] = IRCOM[j] | 0x80;} //数据最高位补“1”
N=0;
}
}
5 调试结果
5.1 正常显示日期时间画面5.2 进入调整时间日期画面5.3图片显示画面
6总结
本课题研究的主要内容是以STC89C51单片机为核心、DS1302为计时芯片、LCD12864液晶为显示部分的一个电子日历,可显示年、月、日、周、时、分、秒及图形显示,并采用红外遥控技术,来实现对日期和时间的调整。
本次毕业设计的制作,从最初的方案设计,材料选择,板子焊接到最终的程序编写及调试,这一连串的过程让我从中学到了很多知识。
再一次熟悉了单片机的内部结构和工作原理,熟练运用单片机的中断系统和定时器的使用,掌握了编程软件Keil的使用,同时C语言的程序编写也得到进一步提升。
这次的毕业设计除了加深以前所学过的知识外,我还学到了以前课本中所没学到的知识。
熟悉了LCD12864的结构和工作原理。
12864 LCD带中文字库的128X64是一种具
有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块,其显示分辨率为128×64,内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。
可以显示8×4行16×16点阵的汉字。
也可完成图形显示。
了解了时钟芯片DS1302的工作原理。
它能对年、月、日、星期、时、分、秒进行计时,且有闰年补偿功能,读写方便。
同时熟悉了红外遥控的工作原理,在本课题中用作调整时间和切换显示,操作简便。
在这次的毕业设计期间,虽然遇到了很多小难题,但是经过不懈的努力,查阅书籍,上网搜索,最终使问题迎刃而解,并完成课题目标,收获还是很大的。
相信付出就一定会有收获,不管什么事情,只要认真去做了,再大的困难也是可以一步步解决的。
这次的毕业设计我做的实物,这不仅学到了知识,还锻炼了动手能力,我觉得还是蛮有意义的,为以后更好的在社会上立足打下了一定的基础。
致谢
参考文献
[1] 刘教瑜,曾勇.单片机原理及应用[M].武汉:武汉理工大学出版社,2011
[2] 张芝贤,王明贺,张正吉,邱伟华,刘筠筠.LCD显示模块并行接口驱动程序设计[J].国外电子测量技术,2009,28(10)
[3] 王海燕,杨艳华.Proteus和Keil软件在单片机实验教学中的应用[J] .实验室研究与探索,2012,31(5)
[4] 黄明强. DS1302在单片机系统中的应用[J]. 保定师范专科学校学报,2004,17(2)
[5] 冯大捷. 基于DS1302电子时钟的设计[J]. 科技视界,2012,03(3)
[6] 张亚峰. Keil C51软件使用方法[J]. 电子制作,2011,16(12)
[7] 陈红, 李玮. 基于单片机和12864LCD模块的万年历设计与仿真[J]. 中小企业管理与科技(上旬刊),2012,03(13)
[8] 潭浩强.C语言程序设计[M].北京:清华大学出版社,1991
[9] 郭天祥.新概念51单片机C语言教程[M].北京:电子工业出版社,2009
[10] 聂诗良,李磊民. 采用单片机发送并接收红外遥控信号的方法[J]. 信息技
术,2004,28(2)
[11] 刘维红,谭永超. 基于STC89C52单片机的电子时钟研究[J]. 机电产品开发与创新, 2012,25(5)
[12] 孙雪梅,范久臣. 实时时钟芯片在单片机系统中的应用[J].沈阳教育学院学
报,2005,15(2)
[13] 8-bit Microcontroller With 8K Bytes in-system programble Flash AT89S52, ATMEL, 2001
[14]. 蒋敏.单片微机万年历设计[J].职大学报,2009, 2(10)
[15] 冯育长.单片机系统设计与实例分析[M],西安:L西安电子科技大学出版社,2007
附录一
附录二。