电子秒表的设计

  • 格式: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