基于51单片机的数字秒表设计Word下载.docx

上传人:b****5 文档编号:21101712 上传时间:2023-01-27 格式:DOCX 页数:13 大小:183.55KB
下载 相关 举报
基于51单片机的数字秒表设计Word下载.docx_第1页
第1页 / 共13页
基于51单片机的数字秒表设计Word下载.docx_第2页
第2页 / 共13页
基于51单片机的数字秒表设计Word下载.docx_第3页
第3页 / 共13页
基于51单片机的数字秒表设计Word下载.docx_第4页
第4页 / 共13页
基于51单片机的数字秒表设计Word下载.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

基于51单片机的数字秒表设计Word下载.docx

《基于51单片机的数字秒表设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于51单片机的数字秒表设计Word下载.docx(13页珍藏版)》请在冰豆网上搜索。

基于51单片机的数字秒表设计Word下载.docx

硬件系统利用proteus仿真,在仿真中就能观察到系统的实际运行情况。

关键字:

单片机数字秒表仿真

一硬件设计

1、1总体方案的设计

数字秒表具有显示直观、读取方便、精度高等优点,在计时中广泛应用.本设计中用单片机和数码管组成数字秒,表力求结构简单。

设计中包括硬件电路的设计和系统程序的设计。

硬件电路主要有主控制器、控制按钮与显示电路组成。

主控制器采用单片机AT89S52,显示电路采用四位共阴极数码管显示计时时间.

本设计利用AT89S52单片机的定时器,使其能精确计时。

利用中断系统使其实现启动和暂停的功能,P0口输出段码数据,P2。

0~P2。

2连上译码器作为位选,P3.2和P3。

3接口的两个按钮分别实现启动和暂停功能。

设计的基本要求是正确性。

硬件电路按下图进行设计.

计时器采用T0中断实现,定时溢出中断周期为1ms,当溢出中断后向CPU发出溢出中断请求,每发出10次中断请求就对10ms位(即最后一位)加一,达到100次就对100ms位加一,以此类推,直到99。

99s为止。

再看按键的处理。

两个按键采用中断的方法,设置外部中断0和外部中断1位脉冲边沿触发方式,这样一来每当按键按下时便会触发中断,从而实现启动和暂停。

1。

2单片机的选择

本设计在选取单片机时,充分借鉴了许多成型产品使用单片机的经验。

并根据自己的实际情况,选用了ATMEL公司的AT89S52.

ATMEL公司的89系列单片机以其卓越的性能、完善的兼容性、快捷便利的电擦写操作、低廉的价格完全替代了87C51/62和8751/52,低电压、低功耗,有DIP、PLCC、QFP封装,是目前性能最好、价格最低、最受欢迎的单片机之一。

AT89S52为40脚双列直插封装的8位通用微处理器,采用工业标准的C51内核,在内部功能及管脚排布上与通用的8XC52相同,其主要用于汇聚调整时的功能控制。

功能包括对汇聚主IC内部寄存器、数据RAM及外部接口等功能部件的初始化,汇聚调整控制,汇聚测试图控制等。

单片机外部结构

AT89S52单片机采用40脚的DIP封装,如下所示。

文档为个人收集整理,来源于网络个人收集整理,勿做商业用途

(1)主电源引脚Vss和Vcc

a、Vss接地

b、Vcc正常操作时为+5V接地

外接晶振引脚XTAL1和XTAL2

a、XTAL1内部振荡电路反相放大器的输出端,是外接晶体的一个引脚。

当采用外部振荡时,此引脚接地。

b、XTAL2内部振荡电路反相放大器的输出端,是外接晶体的的另一端。

当采用外部振荡时,此引脚接外部振荡源。

(2)控制或与其他电源复用引脚

a、RST/VPD当振荡器运行是,在此引脚上出现两个机器周期的高电平(由低到高跳变),将使单片机复位在Vcc掉电期间,此引脚可接上备用电源,由VPD向内部提供备用电源,

以保持内部RAM中的数据。

b、ALE/PROG正常操作时为ALE功能(允许地址锁存)提供把地址的低字节锁存到外部存储器,ALE引脚以不变的频率(振荡器频率的1/6)周期性的发出正脉冲信号。

因此,它可以用作对外输出的时钟,或用于定时目的。

c、PSEN外部程序存储器读选通信号输出端,在从外部程序存储取指令(或数据)期间,PSEN在每个机器周期内两次有效。

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.

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显示电路的选择与设计

对于数字显示电路,通常采用液晶显示或数码管显示.对于一般的段式液晶屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;

对于具有驱动电路和单片机接口的液晶显示模块,一般多采用并行接口,对单片机的接口要求较高,占用资源多;

另外,AT89S52单片机本身没有专门的液晶驱动接口。

而数码管作为一种主动显示器件,具有亮度高、响应速度快、价格便宜、易于购买等优点,而且有远距离视觉效果,很适合夜间或者远距离操作.因此在本设计中,我们采用7段数码管作为显示介质.

数码管显示可以分为静态显示和动态显示两种。

由于本设计需要采用四位数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂,所以采用动态显示。

动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式称为位扫描。

通常各位数码管的段选线相应并联在一起,由一个8位的I/O口控制;

各位的公共阴极位选线由另外的I/O口线控制。

动态方式显示时,各数码管轮流选通,要使其稳定显示必须采用扫描方式,即在某一时刻只选通一位数码管并送出相应的段码,在另一时刻选通另一数码管,并送出相应的段码,依次规律循环,即可以使各位数码管显示将要显示的字符,虽然这些字符是在不同时刻分别显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。

4系统总体电路的设计

系统总体电路如下图所示

AT89S52单片机为主电路的核心部分,各个电路均与单片机相连,由单片机统筹协调各个电路的运行工作。

开始键和暂停键使用了外部中断,所以需要连到单片机的P3.2和P3。

3引脚上,这两个I/O口的第二功能是单片机的外部中断0端口和外部中断1端口.

显示电路由四位数码管组成,采用动态显示方式,因此有8位段控制和4位位控制,8位段接控制接P0口,P0.0~P0。

7分别控制数码管的abcdefgdp显示,位控制接在P2。

0和P2.1两个口,在通过一个2-4译码器实现位控制.

二软件设计

2。

1主程序设计

本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。

其中主程序是整个程序的主体.可以对各个中断程序进行调用.协调各个子程序之间的关系。

主程序主要是设置定时器大的工作模式,对定时器赋初值,开总中断、两个外部中断以及定时器溢出中断.并设置外部中断为脉冲边沿触发方式。

2.2中断程序设计

本方案中用到了三个中断:

外部中断0、外部中断1和定时器T0溢出中断。

CPU在响应中断时,先处理高级中断,后处理低级中断,若有多个同级中断时,则应按自然优先顺序处理。

例如当CPU正在处理一个中断申请时,又出现了另一个优先级比它高的中断请求,这时,CPU就暂停对当前优先级较低的中断源的服务,转去响应优先级比它高的中断请求,并为其服务。

待服务结束,再继续执行原来较低级的中断服务程序。

而当CPU为级别高的中断服务程序服务时,如果级别低的中断发出中断请求,此时CPU是不会响应的,所以为了避免开始和暂停两个按键中的一个出现没有响应的情况,在进行编程是要注意中断的使用,避免出现中断的嵌套.合理分配中断对本设计是很重要的。

(1)外部中断0服务程序

外部中断0服务程序结合外部P3。

2键实现数字秒表的启动功能。

流程如下图所示。

(2)外部中断1服务程序

外部中断1服务程序结合外部P3。

3键实现数字秒表的停止功能。

流程图如下所示.

(3)定时器T0中断服务程序

当T0一处后,向CPU发出中断请求信号。

CPU跳转到定时中断程序执行,具体流程如下。

3程序清单

#include〈reg52.h〉

unsignedintdatatable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};

//显示码值

unsignedinti,j,k,l,count;

voiddelay(unsignedintz)//延时程序

unsignedintx,y;

for(x=z;

x!

=0;

x—-)

for(y=110;

y!

y——);

voidmain()

{

TMOD=0x01;

//设置定时器为模式1

TH0=(65536-1000)/256;

//给定时器赋定时初值

TL0=(65536-1000)%256;

EA=1;

//开中断

EX0=1;

EX1=1;

ET0=1;

IT0=1;

//设置外部中断位脉冲边沿触发方式

IT1=1;

while

(1)//数码显示

{

P2=0x03;

P0=table[i];

delay

(1);

P2=0x02;

P0=table[j];

delay

(1);

P2=0x01;

P0=(table[k]+0x80);

P2=0x00;

P0=table[l];

};

}

voidex0()interrupt0//外部中断0

TR0=1;

//开定时器,开始计数

voidex1()interrupt2//外部中断0

TR0=0;

//停止计数

voidtimer0()interrupt1//定时器T0溢出中断

TH0=(65536—1000)/256;

//重装计数初值

TL0=(65536—1000)%256;

count++;

//溢出中断次数加一

if(count==10)

count=0;

i++;

//溢出10次,0.01s位加一

if(i==10)

i=0;

//0。

01s位到10了,清零,0。

1s位加一

j++;

if(j==10)

j=0;

//0。

1s位到10了,清零,1s位加一

k++;

if(k==10)

k=0;

//1s位到10了,清零,10s位加一

l++;

}

}

}

三系统调试

ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件,它可以仿真、分析各种模拟器件和集成电路.该软件的主要特点为:

实现了单片机仿真和SPICE电路仿真相结合的功能,支持目前主流单片机系统的仿真,提供了软件调试的功能,具有强大的原理图绘制功能。

总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。

在电子领域中起到了很大的作用,它的出现仿真不需要先焊接电路板,可以先仿真调试通过之后再焊接电路,节省了不少在硬件调试上花费的时间。

打开已经画好的ProteusDSN文件,双击图中的AT89S52芯片,就弹出一个窗口,在programfile项中通过路径选择在keil中生成hex文件,双击选中后确定,这样仿真图中的AT89S52芯片就已经读取了本设计中的hex文件。

然后进行仿真,仿真图如下所示.

系统运行时的情况:

四结束语

本设计的数字秒表是由AT89S52单片机、共阴极数码管和控制按键等器件组成的,设有四位计时显示。

计时精度能达到0。

01s。

系统设计合理,线路简单,性能稳定、程序简单。

给出了较为详尽的电路设计方法。

本系统以单片机为核心,但仅单片机方面的知识是不够的,还应根据具体硬件结构,以及针对具体应用对象特点的软硬件结合,以作完善.

本系统主要由三章完成,第一章中,主要是硬件电路和其实现的功能,在本次设计中各部分都实现了其功能。

在第二章中,主要介绍的是软件实现过程的框图.在第三章中,粗略地介绍了硬件和软件的调试,最终保证系能够正常运行。

通过本次课程设计,我们复习巩固了以前所学的数字电路、单片机原理及接口技术等知识,加深了对各门课程间相互关系的理解,并成功使用了keil、Proteus两款软件,使理论知识系统化、实用化。

同时在课程设计的过程中,我们也发现了本系统的许多不足和可以改进的地方。

但由于时间紧迫以及技术水平等原因没能改进。

虽然存在不足,但本设计开发的数字秒表仍有一定的使用价值。

参考文献

1李朝青.单片机原理及接口技术(第3版)。

北京:

北京航空航天大学出版社,2006

2赵建领.51系列单片机开发宝典。

北京:

电子工业出版社,2007

3朱清慧,张凤蕊,翟天嵩,王志奎.Proteus教程—-电子线路设计、制版与仿真.北京:

清华大学出版社,2008

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1