电子秒表的设计
- 格式:doc
- 大小:2.83 MB
- 文档页数:12
单片机实习
实习报告
设计题目:电子秒表的设计
实现功能:1、数码管显示时间范围为:0~99.99秒。
2、两个按钮实现复位、开始和暂停功能。
一、 系统实现
电路图设计
硬件选型
(1)单片机简介 STC89C51是一种低功耗、高性能CMOS8位微控制器,具有 8K 在系统可编程Flash 存储器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C51为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。 具有以下标准功能: 8k字节Flash,512字节RAM, 32 位I/O 口线,看门狗定时器,内置4KB EEPROM,MAX810复位电路,三个16 位 定时器/计数器,一个6向量2级中断结构,全双工串行口。另外 STC89X51 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。最高运作频率35Mhz,6T/12T可选。STC89C51主要功能如表1所示
表1:STC89C51主要功能
主要功能特性
兼容MCS51指令系统 4K可反复擦写Flash ROM
32个双向I/O口 256x8bit内部RAM
3个16位可编程定时/计数器中断 时钟频率0-24MHz
2个串行中断 可编程UART串行通道
2个外部中断源 共6个中断源
2个读写中断口线 3级加密位
低功耗空闲和掉电模式 软件设置睡眠和唤醒功能
STC89C52引脚介绍
① 主电源引脚(2根)
VCC(Pin40):电源输入,接+5V电源
GND(Pin20):接地线
②外接晶振引脚(2根)
XTAL1(Pin19):片内振荡电路的输入端
XTAL2(Pin20):片内振荡电路的输出端
③控制引脚(4根)
RST/VPP(Pin9):复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):地址锁存允许信号
PSEN(Pin29):外部存储器读选通信号
EA/VPP(Pin31):程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
④可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,分别位P0、P1、P2、P3口,每个口有8位(8根引脚),共32根。
P0口(Pin39~Pin32):8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):8位准双向I/O口线,名称为P3.0~P3.7
作频率35Mhz,6T/12T可选。 EA/VP31X119X218RESET9P37/RD17P36WR16P32/INT012P33/INT113P34/T014P35/T115P101P112P123P134P145P156P167P178P0039P0138P0237P0336P0435P0534P0633P0732P2021P2122P2223P2324P2425P2526P2627P2728PSEN29ALE/P30P31/TXD11P30/RXD10GND20VCC40U1STC89C52
图1 STC89C51 DIP封装图
最小系统包括单片机及其所需的必要的电源、时钟、复位等部件,能使单片机始终处于正常的运行状态。电源、时钟等电路是使单片机能运行的必备条件,可以将最小系统作为应用系统的核心部分,通过对其进行存储器扩展、A/D扩展等,使单片机完成较复杂的功能。
STC89C51是片内有ROM/EPROM的单片机,因此,这种芯片构成的最小系统简单﹑可靠。用STC89C52单片机构成最小应用系统时,只要将单片机接上时钟电路和复位电路即可,结构如图2-3所示,由于集成度的限制,最小应用系统只能用作一些小型的控制单元。
图2 单片机最小系统原理框图
(2)晶体振荡电路
STC89C51单片机的时钟信号通常有两种方式产生:一是内部时钟方式,二是外部时钟方式。内部时钟方式如图2-4所示。在STC89C51单片机内部有一振荡电路,只要在单片机的XTAL1(18)和XTAL2(19)引脚外接石英晶体(简称晶振),就构成了自激振荡器并在单片机内部产生时钟脉冲信号。图中电容C1和C2的作用是稳定频率和快速起振,电容值在5~30pF,典型值为30pF。晶振CYS的振荡频率范围在1.2~12MHz间选择,典型值为12MHz和11.0592MHz。
这里,我们选用51单片机11.0592MHZ的内部振荡方式,电容器C1,C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30PF,时钟电路
复位电路 STC89C51单片机 I/O口 接线时要使晶体振荡器Y1尽可能接近单片机。
Y111.0592MHzC230pFC330pF1819
图3 STC89C51内部时钟电路
(3)复位电路
当在STC89C51单片机的RST引脚引入高电平并保持2个机器周期时,单片机内部就执行复位操作(若该引脚持续保持高电平,单片机就处于循环复位状态)。
这里采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。当程序出现错误时,可以随时使电路复位。这里使用复位按键作为清零按键。
R110kC110uFS4VCC9
图4 STC89C51复位电路
(4)显示电路
显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用4个共阴极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。
在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。 在设计中,我们采用LED动态显示,用P0口输送断码,用P2口输送位码。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。此外,为了减少电路走线交叉,方便电路板布线,因此修改常规的接线法,需要编制出相应的“显示码表”。
(5)键盘电路
在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使电路简单,我们采用的按键电路,用部分P3口做开始和暂停。
(6)上拉电阻介绍
其实排阻就是由8个电阻组成的,其中一端全部接在一起,103为8个10K电阻,102为8个1K电阻,他们在电路中起到“上拉”的作用,又称上拉电阻。
上拉就是将不确定的信号通过一个电阻嵌位在高电平,电阻同时起限流作用,下拉同理.
上拉是对器件注入电流,下拉是输出电流,弱强只是上拉电阻的阻值不同,没有什么严格区分,对于非集电极(或漏极)开路输出型电路(如普通门电路)提升电流和电压的能力是有限的,上拉电阻的功能主要是为集电极开路输出型电路输出电流通道。
上拉,就是把电位拉高,比如拉到VCC
下拉,就是把电压拉低,拉到GND
一般就是刚上电的时候,端口电压不稳定,为了让他稳定为高或低,就会用到上拉或下拉电阻。
有些芯片内部集成了上拉电阻(如单片机的P1、2、3口),所以外部就不用上拉电阻了。但是有一些开漏的(如单片机的P0口),外部必须加上拉电阻。
元件清单
软件流程图
软件编程
K1 BIT P3.2 开始
系统初始化
扫描显示 延时5ms
按键扫描 定时开始
结束 按键=0?
返回 按键开始
定时关闭
按键取反 KEY_NUM EQU 32H
DISP_DIGIT EQU 33H
DISP_SEL EQU 34H
BUFPT EQU 35H
DISP_BUF EQU 5EH
ORG 00H
JMP MAIN
ORG 0BH
LJMP TIME0_INT
ORG 40H
MAIN:ACALL TIME0_INIT
MOV SP,#70H
MOV DISP_BUF,#00H
MOV DISP_BUF+1,#00H
MOV DISP_BUF+2,#00H
MOV DISP_BUF+3,#00H
START:ACALL DISP
ACALL KEY
AJMP START
TIME0_INIT:MOV TMOD,#01H
MOV TH0,#0DCH
MOV TL0,#00H
SETB EA
SETB IT0
SETB ET0
RET
KEY: JB K1,KEY_RET
ACALL DELAY_5ms