单片机课程设计

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

秒表的设计

1设计要求

1.1 设计任务

(1)实现计时范围00.00-99.99秒表

(2)实现秒表精确到0.01秒

(3)实现秒表的三个控制键;开启计时键,暂停键和复位键

1.2 设计要求

用单片机设计一个计时范围在00.00致99.99的秒表,秒表精确在0.01秒秒表有三个控制键分别是;秒表计时开启键,计时暂停键和秒表复位键。

1.3 方案论证

方案一:用AT89C51作为主要芯片,采用排阻,并用汇编语言写程序,采用硬件消抖

方案二:采用三极管驱动数码管,C语言编写程序,在编写程序时进行软件消抖

相比之后方案二更简便,因为软件消抖更容易,C语言程序更容易懂,易修改,硬件电路更简单。

2 设计思想

2.1 硬件设计思想

数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。

设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零、启动等。主控制器采用单片机AT89C52,显示电路采用四位共阳极LED数码管显示计时时间。由于本实验有四位数码管,如果采用静态显示要占用全部的I/O端口,所以本次试验采用静态显示,

建立最小单片机系统,在AT89C51单片机的P2端通过三极管接上4位七段共阴极数码管,P2.0脚接第一位数码管片选端,P2.1脚接第二位数码管片选端,P2.2脚接第三位数码片选端,P2.3脚接第四位数码管片选端,这四位分别显示秒时间的十位,个位,小数点后一位,小数点后两位显示的片选控制端。P2.4脚接小数点控制端。

秒表控制键盘。用P3.0接键盘开启计时键,P3.1接键盘计时暂停键,P3.2接键盘计时复位键。

2.2 软件设计思想

采用C语言编写程序,程序共有四部分;

第一部分是主程序,用于对程序的中断控制、数据等的初始化,并且对秒表控制键盘的扫描。

第二部分时间产生程序,用定时/计数器0中断程序用时产生时间,利用每10m进入本中断程序一次

第三部分4位七段共阴极数码管动态显示程序,用定时/计数1中断程序每50ms对数码管各扫描一次,是利用人眼视觉暂留实现数码管的显示。

第四部分动态扫描延时程序,用于在对数码管动态扫描时,每扫描一个数码管后的延时程序。以实现四位数码时间同时显示的效果。

3 电路原理与电路图

3.1 电路原理

AT89C51单片机做为控制电路,用P1口做为数据输出端,P2口做为4位七段共阴极数码管的片选控制输出口,P3.0,P3.1,P3.2做为键盘接口。时间显示器,由4位七段共阴极数码管构成。

3.2 电路原理图

3.3 AT89C52单片机及其引脚说明

AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个

全双工串行通信口,2个读写口线,AT89C52可

以按照常规方法进行编程,也可以在线编程。其

将通用的微处理器和Flash存储器结合在一起,

特别是可反复擦写的Flash存储器可有效地降低

开发成本。

主要功能特性:

•兼容MCS51指令系统

• 8k可反复擦写(>1000次)Flash ROM

• 32个双向I/O口

• 256x8bit内部RAM

• 3个16位可编程定时/计数器中断

•时钟频率0-24MHz

• 2个串行中断

•可编程UART串行通道

• 2个外部中断源

•共6个中断源

• 2个读写中断口线

• 3级加密位

•低功耗空闲和掉电模式

•软件设置睡眠和唤醒功能

3.4数码管显示系统电路

3.41 数码管的介绍

微机化测控系统中常用的测量数据的显示器有发光二极管显示器(简称LED

或数码管)和液晶显示器(简称LCD)。这两种显示器都具有线路简单、耗电少、成本低、寿命长等优点,本系统输出结果选用2个LED显示。LED数码管的外形结构如图2-4,外部有10个引脚,其中3, 8脚为公共端也称位选端,其余8个引脚称为段选端,当要使某一位数码管显示某一数字((0-9中的一个)必须在这个数码管的段选端加上与数字显示数字对应的8位段选码(也称字形码),在位选端加上低电平即可。LED有共阴极和共阳极两种。如图2-4所示。

二极管的阴极连接在一起,通常此公共阴极接地,而共阳极则将发光二极管的阳极连接在一起,接入+5V的电压。一位显示器由8个发光二极管组成,其中7个发光二极管构成字型“8”的各个笔划(段)a~g,另一个小数点为dp发光二极管。当在某段发光二极管施加一定的正向电压时,该段笔划即亮;不加电压则暗。为了保护各段LED不被损坏,需外加限流电阻。

共阴极共阳极

图 3.5 LED数码管结构原理图

图3.6 LED数码管引脚图

数码管显示器有两种工作方式,即静态显示方式和动态扫描显示方式。为节省端口及降低功耗,本系统采用动态扫描显示方式。动态扫描显示方式需要解决多位LED数码管的“段控”和“位控”问题,本电路的通过P1口实现:而每一位的公共端,即LED数码管的“位控”,则由P3口控制。这种连接方式由于多位字段线连在一起,因此,要想显示不同的内容,必然要采取轮流显示的方式,即在某一瞬间,只让其中的某一位的字位线处于选通状态,其它各位的字位线处于断开状态,同时字段线上输出这一位相应要显示字符的字段码。在这一瞬时,只有这一位在显示,其他几位则暗。在本系统中,字位线的选通与否是通过PNP 三极管的导通与截止来控制,即三极管处于“开头”状态。

使用LED显示器时,要注意区分这两种不同的接法。为了显示数字或字符,必须对数字或字符进行编码。七段数码管加上一个小数点,共计8段。因此为LED显示器提供的编码正好是一个字节。TX实验板用共阴LED显示器,根据电路连接图显示16进制数的编码已列在下表。

表3.1 LED字形显示代码表

字型共阳极段共阴极段字型共阳极段共阴极段

0 C0H 3FH 9 90H 6FH

1 F9H 06H A 88H 77H

2 A4H 5BH B 83H 7CH

3 B0H 4FH C C6H 39H

4 99H 66H D A1H 5EH

5 92H 6DH E 86H 79H

6 82H 7DH F 84H 71H

7 F8H 07H 空白FFH 00H

8 80H 7FH P 8CH 73H

相关文档
最新文档