答辩倒计时系统设计.docx
- 文档编号:30147515
- 上传时间:2023-08-05
- 格式:DOCX
- 页数:25
- 大小:254.13KB
答辩倒计时系统设计.docx
《答辩倒计时系统设计.docx》由会员分享,可在线阅读,更多相关《答辩倒计时系统设计.docx(25页珍藏版)》请在冰豆网上搜索。
答辩倒计时系统设计
答辩倒计时系统设计
摘要
本设计是一个基于AT89C51单片机对答辩倒计时系统进行设计,依据单片机技术原理,通过硬件电路制作以及软件编译,设计制作出一个倒计时为15分钟的答辩倒计时器。
该倒计时器主要由按键电路、复位电路、晶振电路、数码管显示电路以及蜂鸣器组成。
本倒计时系统能够在计时只剩余三分钟时发出声进行提示,并且结束时长鸣直至重启或关闭,由LED灯显示电源的开启状况,由数码管显示实时时间。
本设计主要特点是计时从15到00分钟的倒计时系统,方便了在计时精度要求不高的情况下计时,因为计时精度为1,所以系统电路比较简单。
另外硬件部分设置了复位、开始、暂停、停止按键,可以对倒计时系统进行计时控制。
软件系统采用C语言编写程序,硬件系统利用PROTEUS强大的功能来实现,在仿真中可以观察到实际的工作状态。
关键字:
倒计时系统;AT89C51单片机;Keil;Proteus
1设计目的与要求
1.1设计目的
本设计基于AT89C51单片机进行15分钟的答辩倒计时系统的设计。
1.训练学生综合运用已学课程的基本知识,独立进行单片机应用技术开发工作;
2.掌握单片机程序设计、调试,应用电路设计、分析及调试检测。
3.学习软硬件设计的工作方法、工作内容、工作步骤。
4.提高编程、调试能力、理论联系实际的能力,提高动手能力和分析问题、解决问题的能力。
1.2设计要求
1.完成15分钟的倒计时,按下按键时计时器开始;
2.在剩下3分钟时提示一次;
3.时间到时蜂鸣器长响。
2系统硬件设计
2.1总体设计方案
本次课程设计的目的是要设计一个倒计时系统,此电路能完成一次15分钟的倒计时功能,当计时剩余3分钟时蜂鸣器提示一次,当倒计时结束时蜂鸣器长鸣,只有按下停止键才能够停止。
另外,此倒计时器能够手动复位,并有开始、停止、暂停等功能。
具体的设计思路为:
1.利用单片机的定时计数功能精确地完成15分钟成倒计时功能,要求电路为9秒递减计时,每隔1秒钟计时器减1;
2.电路具有时间显示功能,要求用数码管,能显示任意时刻的剩余时间;
3.上电时4个数码管显示为:
1500(即显示为15分钟);
4.按下“开始键”计时器开始计时,在剩下3分钟时提示一次,响3声提醒答辩者抓紧时间,时间到时蜂鸣器长响,按下“停止键”结束;
5.具有复位、开始、暂停、停止功能:
按下复位,显示为1500;按下开始,计时开始;按下暂停,倒计时暂停,再次按下,计时开始;按下停止,计时结束。
本次课程设计利用MCS51单片机系列AT89C51为依托,利用P0-P3口用编程控制输入输出来实现倒计时功能:
P1口为开关控制电路的输入端,通过按压式键盘利用查询函数轮流查询有无键按下;
P0口接共阴数码管,有上拉电阻;
P2口为选择数码管,采用动态显示;
P3口接蜂鸣器,做提示报警电路。
基于这些设计,本次设计的硬件系统电路框图如图2.1所示。
图2.1硬件系统电路框图
2.2主要元件
2.2.1AT89C51单片机及其引脚说明
AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammableandErasableReadOnlyMemory)的低电压,高性能CMOS8位微处理器,俗称单片机[1][2]。
AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除100次。
该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。
AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线。
AT89C51具有如下特点:
40个引脚;4kBytesFlash片内程序存储器;128bytes的随机存取数据存储器(RAM);32个外部双向输入/输出(I/O)口;5个中断优先级2层中断嵌套中断;2个16位可编程定时计数器;2个全双工串行通信口;看门狗(WDT)电路;片内时钟振荡器。
AT89C51单片机的引脚图如图2.2.1所示
图2.2.1AT89C51单片机引脚图
2.2.274LS245
74LS245是一中常用的芯片,可以用来驱动LED或者其他的设备[3]。
74LS245是8路同相三态双向总线收发器,可双向传输数据。
74LS245还具有双向三态功能,既可以输出,也可以输入数据[4]。
其引脚图如图2.2.2所示。
图2.2.274LS245引脚图
当8051单片机的P0口总线负载达到或是超过P0最大负载能力时,必须接入74LS245总线驱动器;当片选端
低电平有效时,DIR=“0”,信号由B口向A口进行传输;接收时“DIR=”;信号由A口向B口进行传输;发送时,当
为高电平时,A、B口均为高阻态。
其功能可用真值表1来表示。
表174LS245共能表
DIR
操作
L
L
B向A传输
L
L
A向B传输
H
—
高阻态
2.2.3数码管:
7SEG-MPX4-CC-BLUE
单片机中通常使用7段LED作为显示电路,LED是发光二极管显示器的缩写。
LED显示器由于结构简单,价格便宜,体积小,亮度高,电压低,可靠性高,寿命长,响应速度快,颜色鲜艳,配置灵活,与单片机接口方便而得到广泛应用。
LED显示器是由若干个发光二极管组成显示字段的显示部件,当发光二极管导通时,相应的一个点或一个笔划发光,控制不同组合的二极管导通,就能显示出各种字符。
因为共阴极的LED数码管它的驱动电流是分开的,在单片机进行动态扫描的时候不会影响彼此的电流,故该系统中的4位LED数码管7SEG-MPX4-CC-BLUE,均用共阴极的数码管。
7SEG-MPX4-CC-BLUE预览图如图2.2.3所示。
图2.2.37SEG-MPX4-CC-BLUE预览图
2.3局部电路设计
2.3.1晶振电路
单片机的时钟产生方法有两种:
内部时钟方式和外部时钟方式。
本系统中AT89C51单片机采用内部时钟方式。
最常用的内部时钟方式是采用外接晶体和电容组成的并联谐振回路。
振荡晶体可在1.2MHz~12MHz之间,电容值无严格要求。
外部振荡方式是把已有的时钟信号引入单片机内,这种方式宜用来使单片机的时钟与外部信号保持一致。
为了电路的稳定性起见,晶振的两引脚处接入两个10pF-50pF的瓷片电容接地来削减偕波对电路的稳定性的影响,设计的是主流是接入两个33pF的瓷片电容,故此次电路用33pF。
本次设计的晶振电路如图2.3.1所示。
图2.3.1晶振电路
2.3.2复位电路
AT89C52单片机复位电路有上电复位、按键电平复位和按键脉冲复位。
本次设计采用手动复位,可以在按下按键后是电路显示恢复到倒计时之初的1500显示。
其电路设计如图2.3.2所示。
工作原理是:
上电瞬间,RC电路充电,RESET引脚端出现正脉冲,只要RESET保持10ms以上高电平,就能使单片机有效的复位。
上电自动复位电路由上电瞬间C与R构成充电电路,RESET端的电位与电源Vcc相同,随着充电电流的减少,RESET的电位逐渐下降。
图中RC时间常数越大,上电时RESET端保持高电平的时间越长,图中这组参数足以保证复位操作。
图2.3.2复位电路
2.3.3开关控制电路
这里利用单片机的P1端I/O口和开关相连实现按键的控制,共有3个按键:
开始键:
按下后,倒计时系统计时开始。
暂停键:
此按键只有在倒计时进行时才有效。
按下后,倒计时系统暂时停止计时;再次按下后,继续前面剩余时间继续实现倒数计时功能。
停止键:
按下后,倒计时系统停止工作。
开关按键电路设计如图2.3.3所示。
图2.3.3开关控制电路
2.3.4显示电路
1.LED显示器原理
LED有着显示亮度高、响应速度快的特点,最常用的是七段式LED显示器
,又称数码管。
七段LED显示器内部由七个条形发光二极管和一个小圆点发光二极管组成,根据各管的亮暗组合成字符。
常见LED的管脚排列见下图,其中COM为公共点,根据内部发光二极管的接线形式,可分成共阴极型和共阳极型,如图2.3.4-1所示。
(a)(b)
图2.3.4-1LED
(a)为共阴数码管(b)为共阳数码型
对于共阴数码管,给其高电平数码管就会显示;对于共阳数码管,给其低电平数码管就会显示。
数码管的八段分别用二进制控制0和1的不同显示,就能显示出所要的数字。
本系统设计采用共阴极数码管,设计时数码管的段码为:
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}[6]
本系统的倒计时时间的最大范围是15分钟,显示格式是15.00,从格式可知数码管显示电路要用到4位数码管。
本设计采用四段数码管7SEG-MPX4-CC-BLUE,分别用单片机的P0口和P1进行8个位的控制[7][8]。
2.LED数码管的接口
数码管的接口有静态接口和动态接口。
静态驱动是指每个数码管的每一个段码都由一个单片机的I/O口进行驱动。
数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一。
它是将所有数码管的8个显示笔划的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路。
位选通由各自独立的I/O线控制,具体显示取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮,通过分时轮流控制各个数码管的的COM端,使各个数码管轮流受控显示。
动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低[7][9]。
本次电路设计采用的是共阴极数码管,采用动态显示接口,通过动态扫描方式驱动,在单片机与数码管之间加74LS245进行锁存,故此设计的显示电路如图2.3.4-2所示。
图2.3.4-2显示电路
2.3.5提示警告电路
在设计中要求在倒计时剩余3分钟时,要有提示,倒计时结束时蜂鸣器能够长鸣,以提示计时结束。
故提示警告电路设计如图2.3.5所示。
图2.3.5提示警告电路
2.4总体电路设计
根据系统设计要求,可设计为:
晶振两端与AT89C51的方向放大器的输入XATL1和输出XATL2组成晶振电路;用按键、电容、电阻组成RC回路,与RST相连组成复位电路;开始键、暂停键、停止键与P1口的1-3做成外围控制电路,同时用发光二级管与P1.4口相连组成状态电路,以显示电路工作状态;4段数码管与单片机P0通过74LS245同相三态双向总线收发器相连,进行数据交流;数码管的片选端与P2口相连,控制数码管的选通;系统的提示蜂鸣器与单片机的P3.0相连构成系统的提示警告电路。
根据上述分析,可设计如图2.4所示的总体硬件电路图。
图2.4系统硬件设计总电路图
3系统软件设计
3.1总体程序流图
根据系统设计要求以及对硬件电路的设计,可设计为如图3.1所示的主程序流程框图。
图3.1系统总流程框图
3.2倒计时器设计流程框图
倒计时器的设计流程框图如图3.2所示。
图3.2倒计时器射击流程框图
3.3按键消抖流程框图
按键消抖设计流程框图如图3.3所示
图3.3按键消抖流程框图
4仿真与调试
在系统硬件以及软件编译好之后,将程序加载到AY89C51上,进行15分钟倒计时仿真。
4.1上电后系统显示
加载程序之后开始运行,上电后电路显示为15.00,如图4.1所示。
图4.1上电时显示电路显示
4.2按下“开始键”
按下“开始键”之后,系统开始从15.00分钟倒计时,再剩余3分钟时,蜂鸣器响三声,数码管显示电路显示时间闪烁。
倒计时过程中几个时刻显示如图4.2所示。
(a)时刻1
(b)时刻2
图4.2倒计时仿真中几个时刻的电路显示
(c)剩余3分钟时电路显示
(d)计时结束蜂鸣器长响时电路
图4.2倒计时仿真中几个时刻的电路显示
4.3按下“停止键”和“复位键”
按下停止键后,数码管显示为00.00,按下复位键后,数码管显示为15.00,其仿真电路显示如图4.3所示。
(a)按下停止键
(b)按下复位键
图4.3按下“停止键”和“复位键”的电路显示
5总结
5.1设计总结
1.软件、硬件设计的实现
本次设计的硬件是利用单片机、74LS245同相三态双向总线收发器、数码管、蜂鸣器、按键等主要元器件组成,软件的设计是利用C语言进行编程,并在Keil进行编译调试,最后加载到单片机中进行仿真,因蜂鸣器不能够加载音乐,故此在设计中利用Speaker代替蜂鸣器。
通过设计实现了系统设计所要求的功能:
既能够准确实现答辩倒计时系统的15分钟的倒计时;能够在系统剩余3分钟时播放音乐,提示3秒钟;能够在倒计时结束后蜂鸣器长响,并且在按下“停止键”使蜂鸣器停止长响;对于外围的控制按键,实现了开始、暂停、停止等功能。
2.设计的不足
本次课程设计是用AT89C51单片机、各种芯片及接口电路设计答辩倒计时系统。
经过认真地查找资料、编写程序以及调试程序,结果满足设计要求,仿真无误。
实现了设计要求的功能。
不足之处在于,该系统设计太局限,不能满足任意倒计时系统的需求。
应该设计为可预置倒计时时间并能按照设置的时间进行倒计时,并有相关提示和警告功能。
5.2心得
本次设计对于理论知识的要求很高,在设计过程中要根据设计要求不断修改设计方案,详细的查阅整理相关资料,再分别进行软硬件的设计,直到仿真成功,每一步对我来说都是挑战和进步。
在此期间,巩固了所学的专业知识,也学到了其他很多新知识,同时也培养了我独立思考和动手的能力。
参考文献
[1]郭文川.单片机原理与接口技术.中国农业出版社,2007.8
[2]武汉理工大学《单片机原理与应用》课程设计说明书
[3]
[4]http:
//www.go-
[5]阎石.数字电子技术基础.第4版.北京:
高等教育出版社,2002
[6]张迎新等.单片机初级教程——单片机基础.北京:
高等教育出版社,2004
[7]李军.51系列单片机高级实例开发指南.北京:
北京航空航天大学出版社,2004
[8]张伟.单片机原理及应用.北京:
机械工业出版社,2002
[9]戢卫平,胡耀辉.单片机系统开发实力经典.北京:
冶金工业出版社
附录1电路原理图
附录一系统设计原理图
附录2C语言源程序
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitKstart=P1^0;
sbitKpause=P1^1;
sbitKstop=P1^2;
sbitBeep=P3^0;
sbitAlarm=P1^3;
ucharcodeDSY_CODE[]=
{
0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f
};
ucharDSY_Buffer[4]={1,5,0,0};
uintClockNum=1500;
bitstartflag=0;
bitstopflag=0;
bitsoundflag=1;
voidInitTIMER0(void);
voidDelayMS(uintx)
{
uchari;
while(x--)
{
for(i=0;i<120;i++);
}
}
voidPlay(uchart,ucharp)
{
uchari;
for(i=0;i
{
Beep=~Beep;
DelayMS(t);
}
Beep=0;
}
voidPlay1()
{
while(soundflag)
{
Beep=~Beep;
DelayMS
(1);
}
Beep=0;
}
voidmain()
{
uchari,m;
InitTIMER0();
startflag=0;
stopflag=1;
Alarm=1;
Beep=0;
P0=0xff;
P2=0xff;
while
(1)
{
m=0xfe;
DSY_Buffer[0]=ClockNum/1000;
DSY_Buffer[1]=(ClockNum%1000)/100;
DSY_Buffer[2]=(ClockNum%100)/10;
DSY_Buffer[3]=ClockNum%10;
for(i=0;i<4;i++)
{
P2=m;
m=_crol_(m,1);
//if(i==1)
//DSY_CODE[DSY_Buffer[1]]|=0x80;
P0=((i==1)?
(DSY_CODE[DSY_Buffer[i]]|0x80):
DSY_CODE[DSY_Buffer[i]]);
DelayMS(10);
}
if(300==ClockNum)
Play(3,300);
elseif((0==ClockNum)&&(0==stopflag)&&soundflag)
Play1();
if(!
stopflag)
{
ClockNum=0;
Alarm=0;
Beep=0;
}
}
}
voidInitTIMER0(void)
{
EA=1;
TMOD|=0x01;//定时器0设置为16位手动重装载定时器
TH0=0x4c;
TL0=0x00;//TH0=0x4C,TL0=0x00//50ms
TR0=1;
ET0=1;
}
voidtimer0(void)interrupt1
{
staticuintcount=0;
TH0=0x4c;
TL0=0x00;
if(Kstart==0)
{
while(Kstart==0);
startflag=1;
if(0==stopflag)
ClockNum=1500;
stopflag=1;
Alarm=1;
}
if(Kpause==0)
{
while(Kpause==0);
if(1500!
=ClockNum)
startflag=~startflag;
//soundflag=1;
}
if(Kstop==0)
{
while(Kstop==0);
stopflag=0;
soundflag=0;
}
if(count++==20)//1s
{
count=0;
if(startflag)
{
if(stopflag)
{
if(0==(ClockNum%100))
ClockNum-=41;
elseClockNum--;
if((ClockNum==0))
stopflag=0;
soundflag=1;
}
}
}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 答辩 倒计时 系统 设计