基于单片机C语言电子时钟完整版(闹钟_整点报时).doc

上传人:西安人 文档编号:5020816 上传时间:2020-01-29 格式:DOC 页数:27 大小:868KB
返回 下载 相关 举报
基于单片机C语言电子时钟完整版(闹钟_整点报时).doc_第1页
第1页 / 共27页
基于单片机C语言电子时钟完整版(闹钟_整点报时).doc_第2页
第2页 / 共27页
基于单片机C语言电子时钟完整版(闹钟_整点报时).doc_第3页
第3页 / 共27页
基于单片机C语言电子时钟完整版(闹钟_整点报时).doc_第4页
第4页 / 共27页
基于单片机C语言电子时钟完整版(闹钟_整点报时).doc_第5页
第5页 / 共27页
点击查看更多>>
资源描述

《基于单片机C语言电子时钟完整版(闹钟_整点报时).doc》由会员分享,可在线阅读,更多相关《基于单片机C语言电子时钟完整版(闹钟_整点报时).doc(27页珍藏版)》请在三一文库上搜索。

1、提供全套毕业设计,欢迎咨询 单片机技术课程设计说明书 数 字 电 子 钟 系 、 部: 电气与信息工程学院 学生姓名: 指导教师: 职称 专 业: 班 级: 完成时间: 2013-06-07 摘 要电子钟在生活中应用非常广泛,而一种简单方便的数字电子钟则更能受到人们的欢迎。所以设计一个简易数字电子钟很有必要。本电子钟采用ATMEL公司的AT89S52单片机为核心,使用12MHz 晶振与单片机AT89S52 相连接,通过软件编程的方法实现以24小时为一个周期,同时8位7段LED数码管(两个四位一体数码管)显示小时、分钟和秒的要求,并在计时过程中具有定时功能,当时间到达提前定好的时间进行蜂鸣报时。

2、该电子钟设有四个按键KEY1、KEY2、KEY3、KEY4和KEU5键,进行相应的操作就可实现校时、定时、复位功能。具有时间显示、整点报时、校正等功能。走时准确、显示直观、运行稳定等优点。具有极高的推广应用价值。关键词 电子钟;AT89S52;硬件设计;软件设计ABSTRACTClock is widely used in life, and a simple digital clock is more welcomed by people. So to design a simple digital electronic clock is necessary.The system use a

3、 single chip AT89S52 of ATMELs as its core to control The crystal oscillator clock,using of E-12MHZ is connected with the microcontroller AT89S52, through the software programming method to achieve a 24-hour cycle, and eight 7-segment LED digital tube (two four in one digital tube) displays hours, m

4、inutes and seconds requirements, and in the time course of a timing function, when the time arrived ahead of scheduled time to buzz a good timekeeping. The clock has four buttons KEY1, KEY2, KEY3,KEY4 and KEY5 key, and make the appropriate action can be achieved when the school, timing, reset. With

5、a time display, alarm clock settings, timer function, corrective action. Accurate travel time, display and intuitive, precision, stability, and so on. With a high application value. Key words Electronic clock;;AT89S52;Hardware Design;Software Design目 录1 设计课题任务、功能要求说明及方案介绍 11.1 设计课题任务 11.2 功能要求说明 11.

6、3 设计总体方案介绍及原理说明 12 设计课题硬件系统的设计 22.1 设计课题硬件系统各模块功能简要介绍 22.2 设计课题电路原理图、PCB图、元器件布局图 22.3 设计课题元器件清单 53 设计课题软件系统的设计 63.1 设计课题使用单片机资源的情况 63.2 设计课题软件系统各模块功能简要介绍 63.3 设计课题软件系统程序流程框图 63.4 设计课题软件系统程序清单104 设计结论、仿真结果、误差分析、教学建议 214.1 设计课题的设计结论及使用说明214.2 设计课题的仿真结果214.3 设计课题的误差分析224.4 设计体会224.5 教学建议22结 束 语 23参考文献

7、24致 谢 25附 录 261 设计课题任务、功能要求说明及方案介绍1.1 设计课题任务设计一个具有特定功能的电子钟。具有时间显示,并有时间设定,时间调整功能。1.2 功能要求说明设计一个具有特定功能的电子钟。该电子钟上电或按键复位后能自动显示系统提示符“d.1004-22”, 进入时钟准备状态;第一次按电子钟启动/调整键,电子钟从12时0分0秒开始运行,进入时钟运行状态;按电子钟KEY1键,则电子钟进入时钟调整状态,此时可利用各调整键调整时间,调整结束后可按KEY1键再次进入时钟运行状态。1.3 设计课题总体方案介绍及工作原理说明本电子钟主要由单片机、键盘、显示接口电路和复位电路构成,设计课

8、题的总体方案如图1所示: 图1-1 总体设计方案图本电子钟的所有的软件、参数均存放在AT89S52的Flash ROM和内部RAM中,减少了芯片的使用数量简化了整体电路也降低了整机的工作电流。键盘采用动态扫描方式。利用单片机定时器及计数器产生定时效果通过编程形成数字钟效果,再利用数码管动态扫描显示单片机内部处理的数据,同时通过端口读入当前外部控制状态来改变程序的不同状态,实现不同功能。2 设计课题硬件系统的设计2.1 设计课题硬件系统各模块功能简要介绍本设计的硬件系统主要采用以下基本模块来实现,单片机最小系统模块,输入模块、输出模块、电源模块。(1)单片机最小系统模块:包括低功耗、高性能CMO

9、S8位微控制器AT89S52;复位电路;晶振电路。本本模块AT89S52系统控制核心,单片机系统复位由复位电路完成,单片机内部有一个高增益、反相放大器,其输入端为芯片引脚XTAL1,其输出端位位引脚XTAL2。通过这两个引脚在芯片外并接石英晶体振荡器和两只电容。这样就构成一个稳定的自激振荡器。 (2)输入模块:本模块共用到了4个按键,1个电源开关,一个复位键,单片机运行期间,利用按键完成复位操作。3个按键独立式键盘,KEY1键控制电子钟的启动,KEY2键为加1键,KEY3键为减1键,KEY1键第三次控制电子钟的调整状态。且KEY1、KEY2、KEY3、任一键都独自连一个I/O(P1.0、P1.

10、1、P1.2、P1.3)口线,说明它们可以独立实现相应的电子钟功能。(3)输出模块:本次设计显示为8位,采用两个四位一体数码管(共阳极)作为显示窗口,既可以节约成本又能简化电路。数码管用8个PNP三极管驱动。(4)电源模块:现在市面上销售的编程器有很多都是由PC机的USB口直接供电为了降低本设计的成本及节省设计时间,没有另外设计编程器,而直接购买了市场上的USB供电及下载器。2.2 设计课题电路原理图、PCB图、元器件布局图 图2-1 电路原理图 总设计原理图见附录A原理总设计图见附录附录BPCB图见附录C2.3 设计课题元器件清单 表2-1 设计所用元器件清单名称数量参数电容2个33pF数码

11、管2个4位一体电阻1个200下载口1个WE普通插座1个40PIN电阻16个470按键4个三极管9个PNPUSB供电线1根晶振1个12MHz极性电容1个22F芯片1块AT89S52发光二极管9个LED六角开关1个SW-PB3 设计课题软件系统的设计3.1 设计课题使用单片机资源的情况设计课题使用单片机资源的情况如下:P0口输出数码管段选信号,P2口输出数码管位选信号;晶振12MHz;调整选择键KEY1:P1.0;通过选择键选择调整位,选中位闪烁;增加键KEY2:P1.1;按一次使选中位加1;减少键KEY3:P1.2;按一次使选中位减1;此数字钟可实现基本的走时和显示时间时、分、秒;时间的调整;闹

12、钟的设定和调整;闹钟的开启和关闭功能,具体如下:(1)实现基本的走时和显示时间的时、分、秒,上电自动显示初始时间12-00-00,且控制闹钟状态的的蓝色led灯为亮的状态。(2)当第一次按下第一个弹性按键时进入时间的调节状态,此时实现对显示时间的小时调节,按下第二个按键时实现小时的加一调节,按下第三个按键时实现小时的减一调节。(3)当第二次按下第一个弹性按键时进入显示时间的分钟调节状态,按下第二个按键时实现分钟的加一调节,按下第三个按键时实现分钟的减一调节。(4)当第三次按下第一个弹性按键时进入闹钟的小时调节状态,按下第二个按键时实现闹钟小时的加一调节,按下第三个按键时实现闹钟小时的减一调节。

13、(5)当第四次按下第一个弹性按键时进入闹钟的分钟调节状态,按下第二个按键时实现闹钟分钟的加一调节,按下第三个按键时实现闹钟分钟的减一调节。(6)当第五次按下第一个弹性按键时返回正常的显示时间走时状态。(7)当同时按下第二和第三个弹性按键时,关闭闹钟,且此时蓝色led灯为灭,及定时时间到蜂鸣器并不响,若再次同时按下第二和第三个弹性按键,则开启闹钟,且此时蓝色led灯为亮,定时时间到蜂鸣器发出滴滴的闹铃声,同时按下第二和第三个弹性按键即可关闭闹铃。闹铃状态默认为开启。 3.2 设计课题软件系统个模块功能简要介绍 本设计的软件系统主要采用以下基本模块来实现,主程序、中断服务程序、键盘输入程序模块、数

14、码管及其驱动模块和延时模块。主程序:主要是用于对输入信号的处理、输出信号的控制和对各个功能程序模块的运用及其控制。中断服务程序:主要是用于电子钟的准确运行、数据输入过程中的闪烁。键盘输入程序模块:主要是用于确定按键并得到特定的键码值。数码管及其驱动模块:主要是用于驱动数码管及利用数码管显示时间。延时模块:程序中有两种延时子程序,一种是短延时用于判键按下等,一种是 长延时。3.3 设计课题软件系统程序流程框图系统软件采用汇编语言按模块化方式进行设计,然后通过Keil软件开发平台将程序转变成十六进制程序语言,接着使用Proteous 进行仿真,读出显示数据。主程序流程框图如3-1所示;时间处理子程

15、序流程框图3-2所示;中断服务程序程序如3=3所示; 图3-1 主程序流程框图 图3-2 时间处理子程序流程框图 图3-3 中断子程序3.4 设计课题软件系统程序清单;-;项目名称:数字电子钟;项目功能:本电子钟实现24小时制,8位数码管显示时分秒,显示格式:12-59-00 通过4只按键来调整时间,调整选择键KEY1:P1.0;通过选择键选 择调整位,选中位闪烁,增加键KEY2:P1.1;按一次使选中位加1。 减少键KEY3:P1.2;按一次使选中位减1,bear:P3.1;到了整点和闹 钟就会响, 如果长按KEY1第一次切换到正常时钟显示,按第二次切换到时的调整, 按第三次切换到分的调整,

16、同时led:P1.2就会闪烁, 按第四次和第五次分别切换到闹钟的时分的调整 ,可进行调 时、调分快进快减,并停止闪烁。如果选中位是秒, 则按增加键或减少键可实现,但无调时快进和快减功能。P0口输出数 码管段选信号,P2口输出数码管位选信号;晶振12MHz。编程作者: 林炽逸完成时间: 2013年06月8日程序请清单如下:#include #include#include #define uint unsigned int#define uchar unsigned charsbit KEY1=P11; /切换键sbit KEY2=P12; /minute ,hour调整加1定义sbit KEY

17、3=P17; /minute ,hour调整减1定义sbit bear=P31; /闹铃sbit led=P12; /闹钟,整时灯闪烁code unsigned char tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xbf,0xc8,0x8e,0xff,0x21; /段码控制char code weikong_code=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;uchar ms8=2,2,10,4,0,0,1,14;uchar StrTab8;uchar minute=59,hour=12,

18、second=0; / 正常 时钟秒,分,时 定义uchar minute1=00,hour1=00; second1=00;/ 闹钟 时钟秒,分,时 定义uchar flag=0, flag1=0; /切换标志 uchar num=0;uint count=0; /定时器计数,定时50ms,count满20,秒加1/*子函数声明*/void xianshishuzu(); /显示数组子程序void alarm(); /闹钟子程序/* 延时子程序*/ void delay(uint z) uint x,y;for(x=0;xz;x+)for(y=0;y110;y+);/*时间处理子程序*/vo

19、id time_pro(void) if(second=60)second=0;minute+;if(minute=60)minute=0;hour+;if(hour=24)hour=0;/*显示时钟子函数*/ void dispaly(uchar w8) unsigned int i,j,aa; aa=0xfe; /位选初值1111 1110for(i=0;i8;i+) /依次将数组w中八个数取出,并显示 P2=aa; /位选j=wi; /取出要显示的数码P0=tabj; /取出段选编码aa=_crol_(aa,1); /位选信号循环右移?delay(1); /显示延时P0=0xff; /消

20、影 /*显示时钟数组子程序*/void xianshishuzu() StrTab1=second/10; /秒个位 StrTab0=second%10; /秒十位 StrTab2=10; /间隔符 - StrTab4=minute/10; /分个位 StrTab3=minute%10; /分十位 StrTab5=10; /间隔符 - StrTab7=hour/10; /时个位 StrTab6=hour%10; /时十位 /*键盘扫描子程序*/ void keycan() if(KEY1=0) /按一次,正常显示,按第二次,时调整,按第三次,分调这整, delay(10); /按键1去抖以及动

21、作 if(KEY1=0) /确认按键是否按下 flag+; /切换标志 while(!KEY1); /释放按键 if(flag=1) if(KEY2=0) delay(10);if(KEY2=0) hour+;if(hour=24)hour=0; /正常时间 小时 加1 while(!KEY2) /释放按键 dispaly(StrTab); if(KEY3=0) delay(10); if(KEY3=0) hour-;if(hour=0)hour=23; dispaly(StrTab); /正常时间小时 减1 while(!KEY3) dispaly(StrTab); if(flag=2) i

22、f(KEY2=0) /按键去抖以及动作 delay(10); if(KEY2=0) minute+;if(minute=60)minute=0; /分加1 while(!KEY2) dispaly(StrTab); if(flag=3) / 秒表的加1 if(KEY3=0) delay(10); if(KEY3=0) second+;if(second=0)second=59; /秒加1 while(!KEY3)dispaly(StrTab); if(flag=3) /闹钟对时 if(KEY2=0) delay(10); if(KEY2=0) hour1+;if(hour1=24)hour1=

23、0; /闹钟时间 小时 加1 while(!KEY2) alarm(); if(KEY3=0) delay(10); if(KEY3=0) hour1-;if(hour1=0)hour1=23; /闹钟时间 小时 减 while(!KEY3) alarm(); if(flag=4) if(KEY2=0) /按键去抖以及动作 delay(10); if(KEY2=0) minute1+;if(minute1=60)minute1=0; /闹钟分加1 while(!KEY2)alarm(); if(KEY3=0) /按键去抖以及动作 delay(10); if(KEY3=0) minute1-;i

24、f(minute1=0)minute1=59; /闹钟分减1 while(!KEY3) alarm(); /*蜂鸣器子程序*/void beng() bear=1;P3=0xfd;delay(100);bear=0;P3=0XFf;delay(100);/*整点报警子程序*/void zhengdian (void)uchar i=0;if(second=0)&(minute=0)/整点报时 for(i=0;i=second1&secondsecond1+5)|(minute=0&second1) for(i=0;i0) if(flag=1|flag=2) TR0=1; dispaly(Str

25、Tab); zhengdian (); if(flag=3|flag=4) TR0=0;alarm(); if(flag=5) dispaly(StrTab); if(flag=6) TR0=0; flag=0; dispaly(ms); 4 设计结论、仿真结果、误差分析、教学建议4.1 设计课题的设计结论及使用说明本设计为基于单片机的电子钟的设计。刚开始,我们很多地方理不清头绪,无从下手,但通过认真研究设计课题,找书上网查资料买元件,确定基本设计方案,对所用芯片功能进行查找、调试,然后画电路图制PCB板、打孔、溶铜、焊接等,真的经历了许多困难,却积累了很多宝贵的经验,本设计用2个四位一体的共

26、阳数码管做为显示器,它显示时间值;设计中有三个按键,其中KEY1为启动键,KEY2为加控制键 KEY3为减控制键 。4.2 设计课题的仿真结果在Proteus ISIS的Debug菜单中选择Execute,运行程序,系统仿真结果如图 所示。仿真结果图见附录D实现功能:可调整运行的电子钟具有三种工作状态:“d.1004-22”状态、运行状态、调整状态。 (1)、“d.1004-22”状态,依靠上电或按复位键进入,在此状态下,按KEY2、KEY3键均无效,按KEY1键有效,进入运行状态; (2)、运行状态,在此状态下,按KET2、KEY3键均无效,只有按KEY1键有效,按下KEY1键后,退出运行状

27、态,进入调整状态; (3)、调整状态,按KEY1键进入时、分、秒的闪烁,在此状态下,按KEY2(+1键)、KEY3(-1键)键均有效;调整结束后必须按KEY1键,即可退出调整状态,进入运行状态。在调整状态时长按KRY2、KEY3时可以连加及连减。时间显示格式为:时-分-秒; 图4-2 “d.1004-22”上电初始化运行状态仿真结果 图4-3 时钟正常运行状态仿真结果 图4-4 闹钟定时调整状态仿真结果 图4-5 小时调整状态仿真结果 图4-6 分钟调整状态仿真结果4.3 设计课题的误差分析该电子钟在运行中存在一定的误差,误差产生有三种可能,首先是采用的计时方案是软件计时的,计时优势利用中断来

28、实现。而当电子钟运行时间1秒时,又得去执行中断程序,这个过程是需要时间的,所以就产生了一定的误差,当然这个误差是避免不了的,其次还有硬件系统也有一定的影响。第三,设计用到11.0592MHz的晶振,计算是满20次为一秒钟,但实际会慢很多。4.4 教学建议1、每一位学生都要发展,但不必求一样的发展;每一位学生都要提高,但不必是同步的提高;每一位学生都要合格,但不必是相同的规格;2、继续以幽默轻松的教学方式让课堂气氛很活跃,授课内容条理清晰,运用各 种实例,娓娓道来,给人印象深刻。;3、学生不敢说的,怕做的,您鼓励他做;学生说不对的,您引导他; 附录B:原理总设计图附录C:PCB物图附录D:仿真调试结果图

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

当前位置:首页 > 研究报告 > 商业贸易


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