单片机课程设计电子秒表设计说明书.docx
- 文档编号:4446692
- 上传时间:2022-12-01
- 格式:DOCX
- 页数:23
- 大小:289.58KB
单片机课程设计电子秒表设计说明书.docx
《单片机课程设计电子秒表设计说明书.docx》由会员分享,可在线阅读,更多相关《单片机课程设计电子秒表设计说明书.docx(23页珍藏版)》请在冰豆网上搜索。
单片机课程设计电子秒表设计说明书
《新编单片机原理及应用》课程设计
电子秒表
说明书
目录
一、绪论···················································3
1.1概述················································3
1.2设计目的············································3
1.3设计任务和内容······································3
二、总体设计及核心器件简介······························4
2.1总体设计·············································4
2.2硬件设计············································4
2.3软件设计···········································13
三、数字秒表的安装与调试································17
3.1软件的仿真与调试····································17
3.2硬件的安装与调试····································17
3.3汇编程序············································18
四、设计体会与总结·······································22
参考文献·················································23
第一章绪论
1.1概述
单片微型计算机简称单片机,又称微控制器,是微型计算机的一个重要分支。
单片机是20世纪七十年代中期发展起来的一种大规模集成电路芯片,是集CPU、RAM、ROM、I/O接口和终端系统与同一硅片的器件。
20世纪八十年代以来单片机发展迅速各类新产品不断涌现出现许多新产品,出现了许多高性能新型机种现已成为工业控制和各控制领域的支柱产业之一。
由于单片机功能强、体积小、可靠性好、价格便宜等独特优点因而受到人们的高度重视并取到了一系列的科研成果,成为传统工业技术改造和新产品更新换代的理想机种,并具有广阔的发展前景。
本设计运用所学的单片机知识,将单片机与普通秒表相结合设计了电子秒表,具有显示直观、读取方便、精度高等优良特点,在计时中应用广泛。
1.2设计目的
加强对51系列单片机的构造了解及应用,熟悉汇编语言或C语言编程,综合掌握和理解设计各部分的工作原理、设计过程、芯片器件的选择方法、模块化编程等多项知识。
(1)用单片机模拟实现具体应用使个人设计系统能够真正使用;
(2)把理论知识与实践知识相结合,充分发挥个人能力,并在实践中得到锻炼;
(3)提高利用已学的知识分析和解决问题的能力;
(4)提高动手实践能力。
1.3设计任务及内容
1.3.1设计任务
结合教材及参考资料,用80C51单片机模拟实现电子秒表的开启,计时,停止并显示时间等功能。
1.3.2设计内容
(1)填写设计任务书;
(2)进行总体设计,画出设计原理图;
(3)用PROTEUS软件画出设计电路图;
(4)用Keil软件编写程序;
(5)在PROTEUS里模拟并调试程序达到期望功能。
第二章总体设计及核心器件简介
2.1总体设计
本设计中包括硬件电路的设计和系统程序的设计。
其硬件电路的设计主要包括单片机的选择、显示电路的选择与设计、按键电路的选择与设计、时钟电路的选择与设计、复位电路的选择与设计等。
系统程序的设计包括系统程序设计思路、系统资源的分配、汇编程序的设计等。
2.2硬件设计
2.2.1硬件系统总体设计
主控制器选用80C51单片机,显示电路采用共阴极LED数码管显示计时时间,四个按键均采用触点式按键。
1.利用80C51单片机的定时器/计数器定时和记数的原理,使其能精确计时。
利用中断系统使其实现开始暂停的功能。
P0口输出段码数据,P2.2-P2.4口作列扫描输出,P1.0、P3.2、P3.3口接三个按钮开关,分别实现电子秒表的启动、开始、暂停功能。
电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。
硬件电路图按照图2.1进行设计。
图2.1数字秒表硬件电路基本原理图
2.根据要求知道秒表设计主要实现的功能是计时和显示。
因此设置了四个按键和三位数码管显示时间,三个按键分别是启动、开始,停止和复位按键。
利用这四个键来实现秒表的全部功能,而三位数码管则能显示00.0-99.9秒的计时。
本设计中,数码管显示的数据存放在内存单元7BH-7DH中。
其中7BH存放0.1秒位数据,7CH存放1秒位数据,7DH存放10秒位数据,每一地址单元内均为十进制BCD码。
由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。
显示时,先取出7BH-7DH某一地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。
3.计时采用定时器T0中断完成,定时溢出中断周期为0.1s,当一处中断后向CPU发出溢出中断请求,每发出一次中断请求就对0.1秒计数单元进行加一,达到10次就对1秒位进行加一,依次类推,直到99.9秒重新复位。
4.按键的处理。
这两个键采用中断的方法来识别,对开始和停止键采用外部中断INT0、INT1的方式,即A、B键分别接P3.2、P3.3口。
2.2.2单片机的选择
本课题在选取单片机时,充分借鉴了许多成形产品使用单片机的经验,并根据自己的实际情况,选择了80C51。
80C51是MCS-51系列单片机中的一个子系列,是一族高性能兼容型单片机。
其内部资源分配和性能如下;8位CPU;寻址能力2X64K;4KB的内部ROM和128B内部RAM;四个8位I/O接口电路;一个串行全双工异步接口;五个中断源和两个中断优先级;采用CMOS工艺电流小,低功耗。
80C51各引脚主要功能简介:
(1)Vss(20脚):
接地
(2)VCC(40脚):
主电源+5V
(3)XTAL1(19脚):
接外部晶体的一端。
在片内它是振荡电路反相放大器的输入端。
在采用外部时钟时,对于HMOS单片机,该端引脚必须接地;对于CHMOS单片机,此引脚作为驱动端。
XTAL2(18脚):
接外部晶体的另一端。
在片内它是一个振荡电路反相放大器的输出端,振荡电路的频率是晶体振荡频率。
若需采用外部时钟电路,对于HMOS单片机,该引脚输入外部时钟脉冲;对于CHMOS单片机,此引脚应悬浮。
(4)RST(9脚):
单片机刚接上电源时,其内部各寄存器处于随机状态,在该脚输入24个时钟周期宽度以上的高电平将使单片机复位(RESET)
(5)PSEN(29脚):
在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。
CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。
不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。
PSEN端同样可驱动8个LSTTL负载。
我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
(6)ALE/PROG(30脚):
在访问片外程序存储器时,此端输出负脉冲作为存储器读选通信号。
CPU在向片外存储器取指令期间,PSEN信号在12个时钟周期中两次生效。
不过,在访问片外数据存储器时,这两次有效PSEN信号不出现。
PSEN端同样可驱动8个LSTTL负载。
我们根据PSEN、ALE和XTAL2输出端是否有信号输出,可以判别80C51是否在工作。
(7)EA/VPP(31脚):
当EA端输入高电平时,CPU从片内程序存储器地址0000单元开始执行程序。
当地址超出4KB时,将自动执行片外程序存储器的程序。
当EA输入低电平时,CPU仅访问片外程序存储器。
在对87C51EPROM编程时,此引脚用于施加编程电压VPP。
(8)输入/输出引脚:
1)P0.0—P0.7(39脚—32脚)
2)P1.0—P1.7(01脚—08脚)
3)P2.0—P2.7(26脚—21脚)
4)P3.0—P3.7(10脚—17脚)
图2.280C51引脚图
2.2.3显示电路的选择与设计
1.对于数字显示电路,通常采用液晶显示或数码管显示。
对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口的液晶显示模块(字符或点阵),一般多采用并行接口,对单片机的接口要求较高,占用资源多。
而数码管作为一种主动显示器件,具有亮度高、响应速度快、防潮防湿性能好、温度特性极性、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或是远距离操作。
因此,本设计的显示电路采用7段数码管作为显示介质。
2.数码管显示可以分为静态显示和动态显示两种。
由于本设计需要采用五位数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂。
所以采用动态显示。
动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。
通常各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;各位的公共阴极位选线由另外的I/O口线控制。
动态方式显示时,各数码管分时轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管,并送出相应的段码,在另一时刻选通另一位数码管,并送出相应的段码,依此规律循环,即可使各位数码管显示将要显示的字符,虽然这些字符是在不同的时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。
图2.3显示电路基本原理图
3.数码显示管分为共阳数码管和共阴数码管两种
共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起,如图2.4(b),通常,公共阳极接高电平(一般接电源),其它管脚接段驱动电路输出端。
当某段驱动电路的输出端为低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
图2.4(a)数码管引脚图(b)共阳极内部结构图(c)共阴极内部结构
共阴极数码管的8个发光二极管的阴极(二极管负端)连接在一起,如图2.4(c),通常,公共阴极接低电平(一般接地),其它管脚接段驱动电路输出端,当某段驱动电路的输出端为高电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。
此时,要求段驱动电路能提供额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
本设计采用共阴极数码显示管做显示电路,由于采用的是共阴的数码显示管,所以只要数码管的a、b、c、d、e、f、g、dp引脚为高电平,那么其对应的二极管就会发光,使数码显示管显示0~9的编码见表2.1。
表2.1共阴极数码显示管字型代码
字型
共阴极代码
字型
共阴极代码
0
3FH
5
6DH
1
06H
6
7DH
2
5BH
7
07H
3
4FH
8
7FH
4
66H
9
6FH
4.动态显示电路由显示块、字形码驱动模块、字位驱动模块三部分组成。
如图2.3所示为本系统的3位LED动态显示器接口电路。
图中,3个数码管的8段段选线分别与外接上拉电阻的单片机P0口对应相连,而3个数码管的位控制端则和NPN型三极管的集电极相连接。
单片机的P2.2~P2.4口则分别对应数码显示管的最低位到最高位,P2.2~P2.4口分别和三个NPN型三极管的基极相连,做三极管导通的控制端,而NPN型三极管选用9013型三极管。
根据9013的资料显示:
其耐压值为40V,最大功率为0.65W,最大电流为0.5A,电气性能完全满足本设计的要求。
另外数码管显示是采用动态显示,所以对三极管的开关频率有一定的要求。
根据电子秒表的设计计算可知动态显示的频率最高为3KHz,而9013的导通频率为150MHz,完全能满足本设计的要求,所以最终选取9013三极管最为位控制开关。
5.由于数码管是有P0口来驱动,它内部没有上拉电阻,作为输出口时驱动能力比较弱,不能点亮数码显示管,因此P0口必须接上拉电阻来提高驱动能力。
另外一位共阴数码管的驱动电流一般为20mA左右,如果电流太大容易造成数码管损坏,所以也需要根据电源的电压值来确定上拉电阻的大小。
如果电阻过小,势必会形成灌电流过大,造成单片机IO的损坏,如果电阻过大,那么对拉电流没有太大的影响。
电源供电电压为5V,当上拉电阻选用220Ω电阻时灌电流为22mA。
不会损坏单片机的I/O口,同时也可以为数码显示管起到限制电流的保护作用。
2.2.4按键电路的选择与设计
本设计中有四个按键,分别实现启动、开始、暂停和复位功能。
按设计要求对开始和停止键采用外部中断INT0、INT1的方式,即A、B键分别接P3.2、P3.3口。
四个按键均采用低电平有效,具体电路连接图如图2.5所示。
1.当按键没有按下时,单片机的I/O口直接连接电源,因此需要接上拉电阻来进行限流,本设计中选取阻值为100Ω的电阻作为上拉电阻,根据计算可知此时的灌电流为50mA,查看80C51的资料得知次电流在安全范围内,符合安全设计要求。
2.按键电路中由于采用了外部中断,所以需要用到P3口的第二功能。
P3口引脚的第二功能如表2.2
图2.5按键电路
表2.2P3口引脚第二功能表
P3口引脚
特殊功能
P3.0
RXD(串行输入口)
P3.1
TXD(串行输出口)
P3.2
INT0(外部中断0请求输入端)
P3.3
INT1(外部中断1请求输入端)
P3.4
T0(定时器/计数器0计数脉冲输入端)
P3.5
T1(定时器/计数器1计数脉冲输入端)
P3.6
WR(片外数据存储器写选通信号输出端)
P3.7
RD(片内数据存储器读选通信号输出端)
2.2.5时钟电路的选择与设计
单片机的时钟信号用来提供单片机内各种微操作的时间基准,80C51片内设有一个由反向放大器所构成的振荡电路,XTAL1和XTAL2分别为振荡电路的输入和输出端,80C51单片机的时钟信号通常用两种电路形式得到:
内部振荡方式与外部振荡方式。
外部方式的时钟很少用,若要用时,只要将XTAL1接地,XTAL2接外部振荡器就行。
对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于12MHz的方波信号。
时钟发生器把振荡频率两分频,产生一个两相时钟信号P1和P2供单片机使用。
P1在每一个状态S的前半部分有效,P2在每个状态的后半部分有效。
本设计采用的内部振荡方式,内部振荡方式所得的时钟信号比较稳定,实用电路中使用较多。
本设计系统的时钟电路如图2.6所示。
只要按照图2.6所示电路进行设计连接就能使系统可靠起振并能稳定运行。
图中,电容器C1 、C2起稳定振荡频率、快速起振的作用,电容值一般为5~33pF。
但在时钟电路的实际应用中一定要注意正确选择其大小,并保证电路的对称性,尽可能匹配,选用正牌的瓷片或云母电容,如果可能的话,温度系数尽可能低。
本设计中采用大小为30pF的电容和12MHz的晶振。
(a)原理图(b)电路连接图
图2.6内部振荡电路
2.2.6复位电路的选择与设计
关于单片机的置位和复位,都是为了把电路初始化到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态机初始化到空状态,而在单片机内部,复位的时候单片机是把一些寄存器以及存储设备装入厂商预设的一个值,复位是一个很重要的操作方式。
但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。
根据应用的要求,复位操作通常有两种基本形式:
上电复位、手动复位。
上电复位要求接通电源后,自动实现复位操作。
80C51单片机的上电复位POR(PowerOnReset)实质上就是上电延时复位,也就是在上电延时期间把单片机锁定在复位状态上。
在单片机每次初始加电时,首先投入工作的功能部件是复位电路。
复位电路把单片机锁定在复位状态上并且维持一个延时(记作TRST),以便给予电源电压从上升到稳定的一个等待时间;在电源电压稳定之后,再插入一个延时,给予时钟振荡器从起振到稳定的一个等待时间;在单片机开始进入运行状态之前,还要至少推迟2个机器周期的延时。
上述一系列的延时,都是利用在单片机RST引脚上外接一个RC支路的充电时间而形成的。
典型复位电路如图2.7(a)所示,其中的阻容值是原始手册中提供的。
在经历了一系列延时之后,单片机才开始按照时钟源的工作频率,进入到正常的程序运行状态。
在电源电压以及振荡器输出信号稳定之后,又等待了一段较长的延时才释放RST信号,使得CPU脱离复位锁定状态;而RST信号一旦被释放,立刻在ALE引脚上就可检测到持续的脉冲信号。
由于标准80C51的复位逻辑相对简单,复位源只有RST一个(相对新型单片机来说,复位源比较单一),因此各种原因所导致的复位活动以及复位状态的进入,都要依靠在外接引脚RST上施加一定时间宽度的高电平信号来实现。
标准80C51不仅复位源比较单一,而且还没有设计内部上电复位的延时功能,因此必须借助于外接阻容支路来增加延时环节,如图2.7(a)所示。
其实,外接电阻R还是可以省略的,理由是一些CMOS单片机芯片内部存在一个现成的下拉电阻Rrst。
如图2.8所示。
因此,在图2.7(a)的基础上,上电复位延时电路还可以精简为图2.7(b)所示的简化电路(其中电容C的容量也相应减小了)。
图2.7上电复位延时电路图2.8复位引脚RST内部电路
在每次单片机断电之后,须使延时电容C上的电荷立刻放掉,以便为随后可能在很短的时间内再次加电作好准备。
否则,在断电后C还没有充分放电的情况下,如果很快又加电,那么RC支路就失去了它应有的延迟功能。
因此,在图2.7(a)的基础上添加一个放电二极管D,上电复位延时电路就变成了如图2.7(c)所示的改进电路。
也就是说,只有RC支路的充电过程对电路是有用的,放电过程不仅无用,而且会带来潜在的危害。
于是附加一个放电二极管D来大力缩短放电持续时间,以便消除隐患。
二极管D只有在单片机断电的瞬间(即VCC趋近于0V,可以看作VCC对地短路)正向导通,平时一直处于反偏截止状态。
手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。
单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。
(a)原理图(b)电路连接图
图2.9单片机复位电路
本设计采用上电且开关复位电路,如图2.9所示上电后,由于电容充电,使RST持续一段高电平时间。
当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。
通常选择C=10~30μF,R=100Ω~1KΩ,本设计采用的电容值为22μF的电容和电阻为1K的电阻。
2.2.7系统总电路的设计
系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。
系统总电路图如图2.10所示。
80C51单片机为主电路的核心部分,各个电路均和单片机相连接,由单片机统筹和协调各个电路的运行工作。
80C51单片机提供了XTAL1和XTAL2两个专用引脚接晶振电路,因此只要将晶振电路接到两个专用引脚即可为单片机提供时钟脉冲,但在焊接晶振电路时要尽量使晶振电路靠近单片机,这样可以为单片机提供稳定的始终脉冲。
图2.10系统总电路图
复位电路同晶振电路,单片机设有一个专用的硬件复位接口,并设置为高电平有效。
按键电路与单片机的端口连接可以由用户自己设定,本设计中软件复位键接单片机的P1.0设为低电平有效。
而另外的开始键和暂停键两键使用了外部中断,所以需要连接到单片机的特殊接口P3.2和P3.3,这两个I/O口的第二功能分别为单片机的外部中断INT0端口和外部中断INT1端口。
同样设置为位低电平有效。
显示电路由三位数码管组成,采用动态显示方式,因此有8位段控制端和3位位控制端,八位段控制接P0口,P0.0-P0.7分别控制数码显示管的a、b、c、d、e、f、g、dp显示,80C51的P0口没有集成上拉电阻,高电平的驱动能力很弱,所以需要接上拉电阻来提高P0的高电平驱动能力。
三位位控制则由低位到高位分别接到P2.2-P2.4口,NPN三极管9013做为位控制端的开关,当P2.2-P2.4端口任意一个端口为高电平时,与其相对应的三极管就导通,对应的数码管导通显示。
通过以上设计已经将各部分电路与单片机有机的结合到一起,硬件部分的设计以大功告成,剩下的部分就是对单片机的编程,使单片机按程序运行,实现数字电子秒表的全部功能。
2.3软件设计
2.3.1程序设计思想
结合电路,程序的总体思路如图2.11。
2.3.2系统资源的分配
本设计系统所用到的单片机端口数比较多,所以在这里将对数字电子秒表的硬件资源的大概分配加以说明。
片内RAM的分配、各功能键的定义以及各端口的分配安排如表2.3所示。
表2.3端口的分配安排表
名称
功能描述
初始化值
7BH-7DH
0.1s-10s位显示寄存区
00H
R3-R5
0.1s-10s位溢出计数区
定时器T0
控制秒表的最小精度
3CB0H
外部中断INT0
停止中断信号入口
外部中断INT1
开始中断信号入口
2.3.3主程序设计
本系统程序主要模块由主程序、定时中断服务程序、外部中断INT0服务程序和外部中断INT1服务程序组成。
其中主程序是整个程序的主体。
可以对各个中断程序进行调用,协调各个子程序之间的联系。
系统(上电)复位后,进入主程序,主程序流程图如图2.11。
首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。
数码管显示程序对显示缓存区内的数值进行调用并在数码管上进行动态显示。
显示一次就对P1.0进行一次扫描,查询启动键P1.0是否按下,当启动键按下后,数码管全零显示,没有按下则返回开始,重新循环显示数字8。
在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。
当外部中断有请求则去执行外部中断服务程序,并在执行完后返回主程序。
2.3.4中断程序设计
现在方案中采用了两个中断,外部中断INT0,INT1。
CPU在响应中断时,先处理高级中断,在处理低级中断,若有多个同级中断时,则按自然优先顺序处理。
例如当CPU正在处理一个中断申请时,有出现了另一个优先级比它高的中断请求,这是,CPU就暂停终止对当前优先级较低的中断源的服务,转去响应优先级比它高的中断请求,并为其服务。
待服务结束,再继续执行原来较低级的中断服务程序。
而当CPU为级别高的终端服务程序服务时,如果级别低的中断发出中断请求,此时CPU是不会响应的,所以为了避免开始和暂停两个按键中的一个出现没有响应的情况,在进行程序编辑时要注意对中断的使用,避免出现中断的嵌套。
,合理分配中断对本设计的实现是至关重要的。
80C51的自然优先级顺序排列如下:
中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 课程设计 电子 秒表 设计 说明书