基于80C51和pcf8563的电子时钟课程设计文档格式.docx
《基于80C51和pcf8563的电子时钟课程设计文档格式.docx》由会员分享,可在线阅读,更多相关《基于80C51和pcf8563的电子时钟课程设计文档格式.docx(17页珍藏版)》请在冰豆网上搜索。
PCF8563芯片3
的性能特点4
PCF8563的工作原理4
系统硬件设计4
2.分块设计5
输入部份5
输出部份5
完整电路图6
6.程序设计6
1程序整体设计6
2.程序要紧模块6
延时模块6
中断效劳程序6
主程序8
显示子程序8
C程序调试及仿真8
7.总结11
8.参考文献11
9.程序12
基于51单片机的电子时钟设计
摘要:
本文介绍了基于51单片机的电子时钟的设计,从硬件和软件两个方面给出了具体实现进程。
该时钟的设计采纳功能分块的思想方式,将硬件电路划分为开关电路,显示驱动电路和数码管电路等假设干独立模块,而软件的实现那么由闹钟的声音程序、时刻显示程序、日期显示程序,秒表显示程序,时刻调整程序、闹钟调整程序、按时调整程序,延时程序等组成。
文中给出了各个模块的电路图,并用Proteus的ISIS软件对电子时钟系统的各个功能进行了仿真,并给出了相应的仿真结果图像。
关键词:
单片机;
电子时钟;
键盘操纵
ElectronicClockDesignBasedon51Single-chip
Abstract:
Thispaperintroducestheelectronicclockdesignbasedon51single-chipmicrocomputer,anditprovidesusspecificimplementationprocessfromaspectsofhardwareandsoftware.Thisclockisdesignedbythemethodoffunctionblocks.Inhardware,it’scircuitisdividedintoswitchblock,displaydriveblockanddigitalcontrolblock.However,thesoftwareconsistoftheprogramofalarmclock,timedisplay,datedisplay,stopwatchdisplay,timeadjust,timingadjustment,thealarmclockadjustment,timedelayandsoon.CircuitdiagramsofeachmoduleisalsogivenandthecorrespondingsimulationimageofthisclockproducedbysoftwareofProteusisalsoshowedinthispaper.
Keywords:
singlechipmicrocomputer;
electronicclock;
Keyboardcontrol
1
一、引言
1957年,Ventura发明了世界上第一个电子表,从而奠定了电子时钟的基础,电子时钟开始迅速进展起来。
现代的电子时钟是基于单片机的一种计时工具,采纳延时程序产生必然的时刻中断,用于一秒的概念,通过计数方式进行满六十秒分钟进一,满六十分小时进一,满二十四小时小时清零。
从而达到计时的功能,是人民日常生活补课缺少的工具。
此刻高精度的计时工具大多数都利用了石英晶体振荡器,由于电子钟、石英钟、石英表都采纳了石英技术,因此走时精度高,稳固性好,利用方便,不需要常常调试,数字式电子钟用集成电路计不时,译码代替机械式传动,用LED显示器代替指针显示进而显示时刻,减小了计时误差,这种表具有时、分、秒显示时刻的功能,还能够进行时和分的校对,片选的灵活性好。
二、时钟原理分析
利用单片机按时器完成计时功能,按时器0计时中断程序每隔中断一次并看成一个计数,设定按时1秒的中断计数初值为100,每中断一次中断计数初值减1,当减到0时,那么表示1s到了,秒变量加1,同理再判定是不是1min钟到了,再判定是不是1h到了。
为了将时刻在LM016L液晶显示上显示,可采纳静态显示法和动态显示法,由于静态显示法需要译码器,数据锁存器等较多硬件,可采纳动态显示法实现LED显示,通过对每位数码管的依次扫描,使对应数码管亮,同时向该数码管送对应的字码,使其显示数字。
由于数码管扫描周期很短,由于人眼的视觉暂留效
应,使数码管看起来老是亮的,从而实现了各类显示。
三、时钟设计分析
属于MCS-51系列,由Intel公司开发,其结构是8048的延伸,改良了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(CMP)、16位数据指针、布尔代数运算等指令,和串行通信能力和5个。
采纳40双列直插式DIP(DualInLinePackage),内有128个RAM单元及4K的ROM。
80C51有两个16位按时计数器,两个外中断,两个按时计数中断,及一个串行中断,并有4个8位并行输入口。
80C51内部有,但需要石英晶体和微调电容外接,本系统中采纳12MHz的晶振频率。
由于80C51的系统性能知足系统及时刻精度的要求,而且产品产量丰硕来源广,
2
应用也很成熟,故采纳来作为操纵核心。
在程序方面,采纳分块设计的方式,如此既减小了编程难度、使程序易于明白得,又能便于添加各项功能。
程序可分为闹钟的声音程序、时刻显示程序、日期显示程序,秒表显示程序,时刻调整程序、闹钟调整程序、按时调整程序,延时程序等。
运用这种方式,关键在于各模块的兼容和配合,假设各模块不匹配会显现意想不到的错误。
第一,在编程之前必需了解硬件结构尤其是各引脚的用法,和内部寄放器、存储单元的用法,不然,编程无从下手,电路也无法设计。
这是前期预备工作。
第二部份是硬件部份:
依据想要的功能分块设计设计,比如输入需要开关电路,输出需要显示驱动电路和数码管电路等。
第三部份是软件部份:
先学习明白得汇编语言的编程方式再依照设计的硬件电路进行分块的编程调试,最终
完成程序设计。
第四部份是软件画图部份:
设计好电路后进行画图,包括电路图和仿真图的绘制。
第五部份是软件仿真部份:
软硬件设计好后将软件载入芯片中进行仿真,仿真无法完成时检查软件程序和硬件电路并进行修改直到仿真成功。
第六部份是硬件实现部份:
连接电路并导入程序检查电路,假设与设计的完全一样一样能实现想要的功能。
最后进行功能扩展,在已经正确的设计基础上,添加额外的功能!
四、时钟的实现
一、利用的PCF8563芯片
PCF8563芯片原理图如下
3
的性能特点
低工作电流:
典型值为μA(VDD=,Tamb=25℃时)。
世纪标志
大工作电压范围:
~
低休眠电流典型值为μA(VDD=,Tamb=25℃)
400KHz的I2C总线接口(VDD=~时)。
可编程时钟输出频率为:
,1024Hz,32Hz,1Hz。
报警和按时器。
掉电检测器。
内部集成的振荡器电容。
片内电源复位功能。
I2C总线从地址:
读,0A3H;
写,0A2H。
开漏中断引脚。
PCF8563的工作原理
其内部结构图如下
系统硬件设计
硬件电路设计包括PCF8563时钟,日历器件与80c51单片机的接口电路、LM016L液晶显示电路和键盘电路3个部份。
80c51是一种低功耗、高性能CMOS8位微操纵器,具有8KB在系统可编程Flash存储器;
利用高密度非易失存储器技术制造,与T业80C51产品指令和引脚完全兼容:
片上Flash许诺程序存储器在系统可编程,亦适用于常规编程器。
具有灵巧的8位CPU和在系统可编程Flash,使其为众多嵌入式操纵应用系统提供高灵活、超高效的解决方案。
PCF8563采用32.768kHz可编程时钟输出频率,I2C总线是由数据线SDA和时钟SCL组成的串行总线,可发送和接收数据。
单片机与PCF8563之间双向传送数据,最高传送速度为100Kb/s。
FC总线的优势是简单和有效。
由于接口直接在组件之上,因此,I2C总线占用的空间超级小,减少了电路板的空间和器件引脚的数量,降低了本钱。
图2为PCF8563与80c51单片机的接口电路,PCF8563的SCL与单片机的引脚P14连接;
SDA与单片机的引脚P15连接,实现时刻、日期等数据的读取。
4
2.分块设计
模块电路要紧分为:
输入部份、输出部份。
输入部份
输入信号主若是各类模式选择和调整信号,由按键开关提供。
以下为输入部份样例:
输出部份
本电路的输出信号为LM016L液晶显示
输出部份如下
5
完整电路图如下
五、程序设计
1程序整体设计
本实验用C语言完成
2.程序要紧模块
延时模块
LM016L液晶显示,那个地址利用延迟1ms的程序,此程序需反复调,只是延时的长短不同算了,在此再也不赘述。
中断效劳程序
按时长度为,工作于方式1,计数1次,时长1us,故计数器计数10000次,进入中断,计数初值为65536-10000=55536=#0D8F0,装满按时器需要的时刻,从而100次中断为一秒,一秒以后,判定是不是到60秒,假设不到那么秒加一,然后返回,假设到,那么秒赋值为0,分加一,依次类推。
包括日期显示的功能也是如此。
另外,由于要实现倒计时功能,因此在中断程序中还要加入减一的寄放器,需要时将其进行显示。
基于以上考虑,以R3为倒计时中的秒,R4为倒计时的分,当秒加1时R3减一,减到0以后,秒赋值为
6
59,分减一,直到分为0。
计数器T1工作于方式1,当挪用响铃程序时,其计数功能开启,为音乐音调不同频率的方波的形成,提供延时。
其中断效劳程序确实是依照音调改变音乐方波输出口电平的高低,用语句CPL实现。
中断效劳程序中日历的实现较为复杂,要考虑平年,闰年,特殊的2月,每一个月的天数的不尽相同。
具体的逻辑判定方式为:
第一,要考虑年份是不是闰年,闰年的判定方式是:
将年份除以100,假设能整除,那么将年份除以400,假设还能整除,那么为闰年,假设不能,那么为平年;
假设不能被100整除,那么判定是不是能被4整除,假设能,那么为闰年,假设不能那么为平年。
只有2月与平、闰年相关,因此在闰年和平年的子程序中,要判定是不是2月,假设是那么在相应的年中进行日期的增加,假设不是那么转入平常的月份。
其中一、3、五、7、八、10、12月是每一个月31天,4、六、九、11月为每一个月30天。
日历进位判定流程图如下:
年份能否被100整除
N
Y
年份是否能被4整除
年份是否能被400整除
平年
闰年
是不是2月
日>
=28之后返回为1
=29之后返回为1
若月份为1、3、5、7、8、10、12月则调用31天的程序
若月份为4、6、9、11则调用30天的程序
7
主程序
主程序要紧对按键进行扫描,和判定按时和闹铃时刻是不是已到,假设到那么挪用相关程序。
显示子程序
日期的显示,秒表的显示,倒计时