单片机控制的多功能秒表系统设计 _第1页
单片机控制的多功能秒表系统设计 _第2页
单片机控制的多功能秒表系统设计 _第3页
单片机控制的多功能秒表系统设计 _第4页
单片机控制的多功能秒表系统设计 _第5页
已阅读5页,还剩21页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

本科毕业设计(论文)单片机控制的多功能秒表系统设计本科毕业设计(论文)摘 要本设计是设计一个单片机控制的多功能秒表系统。近年来随着科技的飞速发展,单片机的应用正在不断的走向深入,同时带动着传统控制检测日新月异更新。在实时检测和自动控制的单片机应用系统中,单片机往往是作为一个核心部件来使用,仅单片机方面的知识是不够的,还要根据具体的硬件结构,以及针对具体的应用对象的软件结合,加以完善。秒表的出现,解决了传统的由于人为因素造成的误差和不公平性。本设计的多功能秒表系统采用 AT89C51 单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合显示电路、电源电路、LED 数码管以及键盘电路来设计计时器。将软、硬件有机地结合起来,使得系统能够实现两位 LED 显示,显示时间为 0099 秒,每秒自动加 1,能正确地进行加、减(倒)计时,快加,快减,可以同时记录 4 个相对独立的时间,通过上翻下翻来查看这 4 个不同的计时值,可谓功能强大。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在 WAVE 中调试运行,硬件系统利用 PROTEUS 强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 关键字:单片机,多功能秒表,设计本科毕业设计(论文)AbstractThis design is the design of a microprocessor controlled multi-function stopwatch system.In recent years, with the rapid development of science and technology, SCM applications are continually deepening, along with the traditional control detection update change rapidly. In the SCM application of real-time detection and automatic control system, SCM is often as a core component to use, only SCM knowledge is not enough, but also based on specific hardware structure, and software for a specific application object binding, perfected. Stopwatch, solved due to human factors error of traditional and injustice.Multifunction stopwatch system in this design uses AT89C51 microcontroller as the core device, using the timer / counter timing and counting principle, the timer to design combined with display circuit, power supply circuit, LED digital tube and the keyboard circuit. The software and hardware combination, so that the system can achieve two LED display, display the time for 00 99 seconds, automatic plus 1 per second, can correctly add, subtract (down) time, fast, fast, can simultaneously record 4 relatively independent of the time, the value of 4 different time to see through the turn down, is powerful. The software system uses the assembly language programming, including the display program, addition and subtraction counting procedures, fast speed reduction program, interruption, delay procedures, key debounce procedures, and debugging in WAVE, the hardware system using PROTEUS powerful function, simple cutting easy to observe, in the simulation can be observed in the actual working condition.Keywords: single-chip, multi-functional stopwatch, design本科毕业设计(论文)目 录1 概述 .31.1 设计任务 .31.2 设计要求 .32 系统总体方案及硬件设计 .42.1 系统总体方案 .42.2 硬件电路设计 .43 软件设计 .84.1 软件设计概述 .84.2 程序流程图 .84.3 子程序模块设计 .114 Proteus 软件仿真 .144.1 功能简介 .144.2 WAVE 编译 .144.3 PROTEUS 仿真 .145 课程设计体会 .16参考文献 .16附 1.源程序代码 .17附 2.程序原理图 .23本科毕业设计(论文)1 概述1.1 设计任务设计一个单片机控制的秒表系统。利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行加、减(倒)计时,数码管能够正确地显示时间。1.2 设计要求1.能同时记录四个相对独立的时间并分别显示。 2.两位 LED 显示,显示时间为 0099 秒。3.每秒自动加 1。 4.一个开始按键、一个复位按键、一个暂停按钮和一个快加按钮(每 10ms快速加一)。 5.用上翻页按钮查看四个不同的计时值。6.添加下翻页按钮,并实现快减功能。 本科毕业设计(论文)2 系统总体方案及硬件设计2.1 系统总体方案本系统采用 AT89C51 单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等,并在 WAVE 中调试运行,硬件系统利用 PROTEUS 强大的功能来实现,简单切易于观察,在仿真中就可以观察到实际的工作状态。 单片机 外围 电路 电源 电路 显示电路 键盘电路 图 1 系统电路原理2.2 硬件电路设计本系统中,硬件电路主要有电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等(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 口做开关,P1.0 停止,P1.1 快减,P1.2 快加,P1.3 暂停记录,P1.4 下翻,P1.5 上翻,用外中断 INT0 开始,另外用软件法消除抖动。电路图如下所示:本科毕业设计(论文)图 5 键盘电路3 软件设计4.1 软件设计概述在软件设计中,一般采用模块化的程序设计方法,它具有明显的优点。把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。应用系统的程序由包含多个模块的主程序和各种子程序组成。各程序模块都要完成一个明确的任务,实现某个具体的功能,如:加计数、减计数、延时、快加、快减,计数和显示等,在具体需要时调用相应的模块即可。功能描述:用 2 位 LED 数码显示秒表,显示时间为 0099 秒,每秒自动加 1;一个开始键,一个复位键,一个暂停键,一个“快减”键,一个“快加”键;一个“记录”键,可同时记录四个相对独立的时间;一个“上翻”键,一个“下翻”键,查看四个不同的计时值。4.2 程序流程图(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?NN本科毕业设计(论文)(2)加 1 程序(20H) A进位清零做加法到 100?(20H)清零个位十位分开返回Y(3)定时器 1 程序用定时器 0 实现定时 1 秒,定时器 1 实现定时 10 毫秒,定时初值都是0D8F0H,这里只写定时 1 秒的流程图,如下所示:本科毕业设计(论文)压栈保护赋定时初值到 1 秒?调用加 1 程序调用显示程序中断返回Y4.3 子程序模块设计(1)停止子程序按键后,使秒表停止,即关闭定时器 0,1,程序如下:STOP: CLR TR0 CLR TR1;关闭定时器 0,1ACALL DISP;显示(2)暂停记录子程序按键结束后,将此时显示内存中的数送寄存器中保存,并通过条件转移指令判断是否存够 4 个数,若存够则停止,否则继续。JILU : MOV A,20H MOV R1, AINC R1本科毕业设计(论文)DJNZ 50H, HERE;是否够四个数?MOV R1, #71HMOV 50H, #04HMOV 51H, #04HSJMP STOP;够 4 个数停止(3)加 1 子程序此程序只为简单的加 1,并判断是否到 100?到则从 0 开始,否则继续,另外将显示内存中的数个位十位分开,以便于动态显示。JIA1: MOVA,20H ;CLR CINC ACJNE A, #100, GO1;是否加到 100?MOV 20H, #00HRETGO1: MOV 20H, A;将个位十位分开显示MOV B, #0AHDIV ABMOV 31H, AMOV 30H, BRET(4)显示子程序,采用动态显示DISP: MOV R0,#30H MOV R3, #0FEHMOV A, R3PLAY: MOV P2, AMOV A,R0MOV DPTR, #DSEG1MOVC A,A+DPTRMOV P0, ALCALL DL1MOV P2, #0FFH本科毕业设计(论文)MOV A, R3RL AJNB ACC.2, LD1INC R0MOV R3, ALJMP PLAYLD1: RETDL1: MOVR7, #05HDL: MOVR6, #0FFHDL6: DJNZ R6, $DJNZ R7, DLRET(5)延时子程序例如延时 10ms 程序:DELAY10:MOV R4,#14H DL00: MOV R5, #0FFHDL11: DJNZ R5, DL11DJNZ R4, DL00RET(6)按键消抖程序延时 10ms 再次判断该位的状态,若仍是 0 则说明该键被按下,弹起后去执行该按键功能;若为 1,则说明是抖动则继续向下判断。L1: JB P1.1,L2 ; P1.1=0,快减ACALL DELAY10JB P1.1, L2JNB P1.1, $LJMP KJIAN(5)中断服务程序用外部中断 1 实现开始,定时器 0 定时 1S,定时器 1 定时 10ms 。本科毕业设计(论文)4 Proteus 软件仿真4.1 功能简介功能描述如下:连通电源后,按开始键,秒表正常运行;按暂停记录键,记录 4 个数,上翻下翻键可以查看记录的 4 个数;停止键可使暂停;快加快减键可以实现快加快减功能,至停止键被按下;复位键可使系统复位。4.2 WAVE 编译将所编写的汇编语言程序另存为 秒表.ASM 文件,并在 WAVE 中运行,显示结果如下:图 6 运行结果4.3 PROTEUS 仿真用 PROTEUS 将编译生成的 秒表.HEX 文件下到单片机中,点击运行按相应的操作键即可看到下图的效果:本科毕业设计(论文)图 7 部分仿真结果 A图 7 部分仿真结果 B本科毕业设计(论文)5 设计体会经过一个星期的课程设计,过程曲折可谓一语难尽。在此期间我也失落过,也曾一度热情高涨。从开始时激情高涨到最后汗水背后的复杂心情,点点滴滴无不令我回味无长。在老师的指导下,我顺利完成了课程设计。心得体会如下:1、将学习的理论知识通过实验融会贯通,让我对它的理解更加深刻。对程序的编译过程了解透彻。2、本次课程设计以自己设计为主,因此培养了学习的积极性,让我能够独立去分析问题、发现问题、解决问题,更增强我与老师同学交流沟通和合作完成任务的能力。3、由于这次课程设计不仅设计编程方面的知识,还涉及了其它学科的知识,例如 PROTEUS 和 WAVE 等的基本知识。程序是用汇编语言来编写的,这次课程设计让我在编程能力方面得到了提高。4、由于水平有限,实验程序运行有一定的限制,望见谅。总之,通过这次课程设计,不仅加深了我对单片机理论方面的理解,将理论更好的运用的实践方面,而且锻炼了我们各方面的能力,培养了坚强的毅力和做事的耐心和细心,认识合作的重要性,虽然程序可能有一定的浪费资源,且较罗嗦,但这需要在实践中慢慢提高,还希望老师能够多多指导,促进我不断的进步。本科毕业设计(论文)参考文献1 余发山主编.单片机原理及应用技术.徐州:中国矿业大学出版社.20032 杨凌霄编著.微型计算机原理及应用.徐州:中国矿业大学出版社,20043 李群芳主编.单片机原理、接口及应用.北京:清华大学出版社,2005本科毕业设计(论文)附 1.源程序代码ORG 0000HLJMP MAINORG 000BHLJMP TIME1ORG 0013HLJMP ZHDUANORG 001BHLJMP TIME10ORG 0100HMAIN: MOV SP, #50HMOV TMOD, #11HMOV TH1,#0D8H ;定时 10msMOV TL1, #0F0HMOV TH0,#0D8H ;定时 10msMOV TL0, #0F0HMOV 20H, #00H ; BIN SECONDMOV 30H, #00H ; SECONDMOV 31H, #00HMOV 40H, #100MOV 71H,#00H ;记录暂存区MOV 72H, #00HMOV 73H, #00HMOV 74H, #00HMOV 50H, #04HMOV 51H, #04HMOV R1, #71HSETB EASETB EX1SETB ET1SETB ET0CLR PT0CLR PT1SETB PX1SETB IT1MOV P0, #0FFH本科毕业设计(论文)CLR TR0CLR TR1CLR 7FHML1: ACALL DISPSTART: JB P1.0,L1 ; P1.0=0,停止ACALL DELAY10JB P1.0, L1JNB P1.0, $LJMP STOPL1: JB P1.1,L2 ; P1.1=0,快减ACALL DELAY10JB P1.1, L2JNB P1.1, $LJMP KJIANL2: JB P1.2,L3 ; P1.2=0,快加ACALL DELAY10JB P1.2, L3JNB P1.2, $LJMP KJIAL3: JB P1.3,L4 ; P1.3=0,暂停记录ACALL DELAY10JB P1.3, L4JNB P1.3, $LJMP JILUL4: JB P1.4,L5 ; P1.4=0,下翻ACALL DELAY10JB P1.4, L5JNB P1.4, $LJMP XFANL5: JB P1.5,L ; P1.5=0,上翻ACALL DELAY10JB P1.5, L本科毕业设计(论文)JNB P1.5, $LJMP SHFANL: SJMP HERESTOP: CLR TR0 ;停止程序CLR TR1ACALL DISPSJMP HEREJILU : MOV A,20H ;暂停记录程序MOV R1, AINC R1DJNZ 50H, HEREMOV R1, #71HMOV 50H, #04HMOV 51H, #04HSJMP STOPXFAN: MOV A,R1 ;下翻程序MOV 20H, AMOV B, #0AHDIV ABMOV 31H, AMOV 30H, BLCALL DISPINC R1DJNZ 50H, HEREMOV R1, #71HMOV 50H, #04HSJMP HERESHFAN: MOV A,R1 ;下翻程序MOV 20H, AMOV B, #0AHDIV ABMOV 31H, AMOV 30H, BLCALL DISP本科毕业设计(论文)DEC R1DJNZ 50H, HEREMOV R1, #74HMOV 50H, #04HSJMP HEREKJIAN: SETB TR1 ;快减程序CLR TR0HEE1: JNB TF1, HEE1CLR TF1ACALL JIAN1ACALL DISPJNB P1.0, STOPSJMP HEE1KJIA: SETB TR1 ;快加程序CLR TR0HEE: JNB TF1, HEECLR TF1ACALL JIA1ACALL DISP

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论