欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    基于单片机的数字秒表系统研究设计.docx

    • 资源ID:9894690       资源大小:310.52KB        全文页数:20页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    基于单片机的数字秒表系统研究设计.docx

    1、基于单片机的数字秒表系统研究设计单片机数字秒表系统设计课程设计学生姓名:三毛学号:6100308299专业班级: 自动化084班指导教师:大毛二六年 七月 七日1.课程设计目的12.课程设计题目描述和要求13.课程设计报告内容14.结论10参考书目10基于单片机的数字秒表系统专业: 自动化 学号:6100308223 学生姓名:凌益斌 指导老师: 王俐1.课程设计目的1.1 用AT80C51单片机作为主控制器设计数字秒表系统。1.2 熟悉AT80C51,74LS164,RX8以及LED数码管的结构和用法。2.课程设计题目描述和要求2.1问题描述设计一个秒表,按“开始”按键,开始计数,数码管显示

    2、从00每秒自动加一;按“复位”按键,系统清零,数码管显示00;按“暂停”按键,系统暂停计数,数码管显示当前的计数;按“快加”按键,系统每10ms快速加一,即数码管显示在原先的计数上快速加一。2.2设计要求1) 使用两位数码管显示,显示时间00-99秒;2) 正常计数时,每秒自动加一;3) 一个开始按键,一个复位按键,一个暂停按键和一个快加按键;4) 实现计数、复位、清零和快加功能;5) 单片机通电后,首先初始化,然后进行对按键扫描。开始键用来控制秒表工作的开始;暂停键用来暂停程序的运行;快加键控制快速计数的开始,利用暂停键停止;复位键是用来对程序复位用的,当程序出现死循环或想从00开始重新计时

    3、,按下复位键可返回程序开始,重新执行。3.课程设计报告内容该实验要求进行计时并在数码管上显示时间,则可利用MCS系列单片机微机仿真实验系统中的芯片8051中的P3.2管脚作为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3作为外部中断1的入口地址,并实现“清零”按键的功能;使用P0口作为段码数据输出控制口,74LS164用作驱动输出控制,P1.1、P1.2口分别实现暂停、快加的功能。显示电路由两位共阴极数码管组成。使用定时器T0实现10ms的定时,进行快加延时;当想实现正常计数时的1s延时,只需要实现40次25ms的定时器T1控制延时就可以实现。其中“开始”按键当开关由1拨向0时开始

    4、计时;“清零”按键当开关由1拨向0时数码管清零,此时若再拨“开始”按键则又可重新开始计时。初始状态下计时器显示00,当按下开始键时,外部中断INT0向CPU发出中断请求,CPU转去执行外部中断0服务程序,即开启定时器T0,并且进行100次计数,当到100次时,即延时1s时,产生一个中断信号,向CPU发出请求,执行计数器加一且送往数码管显示。在计时过程中,只要按下暂停键,即根据P1.0口电平变化去执行控制程序,关断定时器T0和T1,调用显示子程序,实现暂停功能。在按下暂停键时,将此时的计时时间存入中间缓存区,当再次按下开始键时,则讲中间缓存区的数据转入最终缓存区。计时采用定时器T1中断完成,定时

    5、溢出中断周期为25ms,并同时进行40次计数,当有溢出时,会产生中断信号,向CPU发出中断请求,每发出一次中断请求就对计数单元低位进行加一,达到10次就对高位进行加一,送数码管显示,依此类推,直到99秒后再加一后返回00,重新开始。数码管显示电路采用动态扫描的方式,由于数码管采用共阴极的接法,当位选信号为高电平时,该位选通,P0口中的数据送到该段上显示,节省接口资源,又能实时动态的性能。再看按键的处理。这四个键可以采用中断的方法,也可以采用扫描的方法来识别。复位键和开始键功能在于使程序从头执行,对于时间的要求即单片机上电初始化时的值00;而停止键则要用于对时间的锁定,需要比较准确的控制;而对于

    6、快加键,当检测到有快加信号时,则启动定时器T0, 完成一个周期定时时产生一个溢出中断请求,向CPU发送请求,每发一次就对计数单元低位进行加一操作,达到10次就对高位进行加一操作,送数码管显示,依次循环;同时检测是否有暂停信号,有暂停信号时,跳出快加程序,执行显示子程序。因此可以对暂停和快加按键采取扫描的方式。而对开始和复位键采用外部中断的方式。3.1硬件设计1)数字秒表电路设计 数字电子秒表具有显示直观、读取方便、精度高等优点,在计时中广泛使用。本设计用单片机组成数字电子秒表,力求结构简单、精度高为目标。 设计中包括硬件电路的设计和系统程序的设计。其硬件电路主要有主控制器,计时与显示电路和回零

    7、、启动和快加电路等。主控制器采用单片机8051,显示电路采用两位共阴极LED数码管显示计时时间。 本设计利用8051单片机的定时器/计数器定时和记数的原理,使其能精确计时。利用中断系统使其能实现开始和复位的功能。P0口输出段码数据,74LS164用作驱动输出,P1.1、P1.2、P3.2、P3.3口接四个按钮开关,分别实现暂停、快加、开始和复位功能。电路原理图设计最基本的要求是正确性,其次是布局合理,最后在正确性和布局合理的前提下力求美观。硬件电路图按照图3进行设计。主电路见附录。图3 数字秒表硬件电路基本原理图 根据要求知道秒表设计主要实现的功能是计时和显示。本设计中,数码管显示的数据存放在

    8、内存单元11H和12H中。其中12H存放低位数据,11H存放高位数据,每一地址单元内均为十进制BCD码。由于采用软件动态扫描实现数据显示功能,显示用十进制BCD码数据的对应段码存放在ROM表中。显示时,分别取出11H、12H地址中的数据,然后查得对应的显示用段码,并从P0口输出,P2口将对应的数码管选中供电,就能显示该地址单元的数据值。采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。2)电源电路电源电路是系统的最基本部分

    9、,任何部分都离不开电源部分,单片机系统也不例外,而且我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所疏忽,其实有一半的故障或制作失败都和电源有关,电源部分做好才能保证电路的正常工作。3)单片机晶振电路MCS-51单片机内部的振荡电路是一个增益反相放大器,引线XYAL1和XTAL2分别为反相放大器的输入和内部时钟电路输入和来自反相放大器的输出,该反相放大器可以配置为片内振荡器。单片机内部虽然有震荡电路,但要形成时钟,外部还需要附加电路石晶振荡和陶瓷振荡均可采用,有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,单必须保证脉冲的高低电平要求的宽度。晶振电

    10、路如图4、5所示。图4 内部晶振电路 图5 外部晶振电路单片机的时钟产生方式有两种,分别为:内部时钟方式和外部时钟方式。利用其内部的震荡电路XTAL1和XTAL2外接定时元件,内部震荡电路便产生自激震荡,用示波器可以观察到XTAL2的输出时钟信号。在MCS-52中通常用内部时钟方式,也就是在XTAL1和XTAL2之间连接晶体振荡器与电容构成稳定的自激震荡器。晶体和电容决定了单片机的工作精度为1微秒,晶体可在1.2-12MHZ之间选择。MCS-51单片机在通常情况下,使用震荡频率为6MHZ的石英晶体,而12MHZ频率主要是在高速串行通信情况才使用,在这里我们用的是12MHZ的石英晶体。对电容无严

    11、格要求,但它在取值对震荡频率的输出的稳定性、大小及震荡电路起震荡速度有点影响。C1和C2可在10-100pF之间取值,一般情况下取30pF。外部时钟方式是把外部震荡信号源直接接入XTAL1或XTAL2。由于XTAL2的逻辑电平不是TTL,所以还要接上拉电阻。4)单片机复位电路单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。上电复位要求接通电源后,自动实现复位操作。手动复位要求在电源接通的条件下,在单片机运行期间,如果发生死机,用按钮开关操作使单片机复位。单片机要完成复位,必须向复位端输出并持续两个机器周期以上的高电平,从而实现复位操作。上电自动复位通过电容C1充电来实现和

    12、限流电阻R2。手动按键复位是通过按键将电阻R1与VCC接通来实现。R1作为上拉电阻,当复位键按下是产生一个触发脉冲,进行复位操作。在MCS51中,复位电路的外部逻辑电路由通过二极管的单向导通性和施密特触发器组成(图 6),最常见的几种方式的复位电路如图(图7、8、9),它能有效的实现上电复位和手动复位。RST引脚是复位信号输入端,复位信号为高电平有效,其有效时间应持续24个振荡周期以上才能完成复位操作,若使用6MHz晶振,则需持续4s以上才能完成复位操作。如图中在通电瞬间,由于RC的充电过程,在 RST端出现一定宽度的正脉冲,只要该正脉冲保持10ms以上,就能使单片机自动复位,在6MHz时钟时

    13、,通常CR取22F,R1取200,R2取1K,这时能可靠的上电复位和手动复位。图6内部复位电路逻辑图 图7上拉复位电路 图8按键电平复位电路 图9按键脉冲复位电路3.2 软件设计本设计软件部分包含三大部分: 主程序,紧急情况中断服务子程序,显示子程序。1)设计思想本设计采用了汇编语言编写,汇编语言由于采用了助记符号来编写程序,比用机器语言的二进制代码编程要方便些,在一定程度上简化了编程过程。汇编语言的特点是用符号代替了机器指令代码,而且助记符与指令代码一一对应,基本保留了机器语言的灵活性。使用汇编语言能面向机器并较好地发挥机器的特性,得到质量较高的程序。模块化结构程序的设计,可以使系统软件便于

    14、调试与优化,也使其他人更好地理解和阅读系统的程序设计。2)主程序设计本系统程序主要模块由主程序、定时中断服务程序、外部中断0服务程序和外部中断1服务程序组成。其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的联系。系统(上电)复位后,进入主程序,主程序流程图如图10所示,部分子程序流程图由图11、12、13、14、15、16给出。首先对系统进行初始化,包括设置各入口地址、中断的开启、对各个数据缓存区清“0”、赋定时器初值,初始化完毕后,就进入数码管显示程序。在主程序中还进行了赋寄存区的初始值、设置定时器初值以及开启外部中断等操作,当定时时间到后就转去执行定时中断程序。

    15、当外部中断有请求则去执行外部中断服务。并在执行完后返回主程序。图10 主程序流程图图14定时器T0子程序图16定时器T1子程序3.3仿真结果3.4 结束语 本设计的数字电子秒表是由8051单片机、共阴数码显示管、控制按键等器件构成的,设有两位计时显示,开始、暂停、复位按键以及一个实现快加功能的按钮。计时精度能到达10ms,设计精简,使用简单易懂。系统设计合理,线路简单、功能先进,性能稳定,程序精简。并给出了详细的电路设计方法。采用汇编语言来进行软件设计,利用汇编语言面向机器并能较好的发挥机器的特性,且用内存少,执行速度快,能提高秒表的精度。通过本次设计,复习巩固我们以前所学习的数字、模拟电子技

    16、术、单片机原理及应用等课程知识,加深对各门课程及相互关系的理解,并成功使用了keil和Proteus两个软件,使理论知识系统化、实用化,系统地掌握微机应用系统的一般设计方法,培养较强的编程能力、开发能力。同时,在设计的过程中,我也发现了本系统的许多不足和可以改进的地方。比如快进的时候无法显示数字,以及本次设计的数字电子秒表缺少对多次计时时间进行记录的功能。4.结论本次课程设计实现了用AT80C51单片机模拟数字秒表控制。设计中把74LS164用作驱动输出控制,输出结果用两个共阴极LED数码管显示。软件设计时,应用中断子程序和查表的方式。总之此次设计使我更深刻的了解硬件和软件。参考文献1 李华,

    17、王思明,张金敏.单片机原理及应用M.兰州:兰州大学出版社,2001.5.2吴蓉,梁龙学,崔用明.数字电子技术M.兰州:兰州大学出版社,2006.7.3 顾滨,李勋.单片微计算机原理开发与应用M.北京:高等教育出版社,2000.2.附录实验程序。ORG 0000HAJMP MAIN 。主程序入口地址ORG 0003HAJMP ZHONGDUAN0 。中断0入口地址 ORG 000BHAJMP YANSHI 。定时器T0入口地址ORG 0013HAJMP ZHONGDUAN1 。中断1入口地址ORG 001BHAJMP DINGSHI 。中断1入口地址ORG 0030H 。主程序入口地址。主程序M

    18、AIN:MOV TCON,#05H 。主程序开始,外部中断跳变模式 MOV TMOD,#11H 。定时器0、1工作模式1下 MOV IE,#8FH 。中断允许 MOV DPTR,#TAB 。指向数据表首地址 MOV 12H,#00H 。初始化设置 MOV 11H,#00H MOV R1,#00H MOV R2,#00H MOV R3,#40 。循环40次 MOV TL0,#58H 。定时25ms MOV TH0,#9EH MOV TL1,#0F0H 。定时10ms MOV TH1,#0D8H CLR TR0 。关断定时器 CLR TR1。暂停和快加程序HERE:JB P1.0,HERE 。位扫

    19、描,为0顺序执行SHOW:CLR TR1 CLR TR0 ACALL XIANSHIKUAIJIA:JB P1.2,KUAIJIA 。等待快加信号,为0时快加 CLR TR0 SETB TR1HERE1:JNB P1.2,HERE1 AJMP HERE。外部中断0子程序,计时按键K1子程序ZHONGDUAN0:SETB TR0 。正常计时 1s延时 RETI。外部中断1子程序,复位键K2子程序ZHONGDUAN1:CLR TR0 。复位 CLR TR1 MOV 12H,#00H MOV 11H,#00H ACALL XIANSHI 。调用显示子程序 MOV R1,#00H MOV R2,#00

    20、h RETI。加一子程序JIA1: INC R1 。加一子程序 CJNE R1,#0AH,LOOP 。判断低位是否有溢出 MOV R1,#00H INC R2 CJNE R2,#0AH,LOOP MOV R2,#00HLOOP:MOV 12H, R1 。重新加载计数值 MOV 11H,R2 RET。显示子程序XIANSHI:MOV R7,#02H 。2个数码管显示子程序 MOV R0,#12HLOOP1:MOV R6,#08H 。8位2进制数 MOV A,R0 MOVC A,A+DPTRLOOP2:RLC A 。循环左移,带进位 CLR P3.1 MOV P3.0,C SETB P3.1 DJ

    21、NZ R6,LOOP2 。判断数据是否扫描完成 DEC R0 DJNZ R7,LOOP1 。判断2位是否扫描完成 RET。定时器T0子程序 YANSHI:MOV TL0,#58H 。定时器T0赋初值 MOV TH0,#9EH DJNZ R3,LOOP7 。实现1s延时 ACALL JIA1 。调用加一子程序 ACALL XIANSHI 。调用显示子程序 MOV R3,#40 。循环次数重加载LOOP7: RETI。定时器T1子程序DINGSHI:MOV TL1,#0F0H 。定时器T1子程序 MOV TH1,#0D8H CLR TR0 SETB TR1 。实现10ms延时 MOV 12H,R1 MOV 11H,R2 JNB P1.0,SHOW 。实现快加功能 ACALL JIA1 。子程序调用 ACALL XIANSHI RETITAB:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH 。共阴接法数码管地址表END附Proteus软件设计图


    注意事项

    本文(基于单片机的数字秒表系统研究设计.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开