ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:63.90KB ,
资源ID:4838956      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4838956.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(基于单片机实现的电子跑表设计.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机实现的电子跑表设计.docx

1、基于单片机实现的电子跑表设计 第1章 绪论1.1 单片机简介单片机称为单片机微型计算机。从应用领域来看,单片机主要用来控制,所以又称为微控制器(Microcontroller Unit)或嵌入式控制器。单片机是将计算机的基本部件微型化并集成在一块芯片上的微型计算机。单片机还具有如下特点:1.单片机的存储器ROM和RAM时严格区分的。ROM称为程序存储器,只存放程序,固定常数,及数据表格。RAM则为数据存储器,用作工作区及存放用户数据。2.采用面向控制的指令系统。为满足控制需要,单片机有更强的逻辑控制能力,特别是单片机具有很强的位处理能力。3.单片机的I/O口通常时多功能的。由于单片机芯片上引脚

2、数目有限,为了解决实际引脚数和需要的信号线的矛盾,采用了引脚功能复用的方法,引脚处于何种功能,可由指令来设置或由机器状态来区分。4.单片机的外部扩展能力很强。在内部的各种功能部件不能满足应用的需求时,均可在外部进行扩展,与许多通用的微机接口芯片兼容,给应用系统设计带来了很大的方便。1.2 89C51单片机介绍VCC:电源。GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程 序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输

3、出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作 输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 图1.3 89C51单片机P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻 拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据

4、存储, P2口输出地址的高八位。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。 第2章 系统总体方案设计 2.1 课题设计内容及思路2.1.1 设计内容根据课程设计要求,我们选择了MCS-51系列单片机中的89C51单片机为核心设计思路,做一个多功电子表。它不仅要具有电子时钟的功能还要具有跑表的功能。通过LED数码管显示出来,做时钟时在4位LED 显示器上显示分、秒,做跑表时显示范围000.0秒999.9秒。当我们按下启动按钮时跑表开始计时,按下停止则停止计时,当按下复位按钮跑表回零。2.1.2 设

5、计思路1计时单元由单片机内部的定时器/记数器来实现。2时间显示功能通过LED数码管动态扫描来实现。利用专用键盘/显示器接口芯片8255A可实现对键盘/显示器的动态扫描,由于数码管要显示时钟,还要显示跑表,因此,我分别用31H、32 H计时钟,用R5、R6计跑表,当要显示哪一个的时候,就把哪一个地址送到显示地址35 H、36 H中,达到跑表显示与时钟显示互不影响。3.表的启动/复位/清零功能由软件来实现。P1.0接启动键,P1.1接停止键,P1.2接清零键。4.由于跑表和时钟的中断服务程序有冲突,我们就把跑表的中断服务程序写成另外的子程序了,这样就必须要引入标志位了,我们在此用42H标志位,用标

6、志位来给跑表计数。 2.2 系统总体设计方案在单片机中,定时功能既可以由硬件(定时/记数器)实现,也可通过软件定时实现。硬件定时是利用单片机内定时器定时,启动以后定时器可与CPU并行工作,不占用CPU时间,CPU有较高的工作效率。采用硬件定时和软件定时并用的方式,即用T0出中断功能实现50ms定时,通过软件延时程序实现1s定时。.定时器的有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。 根据设计要求和设计思路,硬件电路有两部分组成,即单片机按键电路,LED显示器电路,下图为系统电路设计流程图。 图2.2 系统电路设计流程图根据课程设计要求,我们决定计时单元由单片机内部的定时器/记数器

7、89C51芯片来实现。关于时间显示功能通过LED数码管动态扫描来实现。利用专用键盘/显示器接口芯片8255A可实现对键盘/显示器的动态扫描,由于数码管要显示时钟,还要显示跑表,另一方面由于跑表和时钟的中断服务程序有冲突,我们就把跑表的中断服务程序写成另外的子程序了,这样就必须要引入标志位了,我们在用42H标志位,用标志位来给跑表计数。第3章 电子跑表的设计3.1 控制系统硬件设计3.1.1 单片机型号选择课程设计要求使用89C51单片机,且经过大部分的资料查阅,我最终认定89C51是最理想的电子时钟开发芯片。89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理

8、器,器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C51是一种高效微控制器,而且它与MCS-51兼容。3.1.2 键盘电路设计该设计用了一个键盘,该键盘可以实现小时分钟和秒钟的调节以及复位的功能。直接按下小时分钟秒钟对应的按键并松开,则可以通过按键实现对应时间的累加,每按一次加一;而按下复位按键,电子时钟复位清零。 图3.1按键3.1.3 数码管显示原理数码管是一种把多个LED显示段集成在一起的显示设备。有两种类型,一种是共阳型,一种是共阴型。共阳型就是把多个LED显示段的阳

9、极接在一起,又称为公共端。共阴型就是把多个LED显示段的阴极接在一起,即为公共商。阳极即为二极管的正极,又称为正极,阴极即为二极管的负极,又称为负极。通常的数码管又分为8段,即8个LED显示段,这是为工程应用方便如设计的,分别为A、B、C、D、E、F、G、DP,其中DP 是小数点位段。数码管显示方法可分为静态显示和动态显示两种。静态显示就是数码管的8段输入及其公共端电平一直有效。动态显示的原理是,各个数码管的相同段连接在一起,共同占用8 位段引管线;每位数码管的阳极连在一起组成公共端。利用人眼的视觉暂留性,依次给出各个数码管公共端加有效信号,在此同时给出该数码管加有效的数据信号,当全段扫描速度

10、大于视觉暂留速度时,显示就会清晰显示出来。 图3.2 数码管3.1.4 74LS244芯片74LS244为三态输出的八组缓冲器和总线驱动器,其主要电器特性的典型值如下:引出端符号: 1A11A4,2A12A4 输入端 /1G, /2G 三态允许端(低电平有效) 1Y11Y4,2Y12Y4 输出端图3.3 芯片3.2 控制系统软件设计根据设计要求和设计思路,进行模块设计。最后我们设计一共六个工作模块。他们分别是8255A的初始化、程序模块、时钟记时程序模块、数制转换模块,显示模块,跑表工作模块。3.2.1 时钟计时程序模块的设计 60分钟与1000秒时间的产生。选择定时器T0,用工作方式1,定时

11、 50ms,R7先置2,T0定时50ms中断一次,利用R7寄存器减1,当R7寄存器的值=0时,时间正好是0.1s,再利用R0寄存器计数,当R0=10时,时间刚好是1s,再利用R1寄存器计数60s,依次类推,累计60分钟的是时间值,需要用到以下几个寄存器:R7:累计0.1s时间寄存器。T0每中断一次R7=R7-1,计数10次向30H进位,并将R7置2。30H:累计1s时间寄存器。当R0=60s时,向31H进位,然后将30H清零。31H:累计60s时间寄存器。当31H=60s时,当31H=60时,将30H、31H清零。30H、31H用于时钟计时,以下R6、R5用于跑表计时。R5:累计10S时间寄存

12、器。当R5=100时,向R6进位,然后将R5清零。R6:累计1000S时间寄存器。当R6=100时,将R6清零。42H:为标志寄存器。42H=1时,跑表、时钟计数器都计数,42H=0时,仅时钟计数器计数。 3.2.2 跑表模块的设计 1.启动跑表时,T1计时到0.1s时,置42H=1,则在时钟计数器工作的同时,跑表计数器也在工作,并将跑表计数器的值送到显示缓冲区显示。以下为跑表计时程序: WATCH: CLR RS1CJNE R6,#0FFH,TP ;跑表程序 MOV R6,#0H ;清标志位 NC R4 CJNE R4,#100,TP ;判是否到10s MOV 41H,R4 ;送41H单元M

13、OV R4,#0H INC R5 CJNE R5,#100H,TP ;判是否到1000sMOV 42H,R5 MOV R5,#0HMOV R4,#OH TP: LCALL DIVID ;调代码转换程序MOV A,LCALL DISPLAY ;调显示程序 Y Y Y 图3.4 跑表流程图2.代码转换程序:由于人们日常习惯使用十进制数,而计算机的键盘输入、输出以及显示常采用二进制编码的十进制(即BCD码)或ASCII码。因此,在程序设计中经常要进行代码转换。以下为代码转换程序:DIVID:PUSH ACC MOV A,41H MOV B,#10 DIV AB MOV 51H,A ;高位在51H M

14、OV 50H,B ;低位在50H MOV A,42H MOV 53H,A MOV 52H,B MOV A,43H MOV 55H,A MOV 54H,B POP ACCRET3.显示程序DISLED: ;显示字符子程序PUSH DPH ;保存现场 PUSH DPL PUSH ACC SETB RS1 ;选择3组工作寄存器 MOV A,#LEDWRO ;置显示起始地址 ADD A,R4 ;加位置偏移量 MOV DPTR,#Z8545 MOVX DPTR,A ;设定显示位置 MOV DPTR, #LEDSEG MOV A,R5 MOV DPTR,#D82555 MOVX DPTR,A ;显示数据

15、POP ACC 3.3主程序设计这个设计过程主要是围绕了MCS-51系列单片机中的89C51单片机为核心设计思路,制作一个符合要求的电子跑表。首先我们设置定时器89C51初始值,采用硬件定时和软件定时并用的方式,即用T0出中断功能实现50ms定时,通过软件延时程序实现1s定时。定时器的有关的寄存器有工作方式寄存器TMOD和控制寄存器TCON。TMOD用于设置定时器/计数器的工作方式03,并确定用于定时还是用于计数。TCON主要功能是为定时器在溢出时设定标志位,并控制定时器的运行或停止。然后我们采用8255A芯片进行单片机与各种外围设备相连的接口电路这种方式进行相连。这样既可实现对键盘/显示器的

16、自动扫描,而且大节省CPU对键盘/显示器的操作时间,从而减轻CPU的负担,而且显示稳定,程序简单,不会出现误动作。电子跑表的启动/复位/清零功能可以由软件来实现。P1.0接启动键,P1.1接停止键,P1.2接复位键。通过LED数码管显示出来,做时钟时在4位LED 显示器上显示分、秒,做跑表时显示范围000.0秒999.9秒。当我们按下启动按钮时跑表开始计时,按下停止则停止计时,当按下复位按钮跑表回零。最后由于跑表和时钟的中断服务程序有冲突,我们就把跑表的中断服务程序写成另外的子程序了,这样就必须要引入标志位了,我们在此用42H标志位,用标志位来给跑表计数。下图为主程序总流程图:主程序 图3.5

17、 总流程图3.4 PROTEUS 仿真图图3.6 仿真图3.5 系统的安装调试说明其操作过程为:开始之前应把START和STOP、H开关全都拨到低电平位置,接通电源,开始运行,显示器显示000.0,把START置为高电平时,则开始计数;当STOP为高电平时,则跑表停止计数,并保留所停止时刻的时间不变。若要继续计数,则把STOP置0;若要重新计数,则先把H置1,显示清零,再把STOP置1即可。此设计产品一共给出用户3个开关(按钮式的开关)。一个开关标示为时钟/跑表,另一个标示暂停,另一个标示跑表/时钟。三个开关的启始位置是关的状态。当给它通电时,它就做时钟使用,当我们按动暂停和跑表/时钟时,产品

18、不动作。只有当我们按动时钟转/跑表时。产品才开始转为跑表。这时的暂停和跑表/时钟。才起作用。当按下暂停时,跑表暂停读数,而按下跑表/时钟时,又转到时钟工作。通过本次仿真,我感觉这个电子跑表的功能还比较的简单,还可以对其功能进行相应的拓展。在仿真的过程中,遇到过种种的困难,程序上总是遇到一些的问题,例如:数码管显示不全、复位键失灵等等问题,在wave6000上多次的对程序进行修改,在Proteus上不断的仿真后,终于实现了课题要求的内容!课程设计总结与体会一份耕耘,一份收获。通过两周的单片机课程设计,使我对单片机理论知识有了进一步的认识和了解。同时它也使我受益匪浅,它不仅让我们使课本上的知识在实

19、际中得到了很好的运用,从而对课本上的知识有了更深刻的认识,更系统的了解。在做本次课程设计的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机课程设计,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。其次,在这次课程设计中,我们运用到了以前没有学到的知识,如:PROTUES软件制图。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,要做好一个课程设计,就

20、必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在设计课程过程中遇到问题是很正常德,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。另外,这次课程设计让我感到了团队合作的重要性。还有在我们遇到困难时,周老师给予我们的建议与帮助。最后衷心的感谢老师的教导。参考文献1 谢自美

21、.电子线路设计实验测试.武汉华中理工大学出版社,1992.5.2 何立民.单片机应用系统设计.北京航空航天大学出版社,1993.8.3 楼然笛.单片机开发北京人民邮电出版社,1994.1.4 付家才.单片机控制工程实践技术北京化学工业出版社 2004.3.5 李光才.单片机课程设计 实例指导北京北京航空航天大学出版社 2004.5.6 朱定华.单片机原理及接口技术实验.北京北方交通大学出版社2002.11.7 刘湘涛江世明单片机原理与应用. 北京电子工业出版社,2006.2.8 余发山.单片机原理机机及应用技术.中国矿业大学出版社1998.3.9 张迎新.单片机初级教程-单片机基础.北京航空航

22、天大学出版社2006.8.10 李广第.单片机基础.北京航空航天大学出版社 1998.3.11 孙涵芳.MCS-51系列单片机原理及应用.北京航空航天大学出版社1996.4.附 录附录A 系统原理图 附录B 源程序清单 ORG 0000H LJMP START ORG 0003H LJMP S5 ORG 000BH LJMP T00 ORG 0013H LJMP S6 ORG 001BH LJMP T11 ORG 2000HSTART:MOV DPTR,#0CFA3H MOV A,#89H MOVX DPTR,AS1: MOV 30H,#0 MOV 31H,#0 MOV 32H,#0 MOV

23、33H,#0 MOV 34H,#0 MOV 35H,#0S2: MOV R0,#14H MOV TMOD,#11H SETB EA SETB TR0 SETB ET0 SETB ET1LOOP: CLR TR1 MOV A,#0DFH MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,35H MOV DPTR,#DIRTAB MOVC A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A,#0EFH MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,34H MOV DPTR,#DIRTAB MOVC

24、 A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A,#0F7H MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,33H MOV DPTR,#DIRTAB1 MOVC A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A,#0FBH MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,32H MOV DPTR,#DIRTAB MOVC A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A

25、,#0FDH MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,31H MOV DPTR,#DIRTAB1 MOVC A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A,#0FEH MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,30H MOV DPTR,#DIRTAB MOVC A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS JNB P1.0,Z4 JNB P1.3,S3 JNB P1.2,S4 SJMP LOOPZ4: AJMP Z1; 时钟

26、暂停显示程序S3: CLR TR0 SETB IT0 SETB EX0 SETB IT1 SETB EX1 AJMP LOOP ; 时钟运行显示程序S4: SETB TR0 CLR EX0 CLR EX1 AJMP LOOPS8: AJMP KEY ; 时钟T0溢出入口程序T00: MOV TH0,#1EH MOV TL0,#0CFH DJNZ R0,S8 MOV R0,#14H INC 35H MOV A,#10 CJNE A,35H,KEY MOV R0,#14H MOV 35H,#0 INC 34H MOV A,#6 CJNE A,34H,KEY MOV R0,#14H MOV 35H,

27、#0 MOV 34H,#0 MOV R0,#14HS5: INC 33H MOV A,#10 CJNE A,33H,KEY MOV R0,#14H MOV 35H,#0 MOV 34H,#0 MOV 33H,#0 INC 32H MOV A,#6 CJNE A,32H,KEY MOV R0,#14H MOV 35H,#0 MOV 34H,#0 MOV 33H,#0 MOV 32H,#0S6: INC 31H MOV A,#4 CJNE A,31H,L3 MOV A,#2 CJNE A,30H,L3 SJMP L4L3: MOV A,#10 CJNE A,31H,KEY MOV R0,#14H

28、MOV 35H,#0 MOV 34H,#0 MOV 33H,#0 MOV 32H,#0 MOV 31H,#0 INC 30H RETIL4: MOV R0,#14H MOV 35H,#0 MOV 34H,#0 MOV 33H,#0 MOV 32H,#0 MOV 31H,#0 MOV 30H,#0KEY: RETI ; 跑表暂停及循环显示程序Z1: SETB TR0 CLR EX0 CLR EX1 MOV 40H,#0 MOV 41H,#0 MOV 42H,#0 MOV 43H,#0 MOV 44H,#0 MOV 45H,#0LOOP1:CLR TR1 MOV A,#0DFH MOV DPTR,

29、#0CFA1H MOVX DPTR,A MOV A,45H MOV DPTR,#DIRTAB MOVC A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A,#0EFH MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,44H MOV DPTR,#DIRTAB MOVC A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A,#0F7H MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,43H MOV DPTR,#DIRTAB1 MOVC A,A

30、+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A,#0FBH MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,42H MOV DPTR,#DIRTAB MOVC A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A,#0FDH MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,41H MOV DPTR,#DIRTAB MOVC A,A+DPTR MOV DPTR,#0CFA0H MOVX DPTR,A ACALL D1MS MOV A,#0FEH MOV DPTR,#0CFA1H MOVX DPTR,A MOV A,40H MOV DPTR,#DIRTAB MOVC A,A+DPTR MOV DPTR,#

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1