LCD显示的定时闹钟_第1页
LCD显示的定时闹钟_第2页
LCD显示的定时闹钟_第3页
LCD显示的定时闹钟_第4页
LCD显示的定时闹钟_第5页
已阅读5页,还剩38页未读 继续免费阅读

下载本文档

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

文档简介

1、西南科技大学口技术i蝌设棚告课题名称LCD显示的定时闹钟姓 名刘XX学 号2011XXXX学 院制造科学及工程学院班 级机械11XX指导教师张XX2014 年 06 月 12 B3 / 36目录1.设计要求 12.设计方案 12. 1原理02. 2系统总框图13. 3原理及工作过程说明13.元器件介绍14. 1AT89C51 15. 2 1602LCD液晶显示器43. 3其他重要元件54,软件设计73.1 系统流程图74. 2源代码105.系统仿真205.1 系统总图205.2 设定时间时LCD显示205.3 设 定 闹 钟 时 LCD 显示215. 4显示闹钟时LCD显示215. 5待机时L

2、CD显示216. 实物图227. 实验总结及心得体会308. 参考资料.241 .设计要求使用AT89c51单片机结合字符型LCD显示器设计一个简易的定时闹钟 LCD时钟,若LCD选择有背光显示的模块,在夜晚或黑暗的场合中也可使 用。定时闹钟的基本功能如下: 显示格式为“时时:分分”。 由LED闪动来做秒计数表示。 一旦时间到则发出声响,同时继电器启动,可以扩充控制家电开启 和关闭。 程序执行后工作指示灯LED闪动,表示程序开始执行,LCD显示“00: 00”,按下操作键K1K4动作如下:(1) K1一设置现在的时间。(2) K2一显示闹钟设置的时间。(3) K3一设置闹铃的时间。(4) K4

3、闹铃0N/0FF的状态设置,设置为0N时连续三次发出 “哗”的一声,设置为OFF发出“哗”的一声。设置当前时间或闹铃时间如下。(1) K1一时调整。(2) K2一分调整。(3) K3一设置完成。(4) K4闹铃时间到时,发出一阵声响,按下本键可以停止声响。本项目的难点在于4个按键每个都具有两个功能,以最终实现菜单化 的输入功能。采用通过逐层嵌套的循环扫描,实现嵌套式的键盘输入。2.设计方案2.1 原理本LCD定时闹钟,是以单片机及外围接口电路为核心硬件,辅以其他 外围硬件电路,用汇编语言设计的程序来实现的。根据C51单片机的外围 接口特点扩展相应的硬件电路,然后根据单片机的指令设计出数字钟相应

4、 的软件,再利用软件执行一定的程序来实现数字钟的功能。由于采用集成 芯片性的单片机来制作电子钟,这样设计制作简单而且功能多、精确度高, 也可方便扩充其他功能,实现也十分简单。本设计是利用AT89c51单片机 为主控芯片,由LCD、晶振、电阻、电容、发光二极管、开关、喇叭等元 件组成硬件电路,通过编写软件程序来实现和控制的数字定时闹钟2. 2系统总框图3. 3原理及工作过程说明(1)定时闹钟的基本功能如下:(a)启动仿真软件,使用LCD液晶显示器来显示现在的时间。(b)程序执行之后显示“00:00",并且LED闪烁,表示开始已经计时。(c)由LED闪动来做秒计数表示。(d)当设定的闹钟

5、时间到达后,闹铃开始发出声音。并且继电潜导通。 (2)按键功能如下:按键K1设置现在的时间和时调整;按键K2显示闹钟设置的时间和分 调整;按键K3设置闹铃的时间和设置完成;按键K4闹铃0N/0FF的状态 设置,设置为0N时连续三次发出“哗”的一声,设置为OFF发出“哗” 的一声和闹钟时间到时,发出一阵声响,按下本键可以停止声响。(3)调整计时器时间如下:按下K1键,然后按K1调整小时,K2调整分钟,按下K3表示时间设 置完成。(4)调整闹钟时间设置如下:按下K3键,然后按K1调整小时,K2调整分钟,按下K3表示闹钟设 置完成。4. 元器件介绍4.1 AT89C51本设计的核心硬件就是89C51

6、芯片,AT89c51是一种带4K字节闪烁可 编程可擦除只读存储器(FPEROMFlash Programmable and Erasable ReadOnly Memory)的低电压,高性能CM0S8位微处理器,俗称单片机。该器 件采用ATMEL高密度非易失存储器制造技术制造,及工业标准的MCS-51 指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单 个芯片中,ATMEL的AT89c51是一种高效微控制器,为很多嵌入式控制系 统提供了一种灵活性高且价廉的方案。4.1.1 引脚图,八 1 1PD VAD1PD 2WD2XTAL2PD 3WD3P04AD4PD.5MD5PD.6f

7、AD6RSTPD.7/AD7R2.0/A8P2.1/A9P2.2/A10PSENP2.3W11ALEP2.4/A12EAP2.5/A13P2.0/A14P2.7/A15P1.0P3.07RXDP1 1P3.irn<DP1 2P3 2/lNTOP1 3P3 3/1NT1P14P3/I/T0P1.5P3.57T1P1.6P3.6/WRP17P3.7/RDUN1 2 3 4 5-6-7-8-39393736353。3332212223252627281011124.1.2 引脚功能介绍P0 口: P0 口为一个8位漏级开路双向I/O 口,每脚可吸收8TTL门电 流。当P1 口的管脚第一次写1时

8、,被定义为高阻输入。P0能够用于外部 程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时, P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部 必须被拉高。P1 口: P1 口是一个内部提供上拉电阻的8位双向I/O 口,P1 口缓冲 器能接收输出4TTL门电流。P1 口管脚写入1后,被内部上拉为高,可用 作输入,P1 口被外部下拉为低电平时,将输出电流,这是由于内部上拉的 缘故。在FLASH编程和校验时,P1 口作为第八位地址接收。P2 口: P2 口为一个内部上拉电阻的8位双向I/O 口,P2 口缓冲器可 接收,输出4个TTL门电流,当P2 口被写“

9、1”时,其管脚被内部上拉电 1 / 36阻拉高,且作为输入。并因此作为输入时,P2 口的管脚被外部拉低,将输 出电流。这是由于内部上拉的缘故。当P2 口用于外部程序存储器或16位 地址外部数据存储器进行存取时,P2 口输出地址的高八位。在给出地址“1” 时,它利用内部上拉优势,当对外部八位地址数据存储潜进行读写时,P2 口输出其特殊功能寄存器的内容。P2 口在FLASH编程和校验时接收高八位 地址信号和控制信号。P3 口: P3 口管脚是8个带内部上拉电阻的双向I/O 口,可接收输出 4个TTL门电流。当P3 口写入“1”后,它们被内部上拉为高电平,并用 作输入。作为输入,由于外部下拉为低电平

10、,P3 口将输出电流(ILL)这 是由于上拉的缘故。P3 口也可作为AT89c51的一些特殊功能口,如下所示:P3 口管脚备选功能P3. 0 RXD (串行输入口)P3. 1 TXD (串行输出口)P3. 2 /INTO (外部中断0)P3. 3 /INT1 (外部中断1)P3.4 T0 (记时器。外部输入)P3. 5 T1 (记时器1外部输入)P3.6 /WR (外部数据存储器写选通)P3.7 /RD (外部数据存储器读选通)P3 口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。保持RST脚两个机器周期以上的高电平时间即可复 位。ALE/PROG: ALE为CPU访问外部程序存

11、储器或外部数据存储器提供 一个地址锁存信号,将低8位地址锁存在片外的地址锁存器中。PROG为该 引脚第二功能,在对片内FLASH存储器编程时,此引脚作为编程脉冲输入 端。PSEN:片外程序存储器的读选通信号。低电平有效。EA/VPP:当EA为低电平时,只读取外部的程序存储器中的内容;当 EA为高电平时,在PC值不超过OFFFH时,单片机读片内程序存储器的程 序,但PC超过时,自动转向片外60KB程序存储器中的程序。XTAL1:片内振荡器反向放大器和时钟发生器电路的输入端。XTAL2:片内振荡器反向放大器的输出端。4.2 1602LCD液晶显示器 3. 2.1引脚图UJ II UJ>能至山

12、8qS8S2S&3. 2.2引脚功能编号符号引脚说明编号符号引脚说明1VSS电野力9D2Date I/O2VDD电源正极10D3Date I/O3VL液晶显示偏压信号11D4Date I/O4RS数据/命令选择端(WL)12D5Date I/O5R/W读/写选择端(H/L)13D6Date I/O6二使嵬信号b14D7Date I/O7DODate I/O15BLA背光海正极8D1Date I/O16BLK背光源负极第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示潜对比度调整端,接正电源时对比度最弱,接地时 对比度最高,对比度过高时会产生“鬼影”,使用时可以通

13、过一个10K的 电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令 寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。 第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行 命令。第714脚:DOD7,数据总线,及单片机的数据总线相连,三态。第15脚:背光板电源,通常+5V。第16脚:背光板电源地。3. 3其他重要元件3. 3.1独立式键盘的接口电路在单片机应用系统中,有时只需要几个简单的按键向系统输入信息。 这时,可将每个按键接在一根I/O接口线上,这种方式的连接称为独立式 键盘。每个独立式按键单独占有一根I/O接口线,

14、每根I/O接口线的工作 状态不 会影响到其他I/O接口线。这种按键接口电路配置灵活,硬件结 构简单,但每个按键必须占用一根I/O接口线,I/O接口线浪费较大。故 只在按键数量不多时采用这种按键电路。在此电路中,按键输入都采用低 电平有效。上拉电阻保证了按键断开时,I/O接口线有确定的高电平。当 I/O接口内部有上拉电阻时,外电路可以不配置上拉电阻。电磁继电器一般由铁芯、线圈、衔铁、触点赞片等组成的。只要在线 圈两端加上一定的电压,线圈中就会流过一定的电流,从而产生电磁效应, 衔铁就会在电磁力吸引的作用下克服返回弹筮的拉力吸向铁芯,从而带动 衔铁的动触点及静触点(常开触点)吸合。当线圈断电后,电

15、磁的吸力也 随之消失,衔铁就会在弹簧的反作用力返回原来的位置,使动触点及原来 的静触点(常闭触点)释放。这样吸合、释放,从而达到了在电路中的导 通、切断的目的。具有动作快、工作稳定、使用寿命长、体积小等优点。3. 3. 2 PNP三极管PNP型三极管由2块P型半导体中间夹着1块N型半导体所组成,电流从 发射极E流入的三极管.PNP型三极管发射极电位最高,集电极电位最 低,UBE<0.11 / 364.软件设计4. 1系统流程图铃声关4. 2源代码ttinclude <reg52. h>ftdefine uint unsigned intftdefine uchar unsig

16、ned charuchar code tabi el ="NOW TIME”;uchar code table2 口二SHOW ALRAM;uchar code table3口二SET TIME”;uchar code table4口二SET ALRAM”;sbit lcden=P3*4;sbit Icdrs=P35;sbit lcdrw=P3 6;sbit ki二pro;sbit K2=P1"1;sbit K3=Pr2;sbit K4=Pr3;sbit be=P2 5;sbit dula=P2-6;sbit wala=P2*7;sbit jdq=P2 3;sbit LED

17、 =P2*4;uchar flag, num, count, klnum, k2num, k3num, k4num;char miao, shi, fen, ashi, afen;延时函数void delay(uint z)(uint x, y;for(x=z;x>0;x一)for (yz:100;y>0;y-);)蜂鸣器子程序void di ()be=0;delay (100);be=l;)写命令函数void write_com(uchar com)(lcdrs=0;lcdrw=0;lcden=0;P0=com;delay(5);lcden=l;delay (5);Icden=0

18、;写数据函数void write_date(uchar date)lcdrs=l;lcdrw=O;lcden=O;PO=date;delay(5);lcden=l;delay (5);lcden=O;)写时间函数void write_sfm(uchar add,uchar date)(uchar dateshi, datege;dateshi=date/10;datege=date%10;write_com(0x80+0x40+add);write_date(0x30+dateshi);write_date(0x30+datege);显示时间函数void Timelnit()write com

19、(0x01);write_com(0x80+2);for(num=0;num<8;num+)(write_date(tablelnum);delay(5);)write_com(0x80+0x40+4);write_date (':;delay (5);write_sfm(2,shi);wri te_com(0x80+0x40+2);write_sfm(5, fen);write_com(0x80+0x40+5);)显示闹钟函数void DisplayAlarmTime()(wr i t e_c om(0x01);write_com(0x80+2);for(num=0;num&l

20、t;10;num+)(write_date(table2num);delay (5);wr i t e_com(0x80+0x40+4);write_date (':;delay (5);write_sfm(2, ashi);wri te_com(0x80+0x40+2);write_sfm(5, afen);wri te_com(0x80+0x40+5);)设置当前时间void SetNowTime()(write_com(0x80+2);for(num=0;num<8;num+)(write_date(table3num);delay (5);)wri te_com(0x80

21、+0x40+4);write_date (':;delay (5);write_sfm(2, shi);write_com(0x80+0x40+2);write_sfm(5, fen);write_com(0x80+0x40+5);if(Kl=0)(delay (5);if(Kl=0)(while (!K1);diO;shi+;if(shi=24)shi=0;write_sfm(2, shi);write_com(0x80+0x40+2);)if(K2=0)(delay (5);if(K2=0)while(!K2);diO;fen+;if(fen=60)fen=0;write_sfm(

22、5, fen);write_com(0x80+0x40+5);)if(K3=0)(delay (5);if(K3=0)(while (!K3);diO;klnum=0;TRO=1;Timelnit ();)设置闹钟时间void SetAlarmTime()(write_com(0x80+2);for(num=0;num<9;num+)(write_date(table4num);delay (5);)wri te_com(0x80+0x40+4);write_date (':;delay (5);write_sfm(2, ashi);write_com(0x80+0x40+2);

23、write_sfm(5, afen);wri te_com(0x80+0x40+5);if(Kl=0)(delay (5);if (KUO)while(!Kl);diO;ashi+;if(ashi=24)ashi=0;write_sfm(2, ashi);wri te_com(0x80+0x40+2);)if(K2=0)(delay (5);if(K2=0)(while (!K2);diO;afen+;if(afen=60)afen=0;write_sfm(5, afen);wri te_com(0x80+0x40+5);)if(K3=0)(delay (5);if(K3=0)(while (

24、!K3);diO;k3num=0;EA=1;flag=l;Timelnit ();)键盘扫描函数void keyscan ()(if(Kl=0)(delay (5);if(Kl=0)TRO=O;while(!K1);diO; klnum+;)if(klnum!=0)(SetNowTime ();)else(if(K2=0)(delay (5);if(K2=0)(while(!K2);di();k2num+;)if(k2num=l)(DisplayAlarmTime();k2num=2;)if(k2num=3)(k2num=0;EA=1;Timelnit ();)else(if(K3=0)del

25、ay (5);if(K3=0)(while(!K3);diO; k3num+;23 / 36if(K4=0)if (kSnuml)(write_com(0x80+0x40+2);write_date ('');delay (100);wr i te_com(0x80+0x40+3);write-date ('');delay(100);write_com(0x80+0x40+5);write_date ('');delay (100);wr i t e_com(0x80+0x40+6);write_date ('');SetAla

26、rmTime ();)else(if(K4=0)delay (5);while(!K4);di ();k4num+;)if(k4num=l)(diO;k4num=2;flag=0;)if(k4num=3)(k4num=0;diO;delay(500);diO;delay (500);diO; flag=l;25 / 36)if(flag=l&&shi=ashi&&fen=afen)(jdq=O;be=be;delay (500);)i£(K4=0&&flag=l)(delay (5);if(K4=0&&flag=l)(w

27、hile(!K4);diO;flag=0;k4num=0;)27 / 36/lcdl602初始化void init ()Icden=O;shi=OO;fen=00;miao=O;ashi=12;afen=00;count=0;klnum=O;dula=0;wala=0;/write com(0x38);设置16X2显示,5X7点阵,8位数据接口write_com(0x08);write com(0x01);显示清0,数据指针清0write com(0x06);写一个字符后地址指针加1write com(OxOc);设置开显示,不显示光标Timelnit ();TMOD=OxOl;TH0=0x4

28、c;TL0=0x00;29 / 36EA=1;ETO=1;TRO=1;主函数void main ()(init();write_com(0x80);while (1)(keyscan ();)中断服务子程序void timerO() interrupt 1(TH0=0x4c;TL0=0x00;count+;LED=O;if(count=20)35 / 36count=0;miao+;LED二、LED;if(miao=60)(miao=0;fen+;if(fen=60)(fen=O;shi+;if(shi=24)(shi=O;write_sfm(2, shi);)write_sfm(5, fen

29、);)5.系统仿真5. 1系统总图cTEzT A=VODTE>OARL1A AM<TXL1wc rysttxlTCXTiR'1D1/K4:r 5N5:TE<TLCD1IM11OL<TEXT>cTE<T>PCJW凡。口 pn.VADI PDADZ ron人on PO.WAD* PDSADS PO*AOC PD.TWD?VPDK2K3ALE1.?KV28CSX cTE5RNOW Tint00: 00g9M陆K-4R71 14,£r1, R5 I 5-CZZlKT. R7二5-=k?<TE>OP21yAz PZ.VA9 rZ2fA1Q P2A11 P2.4/A12 P7AA13 P2J&A1* rz.KAisP3IVRXD P3.1/TX& P

温馨提示

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

评论

0/150

提交评论