单片机秒表课程设计
- 格式:doc
- 大小:241.50 KB
- 文档页数:12
单片机课程设计
实验报告
专业班级:通信0901
组员:邓朋超0909090119
廖海君0909090623
刘晓龙0909090629指导老师:杨迎泽
一、实验内容及要求
1、实验内容
用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。另设计一个“开始”按键和一个“复位”按键。再增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)。按键说明:按“开始”按键,开始计数,数码管显示从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当时的计数;按“快加”按键,系统每10ms快速加一,即数码显示管在原先的计数上快速加一。
2、实验要求
了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到0.1秒。
要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并在实验箱实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零功能。
二、课题研究目的和意义及介绍
1、目的意义
1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进
一步的了解。
2)掌握定时器、外部中断的设置和编程原理。
3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4)该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有
正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义0.0
2、单片机的简单介绍
AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM-Flash Programmable and Eraseable Read Only Memory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。
主要性能:
◆与MCS-51 微控制器产品系列兼容。
◆片内有4KB可在线重复编程的快闪擦写存储器
◆存储数据保存时间为10年
◆宽工作电压范围:Vcc可为2.7V到6V
◆全静态工作:可从0Hz至16MHz
◆程序存储器具有3级加密保护
◆128*8位内部RAM
◆32条可编程I/O线
◆两个16位定时器/计数器
◆中断结构具有5个中断源和2个优先级
◆可编程全双工串行通道
◆空闲状态维持低功耗和掉电状态保存存储内容
3、实验仪器
集成电路芯片8032,七段数码管,AT89C51实验箱,按键,DVCC系列单片机微机仿真实验系统中的软件(WAVE 6000)
三、设计思路及描述
该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和AT89C51的管脚功能类似)中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能;将P3.0做为数据信号DATA输入的入口地址;将P3.1做为时钟信号CLK输入的入口地址。定时器T0作为每秒加一的定时器;定时器T1作为“快加”键的定时器。其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。
方框图如下图:
图3 数字秒表设计导向图
四、硬件设计
1、接口电路
利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间的值(可正记时,也可倒计时),并通过输出显示在数码管上。
如图:
图4。1 秒表系统连线图
P0.0—P0.7对应了两个接数码管的A,B,C,D,E,F,G和小数点位,P2.6接显示个位数的数码管的3、8引角,P2.7则接十位数的。P3.6、P3.7分别接按键。
2、硬件连线图
图4.2 数字秒表程序硬件电路连线图
五、软件设计
1、数字秒表工作流程图
图5 数字秒表工作整体流程图
2、用51单片机实现数字秒表工作源程序
OUTBIT EQU 08002H ;位控制口OUTSEG EQU 08004H ;段控制口
LSEC EQU 31H ;
SEC EQU 32H ;
MIN EQU 33H ;
FLAG BIT 20H.0 ;位定义
KEY1 BIT P3.6 ;
KEY2 BIT P3.7 ;
ORG 0000H ;
LJMP START ;初始程序入口地址
ORG 000BH ;
LJMP TIMER0 ;加一子程序入口地址
ORG 0060H
START: LCALL INITIAL ;调用启动LCM子程序进行初始化LOOP: LCALL DISPLAY ;退出时钟调整时键释放等待JNB KEY1,WAIT ;判断KEY1.等待
JNB KEY2,RESET ;
LJMP LOOP ;
CONTROL: CLR TR0 ;关定时器
LCALL DISPLAY ;
JNB KEY1,CONTROL ;
CPL FLAG ;
JB FLAG,BEGIN ;
SETB TR0 ;重置定时器
LJMP LOOP ;
WAIT: LCALL DISPLAY ;
JNB KEY1,CONTROL ;
LJMP LOOP ;
BEGIN: CLR TR0 ;
LJMP LOOP ;
RESET: JNB TR0,CLE ;
LCALL LOOP ;
CLE: LCALL CLEAR ;
LJMP LOOP ;
INITIAL: LCALL CLEAR ;
SETB FLAG ;
MOV DPTR,#TAB ;
MOV TMOD,#01H ;定时器0,方式一
MOV TL0,#0F0H ;