倒计时器的设计实现.docx
- 文档编号:8871144
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:17
- 大小:551.87KB
倒计时器的设计实现.docx
《倒计时器的设计实现.docx》由会员分享,可在线阅读,更多相关《倒计时器的设计实现.docx(17页珍藏版)》请在冰豆网上搜索。
倒计时器的设计实现
目录
1倒计时器设计要求1
1.1设计要求1
1.2开发作用和意义1
2.单片机2
2.1单片机概述2
2.1.1单片机基础2
2.1.2单片机与单片机系统2
2.1.3单片机的产生与发展3
3.硬件设计4
3.1AT89C51的介绍4
3.2晶振电路5
3.3复位电路5
3.4按键电路6
3.5显示电路6
3.6蜂鸣器电路7
4.系统调试7
4.1系统调试工具KeiluVision37
4.2调试工具PROTEUS8
4.3调试方法8
4.4调试的主要步骤8
5.系统仿真10
5.1proteus仿真10
总结12
致谢13
参考文献14
程序15
1倒计时器设计要求
1.1设计要求
以AT89C51系统单片机为核心器件,组成一个99秒以内任意秒数的倒计时系统,即初值为99秒以内任意秒数,以一秒的速度进行倒计时。
系统有8个LED数码管显示器,选择显示十位、个位,而其余位设置为一直是暗的,没有任何显示。
此倒计时设计能够通过按键倒计时器设定任何不大于99秒的初值,同时设置有开始键、复位键,以达到可以重新设置初值的目的。
1.2开发作用和意义
现在单片机的应用在我们的生活中随处可见,这体现了它的重要性与实用性。
它从根本上改变了传统的控制系统设计思想和设计方法。
从前必须由模拟电路或数字电路实现的大部分功能,现在已能用单片机通过软件方法来实现了。
这种软件代替硬件的控制技术也称为微控制技术,是传统控制技术的一次革命。
本次设计的倒计时器就是采用的微控制计数的方法实现的。
计时器在单片机模块中是比较常见的的一个模块,计时器是一种用数字电路技术实现计时的装置,与机械式时钟相比具有更高的准确性和直观性,且无机械装置,具有更更长的使用寿命,因此得到了广泛的使用。
本次设计的99秒倒计时器是在计时器的基础上设计的,以倒计时器为基础,还可以设计更多对日常生活密切相关的设备,诸如定时自动报警、按时自动打铃、时间程序自动控制、定时广播、自动起闭路灯、定时开关烘箱、通断动力设备、甚至各种定时电气的自动启用等,都是以计时器为基础的。
通过对基于单片机控制的倒计时器的设计的过程中,让我对单片机的知识有一个初步解,在学习单片机基础知识的同时,结合C语言学习,实现一些简单的功能的设计,做到了主动学习和探索。
本设计不但节约成本,而且功能齐全,不但能实现倒计时器的功能,而且还能实现其他多种功能,如倒计时秒表、定时器等等。
而且由于本次这个基于51单片机的99秒的倒计时器无论是硬件方面还是在软件程序设计方面都比较简单,所以还可以通过扩展完成其他的功能,而且功能的相互转换也非常简单。
若作为一个部件生产产品,有很大的挖掘价值,也非常有吸引力。
本课题开发的意义在于它既节省了硬件成本,又能实现多功能。
既可做倒计时秒表,又可进行定时,还可以通过扩展完成其他功能,而且功能的相互转换也十分简单。
对于厂商,有很大的挖掘潜在价值的空间;对于消费者,也有很大的吸引力。
2.单片机
2.1单片机概述
单片机因将其主要组成部分集成在一个芯片上而得名,具体说就是把中央处理器CPU(Centralprocessingunit)。
随机存储器RAM(Randomaccessmemory)。
只读存储器ROM(Readonlymemory)。
中断系统、定时器/计数器以及I\O(Input/output)接口电路等主要微型机部件集成在一个芯片上。
虽然单片机只是一个芯片,但从组成和功能上看,它已具有了计算机系统的属性。
为此,称它为单片微型计算机SCMC(Singlechipmicrocomputer),简称单片机。
单片机主要应用与控制领域,用以实现各种测试和控制功能,为了强调起控制属性,也可以把单片机称为微控制器MCU(Microcontrollerunit)。
在国际上,“微控制器”的叫法似乎更通用一些,而在我国则比较习惯与“单片机”这一名称。
单片机在应用时,通常是处于控制系统的核心地位并融入其中,即以嵌入的方式进行使用,为了强调其"嵌入"的特点,也常常将单片机称为嵌入式微控制器EMCU(Embeddedmicrocontrollerunit)。
在单片机的电路和结构中,有许多嵌入式应用的特点。
2.1.1单片机基础
根据控制应用的需要,可以将单片机分成为通用型和专用型两种类型。
通用型单片机是一种基本芯片,他的内部资源比较丰富,性能全面且适用性强,能覆盖多种应用需要。
用户可以根据需要设计成各种不同应用的控制系统,即通用单片机有一个在设计的过程,通过用户的进一步设计,才能组建成一个以通用单片机芯片为核心再配以其它外围电路的应用控制系统。
然而在单片机的控制应用中,有许多时候是专门针对某个特定产品的,例如电度表和IC卡读写器上的单片机等。
这种应用的最大特点是针对性强而且数量巨大,为此厂家常与芯片制造商合作,设计和生产专用的单片机芯片。
由于专用单片机芯片是针对一种产品或一种控制应用而专门设计的,设计时已经对系统结构的最简化,软硬件资源利用的最优化。
2.1.2单片机与单片机系统
单片机通常是指芯片本身,它是有芯片制造商生产的,在它上面集成的是一些做为基本组成部分的运算器电路,控制器电路,存储器,中断系统,定时器/计数器以及输入/输出口电路等。
但一个单片机芯片并不能把计算机的全部电路都集成到其中,例如组成谐振电路和复位电路的石英晶体,电阻,电容等,这些元件在单片机系统中只能以散件的形式出现。
从中可以看到单片机和单片机系统的差别,即:
单片机只是一块芯片,而单片机系统则是在单片机芯片的基础上扩展其它电路或芯片结构的具有一定应用功能的计算机系统。
通常所说的单片机系统都是为实现某一控制应用需要由用户设计的,是一个围绕单片机芯片而建的计算机应用系统。
在单片机系统中,单片机处于核心地位,是构成单片机系统的硬件和软件基础。
2.1.3单片机的产生与发展
1.单片机的产生
电子计算机的发展经历了从电子管,晶体管,集成电路到大(超大)规模集成电路共四个阶段,即通常所说的第一代,第二代,第三代和第四代计算机。
现在广泛使用的微型计算机是大规模集成电路技术发展的产物,因此它属于第四代计算机,而单片机则是微型计算机的一个分支。
从1971年微型计算机问世以来,由于实际应用的需要,微型计算机向着两个不同的方向发展;一个是向高速度,大容量,高性能的高档微机方向发展;而另一个则是向稳定可靠、体积小和价格廉价的单片机方向发展。
但是两者在原理和技术上是紧密联系的。
2.单片机的发展继1971年微处理器的研制成功不久,就出现了单片的微型计算机即单片机,但最早出现的单片机是一位的,1976年Intel公司推出了8位的MCS-48系列单片机,它以体积小、控制功能全、价格低等特点,赢得了广泛的应用和好评,为单片机的发展奠定了坚实的基础,成为单片机发展史上一个重要阶段,其后,在MCS-48成功的刺激下,许多半导体芯片在生产厂商竞相研制和发展自己的单片机系列。
到80年代末,世界各地已相继研制出大约50个系列300多个品种的单片机产品,其中包括Motorola公司的6801,6802,Zilog公司的Z-8系列,Rockwell公司的6501,6502等,此外,日本的NEC公司,日立公司等也不甘落后,相继推出了各自的单片机品种。
尽管目前单片机的品种很多,但是我过使用最多的是Intel公司的MCS-51单片机系列。
MCS-51系列是在MCS-48的基础上于20世纪80年代初发展起来的,虽然它是8位的单片机,但其功能较MCS-48有很大的增强。
此外,它还具有品种全,兼容性强,软硬件资料丰富等特点,因此应用愈加广泛,成为比MCS-48更重要的单片机品种,直到现在,MCS-51仍不失为单片机的主流系列。
继8位单片机之后,又出现了16位单片机,1983年Intel公司推出的MCS-96系列单片机就是其中的典型代表。
与MCS-51相比,MCS-96不但字长增加一倍,而且在其他性能方面也有很大的提高,特别是芯片内还增加了一个4路或8路的10位A/D转换器,使其具有A/D转换的功能。
纵观单片机近30年的发展历程,单片机今后将向多功能、高性能、高速度、低电压、低功耗、低价格、外围电路简单化以及片内存储器容量增加的方向发展。
但其位数不一定会继续增加,尽管现在已经有了32位单片机,但使用的并不多。
可以预言,今后的单片机将是功能更强,集成度和可靠性更高而功耗更低,以及使用更方便等特点。
此外,专用化也是单片机的一个发展方向,针对单一用途的专用单片机将会越来越多。
3.硬件设计
3.1AT89C51的介绍
AT89C51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易
失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89C51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:
40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,4个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,内部集成看门狗计时器片内时钟振荡器。
图3-1为AT89C51在proteus中的引脚图。
图3-1AT89C51在proteus中的引脚图。
3.2晶振电路
设计中运用了2个30pF的电阻分别以C1和C2作为称为,还有一个11.0592MHZ的晶振备注为X1(当然设计中为了方便称为12MHZ)晶振电路的两端和单片机系统的18端口和19端口连接分别备注为X1和X2端口。
图3-2晶振电路
3.3复位电路
复位开关:
当程序在运行的过程之中需要重新开始运作时,就可以按下reset复位开关来实现数码管显示99来重新运作。
该电路的组成是由一个1000f称为C3的电容、和一个10K的R2组成。
一端接的是VCC一端接的是RST。
图3-3复位电路
3.4按键电路
本设计的按键共有三个,包括有系统复位按钮、开始按钮、暂停按钮。
三个按钮分别接入P1.0、P1.1、P1.2。
接线如图3.4所示:
图3.4按键模块
3.5显示电路
由于本设计要求倒计时范围最大为99秒,由LED显示模块显示剩余时间,显示格式为XX(秒).X,精确到0.1s的整数倍,故采用8位共阴极LED显示器。
如下图所示。
图3.5显示电路
3.6蜂鸣器电路
设计要求倒计时时间到时要有声音提醒信号产生,可选择一只蜂鸣器来实现这一功能。
选用电平式蜂鸣器。
蜂鸣器电路与单片机的接口:
蜂鸣器的输入接P3.0口,另一端接地。
当P3.0=1时,蜂鸣器中有电流通过,而产生蜂鸣声。
当P3.0=0时,蜂鸣器不发声。
连接图如图3-6所示。
图3.6蜂鸣器模块
4.系统调试
4.1系统调试工具KeiluVision3
KeiluVision3仿真器是一款利用其IDE集成开发环境作为仿真环境的廉价仿真器,是利用SST公司具有IAP功能的单片机SST89C58制作而成,主要是利用了SST89C58的IAP功能,所谓IAP功能是Inapplicationprogram的英文缩写,是在应用编程的意思,通俗一点讲就是:
它可以通过串口将用户的程序下载到单片机中,可以通过串口对单片机进行编程。
它之所以具有这种功能,实际上它有两块程序flash区,其中一块flash中运行的程序可以更改另外的一块程序flash区中的程序,正是利用这一特性才用它作成了仿真器,我们把仿真器的监控程序事先烧入SST89C58,监控程序通过SST89C58的串口和PC通讯,当使用KEILUVISION3的IDE环境仿真时,用户的程序通过串口被监控程序写入flash程序区中,当用户设置断点等操作仿真程序时,flash程序中的用户程序也在相应的更改,从而实现了仿真功能。
4.2调试工具PROTEUS
Proteus是一款EDA软件,该软件具有模拟电路仿真,数字电路仿真,单片机以及外围电路组成的系统的仿真,RS-232动态仿真,I2C调试器,SPI调试器,键盘和LCD系统的仿真,以及各种虚拟仪器,如示波器,逻辑分析仪,信号发生器等。
该软件目前支持的单片机类型有:
68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列、ARM以及各种外围芯片。
该软件还支持大量的存储器和外围芯片,所以,该软件是一款集单片机和SPICE分析于一身的仿真软件。
4.3调试方法
调试方法:
首先用Keil软件将C编译成HEX文件,打开Keil软件,新建一个文档,输入C程序,保存成C格式文件,然后新建工程,连接单片机为AT89C51,选择Optionsfortarget,选择OUTPUT子菜单,在CreateHEXFi前打钩,DeBug子菜单中,Settings选择ProteusVSMSimulator,USE前打钩,再次运行文件,成功后在目录下会生成HEX文件,打开Proteus软件,或直接点击DSN文件,双击单片机模板,点击文件夹式样的图标选择对应的HEX驱动文件,然后点击开始,进行调试。
4.4调试的主要步骤:
①点击
启动KeiluVision3。
②新建一个工程。
Project菜单——〉Newproject,选择好我们要保存的文件夹后,键入djs保存。
接着弹出CPU类型选择框,选择最常用的Atmel——〉AT89C51,按确定。
如下图4.4.1:
图4.4.1
③在工程中加入文件。
新建一个文件,文件菜单File——〉New,我们再点击savetheactivedocument按钮,(另存为)弹出对话框后,我们文件名框中键入djs.c(注意文件后缀名是.c)保存,这个时候C语言文件创建完毕。
④现在可以把文件加入到工程中去。
点击Target1前面的+号,右键单击SourceGroup1——〉选择AddFilestoGroup’SourceGroup1’,在弹出的对话框中选择一创建好的djs.c文件,选择添加Add,然后关闭此对话框。
如图4.4.2所示:
图4.4.2
⑤此时工程建成,可以写入程序了。
在写入程序的时候,通过软件设计模块,先写好主程序的框架,然后在需要调用子程序的时候,一个子程序一个子程序进行编写、调试。
⑥当程序完成之后,点击
Rebuildalltargetfiles按钮(重新编译所有目标文件)进行程序调试、查错,在程序下面的提示框Outputwindow中点击出错的提示,进行程序改错,当程序没有错误的时候,出现如下图4.4.3的对话框。
图4.4.3正确编译时对话框
5.系统仿真
5.1proteus仿真
在完成了电路图的仿真电路连接后,注意原件的封装以及规格,注意元件之间的连接,合理的布局。
将keil中的程序导入单片机内,按下proteus左下角的三角形按钮进行模拟仿真运行。
倒计时的初始化完成之后,操作者按下开始按键run,倒计时开始运行。
数码管设置的初始值为20秒,所以由20秒开始倒计时。
如下图5.11所示。
直至程序运行至00时,数码管停止变化。
当数码管显示00时,代表程序运行完成,此时,蜂鸣器会发出信号,进行提示。
如果在运行过过程中,在要求停止的情况下,课按下stop键,系统就会停止运行。
图5.1.1
倒计时程序运行之后,操作者按下开始按键stop键,倒计时器停止运行。
如下图5.1.2所示
图5.1.2
当要求重新开始计时时,可按下reset键进行复位。
当程序运行完成后,显示器将会停止数字滚动,一个完整的运行周期运行完毕。
总结
在本设计过程中,首先碰到的问题是对单片机系统的选择。
在对各种单片机系统的功能特性深入了解以后,结合应用场合,性价比综合考虑,进行比较,最后确定最优方案。
经过一个星期的反复理论分析和实践设计,完全实现了当初预期制作所要完成的功能!
将编好的程序存入控制系统AT89S52中,通过对锁存器的段和位的开、关实现数码管的显示。
本设计中设计了开始、暂停、复位按键,方便控制的多功能化。
当按下开始按键时,系统自动实施自减至运行一个周期为止。
假如在运行中需要停止,可按下暂停按键实现停止。
待需要再次继续运行的时候可按下开始按键。
复位按键主要是方便在操作过程中重新开始运行。
本次毕业设计的重点是对程序的设计,尽管本次的设计任务适量,但还是遇到了很多的问题。
刚选定毕业设计题目的时候,自己对整个毕业设计有模糊的思路,盲目的查了不少资料,可以说是找到了很多没有多大帮助的资料。
在导师的指导和自己的努力下,短短的一个月多时间里我完成了基于单片机控制的倒计时系统。
通过对元器件的选择、电路原理图的设计、板图的设计、程序的设计,知道了自己知识的欠缺,也同时让我学会了反向思维的方法,应该先做哪一步,后做哪一步,应该如何查找自己所需的资料。
并且最终实现了毕业设计的功能。
但是由于自己的知识水平还很有限,设计中难免会出现错误和不足之处,欢迎老师及同学们帮我指出,自己一定会认真改正。
致谢
感谢申红军老师的指导和同学们的帮助我们组完成了这次电子电路制作实训,在此过程中,首先感谢申红军老师在知识给予我们的引导与支持,从开始的Protel99se入门到最后的基本融会贯通都离不开申红军老师的点滴指导,最后到设计中遇到的难点凝点得到了申红军老师。
其次还得感谢我们小组的成员谢磊给我的帮助他在PCB板的制作、电路的调试方面给了帮助。
最后向申红军老师说声感谢,感谢您的无私指导!
同时向我们小组同学说一声谢谢,谢谢积极配合和帮助!
参考文献
[1]李朝青.单片机原理及接口技术(简明修订版)北京航空航天大学出版社,1998
[2]王文杰,徐文斌。
单片机应用技术,治金工业出版社,2008
[3]阎石.数字电子技术基础(第三版).北京高等教育出版社,1989
[4]高明远.ProtelDxp基础与应用(修订版).科学出版社,2007。
[5]郑步生,吴渭.Multisim200l电路设计及仿真入门与应用[M].电子工业出版社,2002.
[6]沈美明,温冬婵.IBM—PC汇编语言程序设计[M].清华大学出版社,2001.
[7]汪吉鹏.微型机原理与接口技术(第二版),高等教育出版社,2004.
程序:
#include
sbitK1=P2^0;//加1
sbitK2=P2^1;//减1
sbitK3=P2^2;//暂停
sbitK4=P2^3;//启动
sbitS0=P3^6;
sbitS1=P3^7;
sbitF=P2^5;//蜂鸣器
sbitLED=P2^4;
voiddisp(unsignedcharn);
unsignedcharm=0;
unsignedcharn=10;
unsignedcharcode
D[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
voiddelay(unsignedinta)
{unsignedcharb;
while(--a)
{for(b=0;b<125;b++);}
}
voidmain()
{EA=1;
ET0=1;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TR0=0;
while
(1)
{disp(n);
if(K1==0){while(K1==0);disp(++n);}
if(K2==0){while(K2==0);disp(--n);}
if(K3==0){while(K3==0);TR0=0;disp(n);}
if(K4==0){while(K4==0);TR0=1;disp(n);}
if(n==0){F=~F;}}
}
voiddisp(unsignedcharn)
{unsignedchari,j;
i=n/10;
j=n%10;
P1=D[i];
S0=0;
delay(20);
P3=0xff;
P1=D[j];
S1=0;
delay(20);
P3=0xff;
}
voidds()interrupt1
{TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++m>19)
{n--;
if(n==0){LED=0;F=0;while
(1)disp(0);m=0;}
m=0;}
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计时器 设计 实现
![提示](https://static.bdocx.com/images/bang_tan.gif)