LCD12864液晶显示电子钟设计_第1页
LCD12864液晶显示电子钟设计_第2页
LCD12864液晶显示电子钟设计_第3页
LCD12864液晶显示电子钟设计_第4页
LCD12864液晶显示电子钟设计_第5页
免费预览已结束,剩余54页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机原理及应用课程设计说明书题目LCD12864液晶显示电子钟设计系(部 )专业(班级)学指号教师起止日期课程设计任务书系(部):专业:课题名称LCD12864液晶显示电子钟设计设计一种基于AT89S52单片机的液晶显示电子时钟,要求如下:(1).能正确显示时间.日期和星期显示格式为:时间:XX小时:XX分:XX秒;日期:XX年:XX月:XX日;星期:X。设计时间能够由按键调整,误差小于1SO要求闹钟功能:时间运行到与闹钟设定时间时,闹钟响(持续响报时功能:时间运行到正点时间时,闹钟响,几点钟就响几声(每声捋续响2秒,每两声之间时间间隔1秒X液晶显示器第一行显示"数字电子钟&quo

2、t;;第二行显示"当前时间";第行显示日期和星期;第四行显示最近一个闹钟的设定时间。2、要求:完成该系统的硬件和软件的设计,在Proteus软件上仿真通过,并提交篇课程设计说明书。Si十 工作量1、汇编或C51语旨程序设计;2、程序调试;3、在Proteus上进行仿真成功,进行实验板下载调试;4、提交一份完整的课程设计说明书,包括设计原理、程序设计、程序 分析、仿真分析、调试过程,参考文献、设计总结等。工作tWJ起II日期工作容第一天课题绍,答疑,收集材料,C51介绍第二天设计方案论证,练习编与C51程序第二天第六天程序设计第六天第八天程序调试、仿真第九天第十天系统测试并编

3、写设计说明书教研室意见年 月 日系(部)主管领导意见年 月曰目录、12864液晶的工作勰5二方案耐52.1实物硬件设计52.2系统硬件轴62.2.1主芯片槪62.2.2晶振和复位模块62.2.3按钮模块72.3系统软件轴72.3.1主程序轴7三、仿鄭口分析810四、总结体会9参考文献一.12864液晶的工作原理液晶显示屏中的业态光电显示材料,利用液晶的电光效应把电信号转换成数字符、图像等可见信号。 如图1-1,液晶正常情况下,其分子排列很有秩序,显得清澈透明,旦加上直流电场后,分子的排列被 打乱,一部分液晶变的不透明,颜色加深因而能显示数字和图像。管脚一共1个CS1左半屏片选端,CS2 右半屏

4、片选端;V0液晶显示驱动电压,通过一个电位器接到VCC ; RS数据旨令选择信号,H为数据,L 为指令,也叫D/1; R/W读写选择信号,H为读,L为写,。E为LCD使能端,R/W为L时,E信号下降沿锁存传输端口。RST复位信DB7-DB0 ; R/W 为 H 时,E 为 H , DDRAM 数据读到 DB7-DB0o DB0-DB7号。-VOUT和V0为液晶显示驱动电压。12864是一种图形点阵液晶显示器,它主要由行驱动器/列驱动器及128 x 64 全点阵液晶显示器组成。可完成图形显示,也可以显示8x4个(16x16点阵)汉字。图1-1 12864LCD液晶显示屏二方案设计2.1实物硬件设

5、计单片机控制液晶显示屏系统总共可分为六个环节,分别是单片机控制系统、12864字符显示模块、 控制开关模块、晶振控制模块、复位电路模块和DS1302时钟控制模块。通过这六个模块的协调工作就可 以完成相应的液晶屏控制和显示功能。这六个模块的相互连接如图2-1:图2J硬件组成框图2.2系统硬件设计本硬件电路主要由四大模块组成:主芯片模块;晶振和复位电路模块;控制接钮模块;显示电路 模块。2.2.1主芯片模块主芯片模块即单片机模块,XTAL1 :接外部晶振和微调电容的一端。在片,它是振荡电路反相放 大器的输入端。XTAL2 :接外部晶振和微调是容的一端。RST: AT89C51的复位信号输入引脚,高

6、电平有 效。当此输入端保持两个机器周期的高电平时,就可以完成复位操作。ALE :允许地址锁存信号端。EA : 该弓I脚为低电平时则读取外部的程序代码来执行程序。PO、Pl、P2、P3: 8位并行输入输出口。每个端 口都是8位准双向口,共占32只引脚。每一条都能独立地用作输入或输出。每个端口都包括一个锁存器、 个输出驱器和输入缓冲器。作输出时,数据可以锁存;作输入时,数据可以缓冲。图如图310钿钢粥片wo羽祎祎J§ § §J 2OCDOOOOOO dd&mi&XXQi召 lu.si si瓦云耳耳耳&d d d图3-1单片机引脚图2.2.2晶振

7、和复位模块89C51芯片部有一个高增益反相放大器,用于构成振荡器。如图32 ,反相放大器的输入端为 XTAL1 ,输岀端XTAL2 ,两个跨接石英晶体及两个电容就可以构成稳走的自激振荡器。XTAL1是片振荡 器的反相放大器输入端,XTAL2则是输出端,使用外部振荡器时,夕卜部振荡信号应直接加到XTAL1 ,而 XTAL2图4-1晶振模块在振荡器运行时,有两个机器周期(24个振荡周期)以上的高电平出现在此引脚时,将使单片 机复位,只要这个脚保持高电平,51芯片便循环复位。复位后P0 - P3 口均置1引脚表现为高电平,程 序计数器和特殊功能寄存器SFR全部清雲。当复位脚由高电平变为低电平时,芯片

8、为ROM的00H处开 始运行程序。如上图5-1所示复位电路,由于复位时高电平有效,当刚接上电源的瞬间,电容C1两端相 当于短路,即相当于给RESET弓|脚一个高电平,等充电结束时(这个时间很短暂),电容相当于断开,这 时已经完成了复位动作。图5-1 复位模块2.2.3按钮模块本模块采用四个按钮进行控制,通过串行口输入输出连接,当K1按键波动一次后,方可进行年、 月、日、星期、时、分的改变,当循环满时,按下K0可实现对闹钟的改变。按键K2、K3分别实现加一 减一的操作。2.3系统软件设计2.3.1主程序设计DS13O2中谀取日寸间日寸iXJi宙菟t LCD显示初始化调用延时图7-1主程序流程图指

9、针指向数组苜地址写汉子程序清屏功能设定开显示指令关显示指令图& LCD显示程序和初始化子程序流程图三.仿真和分析将程序下载到单片机开发板上,LCD12864显示如下图,第一行为汉字”数字电子钟”,第二行为时 分秒,第三行为年月日以及星期,第四行为闹钟,通过按键可实现时间的调整,也可实现整点报时和闹钟。 符合设计要求。图9J实物仿真图程序:#in clude<reg52.h>#include<intrins.h>#in clude<stdlib.h>#define uchar unsigned char#define uint unsigned int

10、sbit rs二P"0;/12864引脚走义 sbit rw=PlAl;sbit en=PlA2;sbit PSB=P1A3;sbit beep=P3人4;/蜂鸣器引脚走义sbit kl=P3人5;/按键走义sbit k2=P3A6;sbit k3=P3A7;sbit kO=POAO;uint tkkk;uchar shi/fen/miao/nian=13/yuerrirzhourshiO/fenO/miaoO;uchar code disl=0xca,0xfd,"字电子钟;/显示字组uchar code dis2="00时00分00秒,'uchar co

11、de dis3=M00年00月00日 1H;uchar code dis4="闹钟00时00分00秒'void delayms(uint xms)/时 xms 函数uchar ij;for(i=xms;i>0;i)void warn(ucharxn)/ 嘟"xn 次函数uint nn;for(nn=0;nn<xn;nn+)uint n;for(n=2000;n>0;n)beep=l;delayms(l); beep=O;delayms(2);for(n=1000;n>0;n)beep=l;delayms(3); void warn3s()/3

12、s 报警函数uint n;for(n=3000;n>0;n)beep=O;delayms(2);beep=l;delayms(l);void writejuchar )/12864写指令函数rs=O;rw=0;en=0;P2=;delayms(5);en=l;delayms(5);en=O;void write_data(uchar date)/12864irw=0;en=0;P2=date; delayms(5); en=1; delayms(5);en=0;void lcd_pos(uchar X,uchar Y)/12864显示位置函数 uchar pos;if(X=O)X=0x8

13、0;if(X=l)X=0x90;if(X=2)X=0x88;if(X=3)X=0x98;pos=X+Y;writejpos);void write-sfm(int add.uint date)/时钟数值函数uchar shirge;shi=date/10;ge=date%10;lcd_pos(l,0+add);write_data(0x30+shi);wr itedata (0x30+ge);void write_sfml(int addl.uint datel)/年月日数值函数uchar shi,ge;shi=datel/10;ge=datel%10;lcd_pos(2/0+addl);wr

14、ite_data(0x30+shi);write_data (0x30+ge);void write-sfm2(int add2zuint date2)/闹钟数值函数uchar shirge;shi=date2/10;+兰 ,(0去)ZM(oqsH 【(s)SUJAe- p iwiionno參®担 E靈宰、()ueo< >1 po>M 6+omxo)elep七m_(zs+omxo)elep一匸 m?ppe+oco)sodlp:>_Ol%02ep26TRO=O;write JOxOf); lcd_pos(3,2);if(kk=2)lcd_pos(3/4);if(

15、kk=3)lcd_pos(3/6);if(kk=4) kk=O;TRO=1; write_(OxOc);if(kl=O)调试按键操作 delayms(5);if(kl=O)k+;while(!kl);if(k=l)TRO=O;write_(OxOf);Icd_pos(l,4);if(k=2)lcd_pos(l,2);if(k=3)lcd_pos(l,0);if(k=4)lcd_pos(2,4);if(k=5)Icd_pos(2,2);if(k=6)lcd_pos(2,0);if(k=7)lcd_pos(2,7);if(k=8)k=0;write_(OxOc);TRO=1;if(kro)if(l

16、<2xo)、=+l=de-ayms(5)j if(k2u"0)whi-e (一 k2)jif(kHHl)宀miao+;if(miaoHH60) miaouoj writelsfm(4miao);lcd_pos(l/4);/write_sfm(4,miao);if(k=2)fen+;if(fen=60)fen=O;wite_sfm fe n);lcd_pos(l/2);/write-sfm(2/fen);if(k=3)shi+;if(shi=24)shi=O;write_sfm(O,shi); lcd_pos(lzO);/write_sfm(O,shi);if(k=4)ri+;i

17、f(ri=32)ri=l;write_sfml(4ji); lcd_pos(2/4);/write_sfml(4ji); if(k=5) yue+;if(yue=13)yue=l;write-sfml(2/yue); lcd_pos(2/2);/write-sfml(2/yue);if(k=6)n ian+;if(nian=50)nian=O;writesfmlnian); lcd_pos(2/0);/writesfm l(Ofnian);if(k=7)zhou + +;if(zhou =8)zhou=0; write_sfml zhou);lcd_pos(2z7);/writesfml zh

18、ou);if(k3=O)按键操作"delayms(5);if(k3=O) while(!k3);if(k=l)miao;if(miao=-l)miao=59;write-sfm(4/miao); lcd_pos(l/4);/write-sfm(4/miao);if(k=2)fen;if(fen=-l)fen=59;writesfm(2/fe n);Icd_pos(l,2);/write_sfm(2,fen);if(k=3)shi;if(shi=-l)shi=23;write_sfm(O,shi); lcd_pos(l,0);/write_sfm(O,shi);if(k=4)ri-;r

19、i=31;write_sfml(4ji);lcd_pos(2z4);/write_sfml(4ji);if(k=5)yue-sif(yue=yue=12;write_sfml(2/yue); lcd_pos(2/2);/write-sfml(2/yue);if(k=6)nian;jf(n ian=-l)nian=50;write_sfml(O,nian); lcd_pos(2z0);/writesfm l(Ofnian);if(k=7)zhou;if(zhou=-l)zhou=7;write_sfml(7,zhou); lcd_pos(2/7);/write_sfml zhou);if(k=O

20、)if(k2=0)delayms(5);if(k2=0)while(!k2);if(kk=3)miaoO+;miao0=0;write-sfm2(6/miao0);lcd_pos(3/6);/wr itesf m2 (6# m i aoO);if(kk=2)fen 0+;if(fen0=60) fenO=O;write_sfm2(4en0); lcd_pos(3,4);/write-sfm2(4/fen0);if(kk=l)shiO+;if(shi0=24)shiO=O;write-sfm2(2,shi0);lcd_pos(3/2);/write-sfm2(2,shi0);if(k3=0)de

21、layms(5);if(k3=0)while(!k3);if(kk=3)miaoO;if(miaoO=-l)miao0=59;write-sfm2(6/miao0); lcd_pos(3/6);/wr itesf m2 (6f m i aoO); if(kk=2)fenO;if(fenO=-l)fen0=59;write_sfm2(4ffen0); lcd_pos(3/4);/write-sfm2(4ffen0);if(kk=l)shiO;if(shiO=-l)shiO=23;write_sfm2(2,shi0);lcd_pos(3,2);/write_sfm2(2,shi0);void in

22、it()初始化函数(12864初始化,定时器初始化)PSB=1;write_(0x30);delayms(5);write_(OxOc);delayms(5);write JOxOl);delayms(5);THO=(65535-5OOOO)/256;TL0=(65535-50000)%256;TMOD=0x01;ETO=1;EA=1;TRO=1;de-ayms(lo)inis _cdpos(0、2<、MHE印911To- whi_e(dislmIF.o) writeldata(dislsjTo-Wh=e(dis2mll.o)Writeldata(dis2s;+一 二二寸S_p)2ep&

23、#163;M (oxis寸S 一 P)壬MO丄版®lh宵MwogsodP。一亠+一 aes 一 P)£ep£M (o''=衬S 一 P)=JZMO丄l&slhymMwoeisod's-oseueM巴s烛趺富甘區,富徑 狂蒯、(TKl6a630zSH 丄JZSKgu I7HU 呀dalluHHOe 一 iu 必卫0:u 赵必 OHHOe 一 iu 汪(osrnuPM) 垢汞曲府_、(匸"0&1卫込0召=丄£卫必0UIrHU赵必oo.2EHHOe 一 E)七(Mzs)ueAA)垢罪富胆肛、删、込卫O:u2xx

24、oxoe至)七oueosA 亠)eZMif(miao=60)while(l);void timer() interrupt 1走时器函数TH0=15535/256;TLO=15535%256;t+;50ms 计数一次if(t=20)t=0;miao+;miao=0;fen+;if(fen=60)fen=O;shi+;if(shi=24)shi=O;zhou + +;if(zhou=8)zhou=l;ri+;if(yue=l|yue=3|yue=5|yue=7|yue=8|yue=10|yue=12)if(ri=32)ri=l;yue+;if(yue=13)yue=l;nian+;)if(yue

25、=4|yue=6|yue=9|yue=ll)if(ri=31)ri=l; yue+;if(yue=13)yue=l; n ian+;)if(yue=2)if(nian%4)=0)ri=l;if(ri=30)yue+;if(yue=13) yue=l; nian+;)if(nian%4)!=0)if(ri=29)ri=l;yue+;if(yue=13)yue=l;nian+;writesfml(Oznian);writesfml(2/yue);write_sfml(7,zhou);write_sfml(4ji);wite_sfm(O,shi);write_sfm(2/fen); wite_sfm

26、(4,miao);四、总结体会通过这为期两个星期的课程设计,我从中认识到了自己很多方面的不足。在第一个星期的课程设计 中,是通过proteus仿真来实现要求中的各种功能。由于自己课余时间没有对单片机相关的知识逬行深入 了解,所以在开始做设计时,无从下手,不知道该怎么布置仿真图,更不知道怎么通过写程序来实现课题 要求。不过有的课题可以参考课本上的程序,例如彩灯中断,就是在课本上流水灯的基础上加入一个中断 程序,不过中断程序加在何处自己还是有一点疑惑,通过翻阅课本上有关中断方面的知识后,了解了中断 系统的结构及工作原理,再加入了中断程序后,程序还是有一点小问题,在请教了同学之后,找到了问题 所在,修改程序以后实现了要求。而串转并,在以前的实验中做过类似的,所以整体比较顺利用彩灯 计数一开始不太明白这个要求的意思,请教了同学才明白要求的意思。根据二进制的计算转化成彩灯的亮 灭,虽然程序很短,但我心里还是有很大的成就感。在做方波的输出时,在写程序之前参考了一下同学的 程序,搞懂了原理,才完成了设计。在这之后,有关于

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论