答辩倒计时系统设计.docx

上传人:b****1 文档编号:656230 上传时间:2023-04-29 格式:DOCX 页数:25 大小:254.11KB
下载 相关 举报
答辩倒计时系统设计.docx_第1页
第1页 / 共25页
答辩倒计时系统设计.docx_第2页
第2页 / 共25页
答辩倒计时系统设计.docx_第3页
第3页 / 共25页
答辩倒计时系统设计.docx_第4页
第4页 / 共25页
答辩倒计时系统设计.docx_第5页
第5页 / 共25页
答辩倒计时系统设计.docx_第6页
第6页 / 共25页
答辩倒计时系统设计.docx_第7页
第7页 / 共25页
答辩倒计时系统设计.docx_第8页
第8页 / 共25页
答辩倒计时系统设计.docx_第9页
第9页 / 共25页
答辩倒计时系统设计.docx_第10页
第10页 / 共25页
答辩倒计时系统设计.docx_第11页
第11页 / 共25页
答辩倒计时系统设计.docx_第12页
第12页 / 共25页
答辩倒计时系统设计.docx_第13页
第13页 / 共25页
答辩倒计时系统设计.docx_第14页
第14页 / 共25页
答辩倒计时系统设计.docx_第15页
第15页 / 共25页
答辩倒计时系统设计.docx_第16页
第16页 / 共25页
答辩倒计时系统设计.docx_第17页
第17页 / 共25页
答辩倒计时系统设计.docx_第18页
第18页 / 共25页
答辩倒计时系统设计.docx_第19页
第19页 / 共25页
答辩倒计时系统设计.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

答辩倒计时系统设计.docx

《答辩倒计时系统设计.docx》由会员分享,可在线阅读,更多相关《答辩倒计时系统设计.docx(25页珍藏版)》请在冰点文库上搜索。

答辩倒计时系统设计.docx

答辩倒计时系统设计

答辩倒计时系统设计

摘要

本设计是一个基于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;

}

}

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2