基于51单片机的数字秒表设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机课程设计

设计题目基于单片机数字秒表的设计学院名称电气学院

指导教师朱卫华

班级电子11级02班

学号

学生姓名

摘要

本设计是基于AT89S51单片机的简易数字秒表设计,主要组成是以51单片机最小系统为核心,通过运用单片机的振荡电路实现计时同时用数码管同步显示。本秒表最大计时为99秒。本设计的特点是:大部分功能通过软件实现,使电路简单明了,系统稳定性好。

关键词:AT89S51 振荡电路计时数码管

目录

1设计概述 (1)

1.1AT89S51概述 (1)

1.2系统设计功能概述 (2)

2系统设计 (2)

2.1设计思路 (2)

2.2硬件设计 (2)

2.2.1单片机最小系统的设计 (2)

2.2.2数码管显示电路设计 (3)

2.3软件设计 (7)

2.3.1软件设计流程图 (7)

2.3.2消除开关抖动 (9)

2.3.3数码管延时显示程序 (10)

2.3.4延时1秒的程序 (10)

3软件调试和结果 (11)

3.1软件调试与下载 (11)

3.2硬件仿真 (12)

4心得体会 (13)

参考文献 (15)

附录 (16)

I基于单片机的数字秒表设计主程序 (16)

IIPCB电路图 (19)

III实物图 (20)

1设计概述

1.1AT89S51概述

AT89S51是一个低功耗,高性能CMOS 8位单片机,片内含4k Bytes ISP(In-system programmable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。

AT89S51具有如下特点:40个引脚,4k Bytes Flash片内程序存储器,128 bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。

AT89S51引脚图

在实际应用中,因为STC的单片机比AT的单片机更加容易下载程序,它们的端口是一模一样的,所以本次设计实际应用的是STC51单片机。

1.2系统设计功能概述

本设计展现的是一个计时用的秒表。功能为两位七段数码管在开机时显示“00“,并在系统中添加一个按钮开关。当第一次按下按钮开关后秒表开始计时,第二次按下后计时停止,第三次按下后两个数码管清0,并回到一开始计时状态。由于只设计了两位数码管,故该秒表最大计时99秒。

2系统设计

2.1设计思路

根据系统功能,易知我们先要设计一个单片机最小系统,包括振荡电路、复位电路,然后设计一个数码管控制、显示电路,再用软件来控制秒表的计时以

2.2硬件设计

2.2.1单片机最小系统的设计

1时钟电路设计

如图2.2.1,为了方便计算,本设计采用12MHz的晶振,一个机器周期为1秒。

图2.2.1

2复位电路设计

如图2.2.2,为了更好的控制复位电路,用了一个接触式按钮开关。

图2.2.2

2.2.2数码管显示电路设计

一般来说,不直接用I/O端口直接连接数码管,如图2.2.3,本设计采用74ls48 译码器和共阴极数码管。

图2.2.3

74ls48芯片是一种常用的七段数码管译码器驱动器,常用在各种数字电路和单片机系统的显示系统中,如下图,为74Ls48真值表以及特性表。

图2.2.4真值表

图2.2.5特性表

因为74ls48输出电流最大为6mA,在数码管的工作电流之内,所以不必用电阻。

共阴极数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为低电平时,x相应字段就不亮。

图2.2.6数码管引脚图图2.2.7数码管真值表

将共阴极数码管一端接地,一端接在单片机上,通过操纵单片机的高低电平,从而控制数码管。

图2.2.5

如图2.2.5,当按钮没有按下时,单片机的I/O口直接连接电源,所以须要上拉电阻进行限流,计算的灌电流为2.5mA,查看AT89S51的数据手册知该电流在其范围内,满足设计要求。

2.3软件设计

2.3.1软件设计流程图

否是

2.3.2消除开关抖动

当手指按下开关时,如果我们的动作足够完美,那么P1.0应该立即出现一个低电平,并且这个低电平一直保持到我们抬起手指为止。但实际情况是,我们没有经过专业的按开关训练和开关自身存在着接触点接触不良的问题,导致在按下开关的过程中产生一个微妙的跳变电平接触过程:开关在一个很短的时间内,会出现多次的接通与断开过程。这样在P1.0端口出现一个电平在VCC和0V之间抖动的过程。这对于具有高灵敏触角的单片机来说,会产生误动作。因此,如图2.3.1,本设计采用延时程序设计来避开抖动电平。

图2.3.1延时程序

上述程序所花时间为(248*2+2+2)*60=30ms,30ms足以消除抖动。2.3.3数码管延时显示程序

在本次的秒表系统电路设计图中,两位七段数码管与P0口相连,并分别占了P0.0-P0.3和P0.4-P0.7.因为有译码器为接口,只要控制I/O口输出BCD码便能得到相应数字了。如显示0,由于0的BCD码为0000,所以指令为MOV P0,#00H。

秒表启动后,当第一次按下按钮开关后秒表开始计时。系统延时1秒,然后利用ADD指令,把显示的数字加一,这样就显示01,再延时再显示,如此循环,直到显示至99后,又返回00重新开始计时。

2.3.4延时1秒的程序

MOV R5,#10

ADD_1:

MOV R6,#200

相关文档
最新文档