基于51单片机的9999秒倒计时器设计.docx
- 文档编号:5035561
- 上传时间:2022-12-12
- 格式:DOCX
- 页数:20
- 大小:245.67KB
基于51单片机的9999秒倒计时器设计.docx
《基于51单片机的9999秒倒计时器设计.docx》由会员分享,可在线阅读,更多相关《基于51单片机的9999秒倒计时器设计.docx(20页珍藏版)》请在冰豆网上搜索。
基于51单片机的9999秒倒计时器设计
重庆工业职业技术学院
毕业设计(论文)
系部:
自动化系
专业班级:
08计控301
学生姓名:
左天军
二O一一年四月
课题名称
基于51单片机的9999秒倒计时器设计
内容及要求
1、设计目的:
综合运用己学课程的基本知识,独立进行单片机应用技术开发工作,掌握单片机程序设计、调试,应用电路设计、分析及调试检测。
2、技术指标:
1)、应用MCS-51单片机设计倒计时器电路。
2)、选用4位LED数码显示,倒计时间分4档可选,9999-0s,0999-0s,0099-0s,0009-0s
3)、硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。
设计的单元电路必须有工作原理,器件的作用,分析和计算过程
4)、软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;
5)、原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单。
基本工作量要求
完成资料及文献的查找、方案的初步设计、PCB板的设计、硬件的设计、软件流程的设计、系统的综合调试、实习报告。
进度计划
起止时间
工作内容
第一周
第二周
第三周
第四周
第五周
第六周
第七周
第八周
熟悉毕业设计方案,查阅相关资料
完成方案的初步设计,开题报告
电路的仿真和PCB板的设计
软件流程的设计和软件的编写
完成软件的编写与调试
硬件电路的装配与调试
电路的软硬件综合调试
完成毕业设计
参考文献
[1] 李朝青.单片机原理及接口技术(简明修订版).北京航空航天大学出版社,1998
[2] 李广弟.单片机基础[M].北京航空航天大学出版社,1994
[3] 阎石.数字电子技术基础(第三版).北京高等教育出版社,1989
[4] 赵晶.Prote199高级应用[M].人民邮电出版社,2000.
[5] 郑步生,吴渭.Multisim200l电路设计及仿真入门与应用[M].电子工业出版社,2002.
[6] 沈美明,温冬婵.IBM—PC汇编语言程序设计[M].清华大学出版社,2001.
重庆工业职业技术学院
毕业设计(论文)
系部:
自动化系
专业班级:
08计控301
课题名称:
基于51单片机的9999秒倒计时器设计
指导教师:
马玉利
学生姓名:
左天军
学号:
20084053127
二O一一年四月
二.总体设计方案7
2.1设计要求7
三.AT89C52单片机介绍7
3.1单片机结构介绍7
3.2单片机组成原理9
4.1上电自动复位原理10
5.1LED数码显示器的结构13
5.2LED数码显示器的分类15
5.3LED数码显示方式16
7.1程序设计18
7.2原理图23
7.3PCB图23
7.4元件清单24
八.结束语25
近年来随着计算机在社会领域的渗透,单片机的应用正在不断地走向深入,同时带动着传统控制检测日新月异的更新。
由于单片机具有体积小、易于产品化、面向控制、集成度高、功能强、可靠性高、价格低等特点,其在工业控制、机电一体化、智能仪表、通信等诸多领域中得到了广泛的应用。
在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用。
但是仅单片机方面知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软件结合,以作完善。
本论文针对倒计时系统的设计的需求,介绍了MCS-51单片机的部分基本原理,如51单片机的接口功能、中断、定时器等等。
倒计时系统需要用到锁存器、LED数码显示器等主要模块,通过不同的模块之间相互作用,完成倒计时的初步硬件结构。
对于倒计时器中的LED数码显示器来说,采用以软件为主的接口方法,即采用KeiluVision3软件程序进行译码。
【关键词】倒计时器单片机矩阵键盘KeiluVision3LED数码显示器
一.总体设计方案
倒计时器以AT89C52单片机为核心,起着控制作用。
系统包括四位数码管显示电路,按键电路,复位电路,时钟电路。
倒计时的总体设计思路分为五个模块:
按键电路模块,复位电路,晶振电路模块,AT89C52,数码管显示电路模块。
2.1设计要求:
1)、应用MCS-51单片机设计倒计时器电路。
2)、选用4位LED数码显示,倒计时间分4档可选,9999-0s,0999-0s,0099-0s,0009-0s
3)、硬件设计根据设计的任务选定合适的单片机,根据控制对象设计接口电路。
设计的单元电路必须有工作原理,器件的作用,分析和计算过程
4)、软件设计根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;
5)、原理图设计根据所确定的设计电路,利用Protel等有关工具软件绘制电路原理图、PCB板图、提供元器件清单。
二、硬件设计
180C52单片机
80C52芯片内部集成了CPU、RAM、ROM、定时/计数器和I/O口等各功能部件,并由内部总线把这些部件连接在一起。
80C52单片机内部包含以下一些功能部件:
①一个8位CPU;
②一个片内振荡器和时钟电路;
③4KBROM(80C51有4KB掩膜ROM,87C51有4KBEPROM,80C31片内有无ROM);
①128B内RAM;
②可寻址64KB的外ROM和外RAM控制电路;
③两个16位定时/计数器;
①21个特许功能寄存器;
②4个8位并行I/O口,共32条可编程I/O端线;
③一个可编程全双工串行口;5个中断源,可设置成2个优先级。
振荡器及
时序OSC
8051CPU
程序存储器4KBROM
数据存储器256B
2个16位定时器/计数器
64K总线扩展控制器
可编程I/O
可编程全双工串行口
不同型号MCS-51单片机CPU处理能力和指令系统完全兼容,只是存储器和I/O接口的配置有所不同。
其中8051主要包括算术/逻辑部件ALU、累加器A、只读存储器ROM、随机存储器RAM、程序计数器PC、定时器/计数器、I/O接口电路等,还有堆栈寄存器SP等部件。
这些部件集成在一块芯片上,通过内部总线连接,构成完整的微型计算机。
2复位电路
复位是单片机的初始化操作,只需给AT89C52的复位引脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就可得单片机复位.复位时,PC初始化为0000H,使单片机从OUT单元开始执行程序。
除了进入系统的正常初始化之外,由于程序运行出错或操作错误而使系统处于死锁状态。
为摆脱死锁状态,也需按复位键使得RST脚为高电平,使单片机重新启动。
在系统中,有时会出现显示不正常。
为了调试方便,需要设计一个复位电路。
AT89C52单片机复位电路共有上电复位、按键电平复位和按键脉冲复位。
本系统的复位电路主要完成系统的上电复位和系统在运行时用户的按键复位功能。
复位电路可由简单的RC电路构成,也可使用其它的相对复杂,但功能更完善的电路。
本系统采用的电路工作原理是:
上电瞬间,RC电路充电,RESET引脚端出现正脉冲,只要RESET保持10ms以上高电平,就能使单片机有效的复位。
当时钟频率选用12MHz时,C取10uF,R取10KΩ,上电自动复位电路由上电瞬间C与R构成充电电路,RESET端的电位与电源Vcc相同,随着充电电流的减少,RESET的电位逐渐下降。
RC时间常数越大,上电时RESET端保持高电平的时间越长,这组参数足以保证复位操作。
若复位电路失效,加电后CPU从一个随机的状态开始工作,系统就不能正常运行。
按键S5的功能是按键复位,按下S5键时RST为高电平,只要保持10ms以上的高电平,就可以使单片机复位。
按键复位用在系统运行时的复位,使系统重新运行。
3上电自动复位电路
RST引脚是复位信号的输入端,只要高电平的复位信号持续两个机器周期以上的有效时间,就可以使单片机上电复位。
上电自动复位是通过电容充电实现的,上电瞬间,RST端电位与Vcc相同,随充电电流的减少,RST的电位逐渐下降,直到复位信号无效。
按键复位在此不在作过多的介绍,其原理和上电复位是相同的。
但其采用的是脉冲复位电路和电平复位电路两种。
①本电路应用定时器0方式1工作方式,该方式是一个16位计数器的计时中断法。
所以工作方式寄存器TMOD的M1M0两位为01。
②设置定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。
比如,12M的晶振每秒可产生1M的机器周期[1],50ms就是50000个机器周期,定时器0工作方式1工作,计数长度为
=65536个外部脉冲,65536-50000周期=初值15536,从15536开始计数,总共累加50000次计数器产生一次溢出,所以定时器的高八位和低八位TH0和TL0的值为:
TH0=(65536-TIME)/256;
TL0=(65536-TIME)%256;其中TIME=50000;
其中TL0是低八位当达到256的时候,向高八位进1,然后低八位重新计数,所以高八位对差值求整,低八位对差值求余。
③由于采用的是定时器0所以TMOD的高四位为0000;选通控制只要用软件使TR0就启动了定时器,所以门控位GATE为0;
表示设置为定时方式。
所以工作方式TMOD=00000001H=0X01H。
复位电路:
4.显示电路
显示功能与硬件关系极大,当硬件固定后,如何在不引起操作者误解的前提下提供尽可能丰富的信息,全靠软件来解决。
通常在显示上采用的方法一般包括两种:
一种是静态显示,另一种是动态显示。
其中静态显示的特点是显示稳定不闪烁,程序编写简单,但占用端口资源多,所耗得电能较大;动态显示的特点是显示稳定性没静态好,程序编写复杂,但是相对静态显示而言占用端口资源少。
在本设计中,为了减少端口资源,降低电能消耗,采用的是动态显示方法。
本系统的倒计时时间的最大范围是9999秒,要求精确到秒,显示格式是9999/999/99/9。
从格式可知数码管显示电路要用到4位数码管。
考虑到数码管的段和位比较多,本系统选了两个4位一体的共阳数码管和一个一位的共阳数码管。
数码管有段选和位选控制,在此电路中有8个位选,8个段选,分别用单片机的P0口和P1进行8个位的控制。
5.1LED数码显示器的结构
LED数码显示器是一种有LED发光二极管组合显示字符的显示器件。
它使用了8个LED发光二极管,其中7个用于显示字符,剩下的一个用于显示小数点,故通常称之为7段发光二极管数码器。
在数码管中,若将二极管的阳极连在一起,称为共阳极数码管;若将二极管的阴极连在一起,称为共阴极数码管。
如图3.7所示。
图3.7(a)为a到g在数码管的编排,(b)分别为共阴极、共阳极电路
当发光二极管导通时,它就会发光。
每个二极管就是一个笔画,若干个二极管发光时,就构成了一个显示字符。
若将单片机的I/O口与数码管的a——g及h相连,高电平的位对应的发光二极管亮,即I/O输出不同的代码,就可以控制数码管显示不同的字符。
例如:
当I/O输出得代码为00111111时,数码管显示的字符为0。
这样形成的显示字符的代码称为显示代码或者段选码。
本次设计的实验板用的共阴LED显示器,根据电路连接图16进制数字的显示代码如表3.1所示[2]。
表3.116进制数字的显示代码
16进制
h
g
f
e
d
c
b
a
显示代码
0
0
0
1
1
1
1
1
1
3FH
1
0
0
0
0
0
1
1
0
06H
2
0
1
0
1
1
0
1
1
5BH
3
0
1
0
0
1
1
1
1
4FH
4
0
1
1
0
0
1
1
0
66H
5
0
1
1
0
1
1
0
1
6DH
6
0
1
1
1
1
1
0
1
7DH
7
0
0
0
0
0
1
1
1
07H
8
0
1
1
1
1
1
1
1
7FH
9
0
1
1
0
1
1
1
1
6FH
A
0
1
1
1
0
1
1
1
77H
B
0
1
1
1
1
1
0
0
7CH
C
0
0
1
1
1
0
0
1
39H
D
0
1
0
1
1
1
1
0
5EH
E
0
1
1
1
1
0
0
1
79H
F
0
1
1
1
0
0
0
1
71H
.
1
0
0
0
0
0
0
0
80H
5.3LED数码管显示方式
LED显示器工作方式有两种:
静态显示方式和动态显示方式。
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。
当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。
这种方法的优点是占用CPU时间少,显示便于监测和控制。
缺点是硬件电路比较复杂,成本较高。
本次设计采用的是动态显示方式。
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。
选亮数码管采用动态扫描显示。
所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。
动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
六.时钟电路模块
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准有条不紊地一拍一拍地工作的。
因此,时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统得稳定性。
常用的时钟电路有两种方式:
一种是内部时钟方式,另一种是外部时钟方式。
单片机必须在时钟的驱动下才能工作。
在单片机内部有一个时钟振荡电路,只要外界一个振荡源就能产生一定的时钟信号送到单片机内部的各个单元,决定单片机的工作速度。
本系统使用的是内部时钟方式。
一般选用石英晶体振荡器。
此电路在加电大约延迟10ms后振荡器起振,在XTAL2引脚产生幅度为3V左右的正弦波时钟信号,其振荡频率主要由石英晶振的频率确定。
电路中两个电容的作用有两个:
一是帮助振荡器起振;二是对振荡器的频率进行微调。
七.软件设计
7.1程序设计
#include
sbitKey1=P3^2;
sbitKey2=P3^3;
sbitKey3=P3^4;
sbitKey4=P3^5;
unsignedcharKeyV,TempKeyV;
sbitP34=P1^3;
sbitP35=P1^2;
sbitP36=P1^1;
sbitP37=P1^0;
sbitJDQ=P2^0;
sbitbeep=P2^1;
unsignedintjs;
unsignedintds;
unsignedcharjsflag;
staticunsignedinti;
unsignedcharcodeLEDDis[]=
{0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0xFF,0xBF};
unsignedcharcodetable[]={0x3F,0x06,0x5B,0x4F,
0x66,0x6D,0x7D,0x07,
0x7F,0x6F,0x77,0x7C,
0x39,0x5E,0x79,0x71};
voidDelay(unsignedintii)
{
unsignedintjj;
for(;ii>0;ii--)
for(jj=0;jj<125;jj++)
{;}
}
voidDelay500(unsignedintiii)
{
unsignedintjjj;
for(;iii>0;iii--)
for(jjj=0;jjj<60;jjj++)
{;}
}
voidmain()
{
EA=1; //允许CPU中断
ET0=1; //定时器0中断打开
TMOD=0x1; //设定时器0为模式1,16位模式
TH0=0xB1;
TL0=0xDF; //设定时值为
TR0=1;
ds=0;
KeyV=0;
TempKeyV=0;
jsflag=0;
while
(1);
}
voidKeyAndDis_Time0(void)interrupt1using2
{
TH0=0xB1;
TL0=0xDF; //设定时值为
if(!
Key1)
KeyV=1;
if(!
Key2)
KeyV=2;
if(KeyV!
=0) //有键按下
{
Delay(10); //延时防抖 按下10ms再测
if(!
Key1)
TempKeyV=1;
if(!
Key2)
TempKeyV=2;
if(KeyV==TempKeyV)
{
if(KeyV==1){
jsflag=0;
if(ds==0){
ds=600;
{
if(Key1==1)
{
ds=9999;
}
if(Key2==1)
{
ds=999;
}
if(Key3==1)
{
ds=99;
}
if(Key4==1)
{
ds=9;
}
}
}
js=js+1;
JDQ=0;
if(js==45)
{
beep=0;
}
if(js==50)
{
js=0;
ds=ds-1;
beep=1;
}
if(KeyV==2)
{
jsflag=1;
}
}
}
if(jsflag==1){
JDQ=1;
}
if(ds==0){
JDQ=1;
jsflag=1;
KeyV=0;
}
P0=LEDDis[ds/1000];
P34=0;
Delay500(5);
P34=1;
P0=LEDDis[ds/100%10];
P35=0;
Delay500(5);
P35=1;
P0=LEDDis[ds/10%10];
P36=0;
Delay500(5);
P36=1;
P0=LEDDis[ds%10];
P37=0;
Delay500(5);
P37=1;
7.2原理图
7.3PCB图
7.4元件清单
名称
参数和型号
数量
单片机
AT89C52
1块
PNP三极管
S8550
4个
电阻
1K
9个
470
9个
10K(8位排阻)
1个
10K
1个
数码管
1个
共阳4位数码管
1个
瓷片电容
30PF
2个
晶振
12M
1个
杜邦线
单
若干
电解电容
10uf
1个
排针
大
1排
微动开关
5个
蜂鸣器
1个
单片机插座
40脚
1个
八.结束语
用单片机及有关电子元件设计的倒计时器类型很多,也有较多的实用电路参考。
但具体电路结构要根据应用范围来进行有针对性的设计。
应做到电路实用,结构简单,成本低廉,方便使用,定型稳的标准。
应具有较强的可操作性。
本设计方案是对单片机倒计时器的一个起草,若有不成熟的地方,请各位老师指导,多谢。
本电路的设计在马玉利老师的精心指导下,经过了反复的修改,纠正了不成熟的的设计方案,设计的书写格式上,也得到马老师指点,可以说没有马玉利老师的指导,我是完不成该毕业设计的。
在此我表示衷心的谢意。
九.参考文献
[1] 李朝青.单片机原理及接口技术(简明修订版).北京航空航天大学出版社,1998
[2] 李广弟.单片机基础[M].北京航空航天大学出版社,1994
[3] 阎石.数字电子技术基础(第三版).北京高等教育出版社,1989
[4] 赵晶.Prote199高级应用[M].人民邮电出版社,2000.
[5] 郑步生,吴渭.Multisim200l电路设计及仿真入门与应用[M].电子工业出版社,2002.
[6] 沈美明,温冬婵.IBM—PC汇编语言程序设计[M].清华大学出版社,2001.
[7] 张友德,赵志英,涂时亮.单片微型机原理、应用与实验[M].上海复旦大学出版社,2000.
重庆工业职业技术学院
毕业设计(论文)答辩记录
学生姓名:
___左天军_________班级:
_08计控301_______________
课题名称:
____基于52单片机的9999秒倒计时器的设计_____________________
指导教师:
马玉利
答辩人员:
左天军
答辩记录:
记录人:
日期:
重庆工业职业技术学院
毕业设计(论文)评分表
姓名
左天军
班级
08计控301
学号
20084053127
毕业设计(论文)题目
基于52单片机的9999秒倒计时器的设计
指导老师
王湘林老师
答辩日期
年月日
类别
项目
分值
评分
教师签名
平时成绩
(占20%)
学习态度与规范要求
10
(指导教师)
文献资料与
实际能力
10
水平成绩
(占50%)
工作量(图纸、作品、设计说明书等)
5
(指导教师)
专业水平与完成质量
30
设计成果实用价值、工艺水平、创新性
10
文字表达
5
答辩成绩
(占30%)
设计(论文)主要内容阐述
10
(答辩组长)
回答指定的主要问题情况
10
回答进一步深入的问题情况
10
总评成绩
指导教师评语
教研室主任(签名)
年月日
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 9999 计时器 设计