《定时器的设计论文》word版Word格式文档下载.docx
- 文档编号:16153828
- 上传时间:2022-11-21
- 格式:DOCX
- 页数:26
- 大小:513.68KB
《定时器的设计论文》word版Word格式文档下载.docx
《《定时器的设计论文》word版Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《定时器的设计论文》word版Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。
本设计主要设计了一个基于AT89C2051单片机的数字定时器。
在LED数码管上显示要定时的时间,并通过多个控制键用来实现对时间初值的调节。
应用keil软件实现单片机定时器的程序设计,用Proteus中的ISIS软件实现仿真。
该方法仿真效果真实、准确,节省了硬件资源。
1.2设计的任务和要求
(1)定时时间的设置范围为1-99分,开机上电后的隐含值为10分,采用LED数码管显示,定时时间可任意设置。
(2)定时器控制一个交流220V、1A的用电设备,上电时不允许用电设备瞬间通电。
(3)定时时间设定后,启动计时,用电设备通电,同时显示器逐分倒计时。
其间,分个位数码管的小数点每秒闪亮一次;
计时到0分时,切断用电设备电源。
(4)计时误差:
100分误差<
±
10s。
2.系统总体方案和硬件设计
2.1数字定时器设计方案论证
基于单片机的数字定时器的设计。
该设计组要由单片机及其电源电路、时钟电路、复位电路、按键电路、继电器驱动电路和LED显示电路等外围电路组成。
系统的模块原理图如下图2-1-1所示:
图2-1-1基于单片机的模块原理图
由图可知,此电路系统设计简单,单片机的外围电路设计简单,并且通过软件定时的方式能使电路定时较为精确,可靠性高。
单片机的芯片型号选择合理,也能使成本大大减小。
2.2系统总体设计
数字定时器的总体电路如图2-2-1,由于此设计要求实现功能不多,所需要的I/O口较少,所以控制器采用单片机AT89C2051。
AT89C2051具有低电压供电、功耗低和体积小等特点。
图2-2-1系统的总体电路图
系统的仿真图如下:
图2-2-2系统的仿真图
2.3系统模块
系统由单片机AT89C2051及其电源电路、时钟电路、复位电路、按键电路、继电器驱动电路和LED显示电路等外围电路组成。
2.3.1电源电路
稳压电路可由串联式直流稳压电路、开关稳压电路和三端稳压电路来实现。
其中三端稳压器是一种标准化、系列化的通用线性稳压电源集成电路,以其体积小、成本低、性能好、工作可靠性高、使用简捷方便等特点,成为目前稳压电源中应用最为广泛的一种单片式集成稳压器件。
因此采用三端稳压电路来得到单片机所需要的单一+5V电源。
三端稳压电源电路可由LM7805所构成的集成稳压电路来实现。
输出电压和最大输出电流由三端稳压器7805决定,如图2-3-1,电源电路将+12V的电压转换成了+5V的电压,最大输出为1A。
图2-3-1电源电路
在上图中,电解电容C4起到电源退藕,低频滤波的作用,用以消除电源中的低频交流干扰。
而电容C5用于抵消输入线较长时的电感效应,以防止电路中产生自激振荡,其容量较小,一般小于1uF。
电容C6用于消除输出电压中的高频噪声。
7805的管脚图和内部电路原理图如下图2-3-2所示:
图2-3-27805的管脚图和内部电路原理图
2.3.2时钟电路
单片机的时钟设计电路有两种方式,一种是内部时钟方式,一种是外部时钟方式。
外部时钟方式是使用外部振荡器产生的脉冲信号,常用于多片单片机同时工作,以便于多片单片机之间的同步。
而本次设计中只含有一个单片机系统,因此选用内部时钟方式。
单片机的内部时钟方式由引脚XTAL1和XTAL2外接石英晶体和微调电容组成的振荡电路所构成,石英晶体起选频作用。
如图2-3-3所示:
图2-3-3系统的时钟电路
MCS-51单片机内部由一个用于构成振荡器的高增益反相放大器,该高增益反相放大器的输入端为51单片机的引脚XTAL1,输出为XTAL2。
如图所示,这两个引脚跨接石英晶体振荡器和微调电容,就构成了一个稳定的自激振荡器。
其中,电容通常取值为30pF左右,振荡器的频率选12MHz的石英晶体。
2.3.3复位电路
单片机在启动时都需要复位,复位使CPU和内部其他部件处于一个确定的初始状态,从这个状态开始工作。
单片机的复位引脚RST,高电平有效。
在时钟电路工作以后,当外部电路使得RST端出现两个机器周期以上的高电平,系统内部复位。
复位方式有两种:
上电复位和按钮复位。
复位电路工作原理如图2-3-4所示,VCC上电时,C充电,在10K电阻上出现电压,使得单片机复位;
几个毫秒后,C充满,10K电阻上电压为0,使得单片机进入工作状态。
工作期间,按下K,C放电,松开K,C又充电,在10K电阻上出现电压,使得单片机复位。
几个毫秒后,单片机进入工作状态。
2-3-4单片机的复位电路
2.3.4按键电路
由于本次设计要求实现对定时器进行预置定时时间的功能,所以在硬件电路中对单片机的两个I/O口外接两个按键,并通过软件来实现。
当外部控制按键K1和K2时,数码管上的预置数相应发生改变。
如图2-3-5所示:
图2-3-5按键电路图
2.3.5继电器及其驱动电路
为了使继电器能按要求正常工作,驱动电路如图2-3-6所示:
图2-3-6继电器及其驱动电路
在图中,当P3.4为高电平时,经过2K的电阻后,Q1的基极为高电平,Q1饱和导通,此时Q1的集电极为低电平,Q2截止,继电器J不工作;
当P3.4为低电平时,Q1截止,+12V的电源电压经过5.1K的电阻后,使得Q2基极的电压大于开启电压,则此时Q2导通,继电器J开始工作。
当Q2截止时,继电器释放磁片,二极管IN4001为了防止继电器此时产生的电流过大而击穿三极管Q2。
3.软件设计
3.1系统总体方案设计
本次课程设计采用的是proteus软件仿真,用Keil软件进行编译。
Proteus软件是英国Labcenterelectronics公司出版的EDA工具软件。
它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。
它是目前最好的仿真单片机及外围器件的工具。
软件部分由主程序,按键判断子程序,LED数码管显示子程序,倒计时子程序等组成。
3.2程序设计
3.2.1主程序
主程序的主要功能是调用按键判断子程序,负责预置时间的显示,读出并显示出正在计时的时间,判断T0和T1是否定时到一定时间,并相应对ss_flag1和ss_flag2赋值。
其程序流程图如图3-1所示:
图3-1主程序流程图
3.2.2按键判断子程序
按键判断子程序的功能是用来设置预置时间,当功能键按下一次后,再通过加键便可设置个位数;
当功能键按下两次后,再通过加键便可设置十位数。
其程序流程图如图3-2所示:
图3-2按键判断子程序
3.2.3LED数码管显示子程序
数码管显示子程序如图3-3所示:
图3-3LED数码管显示子程序
3.2.4倒计时子程序
倒计时子程序用于对用于对预置的时间进行倒计时,进入该程序后,每过1min的时间,数码管上的数值减1。
当数码管上的预置数减为0时,继电器开始工作。
其程序流程图如图3-4所示:
图3-4倒计时子程序
4实验仿真
进入proteus后,连接好电路,并将程序下载进去。
手动复位后,系统初始仿真图如图4-1所示:
图4-1复位后仿真电路图
当按下KS键一次时,数码管个位显示开始闪烁,此时再按下KAD键可以对定时时间的个位数进行设置,每按一次KAD键,个位数加一;
当再次按下KS键时,数码管十位显示开始闪烁,此时再按下KAD键可以对定时时间的十位数进行设置,每按一次KAD键,十位数加一;
当第三次按下KS键后,退出定时时间预置,数码管显示需要定时的时间。
如图4-2所示:
图4-2定时时间调试仿真
当定时时间减为0后,输出控制继电器位变为低电平,继电器通电,开始工作,如图4-3所示:
图4-3定时后继电器工作仿真图
5电路焊接与调试
5.1、电路板元件清单
名称
编号
个数
AT89C2051
U1
1
1805
U2
二位阴极八位数码管
U3
12M晶振
X1
继电器
RL1
发光二极管
L1
八位排阻
RP1
按键开关
K、KS、KAD
3
晶体管S9013
Q1、Q2
2
电阻
10KR1、R4、R5
2KR2
5.1KR3
电容
30PC1、C2
10UC3、C6
0.1UC4、C5
5.2、电路焊接
检测元器件是否可用,并记录元件的实际值。
按设计好的单元图连接好每个单元器件。
如图
经keil软件仿真后,调试好程序后,产生HEX文件。
在protues中按设计好的电路画好电路图,并将HEX文件下载到80C2051中,上电复位后可得结果如图所示:
将定时器设置为1min,如图所示:
5、误差分析
经测定,我们这组每一分钟与实际一分钟相差0.3s,我们从以下这些方面进行误差分析。
1定时程序中的定时误差,初始化程序中多余指令的执行误差;
2人机界面的访问误差(定时时间可能要再执行一些指令才能执行下面的指令);
3CPU的时钟误差,晶振误差
6、结论总结
这次所做的定时器的设计,我们只是从设计上刚刚满足老师所提出的要求,要求是定时器范围1-99分,开机上电后的隐含值为10分,采用LED数码管显示,定时时间可以任意设置。
定时时间设定后,启动及时,用电设备通电,数码管开始逐分倒计时。
在其中,个位小数点每秒闪亮一个来回;
计时到0分时,切断用电设备。
我们的软件设计是运用top-down的方法,将每个地方模块化、函数化进行设计,最后将软硬件结合,形成所要求的定时器。
课程设计体会
通过对这次对数字定时器的设计,让我了解了设计电路的程序,也让我了解了关于数字定时器的原理与设计理念。
从这次的课程设计中,让我更加明白了对待设计要本着认真、严谨的态度,把每个细节、原理都弄通透,并且要多分析各种应用电路图并进行比较,这样才能提高电子设计能力。
在这次的设计过程中也遇到了许多的障碍和问题,比如调试程序的时候出现许多的错误,但是通过查阅资料和认真的发现错误之后,得到了改正,最后得到了预期的结果。
通过这次学习,让我对各种电路都有了大概的了解,所以说,坐而言不如立而行,对于这些电路还是应该自己动手实际操作才会有深刻理解。
今后为了提高自己的电子设计能力,要多进行实际动手操作,要充分利用图书、期刊、网络等各种渠道了解新器件、新技术等。
参考文献
[1]康华光,陈大钦,张林.电子技术基础模拟部分(第五版)[M].高等教育出版社.2006.103-108
[2]余发山.单片机原理及应用技术[M].中国矿业大学出版社,2003.31-32
[3]51单片机学习网
[4]康华光,陈大钦,张林.电子技术基础数字部分(第五版)[M].高等教育出版社.2006.103-108
[5]沈亚钧.基于单片机的数字频率计设计[J].山西电子技术,2012,05:
14-17.
[6]曾美云.基于单片机数字时钟系统的设计[J].科技信息,2011,18:
530-532.
[7]朱振华.单片机控制智能定时器[J].中小企业管理与科技,2009,12:
279-280.
[8]张友德.单片微型机原理、应用与实践[M].复旦大学出版社.2006.
[9]陈明荧.8051单片机课程设计[M].清华大学出版社.2004.
[10]谢维成,杨加国.单片机原理与应用及C51程序设计(第二版)[M].清华大学出版社.2009:
127-132.
附件源程序代码
#include<
reg51.h>
#defineuintunsignedint
#defineucharunsignedchar
ucharsec,num,tt,min_sw,min_gw,ss,ss_flag1,ss_flag2;
sbitks=P3^2;
//功能键
sbitkad=P3^3;
//加键
sbitop=P3^4;
//输出控制继电器
sbitgw=P3^0;
//数码管十位
sbitsw=P3^1;
//数码管个位
sbitdd=P1^7;
ucharcodetable[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,};
/************延时函数***********/
voiddelay(uintz)
{
uintx,y;
for(x=z;
x>
0;
x--)
for(y=100;
y>
y--);
}
/**********定时器0中断服务程序********/
voidtime0()interrupt1
{
TH0=(65536-5000)/256;
TL0=(65536-5000)%256;
tt++;
/**********定时器1中断服务程序********/
voidtime1()interrupt3
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
ss++;
/**********倒计时子函数************/
voidcountdown()
sec++;
if(sec==60)
{
sec=0;
if(min_gw==0)
if(min_sw==0)
TR0=0;
TR1=0;
op=0;
}
else
min_sw--;
min_gw=9;
else{min_gw--;
}
/**************LED数码管显示子程序************/
voiddisplay()
{if(num==0)
if(ss_flag2==1)
{sw=1;
gw=1;
P1=table[min_sw];
sw=0;
delay(5);
sw=1;
P1=table[min_gw];
dd=1;
gw=0;
}
if(ss_flag2==0)
{
if(num==1)
{if(ss_flag1==1)
if(ss_flag1==0)
if(num==2)
{if(ss_flag1==1)
if(ss_flag1==0)
if(num==3)
{if(ss_flag2==1)
/*************按键判断子程序***************/
voidkeypress()
if(ks==0)
{
delay(10);
if(ks==0)
num++;
if(num==3)
{
num=0;
TR1=1;
}
if(num==1)
TR1=0;
if(num==2)
if(num==0)
while(!
ks);
if(kad==0)
if(kad==0)
min_gw++;
if(min_gw==10)
min_gw=0;
min_sw++;
if(min_sw==10)
min_sw=0;
kad);
/**********初始化**************/
voidinit()
{op=1;
sw=1;
gw=1;
num=0;
min_sw=1;
min_gw=0;
tt=0;
ss=0;
TMOD=0x11;
TH0=(65536-5000)/256;
EA=1;
ET0=1;
//开定时器中断
ET1=1;
IT0=0;
//外部中断低电平有效
IT1=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 定时器的设计论文 定时器 设计 论文 word
![提示](https://static.bdocx.com/images/bang_tan.gif)