时钟设计1.docx
- 文档编号:10059095
- 上传时间:2023-05-23
- 格式:DOCX
- 页数:32
- 大小:394.90KB
时钟设计1.docx
《时钟设计1.docx》由会员分享,可在线阅读,更多相关《时钟设计1.docx(32页珍藏版)》请在冰点文库上搜索。
时钟设计1
课程设计说明书
课程名称:
单片机原理及应用
设计题目:
时钟设计
院系:
电子信息与电气工程系
学生姓名:
学号:
专业班级:
指导教师:
课程设计任务书
设计题目
时钟设计
学生姓名
所在院系
电子信息与电气工程系
专业、年级、班
设计要求:
基本要求:
利用单片机的输入输出功能、定时计数功能及中断功能,设计一带定时功能的闹铃电子小闹钟。
技术参数及要求:
1、具有电源开关及指示灯,有复位按键;
2、接通电源后,蜂鸣器连续两次发出声响,同时工作指示灯LED闪动,表示程序执行,数码管显示“0000”;
3、接着设置当前时间。
按K1键,LED停止闪动,即进入时间设置状态;按K2调整小时,每按一次数值增1;按K3调整时间。
设置完成后,按K4,LED恢复闪烁,即设置完成,进入正常走时状态。
学生应完成的工作:
设计带有电源电路、复位电路及晶振电路的硬件电路图;绘制程序流程图;编写时钟电路程序;用仿真软件对程序和电路进行仿真;焊接电路板;往单片机中烧制程序,并运行调试电路是否成功。
本人主要完成硬件电路的焊接和调试。
参考文献阅读:
[1]张毅刚,彭喜元,董继成.单片机原理及应用.高等教育出版社,2003.12
[2]童诗白,华成英.模拟电子技术基础.高等教育出版社。
2006.05
[3]张大明,刘振鹏.单片微机控制应用技术实操指导书.机械工业出版社,2007.04
[4]阎石,数字电子技术基础(第五版)高等教育出版社2005.03
[5]邱关源,罗先觉.电路(第五版)[M].北京:
高等教育出版社,2006.03
工作计划:
5.4课程设计任务书下达5.5结合指导老师,完成硬件电路的设计5.6程序编写
5.7进行软硬件联机调试5.8-5.9课程设计说明书的书写5.10领元器件
5.11焊接电路板5.12-5.13程序的烧写和电路板调试5.14交课程设计说明书和焊接电路板
任务下达日期:
2
指导教师(签名):
学生(签名):
时钟设计
摘要:
本课题主要用AT89S52单片机控制,由2W10和W7805组成AT89S52单片机的工作电源,设计时钟电路。
时钟设计是利用AT89c52单片机内部的定时/计数器、中断系统、以及外围的按键和LED显示器等部件,设计一个单片机电子时钟。
设计的电子时钟通过数码管显示,并能通过按键实现设置时间和暂停、启动控制且具有定时报警等功能。
关键词:
AT89C52LED七段数码管电子时钟
目录
1.设计背景……………………………………………………………1
1.1社会背景………………………………………………………1
1.2时代背景………………………………………………………1
2.设计方案……………………………………………………………1
2.1数字时钟方案…………………………………………………1
2.2数码管显示方案………………………………………………2
3.方案实施……………………………………………………………2
3.1硬件实施…………………………………………………………2
3.2软件实施…………………………………………………………6
4.结果与结论…………………………………………………………11
4.1设计结果…………………………………………………………11
4.2设计结论…………………………………………………………12
5.收获与致谢……………………………………………………………12
6.参考文献………………………………………………………………12
7.附录……………………………………………………………………12
附录1原理图…………………………………………………………13
附录2仿真图…………………………………………………………13
附录3元件清单…………………………………………………14
附录4程序………………………………………………………14
1.设计背景
1.1社会背景
现今,高精度的计时工具大多数都使用了石英晶体振荡器,由于电子钟,石英表,石英钟都采用了石英技术,因此走时精度高,稳定性好,使用方便,不需要经常调校,数字式电子钟用集成电路计时时,译码代替机械式传动,用LED显示器代替指针显示进而显示时间,减小了计时误差,这种表具有时,分,秒显示时间的功能,还可以进行时
和分甚至秒的校对,片选的灵活性好。
1.2时代背景
在当今社会,随着单片机档次的不断提高,功能的不断完善,其应用日趋成熟、应用领域日趋扩大,特别是工业测控、尖端武器和日用家电等领域更是因为有了单片机而生辉增色。
因此本次实习就是根据单片机的应用提出了基于单片机的时钟设计。
2.设计方案
2.1数字时钟方案
数字时钟是本设计的最主要的部分。
根据需要,可利用两种方案实现。
方案一:
本方案采用专用时钟芯片。
芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。
为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。
当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。
而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。
方案二:
本方案完全用软件实现数字时钟。
原理为:
在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。
利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将十字节清零。
该方案具有硬件电路简单的特点。
但由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。
而且,由于是软件实现,当单片机不上电,程序不执行时,时钟将不工作。
基于硬件电路的考虑,本设计采用方案二完成数字时钟的功能
2.2数码管显示方案
方案一:
静态显示。
所谓静态显示,就是当显示器显示某一字符时,相应的发光二极管恒定的导通或截止。
该方式每一位都需要一个8位输出口控制。
静态显示时较小的电流能获得较高的亮度,且字符不闪烁。
但当所显示的位数较多时,静态显示所需的I/O口太多,造成了资源的浪费。
方案二:
动态显示。
所谓动态显示就是一位一位的轮流点亮各个位,对于显示器的每一位来说,每隔一段时间点亮一次。
利用人的视觉暂留功能可以看到整个显示,但必须保证扫描速度足够快,字符才不闪烁。
显示器的亮度既与导通电流有关,也于点亮时间与间隔时间的比例有关。
调整参数可以实现较高稳定度的显示。
动态显示节省了I/O口,降低了能耗。
从节省I/O口和降低能耗出发,本设计采用方案二。
3.方案实施
3.1硬件实施
1.设计原理框图
数码管显示时间,显示24时制的数字时钟,由按钮控制定时时间对时、分进行调整,定时到闹铃发出响声。
设计的原理框图如下图所示:
图3-1设计原理框图
2.单片机AT89C52
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。
图3-2AT89C52
3.复位电路
复位电路是采用手动按键电平来实现单片机系统的复位的。
复位电平是通过RST端经电阻与电源Vcc接通而实现的其复位电路图如下
图3-3复位电路
常见的复位电路为上电复位电路,它能有效的实现上电复位和手动复位。
复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作。
在复位电路通电瞬间,由于RC的充电过程,在RST端出现一定宽度的正脉冲,只要该正脉冲保持一定宽度,就能使单片机自动复位。
以上的复位电路在通电时,是通过1000uF的电容充电,并在复位端口和地之间加1k欧电阻从而使复位端口能够保持高点平,并有效保持复位按键按下后能够准确复位。
4.时钟电路
单片机各种功能部件的运行都是以时钟控制信号为基准,有条不紊地一拍一拍地工作。
因此,时钟频率直接影响单片机的速度,时钟电路的质量影响单片机系统的稳定性。
时钟电路有两种设计有两种方式,一是内部时钟方式,另一种是外部时钟方式。
我们采用的是内部时钟方式,其电路图如下:
图3-4时钟电路
单片机内部有一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为单片机的XTAL1,输出端为引脚XTAL2。
这两个引脚外部跨接石英振荡器Y1和微调电容C1和C2,构成了稳定的自激振荡器。
而电容的大小会影响振荡的频率的高低、振荡器的稳定性和起振的快速性,因此对于电容选择是很关键的,我们这次设计的时钟电路采用了所提供的33pF电容可以构成稳定的自激振荡器电路。
5.电源电路
三端稳压集成电路7805:
用7805三端稳压器组成稳压电源输出电压稳定,电压大小为+5V,满足单片机的工作电源需求,7805所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。
桥堆2W10:
将交流电压变为直流电压。
整流桥堆是由四只整流硅芯片作桥式连接,外用绝缘朔料封装而成,大功率整流桥在绝缘层外添加锌金属壳包封,增强散热。
整流桥品种多:
有扁形、圆形、方形、板凳形(分直插与贴片)等,有GPP与O/J结构之分。
最大整流电流从0.5A到100A,最高反向峰值电压从50V到1600V。
图3-5电源电路
6.LED和数码管显示
LED灯主要用于显示电路的工作状态,为提高LED两端电压,给每个LED灯接上一个1k的上拉电阻。
单片机的P2口每一位可以驱动四个TTL型LS负载,所以可以采用直接由P2口驱动数码管。
67.蜂鸣器
蜂鸣器的发声主要用于单片机上电时刻和定时到时发出连续的警报声。
电路图如下图所示:
图3-6蜂鸣器
3.2软件实施
1.Proteus软件简介
Proteus软件是一种低投资的电子设计自动化软件,提供可仿真数字和模拟、交流和直流等数千种元器件和多达30多个元件库。
Proteus软件提供多种现实存在的虚拟仪器仪表。
此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。
这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。
这些测试信号包括模拟信号和数字信号。
提供SchematicDrawing、SPICE仿真与PCB设计功能,同时可以仿真单片机和周边设备,可以仿真51系列、AVR、PIC等常用的MCU,并提供周边设备的仿真,例如373、LED、示波器等。
Proteus提供了大量的元件库,有RAM、ROM、键盘、马达、LED、LCD、AD/DA、部分SPI器件、部分IIC器件,编译方面支持Keil和MPLAB等编译器。
2.编程Keil软件简介
单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。
通常使用的机器汇编软件是Keil软件。
Keil软件是目前最流行开发MCS-51系列单片机的软件,Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uVision)将这些部份组合在一起。
3.程序流程图
(1)主程序流程图
软件程序从开始执行,先通过初始化各个寄存器,经过扫描按键来决定是否设定参数来执行相应功能的程序,进而在数码管上显示。
如图3-7:
图3-7主程序流程图
(2)定时器中断程序流程
时间的显示通过此中断程序来控制,并且通过与设定的时间进行比较来判断是否让闹铃工作。
程序中包含时间的设定,如设定tcount来使秒等工作,进而来控制分和时,如图3-8:
图3-8定时器中断程序流程图
(3)按键程序流程
图3-9按键程序流程图
程序中通过扫描来判断按键是否按下进行时间和闹钟调节,如图3-9所示:
(4)模块化程序设计
【1】延时程序:
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);//延时Z个MS
}
【2】初始化程序设计:
voidinit()
{count=hge=hshi=fge=fshi=s1num=hhshi=ffge=ffshi=hhge=0;
we1=we2=we3=we4=1;
aa=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
【3】显示程序设计:
voiddisplay2(ucharz)
{hge=z%10;
hshi=z/10;//显示小时}
voiddisplay4(ucharz)
{hhge=z%10;
hhshi=z/10;//显示小时}
voiddisplay1(ucharz)
{fge=z%10;
fshi=z/10;//显示分钟}
voiddisplay3(ucharz)
{ffge=z%10;
ffshi=z/10;//显示分钟}
voiddisplay5(uinta,uintb,uintc,uintd)
{we1=1;//第四个
P2=table[a];
delay(3);
we1=0;
we3=1;//第二个
P2=table[b];
delay(3);
we3=0;
we2=1;//第三个
P2=table[c];
delay(3);
we2=0;
we4=1;//第一个
P2=table[d];
delay(3);
we4=0;}
【4】程序清单见附录4
4.结果与结论
4.1设计结果
电子小闹钟系统具有正常走时,调时,定时功能。
具体操作功能:
接通电源后,蜂鸣器连续两次发出响声,同时工作指示灯LED闪动,表示程序执行,数码管显示“0000”;
接着设置当前时间。
按K1键,LED1停止闪动,LED2亮,即进入分钟设置状态;按K2调整,每按一次数值加1;按K3调整,每按一次数值减1;再按K1键,LED1停止闪动,LED3亮,即进入小时设置状态;按K2调整,每按一次数值加1;按K3调整,每按一次数值减1;设置完成后,按K4,LED1恢复闪烁,即设置完成,进入正常走时状态;设置定时时间。
按K5键,LED1闪动,LED4亮,即进入定时时间设置状态;LED1闪动,LED2和LED4亮,即进入分钟设置状态;按K2调整,每按一次数值加1;按K3调整,每按一次K3数值减1;按K1键,LED1闪动,LED3和LED4亮,即进入小时设置状态;按K2调整,每按一次数值加1;按K3调整,每按一次数值减1;设置完成后,按K4,LED1恢复闪烁,即设置完成,进入正常定时走时状态;到定时时间时,蜂鸣器连续发出响声,同时四个指示灯LED闪动,表示定时时间到,数码管显示定时时间,且时钟能正常走时;在此期间,按K5,能再次设置定时时间,再按K4,能关闭闹铃正常走时。
4.2设计结论
在实习之前,我们要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便。
5.收获与致谢
经过这次课程设计我学会了使用keil软件编程,对仿真软件proteus的学习有了进一步的加深。
本次课程设计加深了我们对单片机课程的理解,锻炼了我的动手能力,同时使我们对电工知识得到了整体的回顾,让我们的综合能力都有了很大的提高,这次课程设计对我们将来的学习和工作都有积极的影响。
经过为期两个周的忙碌和工作,本次课程设计已经接近尾声。
在课程设计即将完成之际,我想对所有曾经给过我帮助和支持的老师和同学表示衷心的感谢。
感谢丁老师悉心为我们分析程序和电路,并无微不至的加以指导,在此我向您表示诚挚的敬意。
同时感谢我的同学们和我密切的配合,及时的提出问题为我们这次课程设计的顺利完成提供了保障。
在此亦要感谢学校和系领导给我们提供了这么难得的一次锻炼机会,对我们以后的学习和工作都有很大的帮助,感谢你们说做的一切!
6.参考文献
[1]张毅刚,彭喜元,董继成.单片机原理及应用.高等教育出版社,2003.12
[2]童诗白,华成英.模拟电子技术基础.高等教育出版社。
2006.05
[3]张大明,刘振鹏.单片微机控制应用技术实操指导书.机械工业出版社,2007.04
[4]阎石,数字电子技术基础(第五版)高等教育出版社2005.03
[5]邱关源,罗先觉.电路(第五版)[M].北京:
高等教育出版社,2006.03
7.附录
附录1原理图:
图7-1电路图
附录2仿真图:
图7-2仿真图
附录3元件清单:
器件名
型号与规格
数量
单片机
AT89C52
1
晶振
11.0592MHz
1
瓷片电容
33pF
2
电解电容
1000uF
3
LED指示灯
2红3绿
5
数码管
共阳极数码管4位
1
三极管
9015
5
电阻
1K
11
电阻
300
6
电阻
680
8
电阻
4.7K
5
稳压管
7805
1
蜂鸣器
1
桥堆
2w10
1
插座
40脚IC插座
1
开关
拨动开关
1
开关
按键
6
万用板
1
表7-1元件清单
附录4程序清单:
#include
#defineucharunsignedchar
#defineuintunsignedint
uintcount,s1num,hge,hshi,fshi,fge,hhshi,hhge,ffge,ffshi,s1num2,cc,aa;
charshi,fen,sshi,ffen;
sbitbee=P3^7;
sbitwe1=P1^4;
sbitkey1=P3^0;
sbitkey2=P3^1;
sbitkey3=P3^4;
sbitkey4=P3^3;
sbitkey5=P3^2;
sbitwe2=P1^5;
sbitwe3=P1^6;
sbitwe4=P1^7;
sbitd1=P1^0;
sbitd2=P1^1;
sbitd3=P1^2;
sbitd4=P1^3;
ucharcodetable[]={
0x40,0x79,0x24,0x30,
0x19,0x12,0x02,0x78,
0x00,0x18};//显示0-9
voiddelay(uintz)
{
uintx,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);//延时Z个MS
}
voidinit()
{
count=hge=hshi=fge=fshi=s1num=hhshi=ffge=ffshi=hhge=0;
we1=we2=we3=we4=1;
aa=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}//初始化程序
voiddisplay2(ucharz)
{
hge=z%10;
hshi=z/10;//显示小时
}
voiddisplay4(ucharz)
{
hhge=z%10;
hhshi=z/10;//显示小时
}
voiddisplay1(ucharz)
{
fge=z%10;
fshi=z/10;//显示分钟
}
voiddisplay3(ucharz)
{
ffge=z%10;
ffshi=z/10;//显示分钟
}
voiddisplay5(uinta,uintb,uintc,uintd)
{
we1=1;//第四个
P2=table[a];
delay(3);
we1=0;
we3=1;//第二个
P2=table[b];
delay(3);
we3=0;
we2=1;//第三个
P2=table[c];
delay(3);
we2=0;
we4=1;//第一个
P2=table[d];
delay(3);
we4=0;
}
voidkeyscan()
{
uintbb;
cc=1;
if(!
key1)
{
delay
(2);//去除按键抖动
if(!
key1)//进入调整时间
{
s1num++;
while(!
key1);
d2=0;
d1=d3=d4=1;
if(s1num==1)
{
TR0=0;
}
if(s1num==3)
s1num=1;
}
}
if(s1num==1)
{
TR0=0;
d2=0;
d1=d3=d4=1;
}
if(s1num==2)
{
TR0=0;
d3=0;
d1=d2=d4=1;
}
if(!
key4)//调整时间完成
{
delay(3);
if(!
key4)
{
TR0=1;
s1num=0;
while(!
key4);
d2=d3=d4=1;
}
}
if(s1num==1)
{
if(!
key2)
{
delay
(2);
if(!
key2)
{
fen++;
while(!
key2);
if(fen==60)
fen=0;
}
//分钟加
}
if(!
key3)
{
delay
(2);
if(!
key3)
{
fen--;
while(!
key3);
if(fen==-1)
fen=59;
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 时钟 设计