根据51单片机的电子时钟的设计.doc

上传人:scccc 文档编号:12351920 上传时间:2021-12-03 格式:DOC 页数:31 大小:738.50KB
返回 下载 相关 举报
根据51单片机的电子时钟的设计.doc_第1页
第1页 / 共31页
根据51单片机的电子时钟的设计.doc_第2页
第2页 / 共31页
根据51单片机的电子时钟的设计.doc_第3页
第3页 / 共31页
根据51单片机的电子时钟的设计.doc_第4页
第4页 / 共31页
根据51单片机的电子时钟的设计.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《根据51单片机的电子时钟的设计.doc》由会员分享,可在线阅读,更多相关《根据51单片机的电子时钟的设计.doc(31页珍藏版)》请在三一文库上搜索。

1、河南理工大学万方科技学院课程设计报告2015 2016学年第 一 学期课程名称单片机原理及应用设计题目电子钟设计学生姓名刘轶男学 号1516353011专业班级 15级计算机科学与技术专升本指导教师苏百顺2015年 12 月 25 日1 前言22 总体方案设计23 硬件电路设计34 软件设计55 调试分析及说明66 结论8参考文献 8课设体会 9附录1 电路原理10附录2 程序清单11摘要传统的数字电子时钟采用了较多的分立元器件, 不仅占用了很大的空间而且 利用率也比很低,随着系统设计复杂度的不断提高,用传统时钟系统设计方法很 难满足设计需求。单片机是集CPU、RAM、ROM、定时器/计数器和

2、多种接口于一体的微控 制器。它体积小、成本低、功能强,广泛应用于智能产品和工业自动化上。而 51 系列的单片机是各单片机中最为典型和最有代表性的一种。,本次设计提出了系 统总体设计方案,并设计了各部分硬件模块和软件流程,在用C语言设计了具体软件程序后,将各个模块完全编译通过过后,结果证明了该设计系统的可行性。 该设计给出了以AT89C2051为核心,利用单片机的运算和控制功能,并采用系 统化LED显示模块实时显示数字的设计方案, 适当地解决了实际生产和日常生活 中对计时高精确度的要求,因此该设计在现代社会中具有广泛的应用性。关键字:AT89C2051,C语言程序,电子钟1 刖言利用51单片机开

3、发电子时钟,实现时间显示、调整和闹铃功能。具体要求如下:(1)按以上要求制定设计方案,并绘制出系统工作框图;(2)按要求设计部分外围电路,并与单片机仿真器、单片机实验箱、电源等正确可靠的连接,给出电路原理图;(3)用仿真器及单片机实验箱进行程序设计与调试;(4)利用键盘输入调整秒、分和小时时刻,数码管显示时间;(5)实现闹钟功能,在设定的时间给出声音提示。2总体方案设计该电子时钟由89C51,BUTTON,1602 LCD液晶屏等构成,采用晶振电 路作为驱动电路,利用单片机内部定时计数器 0通过软件扩展产生的一秒定时, 达到时分秒的计时,六十秒为一分钟,六十分钟为一小时,满二十四小时为一天。

4、闹钟和时钟的时分秒的调节是由一个按键控制, 而另外一个按键控制时钟和闹钟AT朋d单片 机屮詁诵I钟电胳独立按健输 入电路“图1系统结构框图该电子时钟由STC89C51 , BUTTON , 1602 LCD液晶屏等构成,采用晶振电路作为驱动电路,晶振电路的晶振频率为12MHZ,使用的定时器/计数器工作方式0,通过软件扩展产生的一秒定时,达到时分秒的计时,60秒为一分钟,60分钟为一小时,24小时为一天,又重00:00:00开始计时。没有按键按键按 下时,时钟正常运行,当按下调节时钟按键K1,就会关闭时钟,当按下闹钟按键K3时时钟就会进入设置时间界面,但是时钟不会停止工作,按K2键,就可以对时钟

5、和闹钟要设置的时间进行调整。3硬件电路设计(1) 时钟电路设计单片机利用外部12MHZ晶振构成振荡电路作为时钟源,时钟电路的原理如 下图。01|ftq .1IU130p用>XTAL11LoX1i州J M18C耳1IgITiOT图2 时钟电路图(2) 独立按键输入电路按键处理设置为:当有没键按下时,时钟正常运行;当按一次K1,时钟停止走动,按K2对秒进行调整;当K1按2次时,按K2对分进行调整;当K1 按下3次时,按K2对小时进行调整,当按下4次K1时,校时完毕,时钟按设 定的时间进行正常走时。当按1次K3进入闹钟设置界面,时钟继续进行走时, 按K2对秒进行设置;当按2次K3,按K2对分进

6、行设置;当按3次K3,按K2 对秒进行设置;当按下4次K3时,闹钟设置完毕进入时钟显示界面。电路图如下图图3独立按键电路(3) 单片机系统AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。外形及引脚排列如下图U1MCTAL1PO 1S P0 2/AO2XTAL?PQi3/AD3 FQ4炖 4 POS/ADS POG/AJDGRsrPOT/Atu'PZ.DJAB.P2.1fA9P2.2/M DPSFUP?411ALEP2

7、A/M 2tAP2S/A13P2.6/A14FZJ/A15noP11P31iT>DP12pa.2raPI 3pajjirriP14P3.4/TOPI 5FJ.WT1P18P3.6/WRP1.7P37.I=DG6图4单片机系统图(4) LCD液晶显示LCD1602采用标准的16脚接口,第1脚:VSS为电源地第2脚:VDD 接5V电源正极;第3脚:V0为液晶显示器对比度调整端,接正电源时对比度 最弱,接地电源时对比度最高;第 4脚:RS为寄存器选择,高电平1时选择数 据寄存器、低电平0时选择指令寄存器;第5脚:RW为读写信号线,高电平 时进行读操作,低电平(0)时进行写操作;第6脚:E(或

8、EN)端为使能(enable) 端。第714脚:D0D7为8位双向数据端;第1516脚:空脚或背灯电 源。电路如下图图5 LCD液晶显示图4软件设计本系统的软件系统主要可分为主程序、定时计数中断程序、时间调整程序、延时程序四大模块。系统的流程图如下图THO 和 TLDSLA衽蓝设计思路:本系统主要可分为主程序、定时计数中断程序、时间调整程序、延时程序和 LCD液晶驱动程序。定时中断程序是利用单片机内部定时器 0实现1秒的定时, 然后利用软件延时实现分小时,时间调整程序是利用单片机的内部存贮器,把调整好的时间写到显示时间的存贮单元,然后启动定时器开始计时并显示,延时程 序是利用软件实现延时达到去

9、抖的目的。 液晶启动程序是为了把单片机的数据送 到显示器的同时让显示器的第 6脚使能断的电平实现由1到0的跳变,使显示 器执行显示的命令。主程序就是利用这些子程序中断程序实现显示、定时、闹钟 等功能5调试分析及说明(1)时钟正常运行调试仿真图LC&1l uni阻LCD1LiumiikTinE2 00s 00101nnEs00;0t ms13 GM图6 正常运行仿真图(2)闹钟调试仿真图图7对闹钟时间进行设置图8设置好的闹钟时间图9闹钟响铃(3)时间调整仿真lcdiriTtiLl; LZS 16I iS El."汕理蛉Am图10对时分秒的调整6 结论本次电子时钟的设计基本完成:

10、当没有键按下时,时钟正长运行;当按一次K1,时钟停止走动,按K2对秒进行调整;当K1按2次时,按K2对分进行调 整;当K1按下3次时,按K2对分进行调整,当按下4次K1时,校时完毕, 时钟按设定的时间进行正常走时。当按 1次K3进入闹钟设置界面,时钟继续进 行走时,按K2对秒进行设置;当按2次K3,按K2对分进行设置;当按3次K3,按K2对秒进行设置;当按下4次K3时,闹钟设置完毕进入时钟显示界面参考文献1、单片机原理及应用李建忠 编 西安电子科技大学出版社。2、 单片微型计算机原理与接口技术高峰 编 电子工业出版社。3、单片机应用新技术教程邹逢兴 编 高等教育出版社。4、16位微型计算机原理

11、接口及其应用 朱宇光 编 电子工业出版社5、 微型计算机原理与接口技术吴秀清 编 中国科学技术出版社。6、微型计算机接口技术 邓亚平 编 清华大学出版社。7、单片机原理及及应用 王迎旭 编 机械工业出版社。课设体会课程设计到目前为止可以说是告一段落了, 我也顺利的完成了自己的课题简 易电子时钟的设计,由于自己一心准备考研在这次课程设计上除了那些必要的时 间其余也么有花太多的时间,本想改进的第三个跑表功能由于在程序上出了点问 题就没花时间去做了,所以这次设计还不算很完美刚开始被拿到这个课题的,感觉挺迷茫的,当时就只知道软件编程要用到定 时器,自己也就在这方面懂一点,其余的关于硬件电路,液晶显示电

12、路的驱动的 什么都不知道,后来回来之后就看了一下 51单片机课程设计那本书,在网上找 了一些资料对硬件电路的设计有了一定的了解。 在大脑里面有了一个大致的思路 了,于是就把仿真软件装好开始了我的课设。本次课设让我对单片机有了更深入的认识,现代社会中几乎处处都有单片机 的影子,电子产品离不开它。课设提高了我的单片机实际运用能力, 也发现了自 己以前学习的不扎实,对问题不求甚解。现在才知道“书到用时方少”啊!学习 还是得扎实。本次课设能顺利完成,甚是感谢指导老师的帮助。附录1电路原理gmp m 5 洛 3ZN 口1¥n 1U/i-Xd llftflgEd idUEri LLfTd UJU

13、TEdqzmaXtiJTEMp h *n 耳i p h-l M M r J N 里血也无世 R A A A A *> 士斗鼻 un 口 ni口 口口口 口 1T P 0 它 0 1诟* U和1*51"Hi*7=hbla-附录2程序清单#in clude<reg52.h>#defi ne uchar un sig ned char#defi ne uint un sig ned intuchar table="TIME"sbit lcde n=P3A4;sbit lcdrs=P3A5;sbit beep=P3A6;exter n void key1

14、();exter n void key2();exter n void key3();uchar nu m,hour=12, min ite,sec ond, ahour,am in ite,asecon d,a,F_k1,F_k2,F_k3; void delay( uint z)uint x,y;for(x=z;x>0;x_)for(y=110;y>0;y-);void write_com(uchar com)lcdrs=0;P0=com;delay(5);lcde n=1;delay(5);lcde n=0;void write_data(uchar date)lcdrs=1

15、;PO=date;delay(5);lede n=1;delay(5);lede n=0;void write_add(uchar add,uchar date)uchar aa,bb;aa=date/10;bb=date%10;write_com(0x80+add);write_data(0x30+aa);write_data(0x30+bb);void ini t()lcde n=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);void display(uchar h,uch

16、ar m,uchar s)write_com(0x80+0x04);write_data(':');write_data(0x30+(h/10);write_data(0x30+(h%10);write_data(':');write_data(0x30+(m/10);write_data(0x30+(m%10);write_data(':');write_data(0x30+(s/10);write_data(0x30+(s%10);write_data('');write_data('');write_data

17、('');write_data('');void mai n()ini t();TMOD=0X01;TH0=(65535-50000)/256;TL0=(65535-50000)%256;EA=1;TR0=1;ET0=1;for(num=0; num <4; nu m+)write_data(table nu m);while(1)key1();key2();key3();if(ahour=hour&&amin ite=min ite&&sec on d<10)beep=beep;if(F_k 1=0&F_k3

18、=0)display(hour,m in ite,secon d);void timer0() in terrupt1TH0=(65535-50000)/256;TL0=(65535-50000)%256;a+;if(a=20)a=0;sec on d+;if(sec on d=60)sec on d=0;min ite+;if(min ite=60)min ite=0;hour+;if(hour=24)hour=0;#i nclude "reg52.h"#defi ne uchar un sig ned char#defi ne uint un sig ned intsb

19、it k仁 P1A0;sbit k2=PMl;sbit k3=P1A2;extern uchar F_k1,F_k3,sec on d,mi nite,hour,ahour,ami nite,asecond;exter n void write_com(uchar com);exter n void write_add(uchar add,uchar date);exter n void display(uchar h,uchar m,uchar s);void delay_key(i nt i)while(i-);void key1()if(k1=0)delay_key(100);if(k1

20、=0)TR0=0;while(!k1);F_k1+;if(F_k1=4)F_k1=0;write_com(0x0c);TR0=1;if(F_k 1=1|F_k3=1)write_com(0x80+0x0c); write_com(OxOf);if(F_k 1=2|F_k3=2) write_com(0x80+0x09);if(F_k 1=3|F_k3=3)write_com(0x80+0x06);void key2()if(k2=0)delay_key(100);while(!k2);if(F_k 1=1)sec on d+;if(sec on d=60)sec on d=0;write_ad

21、d(0x0b,seco nd);if(F_k1=2)min ite+;if(min ite=60)min ite=0;write_add(0x08,mi nite);if(F_k 1=3)hour+;if(hour=24)hour=0;write_add(0x05,hour);if(F_k3=1)asecond+;if(asec on d=60)asec on d=0;write_add(0x0b,asec on d);if(F_k3=2)amin ite+;if(amin ite=60)amin ite=0;write_add(0x08,ami nite);if(F_k3=3)ahour+;if(ahour=24)ahour=0;write_add(0x05,ahour);void key3()if(k3=0)delay_key(100);if(k3=0)while(!k3);F_k3+;if(F_k3=4)F_k3=0;write_com(0x0c);if(F_k3=1)display(ahour,ami nite,asecon d);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1