欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    用汇编编写的基于单片机的秒表.doc

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

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

    用汇编编写的基于单片机的秒表.doc

    单片机课程设计报告摘 要本设计是设计一个单片机控制的多功能秒表系统。近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。本设计的多功能秒表系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位LED显示,显示时间为0099秒,每秒自动加1,能正确地进行加、减倒计时,快加,快减,可以同时记录4个相对独立的时间,通过上翻下翻来查看这4个不同的计时值,可谓功能强大。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 关键字:单片机;多功能秒表;设计Abstract The present design is to design a single chip multifunctional stopwatch control system. In recent years, along with the rapid development of science and technology, single-chip applications are the trend at the same time, promote the traditional control testing with each passing day update. In the real-time detection and automatic control of the single-chip applications, often single-chip, as a core component to the use of only single-chip knowledge is not enough, but also based on specific hardware structure, as well as for specific applications Object Software, to be improved. The emergence of a stopwatch to solve the traditional man-made because of errors and unfairness. The design of this multi-functional stopwatch AT89C51 single-chip system-centric device, using its timer / counter timing and number of principles in mind, combining show circuit, power circuit, LED digital control circuit, as well as keyboard designed timer. The software and hardware combined, making the system able to achieve two LED display, showed 00 to 99 seconds, plus 1 per second automatically, to correctly add, subtract (down) time, plus fast, fast cut, At the same time, records can be relatively independent of 4 hours, turn on the next turn to see the four time value can be described as powerful. One system uses software assembly language programming, including shows that the procedures, addition and subtraction counting procedures, faster by speeding up procedures, interruption, delay procedures, eliminate key procedures, such as shaking and debug WAVE in the operation of the system hardware PROTEUS use of powerful features To achieve a simple easy-to-cut observed in the simulation can be observed in actual working condition. Keywords: single-chip; multi-function stopwatch;design目 录摘 要4ABSTRACT51 概 述7设计任务7设计要求72 系统总体方案及硬件设计7系统总体方案7硬件电路设计83 软件设计11软件设计概述11程序流程图12子程序模块设计144 PROTEUS软件仿真17功能简介174.2 WAVE编译174.3 PROTEUS仿真185课程设计体会19参考文献20附1.源程序代码21附2.程序原理图271 概 述设计一个单片机控制的秒表系统。利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行加、减倒计时,数码管能够正确地显示时间。1.能同时记录四个相对独立的时间并分别显示。 2.两位LED显示,显示时间为0099秒。3.每秒自动加1。 4.一个开始按键、一个复位按键、一个暂停按钮和一个快加按钮每10ms快速加一。 5.用上翻页按钮查看四个不同的计时值。6.添加下翻页按钮,并实现快减功能。 2 系统总体方案及硬件设计本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在WAVE中调试运行,硬件系统利用PROTEUS强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 单片机 外围 电路 电源 电路 显示电路 键盘电路 图1 系统电路原理本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等1单片机简介本系统设计采用AT89C51单片机。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容由于在微机原理中学过C-51的具体知识,这里不再详细说明。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效的微控制器。2电源电路电源电路是系统最基本的部分,任何电路都离不开电源部分,由于三端集成稳压器件所组成的稳压电源线路简单,性能稳定,工作可靠,调整方便,已逐渐取代分立元件,在生产中被广泛采用,由于是小系统,我们采用7809电源提供+5V稳压电压。3晶体振荡电路MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线 XTAL1和XTAL2分别为反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。这里,我们选用51单片机12MHZ的内部振荡方式,电路如下:电容器C1,C2起稳定振荡频率,快速起振的作用,C1和C2可在20-100PF之间取,这里取30P,接线时要使晶体振荡器X1尽可能接近单片机。 图2 晶体振荡电路4复位电路采用上电+按键复位电路,上电后,由于电容充电,使RST持续一段高电平时间。当单片机已在运行之中时,按下复位键也能使用使RST持续一段时间的高电平,从而实现上电加开关复位的操作。这不仅能使单片机复位,而且还能使单片机的外围芯片也同时复位。当程序出现错误时,可以随时使电路复位。电路图如下: 图3 复位电路5显示电路显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。用2个共阳极LED显示,LED是七段式显示器,内部有7个条形发光二极管和1个小圆点发光二极管组成,根据各管的亮暗组合成字符。在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示所使用的端口比较少,可以节省单片机的I/O口。在设计中,我们采用LED动态显示,用P0口驱动显示。由于P0口的输出级是开漏电路,用它驱动时需要外接上拉电阻才能输出高电平。电路图如下所示:图4 显示电路6键盘电路在按键电路中,我们可以在I/O口上直接接按键,或者通过I/O口设计一个键盘,然后通过键盘扫描程序判断是否有键按下等。键盘扫描电路节省I/O口,但编程有些复杂,在这里,由于我们所用的按键较少,且系统是一个小系统,有足够的I/O口可以使用,为了使程序简化,我们采用按键电路,用部分P1口做开关,停止,快减,快加,暂停记录,下翻,上翻,用外中断INT0开始,另外用软件法消除抖动。电路图如下所示:图5 键盘电路3 软件设计在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为假设干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数、减计数、延时、快加、快减,计数和显示等,在具体需要时调用相应的模块即可。功能描述:用2位LED数码显示"秒表",显示时间为0099秒,每秒自动加1;一个"开始"键,一个"复位"键,一个"暂停"键,一个“快减”键,一个“快加”键;一个“记录”键,可同时记录四个相对独立的时间;一个“上翻”键,一个“下翻”键,查看四个不同的计时值。1主程序:这里采用分支结构,通过对按键的扫描,判断要实现什么功能。如下所示:开始 初始化P1.0=0?P1.1=0?P1.2=0?P1.3=0?P1.4=0?P1.5=0?停止快减快加下翻上翻够4个?P1.0=0?N暂停记录NNNNNNP1.0=0?NN2加1程序20H A进位清零做加法到100?20H清零个位十位分开返回Y 3定时器1程序用定时器0实现定时1秒,定时器1实现定时10毫秒,定时初值都是0D8F0H,这里只写定时1秒的流程图,如下所示:压栈保护赋定时初值到1秒?调用加1程序调用显示程序中断返回Y1停止子程序按键后,使秒表停止,即关闭定时器0,1,程序如下:STOP: CLR TR0 CLR TR1;关闭定时器0,1 ACALL DISP;显示2暂停记录子程序 按键结束后,将此时显示内存中的数送寄存器中保存,并通过条件转移指令判断是否存够4个数,假设存够则停止,否则继续。JILU : MOV A,20H MOV R1, A INC R1 DJNZ 50H, HERE;是否够四个数? MOV R1, #71H MOV 50H, #04H MOV 51H, #04H SJMP STOP;够4个数停止3加1子程序此程序只为简单的加1,并判断是否到100?到则从0开始,否则继续,另外将显示内存中的数个位十位分开,以便于动态显示。JIA1: MOVA,20H ;CLR CINC ACJNE A, #100, GO1;是否加到100?MOV 20H, #00H RETGO1: MOV 20H, A;将个位十位分开显示 MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B RET4显示子程序,采用动态显示DISP: MOVR0,#30H MOVR3, #0FEH MOVA, R3PLAY: MOV P2, A MOV A,R0 MOV DPTR, #DSEG1 MOVC A,A+DPTR MOV P0, A LCALL DL1 MOV P2, #0FFH MOV A, R3 RL A JNB ACC.2, LD1 INC R0 MOV R3, A LJMP PLAYLD1: RETDL1: MOVR7, #05HDL: MOVR6, #0FFHDL6: DJNZR6, $ DJNZR7, DL RET5延时子程序例如延时10ms程序:DELAY10:MOV R4,#14H DL00: MOV R5, #0FFHDL11: DJNZ R5, DL11 DJNZ R4, DL00 RET6按键消抖程序延时10ms再次判断该位的状态,假设仍是0则说明该键被按下,弹起后去执行该按键功能;假设为1,则说明是抖动则继续向下判断。L1: JB P1.1,L2 ; P1.1=0,快减 ACALL DELAY10 JB P1.1, L2 JNB P1.1, $ LJMP KJIAN5中断服务程序 用外部中断1实现开始,定时器0定时1S,定时器1定时10ms 。4 Proteus软件仿真功能描述如下:连通电源后,按开始键,秒表正常运行;按暂停记录键,记录4个数,上翻下翻键可以查看记录的4个数;停止键可使暂停;快加快减键可以实现快加快减功能,至停止键被按下;复位键可使系统复位。4.2 WAVE编译将所编写的汇编语言程序另存为 秒表.ASM 文件,并在WAVE中运行,显示结果如下: 图6 运行结果4.3 PROTEUS仿真用PROTEUS将编译生成的 秒表.HEX 文件下到单片机中,点击运行按相应的操作键即可看到下列图的效果: 图7 部分仿真结果A图7 部分仿真结果B5课程设计体会经过一个星期的课程设计,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时激情高涨到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。在老师的指导下,我顺利完成了课程设计。心得体会如下:1、将学习的理论知识通过实验融会贯穿,让我对它的理解更加深刻。对程序的编译过程了解透彻。2、本次课程设计以自己设计为主,因此培养了学习的积极性,让我能够独立去分析问题、发现问题、解决问题,更增强我与老师同学交流沟通和合作完成任务的能力。3、由于这次课程设计不仅设计编程方面的知识,还涉及了其它学科的知识,例如PROTEUS和WAVE等的基本知识。程序是用汇编语言来编写的,这次课程设计让我在编程能力方面得到了提高。4、由于水平有限,实验程序运行有一定的限制,望见谅。总之,通过这次课程设计,不仅加深了我对单片机理论方面的理解,将理论更好的运用的实践方面,而且锻炼了我们各方面的能力,培养了坚强的毅力和做事的耐心和细心,认识合作的重要性,虽然程序可能有一定的浪费资源,且较罗嗦,但这需要在实践中慢慢提高,还希望老师能够多多指导,促进我不断的进步。参考文献2 杨凌霄编著.微型电脑原理及应用.徐州:中国矿业大学出版社,20043 李群芳主编.单片机原理、接口及应用.北京:清华大学出版社,2005ORG0000HLJMP MAINORG000BHLJMPTIME1ORG 0013HLJMP ZHDUANORG001BHLJMPTIME10ORG0100HMAIN: MOV SP, #50H MOV TMOD, #11H MOVTH1,#0D8H ;定时10msMOVTL1, #0F0H MOVTH0,#0D8H ;定时10msMOVTL0, #0F0HMOV20H, #00H ; BIN SECOND MOV30H, #00H ; SECOND MOV31H, #00HMOV40H, #100 MOV 71H,#00H ;记录暂存区 MOV 72H, #00H MOV 73H, #00H MOV 74H, #00H MOV 50H, #04H MOV 51H, #04H MOV R1, #71H SETB EA SETB EX1 SETB ET1 SETB ET0 CLR PT0 CLR PT1 SETB PX1 SETB IT1 MOVP0, #0FFH CLRTR0 CLRTR1 CLR 7FHML1:ACALLDISPSTART: JB P1.0,L1 ; P1.0=0,停止 ACALL DELAY10 JB P1.0, L1 JNB P1.0, $ LJMP STOPL1: JB P1.1,L2 ; P1.1=0,快减 ACALL DELAY10 JB P1.1, L2 JNB P1.1, $ LJMP KJIANL2: JB P1.2,L3 ; P1.2=0,快加 ACALL DELAY10 JB P1.2, L3 JNB P1.2, $ LJMP KJIAL3: JB P1.3,L4 ; P1.3=0,暂停记录 ACALL DELAY10 JB P1.3, L4 JNB P1.3, $ LJMP JILUL4: JB P1.4,L5 ; P1.4=0,下翻 ACALL DELAY10 JB P1.4, L5 JNB P1.4, $ LJMP XFANL5: JB P1.5,L ; P1.5=0,上翻 ACALL DELAY10 JB P1.5, L JNB P1.5, $ LJMP SHFANL: SJMP HERESTOP: CLR TR0 ;停止程序 CLR TR1 ACALL DISP SJMP HEREJILU : MOV A,20H ;暂停记录程序 MOV R1, A INC R1 DJNZ 50H, HERE MOV R1, #71H MOV 50H, #04H MOV 51H, #04H SJMP STOPXFAN: MOV A,R1 ;下翻程序 MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B LCALL DISP INC R1 DJNZ 50H, HERE MOV R1, #71H MOV 50H, #04H SJMP HERESHFAN: MOV A,R1 ;下翻程序 MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B LCALL DISP DEC R1 DJNZ 50H, HERE MOV R1, #74H MOV 50H, #04H SJMP HEREKJIAN: SETB TR1 ;快减程序 CLR TR0 HEE1: JNB TF1, HEE1 CLR TF1 ACALL JIAN1 ACALL DISP JNB P1.0, STOP SJMP HEE1KJIA: SETB TR1 ;快加程序 CLR TR0HEE: JNB TF1, HEE CLR TF1 ACALL JIA1 ACALL DISP JNB P1.0, STOP SJMP HEEHERE: LJMP ML1ZHDUAN: SETB TR0 ;启动定时器0 CLR TR1 RETITIME1:PUSH ACC ;定时1秒 PUSH PSW MOVTH0, #0D8H MOVTL0, #0F0H DJNZ40H, RET0 LCALL JIA1 LCALL DISPMOV40H, #100RET0: POP PSW POP ACC RETITIME10: PUSH ACC ;定时10毫秒 PUSH PSW MOVTH0, #0D8H MOVTL0, #0F0HRET1: POP PSW POP ACC RETIJIA1: MOVA,20H ;加1CLR CINC ACJNE A, #100, GO1MOV 20H, #00H RETGO1: MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B RETJIAN1: MOVA,20H ;减1 CLR CDEC ACJNE A, #00, GO2MOV 20H, #99 RETGO2: MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B RETDISP: MOVR0,#30H ;显示 MOVR3, #0FEH MOVA, R3PLAY: MOV P2, A MOV A,R0 MOV DPTR, #DSEG1 MOVC A,A+DPTR MOV P0, A LCALL DL1 MOV P2, #0FFH MOV A, R3 RL A JNB ACC.2, LD1 INC R0 MOV R3, A LJMP PLAYLD1: RETDL1: MOVR7, #05HDL: MOVR6, #0FFHDL6: DJNZR6, $ DJNZR7, DL RETDELAY10:MOV R4,#14H ;延时10毫秒DL00: MOV R5, #0FFHDL11: DJNZ R5, DL11 DJNZ R4, DL00 RETDSEG1: DB 3FH, 06H, 5BH, 4FH, 66H DB 6DH, 7DH, 07H, 7FH, 6FHEND23

    注意事项

    本文(用汇编编写的基于单片机的秒表.doc)为本站会员(可****阿)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

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




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开