单片机秒表课程设计.docx
《单片机秒表课程设计.docx》由会员分享,可在线阅读,更多相关《单片机秒表课程设计.docx(12页珍藏版)》请在冰豆网上搜索。
单片机秒表课程设计
单片机课程设计
实验报告
专业班级:
通信0901
组员:
邓朋超09
廖海君03
刘晓龙09
指导老师:
***
一、实验内容及要求
1、实验内容
用AT89C51设计一个2位LED数码显示“秒表”,显示时间为00~99秒,每秒自动加一。
另设计一个“开始”按键和一个“复位”按键。
再增加一个“暂停”按键和一个“快加”按键(每10ms快速加一)。
按键说明:
按“开始”按键,开始计数,数码管显示从00开始每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当时的计数;按“快加”按键,系统每10ms快速加一,即数码显示管在原先的计数上快速加一。
2、实验要求
了解8051芯片的的工作原理和工作方式,使用该芯片对LED数码管进行显示控制,实现用单片机的端口控制数码管,显示分、秒,并能用按钮实现秒表起动、停止、清零功能,精确到秒。
要求选用定时器的工作方式,画出使用单片机控制LED数码管显示的电路图,并在实验箱实现其硬件电路,并编程完成软件部分,最后调试秒表起动、停止、清零功能。
二、课题研究目的和意义及介绍
1、目的意义
1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步的了解。
2)掌握定时器、外部中断的设置和编程原理。
3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。
4)该实验通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的计时、暂停、清零、快加功能,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义
2、单片机的简单介绍
AT89C51是一种低功耗、高性能的片内含有4KB快闪可编程/擦除只读存储器(FPEROM-FlashProgrammableandEraseableReadOnlyMemory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与80C51引脚和指令系统完全兼容。
主要性能:
与MCS-51微控制器产品系列兼容。
片内有4KB可在线重复编程的快闪擦写存储器
存储数据保存时间为10年
宽工作电压范围:
Vcc可为到6V
全静态工作:
可从0Hz至16MHz
程序存储器具有3级加密保护
128*8位内部RAM
32条可编程I/O线
两个16位定时器/计数器
中断结构具有5个中断源和2个优先级
可编程全双工串行通道
空闲状态维持低功耗和掉电状态保存存储内容
3、实验仪器
集成电路芯片8032,七段数码管,AT89C51实验箱,按键,DVCC系列单片机微机仿真实验系统中的软件(WAVE6000)
三、设计思路及描述
该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和AT89C51的管脚功能类似)中的管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将做为外部中断1的入口地址,并实现“清零”按键的功能;将做为数据信号DATA输入的入口地址;将做为时钟信号CLK输入的入口地址。
定时器T0作为每秒加一的定时器;定时器T1作为“快加”键的定时器。
其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。
方框图如下图:
图3数字秒表设计导向图
四、硬件设计
1、接口电路
利用12M晶振的一个机器周期为1微秒,通过循环产生1秒时间延迟,扫描单片机中所存放的时间的值(可正记时,也可倒计时),并通过输出显示在数码管上。
如图:
图4。
1秒表系统连线图
—对应了两个接数码管的A,B,C,D,E,F,G和小数点位,接显示个位数的数码管的3、8引角,则接十位数的。
、分别接按键。
2、硬件连线图
图数字秒表程序硬件电路连线图
五、软件设计
1、数字秒表工作流程图
图5数字秒表工作整体流程图
2、用51单片机实现数字秒表工作源程序
OUTBITEQU08002H;位控制口
OUTSEGEQU08004H;段控制口
LSECEQU31H;
SECEQU32H;
MINEQU33H;
FLAGBIT;位定义
KEY1BIT;
KEY2BIT;
ORG0000H;
LJMPSTART;初始程序入口地址
ORG000BH;
LJMPTIMER0;加一子程序入口地址
ORG0060H
START:
LCALLINITIAL;调用启动LCM子程序进行初始化
LOOP:
LCALLDISPLAY;退出时钟调整时键释放等待
JNBKEY1,WAIT;判断KEY1.等待
JNBKEY2,RESET;
LJMPLOOP;
CONTROL:
CLRTR0;关定时器
LCALLDISPLAY;
JNBKEY1,CONTROL;
CPLFLAG;
JBFLAG,BEGIN;
SETBTR0;重置定时器
LJMPLOOP;
WAIT:
LCALLDISPLAY;
JNBKEY1,CONTROL;
LJMPLOOP;
BEGIN:
CLRTR0;
LJMPLOOP;
RESET:
JNBTR0,CLE;
LCALLLOOP;
CLE:
LCALLCLEAR;
LJMPLOOP;
INITIAL:
LCALLCLEAR;
SETBFLAG;
MOVDPTR,#TAB;
MOVTMOD,#01H;定时器0,方式一
MOVTL0,#0F0H;
MOVTH0,#0D8H;
SETBEA;开中断
SETBET0;开T0中断
RET;
TIMER0:
CLRTR0;
MOVTL0,#0F0H;
MOVTH0,#0D8H;重新赋值
SETBTR0;
INCLSEC;
MOVA,LSEC;
CJNEA,#100,EXIT;
MOVSEC,#00H;
INCSEC;
MOVA,SEC;
CJNEA,#60,EXIT;
MOVSEC,#00H;
INCMIN;
MOVA,MIN;
CJNEA,#60,EXIT;
MOVMIN,#00H;
EXIT:
SETBTR0;
RETI;
CLEAR:
MOVA,#00H;
MOVLSEC,A;
MOVSEC,A;
MOVMIN,A;
RET;
DISPLAY:
MOVR3,#01H;
MOVR0,#31H;
MOVR4,#3;选择3组工作寄存器
DISPLAY1:
MOVA,@R0;
MOVB,#0AH;
DIVAB;
MOVR5,A;
MOVA,B;
MOVDPTR,#TAB;
MOVCA,@A+DPTR;查字形码表
MOVDPTR,#OUTSEG;设置显示起始位置
MOVX@DPTR,A;设定显示位置
MOVDPTR,#OUTBIT;
MOVA,R3;
MOVX@DPTR,A;显示数据
LCALLDELAY100US;
MOVA,#00H;
MOVX@DPTR,A;
MOVA,R3;
RLA;
MOVR3,A;
MOVA,R5;
MOVDPTR,#TAB;
MOVCA,@A+DPTR;
MOVDPTR,#OUTSEG;
MOVX@DPTR,A;
MOVDPTR,#OUTBIT;
MOVA,R3;
MOVX@DPTR,A;
LCALLDELAY100US;
MOVA,#00H;
MOVX@DPTR,A;
MOVA,R3;
RLA;
MOVR3,A;
INCR0;
DJNZR4,DISPLAY1;
RET;
DELAY100US:
MOVR7,#50;循环50次
DJNZR7,$;r7-1不为0,执行本指令
RET;
;设计过程中,曾经遇到很多的障碍,设计图经过许多次的修改最后才定下来,但在调试的过程中又出现了问题,需要修改原理图;比如硬件的布局,要作到使连接的线路最短,并不没有想象中的那么容易;再焊接过程中稍不注意就会出现管脚的错位,有些在硬件测试过程中才检查出来。
在设计中有好多问题都是因为理论知识不扎实,在有些管脚的置零置一上,概念的模糊,这使作者明白要把所学到的理论转化为实践需要一段努力学习的过程;在做一个设计的过程中,一定要注意理论和实践同步进行,光有理论知识还是远远不够的,要用时间去检验理论,用理论指导实践。
最近几年,科学发展很快,渗透在工农业生产的许多领域。
通过毕业论文的设计我们有了更深的认识,只有在设计制作的过程中不断的学习才能有更新的进步.不论在什么地方,什么岗位我门都要以学为主.学以学以置用.才能把我们的工作做的更好.
八、参考文献
[1]吴金戎,沈庆阳,郭庭吉.8051单片机实践与应用[M].北京:
清华大学出版社,2002
[2]楼然苗,李光飞.51系列单片机设计实例[M].北京:
航空航天大学出版社,2003
[4]李鸿.单片机原理及应用[M].湖南:
湖南大学出版社,2004
[5]何立民.单片机高级教程[M].第1版.北京:
北京航空航天大学出版社,2001
[6]徐惠民、安德宁.单片微型计算机原理接口与应用[M].第1版.北京:
北京邮电大学出版社,1996
[7]肖洪兵.跟我学用单片机[M].北京:
北京航空航天大学出版社,
[8]李广第.单片机基础[M].第1版.北京:
北京航空航天大学出版社,1999
[9]赵晓安.MCS-51单片机原理及应用[M].天津:
天津大学出版社,
[10]何立民.从Cygnal80C51F看8位单片机发展之路[M].单片机与嵌入式系统应用,2002年,第5期:
P5~8
[11]夏继强.单片机实验与实践教程[M].北京:
北京航空航天大学出版社,2001