单片机课程设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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