单片机秒表实训论文
单片机实训论文广州铁路职业技术专业:应用电子技术学号:050509021905050902130505090247
姓名:陈燕黄利平李剑锋
成绩评定:
1.引言
近年来随着科技的飞速发展,单片机的应用正在不断的走向深入。本文阐述了基于单片机的数字电子秒表的设计。
本设计的数字电子秒表系统采用AT89C52单片机为中心器件,利用其定时器/计数器定时和计数原理,结合显示电路,LED数码管以及外部中断电路来设计计时器。将软件、硬件有机地结合起来,使得系统能够实现四位LED显示,能正确地进行计时。其中软件系统采用汇编语言编写的程序,包括显示程序,定时中断服务,外部中断服务程序,延时程序等,并在KEIL中调试运行硬件系统利用PROTEUS强大的功能来实现,简单且易于观察,在仿真中就可以观察到实际的工作状态。
关键字:单片机;数字电子秒表;仿真
本文主要内容包括三部分:第一部分介绍硬件部分的设计思路及方案;第二部分介绍软件部分的设计思路和设计;最后一部分则是整个系统的安装及调试过程。
2.硬件设计
2.1总体方案的设计
数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛应用。本设计用单片机组成数字电子秒表,力求结构简单。
设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器、计时与显示电路和复位电路等。主控制器用AT89C52,显示电路采用共阳极LED数码管显示计时时间。
本设计利用AT89C52单片机的定时器/计时器定时和计数的原理,使其能精确计时。利用中断系统使其能实现开始暂停的功能。P0口输出段码数据,P3.0,P3.1,RST开口接四个按钮开关,分别实现开始,暂停,复位的功能。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求完美。硬件电路图按照图1.1进行设计。
图1.1数字秒表硬件电路的基本原理图
根据要求知道秒表设计主要是实现的功能是计时和显示。因此设置了三个按键和四位的数码管显示时间,这三个按键分别是开始、暂停、复位的时间按键。四个按键均采用触点式按键。
2.2显示电路的选择与设计
对于数字显示电路,通常才用液晶显示或数码管显示。对于一般的段式液屏,需要专门的驱动电路,而且液晶显示作为一种被动显示,可视性差,不适合远距离观看;而数码管作为一种主动显示器件,具有亮度高、响应速度快等优点,而且有远距离视觉效果,很适合夜间或是远距离操作。因此,本设计的显示电路采用7段数码管作为显示介质。
数码管显示分为静态显示和动态显示两种。由于本设计需要采用四位数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂,所以采用动态显示。
动态显示是一位一位地轮流点亮各位数码管,这种逐位点亮显示器的方式成为位扫描。通常各位数码管的段选线相应并联在一起,由一位8位的I/O口控制;各位的公共阳极位选线由另外的I/O口线控制。动态方式显示时,各数码管分时轮流选通,要使其稳定显示必须采用扫描方式,即在某一刻只选通一位数码管,并送出相应的段码,依此规律循环,即可使各位数码管显示将要显示的字符,虽然这些字符是在不同的时刻显示,但由于人眼存在视觉暂留效应,只要每位显示间隔足够短就可以给人同时显示的感觉。数码显示管分为共阳数码管和共阴数码管两种。
这次实训,我们组所使用的就是共阳极的数码管。共阳极数码管的8个发光二极管的阳极(二极管正端)连接在一起。通常。共阳极接高电平(一般接电源),其他管脚接段驱动电路输出端。当某段驱动电路的输出端位低电平时,则该端所连接的字段导通并点亮,根据发光字段的不同组合可显示出各种数字或字符。此时,要求段驱动电路能吸收额定的段导通电流,还需根据外接电源及额定段导通电流来确定相应的限流电阻。
2.3按键电路的选择与设计
本设计中有三个按键,分别实现开始\\暂停、复位的功能。这三个键可以采用中断的方法,也可以采用查询的方法来识别。本设计中,对复位键采用查询的方式,而对于开始和暂停键采用挖补中断。按键电路由于采用了外部中断,所以需要用到P3口的第二功能。P3引脚的第二功能如表1.2
2.4时钟电路的选择与设计
单片机的时钟信号用来提供单片机内各种微操作的时间基准,89c52片内设有一个由反向放大器所构成的震荡电路,XTAL1和XTAL2分别为振荡电路输入和输出端。89C52单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。一般情况,采用内部振荡,只要将XTAL1和XTAL2接到外部振荡器级行。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于12MHz的方波信号。
2.5复位电路的选择与设计
关于单片机的置位和复位,都是为了把电路初始到一个确定的状态,一般来说,单片机复位电路作用是把一个例如状态初始化到空状态。但单片机本身是不能自动进行复位的,必须配合相应的外部电路才能实现。常见的复位电路如图1.3所示:
本设计采用上电且开关复位,如图1.4所示上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使RST持续一段时间的高电平,从而实现上电且开关复位的操作。通常选择C=30uF,R=1K的电阻。
2.6系统总电路设计
系统总电路由以上设计的显示电路,时钟电路,按键电路和复位电路组成,只要将单片机与以上各部分电路合理的连接就组成了系统总电路。
3软件设计
3.1程序设计思想
本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了汇编过程。汇编语言的特点是用符号代替了机器指令密码,而且助记符与指令代码一一对应,基本是、保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。
3.2主程序设计
本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体,可以对各个中断程序进行调用。协调各个子程序之间的联系。
扩展阅读:单片机秒表实训论文
单片机秒表实训论文
指导老师:王先彪小组成员:李凯辉
李翠珠王晶晶
应用电子09-2班
摘要:近年来随着科技的飞速发展,单片机的应用正在不断的走向
深入,同时带动着传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。
本次实训采用了AT89C51芯片、LED四位数码管、三极管、电容、开关、晶振及若干电阻实现了秒表。将软、硬件有机地结合起来,使得系统能够实现显示,可谓功能强大。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。
关键字:单片机、AT89C51芯片、设计。
一、实训目的及要求2页二、硬件系统设计2页三、试验程序:4页四:电路设计5页五、实验结果2页六、调试10页七、实物电路图11页八、实训总结:12页
一、实训的目的及要求:
1、本次实主要采用AT89C51芯片进行对整个产品的控制,其中包括对数码管的位码和段码的送显控制,以及对送显时间的控制等主要部分功能控制。
2、数码管是采用了四位共阳极的,有独立的电源提供,保证了送显的效果。
3、三极管是用了S9015型号的,PNP型,保证了电流的提供。4、通过四两位数码管来显示秒表的时间,三个按键对秒表实现启动、停止及复位的功能。
二、硬件系统设计:
1、本系统采用AT89C51芯片,有40个引脚
40个引脚大致可分为4类:电源、时钟、控制和I/O引脚。1)电源:(1)VCC(40脚):片电源,接+5V;(2)VSS(20脚):接地端;
2)时钟:XTAL1、XTAL2-晶体振荡电路反相输入端和输出端。3)控制线:RST(Reset)功能:复位信号输入端。4)I/O线
A、AT89C51共有4个8位并行I/O端口:P0、P1、P2、P3口,共32个引脚。P3口还具有第二功能,用于串行口,中断输入源,计时器,片内RAM选通。
B、本系统有三个按键,包括一个复位键,一个调零键,一个启动(暂停)键。第1次按下SP1后单片机秒表就开始计;第2次按SP1后,计时停止;第3次按SP1后,计时归零。最小可以计时0.1s,最大可以计时255s,有四位LED数码管动态显示。
C、系统采用12MHZ晶振,方便定时。用的是BT-A5461RB四位显示管,使用前,先用万用表检测出它的各个管脚(a,b,c,d,,e,f,g,dp),将它的各个管教设置成低电平(即“0”)。通过单片机往指定地址写入数据后,就能在屏上对应的地方显示所需显示的数字。
原理图:
ORG00H
AJMPSTART
三、试验程序:
DISIEQU34H;分十位
DIEREQU32H;秒十位
COUEQU35H;软计数器
DISANEQU33H;分个位
ORG0BH;定时器0中断入口
DIYIEQU31H;定义秒个位位寄存器
AJMPTIME0;跳转到定时器0的服务程序
ORG30H
START:MOVDIYI,#0;清0MOVDIER,#0;清0MOVDISAN,#0MOVDISI,#0MOVCOU,#0
MOVTMOD,#01H;设定时器模式为16位定时器MOVTH0,#3CH;装初值MOVTL0,#0B0H;装初值SETBET0;开定时器0中断允许SETBTR0;开定时器CLREA;关总中断
MAIN:LCALLANJIAN;调用按键检测子程序LCALLXIANSHI;调用显示子程序AJMPMAIN
ANJIAN:MOVA,P3;读入P3口的值
JNBP3.1,KAI;P3.4为0,转到定时开JNBP3.0,GUAN;P3.1为0转到定时关
RET;子程序返回KAI:SETBEA;开总中断RET;返回GUAN:CLREA;关总中断
RET;返回
XIANSHI:MOVDPTR,#TABLE;获得表数据MOVR1,#20LOOP:MOVA,DIYI
MOVCA,@A+DPTR;获得相应地址MOVP2,#7FH;开第一位显示MOVP0,A;送出段码LCALLDELY1MS;延时1毫秒MOVP2,#0FFH;关显示,防止鬼影MOVA,DIERMOVCA,@A+DPTRMOVP2,#0BFHMOVP0,ALCALLDELY1MSMOVP2,#0FFHMOVA,DISANMOVCA,@A+DPTRMOVP2,#0DFHMOVP0,ALCALLDELY1MSMOVP2,#0FFHMOVA,DISIMOVCA,@A+DPTRMOVP2,#0EFHMOVP0,ALCALLDELY1MSMOVP2,#0FFHDJNZR1,LOOPRET
TIME0:INCCOU;软计数器加一MOVA,COU;数据转移
CJNEA,#2,OVER;看COU内的值是否为2,是的话向下执行,不是的话,退出中断。MOVCOU,#0;清0INCDIYI;毫秒位加一MOVA,DIYI;数据转移CJNEA,#10,OVER;比较判断MOVDIYI,#0;清0INCDIERMOVA,DIERCJNEA,#10,OVERMOVDIER,#0INCDISANMOVA,DISANCJNEA,#10,OVERMOVDISAN,#0INCDISIMOVA,DISICJNEA,#10,OVERMOVDISI,#0
OVER:MOVTH0,#3CH;装初值MOVTL0,#0B0H;装初值RETI;中断返回
DELY1MS:MOVR7,#300;赋值50DL1:NOP;空指令NOP
DJNZR7,DL1;减一非0转RET;返回
TABLE:DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HEND
四、电路设计:
五、实验结果:
流程图:
开始外部中断0外部中断1定时器T0初始设置LED显示延时程序+重装初值停止T0TR=0重装初值启动T0返回计数值计算返回TR=1
返回
六、实训实物图:
七、调试:
调试的过程是一个颇为重要的过程,调试所指的是:硬件和软件。而在进行实物调试之前,可以用软件仿真和硬件仿真,来检测出了问题的是程序还是所焊接硬电路板;当软件和硬件都仿真成功的时候,并不能说明,用在实物上时,就一定成功的。我们这组就遇到这方面的问题,硬件的最小系统连接错误,使得接通电源时,电路会不停地复位,而无法正常工作;而在软件调试方面复位发生错误,经老师指点之后,是因为写错了复位程序,而导致数码管一直显示从9又返回8。在调试过程中,大体上是,检测电路有没有通,断路、虚焊和断路等;特别要检测最系统,程序与仿真之间的相同点与不同点。进而改进程序。
八、实训总结:
在这次的实训中,
友情提示:本文中关于《单片机秒表实训论文》给出的范例仅供您参考拓展思维使用,单片机秒表实训论文:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。