基于51单片机的数字秒表设计(最新整理)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本设计在选取单片机时,充分借鉴了许多成型产品使用单片机的 经验。并根据自己的实际情况,选用了 ATMEL 公司的 AT89S52。
ATMEL 公司的 89 系列单片机以其卓越的性能、完善的兼容性、 快 捷 便 利 的 电 擦 写 操 作 、 低 廉 的 价 格 完 全 替 代 了 87C51/62 和 8751/52,低电压、低功耗,有 DIP、PLCC、QFP 封装,是目前性 能最好、价格最低、最受欢迎的单片机之一。
P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPD P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
XTAL2 XTAL1
VSS
VCC P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 VPP ALE PSEN P2.7 P2.6 P2.5 P2.4 P2.3
AT89S52 为 40 脚双列直插封装的 8 位通用微处理器,采用工业 标准的 C51 内核,在内部功能及管脚排布上与通用的 8XC52 相同, 其主要用于汇聚调整时的功能控制。功能包括对汇聚主 IC 内部寄存 器、数据 RAM 及外部接口等功能部件的初始化,汇聚调整控制,汇 聚测试图控制等。 单片机外部结构 AT89S52 单片机采用 40 脚的 DIP 封装,如下所示。
数码管显示可以分为静态显示和动态显示两种。由于本设计需要 采用四位数码管显示时间,如果静态显示则占用的口线多,硬件电路 复杂,所以采用动态显示。
动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示
器的方式称为位扫描。通常各位数码管的段选线相应并联在一起,由 一个 8 位的 I/O 口控制;各位的公共阴极位选线由另外的 I/O 口线控 制。动态方式显示时,各数码管轮流选通,要使其稳定显示必须采用 扫描方式,即在某一时刻只选通一位数码管并送出相应的段码,在另 一时刻选通另一数码管,并送出相应的段码,依次规律循环,即可以 使各位数码管显示将要显示的字符,虽然这些字符是在不同时刻分别 显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可 以给人同时显示的感觉。
0.1 秒位到 10 吗 0.1 秒位清零,1 秒位加一
1 秒位到 10 吗 1 秒位清零,10 秒位加一
10 秒位到 10 吗 10 秒位清零
中断返回
2.3 程序清单
#include<reg52.h>
unsigned int data table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; //显示码值
a、P0 口(P0.0~P0.7)是一个 8 位漏极开路型双向 I/O 口,在访问外
部存储器时,它是分时传送的低字节地址和数据总线,P0 口能以吸 收电流的方式驱动八个 LSTTL 负载。 b、P1 口(P1.0~P1.7)是一个带有内部上拉电阻的 8 位准双向 I/O 口。 能驱动四个 LSTTL 负载。 c、P2 口(P2.0~P2.7)是一个带有内部上拉电阻的 8 位准双向 I/O 口, 在访问外部存储器时,它输出高 8 位地址。P2 口可以驱动四个 LSTTL 负载。 d、P3 口(P3.0~P3.7)是一个带有内部上拉电阻的 8 位准双向 I/O 口。 能驱动四个 LSTTL 负载。 1.3 显示电路的选择与设计
39 38 37 36 35 34 33 32
P2.0/A8 P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14 P2.7/A15
21 22 23 24 25 26 27 28
P3.0/RXD P3.1/TXD P3.2/INT0 P3.3/INT1
摘要
近年来随着科学技术的发展,单片机的应用正在不断走下面还深 入。本文简单阐述了基于单片机的数字秒表的的设计。本设计的主要 特点是计时精度达到 0.01 秒,是各种体育竞赛的必要设备之一。
本设计的数字秒表采用 AT89S52 单片机为主要器件,利用其定时 器的原理,结合显示电路、LED 数码管以及外部外部中断电路来设 计计时器。将软硬件结合起来,使得系统能实现 0~99.99 秒的计时, 计时精度位 0.01 秒。硬件系统利用 proteus 仿真,在仿真中就能观察 到系统的实际运行情况。 关键字:单片机 数字秒表 仿真
P3.4/T0 P3.5/T1 P3.6/WR P3.7/RD
10 11 12 13 14 15 16 17
RP1
1
2 3 4 5 6 7 8 9
U2:A
2 3

A B
Y0 Y1
1E
Y2 Y3
74LS139
RESPACK-8
4 5 6 7
二 软件设计
2.1 主程序设计 本系统程序主要模块由主程序、定时中断服务程序、外部中断 0
对于数字显示电路,通常采用液晶显示或数码管显示。对于一般 的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显 示,可视性差,不适合远距离观看;对于具有驱动电路和单片机接口 的液晶显示模块,一般多采用并行接口,对单片机的接口要求较高, 占用资源多;另外,AT89S52 单片机本身没有专门的液晶驱动接口。 而数码管作为一种主动显示器件,具有亮度高、响应速度快、价格便 宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或者远距 离操作。因此在本设计中,我们采用 7 段数码管作为显示介质。
//给定时器赋定时初值
TL0=(65536-1000)%256;
EA=1;
//开中断
EX0=1;
EX1=1;
ET0=1;
IT0=1;
//设置外部中断位脉冲边沿触发方式
IT1=1;
while(1)
// 数码显示
{
P2=0x03;
P0=table[i];
一端。当采用外部振荡时,此引脚接外部振荡源。
(2)控制或与其他电源复用引脚
a、RST/VPD 当振荡器运行是,在此引脚上出现两个机器周期的
高电平(由低到高跳变),将使单片机复位在 Vcc 掉电期间,此引脚
可接上备用电源,由 VPD 向内部提供备用电源,
以保持内部 RAM 中的数据。
b、ALE/PROG
U1
19 XTAL1 18 XTAL2
9 RST
29 30 31
PSEN ALE EA
1 2 3 4 5 6 7 8
P1.0/T2 P1.1/T2EX P1.2 P1.3 P1.4 P1.5 P1.6 P1.7
AT89S52
P0.0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7
四位数码管 位控制
计时器采用 T0 中断实现,定时溢出中断周期为 1ms,当溢出中 断后向 CPU 发出溢出中断请求,每发出 10 次中断请求就对 10ms 位
(即最后一位)加一,达到 100 次就对 100ms 位加一,以此类推, 直到 99.99s 为止。
再看按键的处理。两个按键采用中断的方法,设置外部中断 0 和 外部中断 1 位脉冲边沿触发方式,这样一来每当按键按下时便会触发 中断,从而实现启动和暂停。 1.2 单片机的选择
(1)外部中断 0 服务程序
外部中断 0 服务程序结合外部 P3.2 键实现数字秒表的启动功能。流 程如下图所示。
外部中断 0 入口
启动定时器 T0 TR0=1
中断返回
(2)外部中断 1 服务程序 外部中断 1 服务程序结合外部 P3.3 键实现数字秒表的停止功能。 流程图如下所示。
外部中断 1 入口
本设计利用 AT89S52 单片机的定时器,使其能精确计时。利用 中断系统使其实现启动和暂停的功能,P0 口输出段码数据,P2.0~P22. 连上译码器作为位选,P3.2 和 P3.3 接口的两个按钮分别实现启动和 暂停功能。设计的基本要求是正确性。硬件电路按下图进行设计。
控制开关
AT89S52 单片机
一 硬件设计
1、1 总体方案的设计 数字秒表具有显示直观、读取方便、精度高等优点,在计时中
广泛应用。本设计中用单片机和数码管组成数字秒表力求结构简单。 设计中包括硬件电路的设计和系统程序的设计。硬件电路主要
有主控制器、控制按钮与显示电路组成。主控制器采用单片机 AT89S52,显示电路采用四位共阴极数码管显示计时时间。
服务程序和外部中断 1 服务程序组成。其中主程序是整个程序的主 体。可以对各个中断程序进行调用。协调各个子程序之间的关系。
主程序主要是设置定时器大的工作模式,对定时器赋初值,开总 中断、两个外部中断以及定时器溢出中断。并设置外部中断为脉冲边 沿触发方式。 2.2 中断程序设计
本方案中用到了三个中断:外部中断 0、外部中断 1 和定时器 T0 溢出中断。CPU 在响应中断时,先处理高级中断,后处理低级中断, 若有多个同级中断时,则应按自然优先顺序处理。例如当 CPU 正在 处理一个中断申请时,又出现了另一个优先级比它高的中断请求,这 时,CPU 就暂停对当前优先级较低的中断源的服务,转去响应优先 级比它高的中断请求,并为其服务。待服务结束,再继续执行原来较 低级的中断服务程序。而当 CPU 为级别高的中断服务程序服务时, 如果级别低的中断发出中断请求,此时 CPU 是不会响应的,所以为 了避免开始和暂停两个按键中的一个出现没有响应的情况,在进行编 程是要注意中断的使用,避免出现中断的嵌套。合理分配中断对本设 计是很重要的。
d、EA/Vpp 内部程序存储器和外部程序存储器选择端。当 EA/Vpp
位高电平时,访问内部程序存储器,当 EA/Vpp 为低电平时,则访问
外部程序存储器。对于 EPROM 编程期间,此引脚上加 21VEPROM
编程电源(Vpp)。
(3)输入/输出引脚 P0.0~P0.7,P1.0~P1.7,P2.0~P2.7,P3.0~P3.7。
段 驱 动
AT89S52
位 驱 动
四位数码管
1.4 系统总体电路的设计 系统总体电路如下图所示
AT89S52 单片机为主电路的核心部分,各个电路均与单片机 相连,由单片机统筹协调各个电路的运行工作。
开始键和暂停键使用了外部中断,所以需要连到单片机的 P3.2 和 P3.3 引脚上,这两个 I/O 口的第二功能是单片机的外部中断 0 端
unsigned int i,j,k,l,count;
void delay(unsigned int z)
//延时程序
{
unsigned int x,y;
for(x=z;x!=0;x--)
for(y=110;y!=0;y--);
}
void main()
{
TMOD=0x01;
//设置定时器为模式 1
TH0=(65536-1000)/256;
P2.2
P2.1
P2.0
(1)主电源引脚 Vss 和 Vcc a、 Vss 接地 b、 Vcc 正常操作时为+5V 接地
外接晶振引脚 XTAL1 和 XTAL2
a、XTAL1 内部振荡电路反相放大器的输出端,是外接晶体的一个引
脚。当采用外部振荡时,此引脚接地。
b、XTAL2 内部振荡电路反相放大器的输出端,是外接晶体的的另
正常操作时为 ALE 功能(允许地址锁存)提
供把地址的低字节锁存到外部存储器,ALE 引脚以不变的频率(振
荡器频率的 1/6)周期性的发出正脉冲信号。因此,它可以用作对外
输出的时钟,或用于定时目的。
c、PSEN 外部程序存储器读选通信号输出端,在从外部程序存储
取指令(或数据)期间,PSEN 在每个机器周期内两次有效。
停止计时 TR1=0
中断返回
(3)定时器 T0 中断服务程序 当 T0 一处后,向 CPU 发出中断请求信号。CPU 跳转到定时中断程 序执行,具体流程如下。
定时器中断入口 重装计数初值 中断次数加 1
中断次数到 10 吗 中断次数清零,0.01 秒位加一
0.01 秒位到 10 吗 0.01 秒位清零,0.1 秒位加一
口和外部中断 1 端口。 显示电路由四位数码管组成,采用动态显示方式,因此有 8 位段
控制和 4 位位控制,8 位段接控制接 P0 口,P0.0~P0.7 分别控制数码 管的 a b c d e f g dp 显示,位控制接在 P2.0 和 P2.1 两个口,在通过 一个 2—4 译码器实现位控制。
相关文档
最新文档