浙江邮电职业技术学院
单片机秒表设计课程设计报告
学年( 第一 )学期
班级 姓名
学号
教师
电子技术实训中心
1
2
秒表设计
摘要:本设计是设计一个单片机控制的多功能秒表系统。 近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。本秒表采用AT89C52为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为00~99秒,每秒自动加1,能正确地进行加、减(倒)计时,快加,快减,可以同时记录4个相对独立的时间,通过上翻下翻来查看这4个不同的计时值,可谓功能强大。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
关键字:单片机,多功能秒表,设计
3
概述
设计任务
本次单片机课程设计主要是设计一个单片机控制的秒表系统。利用单片机的定时器/计时器和计数的原理,结合显示电路、LED数码管以及按键来设计计时器。在设计时,我们应该将软、硬件有效结合起来,使得系统能够正确的进行加计数、减(倒)计时、快加快减等功能,并且结合相应的显示驱动程序,使数码管能够正确的显示时间,暂停和中断。
设计要求
1)能同时记录四个相对独立的时间,并且能通过一个按键使其分别显示。
2)使用两位LED显示,显示时间00~99秒。
3)正常计数时,每秒自动加1。
4)一个开始按键、一个复位按键、一个暂停按钮和一个快加按钮。
功能简介
1)开机后,对单片机进行初始化,然后对按钮进行扫描,
2)开始按钮是用来控制加计数和减计数的开始
3)暂停按钮是用来暂停程序的运行,当按下暂停按钮时,程序停留在原地,等待再次按下暂停键,再次按下暂停键后,程序继续运行。
4)计数按钮是用来记录数值的,没按下一次计数按钮,程序自动记录一个数据,并存放到指定内存单元中,当按下四次后,程序自动停止,然后按下快加按钮查询数值。
5)复位按钮是用来对程序复位用的,当程序出现死循环时,按下复位键即可跳出死循环,回到程序的开始。
4
系统总体方案及硬件设计
在本系统中,用到的硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等。我们采用的是数码管静态显示,用74LS164来实现驱动显示,所以只要给74LS164来上排阻就行了。
1电源电路
电源电路是系统的最基本部分,任何部分都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。
2晶振电路
MCS-52单片机内部的振荡电路是一个增益反相放大器,引线XYAL1和XTAL2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路石晶振荡和陶瓷振荡均可采用,有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,单必须保证脉冲的高低电平要求的宽度。
单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路XTAL1和XTAL2外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到XTAL2的输出时钟信号。在MCS-52中通常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器。
晶体和电容决定了单片机的工作精度为1微秒,晶体可在
1.2-12MHZ之间选择。MCS-52单片机在通常情况下,使用震荡频率为6MHZ的石英晶体,而12MHZ频率主要是在高速串行通信情况才使用,在这里我们用的是12MHZ的石英晶体。对电容无严格要求,但它在取值对震荡频率的输出的稳定性、大小及震荡电路起震荡速度有点影响。C1和C2可在10-100pF之间取值,一般情况下取30pF。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2。由于XTAL2的逻辑电平不是TTL,所以还要接上拉电阻。
5
晶振电路图如下:
3复位电路
MCS-52单片机的复位是靠外部电路实现的。单片机工作后,只要在他的RET引线上加载10ms的高电平,单片机就能有效地复位。MCS-52单片机通常采用上电复位、自动复位、以及上电加复位等,我们采用的是上电加按键复位方式,这样做的优点是上电后可以直接 进入复位状态,当程序出现错误时,可以随时使电路复位。
复位电路图如下:
6
4按键
本系统设计4个开关按键:一个按键按下去时一1s加1开始计时,
即秒表开始键;第二键按下去时暂停计时,使秒表停留在原先的计时;
第三个按键按下去时清零,第四个键按下去则是以每秒10ms快速加
1计时。本系统中开始使各按键处于初始位置,即都处于1状态。
5各芯片介绍
74LS164 串行输入带锁存
时钟输入,串行输入带缓冲
异步清除
最高时钟频率可高达36Mhz
功耗:10mW/bit 12:31:12
74系列工作温度: 0°C to 70°C
Vcc最高电压:7V
输入最高电压:7V
最大输出驱动能力:
高电平:-0.4mA
低电平:8mA
AT89C52单片机
AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes
的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据
存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生
产,兼容标准MCS-51指令系统,片内置通用8位中央 处理器和Flash
存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控
制应用场合。有40个引脚,32个外部双向输入/输出(I/O)端口,
同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串
行通信口,2 个读写口线,AT89C52可以按照常规方法进行编程,也
可以在线编程。其将通用的微处理器和Flash存储器结合在一起,特
别是可反复擦写的 Flash存储器可有效地降低开发成本。
7
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性:
· 兼容MCS51指令系统 · 8k可反复擦写(>1000次)Flash ROM
· 32个双向I/O口 · 256x8bit内部RAM
· 3个16位可编程定时/计数器中断 · 时钟频率0-24MHz
·
·
·
·
能
管脚图:
个串行中断 · 可编程UART串行通道 个外部中断源 · 共6个中断源 个读写中断口线 · 3级加密位 低功耗空闲和掉电模式 · 软件设置睡眠和唤醒功
8 2 2 2
软件设计
在设计程序之前,我们首先要对单片机应用系统预完成的任务进行深入的分析明确系统的设计任务、功能要求和技术指标。其次,要对系统的硬件资源和工作环境进行分析。这是单片机应用系统程序的基础和条件。
经过任务分析、算法优化后,就可以进行程序的总体构思,确定程序的结构和数据形式,并考虑资源的分配和参数的计算等。然后根据程序的运行过程,勾画出程序执行的逻辑顺序,用图形符号将总体设计思路及程序流行绘制在平面图上,从而使程序的结构关系直观明了,便于检查和修改。
应用系统的程序由包含多个模块的主程序和子程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数、减计数、延时、快加、快减、计数和显示等。
模块化的程序设计方法具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高看程序的阅读性和可靠性,使程序的结构层次一目了然。
1秒表程序
org 0000h
ajmp main ;主程序入口地址
org 0003h
ajmp zhongduan0 ;中断0入口地址
org 000bh
ajmp yanshi ;定时器T0入口地址
org 0013h
ajmp zhongduan1 ;中断1入口地址
org 001bh
ajmp dingshi1 ;定时器T1入口地址
org 0030h
; 主程序
9
main: mov tcon,#05h ;主程序开始 外部中断跳变模式 mov tmod,#11h ;定时器0,1模式1
mov ie,#8fh ;开总中断,中断0,1,定时器0,1 mov dptr,#tab
mov r1,#00h
mov r2,#00h
mov r3,#40 ;循环次数40
mov tl0,#2Ch ;置初值,定时25MS
mov th0,#0CFh
mov tl1,#78h ;置初值,定时10MS
mov th1,#0ech
clr tr0 ;关定时器
clr tr1
; 暂停键K3,快加键K4程序
here:jb p1.0,here
show:clr tr1
clr tr0
acall xianshi
kuaijia:jb p1.2,kuaijia ;等待P1.2为0 快加 clr tr0
setb tr1
here3:jnb p1.2,here3
ajmp here
; 外部中断INT0子程序-----计时按键K1子程序 zhongduan0: setb tr0 ;计时按键
reti
; 外部中断INT1子程序----复位按键K2子程序
zhongduan1:clr tr0 ;复位按键
clr tr1
mov 12h,#00h
mov 11h,#00h
acall xianshi ;调用显示子程序
mov r1,#00h
10
mov r2,#00h
reti
; 加一子程序
jia1: inc r1 ;加1子程序
cjne r1,#0ah ,loop ;判断是否到表尾 mov r1,#00h
inc r2
cjne r2,#0ah,loop
mov r2,#00h
loop: mov 12h,r1 ;重新赋值
mov 11h,r2
ret
; 显示子程序
xianshi:mov r7,#02h ;2个数码管显示子程序 mov r0,#12h
loop5: mov r6,#08h ;8位2进制数 mov a,@r0
movc a,@a+dptr
loop6:rlc a ;循环左移
clr p3.1
mov p3.0,c
setb p3.1
djnz r6,loop6
dec r0
djnz r7,loop5
ret
; 定时器T0子程序
yanshi: mov tl0,#2Ch ;定时子程序 mov th0,#0CFh
djnz r3,loop7
acall jia1 ;调用加1子程序
acall xianshi ;调用显示子程序
mov r3,#40
loop7: reti
11
定时器T
dingshi1:mov tl1,#78h ;置初值,定时10MS mov th1,#0ech
clr tr0
setb tr1
mov 12h,r1
mov 11h,r2
jnb p1.0,show
acall
acall xianshi
lop7:reti
tab:db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh end0
2程序流程图
12
13
4课程设计体会
这次秒表系统设计 ,非常可惜没有成功。原因自然是多方面的。 首先,我没有认真审题,看懂题目的要求。这主要体现在看图上。 我没有很好的理解原理图,在一些方面产生了误解。导致硬件设计电路时连线产生了错误。
电源电路是系统的最基本部分,任何部分都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。
我硬件设计时接地线与电源线出现了许多错误。
虽然失败了,但我想结果不是最重要的,重要的是我们努力过了。 秒表设计从头到尾我都自己参与,熟悉了对整个设计的过程,更系统的锻炼了自己。
进行课程设计的过程中我上网查资料、向别的同学请教。在这过程中我增长了自己的知识,也与同学间取得了良好的关系。
这次的单片机课程设计重点是理论与实际的相结合,让我巩固了书本上所学到的知识,加深了对书本的理解。
秒表系统的同实际联系的比较紧密,所以做起来会很有兴趣。在设计的过程中,我发现了我理论知识上的一些漏洞,这给了我不少压力,于是我又挤出时间努力加深文化知识。关于理论知识上的一些漏洞,我认为按以下两点建议去做可以得到很好的解决。
1.根据课程设计的要求和自己所要增加的功能写好程序流程图,在程序流程图的基础上,根据芯片的功能写出相应的程序。然后再进行程序调试和相应的修改,以达到能够实现所要求的功能的目的。
2.程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。
虽然失败了,但我学到了很多。以后我会吸取教训,争取不放一样的错误。
14
15
附:电路图
16
目录
一、技术要求…………………………………………… 2
二、总体电路设计……………………………………… 3
三、模块电路设计……………………………………… 3
1.多谐震荡器电路……………………………… 4
2.计数器电路 ………………………………… 4
3.译码驱动显示电路………………………… 5
四、总电路原理图……………………………………… 6
五、元件清单…………………………………………… 7
六、电路板制作………………………………………… 7
1.电路板布局…………………………………… 7
2.电路板的焊接………………………………… 8
3.电路板的调试和检查………………………… 8
七、设计总结…………………………………………… 8
1.设计中遇到的问题及解决方法……………… 8
2.设计体会……………………………………… 9
八、参考资料…………………………………………… 9
一、技术要求
要求设计一个数字表,用于短时间测量,适用于计时使用。
(1)计时范围:0~59秒
(2)显示分辨率为1s。
(3)用按钮开关控制工作状态,即:暂停、清零。
(4)本身带有,工作时指示灯亮。
二、电路总体设计
实验要求设计一个用于短时间测量的电子表,根据学过的相关知识可以知道和题目的要求,电路应该分为分为四个部分,分别是多谐振荡器、计数器、译码器和数码显示器。
电子秒表电路的基本组成(方框图)
1 两个方案:方案一 555定时器做的,方案二 石英晶体构成石英晶做的。
方案一、
用一个555定时器做出多谐振荡电路为计数电路提供计数脉冲,通过调节外围电阻R1、R2和电容C的值使振荡电路产生1Hz的计数脉冲(即周期为1秒的信号)。用74LS90计数器做成60进制的秒计数电路,并用7408配合反馈清零,4511三线七线译码器通过开关态控制数码管暂停。
方案二、
用石英晶体构成石英晶振脉冲发生器。计数电路是74LS90串接构成的60进制计数器可以计数到60秒(1分钟)这样控制起来比较方便、控制电路同方案一。
最终方案:
方案一。由于对方案二的石英晶振电路原来不是很熟悉,并且方案二的计数显示不符合人的一般思维方式,因此选用方案一作为最终方案。
2 元器件选择
4511 74ls08 74ls90 555
3 参数计算
充电时间 T1
T1=0.7(R1+R2)C=0.7*1210*0.001=0.847s
放电时间T2
T2==0.7 R2 C=0.7*210*0.001=0.147s
电路震荡周期T
T=T1+T2=0.7(R1+2R2)C
电路震荡频率
f=1/T=1.43/(R1+2R2)C
三、模块电路设计
1. 多谐震荡器电路
为由555构成的多谐振荡器电路,根据实验的要求需要获得1HZ的时间信号,则令f=1HZ,由上面的公式推算出:R1=5.1kΩ, R2为5KΩ微调电阻约为4592欧,C1=100uF。就能得到1HZ的秒脉冲信号‘实验时其3管脚输出脉冲为1Hz。 下图为555构成多谐振荡器电路
555构成多谐振荡器电路
2. 计数器电路
秒信号发生器是数字电子钟的核心部分,它的精度和稳定度决定了时信号发生器和分信号发生器的精度。“秒”计数器为60进制计数器。实现此100模数的计数器是由两片中规模集成计数器74LS90构成的。首先分别将两片74LS90设置成10进制加法计数器。即将两片的74LS90的置数端R0和R9都接地,将INA端接到QA端,以QD为进位输出端,则构成了10进制加法计数器。再将其中一片74LS90计数器的进位输出端QD接到另一片74LS90的进位输入端INA端。如此,两片计数器最大的即可实现100进制的计数器。接下来,利用74LS90的反馈置数的方法实现60进制。74LS90属于异步置数,所以计数器输出“2QD2QC2QB2QA、1QD1QC1QB1QA=0110、0000”时,通过置数脉冲使计数器清零,也就是此时QB,QC发出置数脉冲送至清零端R0,则R0使计数器清零[4- 6]。“秒”计数器电路图如图所示
计数器电路图
3. 译码器电路
计数器实现了对时间的累计以8421BCD码形式输出,为了将计数器输出的8421BCD码显示出来,需用显示译码电路将计数器的输出数码转换为数码显示器件所需要的输出逻辑和一定的电流,一般这种译码器通常称为7段译码显示驱动器。为了减小流经数码管的电流,以便保护数码管,所以在数码管与地线之间联一个200欧姆电阻。
四、总电路原理图
五、元件清单
六 电路板的制作
1. 电路板的布局
2. 电路板的焊接
电路板的焊接是一项技术活,焊接的时候要很小心加很细心加很有耐心,应尽量避免虚焊和焊接短路的出现,需要跳线的地方,应选择小一些的电线当跳线。
焊接时一定要注意安全,不要让焊烙铁烫到手。
如果真的不幸被烫了,要保持冷静,不要慌,尽快用冷水浸泡伤口三到五分钟,之后可抑制水泡的产生。
焊接好之后,可以用专门的剪刀剪掉那些长出来的管脚。
3. 电路板的调试和检查
电路板焊接好之后,就可以安装上元件,进行调试检查了。这是课程设计的最后一步,需要耐心。调试时电源一定要量调好电压再接入电路板,不然会烧坏电路板。
调试时观察数码管的显示是否正确,振荡电路是否正常工作。
如果工作不正常,就要用万用表检查线路是否短路和虚焊,如果有,就要重新焊过。有些地方铜膜线断开了,要特别注意检查,因为这些地方,一般肉眼很难分辨。
调试和检查完成了,数字秒表正常工作了,这次课程设计才算圆满完成。
七 设计总结
1 实验中遇到的问题及解决方法
实验中遇到了很多意想不到的问题,从一开始的设计原理图到最后的电路板焊接,一直都是在发现问题和解决问题中度过。还好自己一路坚持了下来,把问题一一解决。
设计的时候,画原理图经常会连错线,元件的位置摆放得不好,经常出现线交叉的情况,这样就要从整个原理图出发去放置元件,以及连线。刚开始不知道数码管的管脚排列的顺序,问了好几个人,再加上自己用万能表测了才搞清楚。
还有其它的问题,比如,仿真时候,元件的值选多少;焊板时烫到了,怎么办;调试时,数码管没反应,又该怎么办……
其实这些都不是问题,只要我们有耐心,够细心,都可以把它们解决。
2 设计体会
以前看别人的一个电子秒表卖十几块钱,心里面有点愤愤不平,现在,自己做过一个电子秒表,才发现,其中的不容易,还有艰辛。其实做其他的事情也是一样,都会经过很多的困难,才能成功。突然想起一句话“不经历风雨,怎么见彩虹”。
通过这次设计让我真正体会到了,有付出,才会有收获。
八、设计参考资料
[1]. 孙丽霞.数字电子技术. 北京:高等教育出版社, 2010.
[2] .王港元.电子电工实践指导.江西:江西科学技术出版社.2009.
数字秒表课程设计总结报告一课题名称数字秒表设计二内容摘要本实验要求设计一个计数范围在0099秒的数字秒表电路设计基本包括01秒脉冲…
电子秒表设计报告目录1设计目的12设计任务和要求23设计的方案的选择和论证34电路设计计算与分析441模块总体方案设计441155…
0099秒表设计报告一设计题目和要求题目三秒表应用AT89C51的定时器设计一个2位的LED数码显示作为秒表显示时间为0099s每…
一.前言在电子科学技术高速发展的今天,高科技产品越来越多的应用在我们的日常生活中,给我们的生活带来了非常大的方便,每时每秒我们都能…
电子秒表1设计课题任务及指标1通过本设计的选题方案论证设计计算安装调试资料整理撰写设计报告等环节初步掌握电子工程设计方法和组织实施…
数字秒表课程设计总结报告一课题名称数字秒表设计二内容摘要本实验要求设计一个计数范围在0099秒的数字秒表电路设计基本包括01秒脉冲…
XXXXXX学院51单片机系统设计课程设计报告题目专业班级学生姓名学号指导教师分数摘要本设计是一个秒表计时器采用51单片机实现电路…
JINGCHUUNIVERSITYOFTECHNOLOGY电子信息工程学院单片机原理与应用技术课程设计报告电子秒表系统专业班级11…
电子技术设计性实训报告学号211002146姓名邱富烨同组人夏文彬班级指导老师林雪健日期20xx0907目录一实训目的3二设计功能…
单片机课程设计报告设计课题秒表设计专业班级电子班学生姓名学号指教教师设计时间20xx年5月306月19日目录一设计任务和要求31设…