




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
单片机课程设计学院:延陵班级:09信Y1姓名:戴书俊目 录第1章 设计的要求及目的1第2章 系统总体方案选择与说明2第3章 系统方框图与工作原理5第4章 各单元硬件设计及说明741 电源:742 复位电路:743 晶体振荡电路:844 显示电路:945 键盘电路:10第5章 器件说明11第6章 软件设计与说明1361 设计思想1362系统流程图20第7章 调试步骤、结果、使用说明23第8章 设计总结25第9章 参考文献27第1章 设计的要求及目的设计内容 本课题要求以单片机为核心设计设计一个单片机控制的秒表系统。利用单片机的定时器/计数器定时和记数的原理,结合显示电路、LED数码管以及按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行加、减(倒)计时,数码管能够正确地显示时间。设计要求1.能同时记录四个相对独立的时间并分别显示。 2.两位LED显示,显示时间为0099秒。3.每秒自动加1。 4.一个开始按键、一个复位按键、一个暂停按钮和一个快加按钮(每10ms快速加一)。 5.用上翻页按钮查看四个不同的计时值。6.添加下翻页按钮,并实现快减功能。 第2章 系统总体方案选择与说明本设计的最主要的元器件就是MCS51单片机。MCS51单片机在一块芯片上集成了CPU,存储器RAM,ROM以及输入与输出接口电路,这种芯片习惯上被称为单片微型计算机,简称单片机。MCS-51单片机是INTEL公司在1980年推出的高档8位单片机。它的典型产品有:8051,8031,8751,80C51,80C31,87C51。图2-1 AT89C51 AT89C51(图1)单片机由CPU,振荡器与时序电路, 4个8位的I/O端口(P0,P1,P2,P3),串行口等组成。P0口有三个功能:1、外部扩展存储器时,当做数据总线(如图中的D0D7为数据总线接口)。2、外部扩展存储器时,当作地址总线(如图中的A0A7为地址总线接口)。3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。P1口只做I/O口使用:其内部有上拉电阻。P2口有两个功能:1、扩展外部存储器时,当作地址总线使用;2、做一般I/O口使用,其内部有上拉电阻;P3口有两个功能:除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由寄存器来设置。ALE:地址锁存控制信号PSEN:外部程序存储器读选通信号EA/VPP:访问和序存储器控制信号RST:复位信号XTAL1和XTAL2 外接晶振引脚VCC:电源+5V输入VSS:GND接地。 图2-2:整体设计电路图第3章 系统方框图与工作原理3.1 系统方框图1硬件电路设计框图:7个按键电路时钟电路复位电路 单片机 LED显示器段码驱动电路LED显示器位码驱动电路2位LED显示器电路图3-1硬件电路设计框图2. 工作原理本实验利用单片机的定时器/计数器定时和记数的原理,结合实验箱上的集成电路芯片8032、LED数码管以及实验箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本实验设计了四个开关按键:其中一个按键按下去时以1秒加一开始计时,即秒表开始键(本实验中当开关从1变为0时开始计时),另一个按键按下去时暂停计时,使秒表停留在原先的计时(本实验中当相应开关从1变为0时即停止计时),第三个按键按下去时清0(本实验中当相应开关从1变为0时即停止计时),第四按键按下去则是以每10ms秒快速加一计时(本实验中当开关从1变为0时开始计时)。本实验中开始时都要使各按键回到各初始位置,即都处于1状态 本系统采用AT89C51单片机为中心器件,利用其定时器/计数器定时和记数的原理,结合硬件电路如电源电路,晶振电路,复位电路,显示电路,以及一些按键电路等来设计计时器,将软、硬件有机地结合起来。其中软件系统采用汇编语言编写程序,包括显示程序,加减计数程序,快加快减程序,中断,延时程序,按键消抖程序等。3. 设计思路描述:该实验要求进行计时并在数码管上显示时间,则可利用DVCC系列单片机微机仿真实验系统中的芯片8032(芯片的功能类似于芯片AT89C51,其管脚功能也和AT89C51的管脚功能类似)中的P3.2管脚做为外部中断0的入口地址,并实现“开始”按键的功能;将P3.3做为外部中断1的入口地址,并实现“清零”按键的功能;将P3.0做为数据信号DATA输入的入口地址;将P3.1做为时钟信号CLK输入的入口地址。定时器T0作为每秒加一的定时器;定时器T1作为“快加”键的定时器。其中“开始”按键当开关由1拨向0(由上向下拨)时开始计时;“清零”按键当开关由1拨向0(由上向下拨)时数码管清零,此时若再拨“开始”按键则又可重新开始计时。第4章 各单元硬件设计及说明41 电源:采用7809电源提供+5V稳压电压。电源电路是单片机系统最基本的部分,所以我们应该高度重视电源部分,不能因为电源部分电路比较简单而有所忽略,电源部分做好才能保证电路的正常工作。对电源电路来说,最重要的就是稳压,我们采用的是7809电源提供的+5V稳压电压。42 复位电路:采用上电加按钮复位。其中,在这个系统中的复位电路是采用上电加按钮来实现的。因为MCS-51单片机的复位是靠外部电路实现的。MCS-51单片机工作之后,只要在他的RST引线上加载10ms以上的高点平,单片机就能有效地进行复位。MCS-51单片机通常采用上电自动复位、按键复位、以及上电加按键复位等,我们采用的是上电加按键复位方式,这样做的优点是上电后可以直接进入复位状态,当程序出现错误时,可以随时使电路复位。图4-1:复位电路43晶体振荡电路: 通过XTAL1和XTAL2外接晶体振荡器构成内部振荡方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。MCS-51单片机内部的振荡电路是一个高增益反相放大器,引线 XTAL1和XTAL2分别为 反向振荡放大器的输入及内部时钟工作电路的输入和来自反向振荡器的输出,该反向放大器可以配置为片内振荡器。图4-2 晶振电路44 显示电路:采用LED动态显示,用P0口驱动显示。显示电路既可以选用液晶显示器,也可以选用数码管显示。我们采用的是数码管显示电路。在用数码管显示时,我们有静态和动态两种选择,静态显示程序简单,显示稳定,但是占用端口比较多;动态显示的程序比较复杂,但是所使用的端口比较少,可以节省单片机的I/O口,我们在这次系统设计中采用的是动态显示。但是由于我们编程知识的局限性,显示的结果并没有达到我们预期的效果,敬请老师原谅。图4-3:显示电路45 键盘电路:用部分P1口做开始开关,P1.0停止,P1.1复位,P1.2快加,P1.3暂停记录,P1.4上翻,P1.5下翻,用外中断INT0开始,用软件法消除抖动。图4-4:键盘电路第5章 器件说明1. 单片机的选择 根据初步设计方案的分析,设计这样的简单的应用系统,可以选用带有EPROM的单片机,应用程序直接储存在片内,不用在外部扩展程序存储器,电路可以简化。Intel公司的8051和8751芯片均可选用。其他一些MCS-51系列相兼容的芯片,如ATMEL公司生产的AT89C系列单片机。AT89C系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序写入更为方便;第二提供了更小的尺寸的芯片,使整个硬件电路体积更小。所以选用AT89C51单片机,它带2KB可编程闪速存储器的8位CMOS单片计算机,工作电压范围为2.76V。全静态工作频率为0Hz24MHz。采用DIP-20封装形式,内部结构与MCS-51系列芯片基本相同。2. 时钟与复位电路的器件单片机工作的时间基准是有时钟电路提供的。在单片机的XTAL1和XTAL2两个管脚,接一只晶振及两只电容就构成了单片机的时钟电路。电容器C1和C2对振动频率有微调作用,选值33pF。石英晶体选择12MHz。复位电路由33uF的电容与一个按钮并联,形成上电复位与手动复位组合电路。3. LED显示器段码驱动电路RP1RESPACK-8做上拉电阻4. 按键电路器件选择键盘直接和5个1K的电阻组成,电阻采用5脚排电阻。5.显示器件选用7SEG-MPX2-CC,它是一个7SEG表示七段数码管,MPX2-表示是两位,CC是表示共阴。第6章 软件设计与说明61 设计思想因为秒表设计相对较为简单,因此在软件设计中我们一般采用模块化程序设计的方法。模块是一个具有独立功能的程序,可以单独设计、调试与管理,模块可分为功能模块和控制模块两类。我们通过模块化程序设计可按适当的原则把一个情况复杂、规模较大的程序系统划分为一个个较小的、功能相关而又相对独立的模块。每个小的模块完成一个确定的功能,在这些小的模块之间建立必要的联系,互相协作完成整个程序要完成的功能。它具有明显的优点,把一个多功能的复杂的程序划分为若干个简单的、功能单一的程序模块,有利于程序的设计和调试,有利于程序的优化和分工,提高了程序的阅读性和可靠性,使程序的结构层次一目了然。其中的模块即为子程序,子程序是功能独立的程序段。子程序的基本思想是编写一次,可以重复使用。子程序的形式可以是一个程序文件,也可以是一个过程或函数。子程序总被其他程序调用而不单独执行,这与主程序相对。这个主程序也是由多个子程序模块组成,各程序模块都要完成一个明确的任务,实现某个具体的功能,加计数、减计数、延时、快加、复位,计数和显示等,在具体需要时调用相应的模块即可。程序模块设计:(1) 主程序MAIN: MOV SP, #50H MOV TMOD, #11HMOVTH1,#0D8H ;定时10ms MOVTL1, #0F0H MOVTH0,#0CFH ;定时25ms MOVTL0, #02CH MOV20H, #00H ;BIN SECOND MOV30H, #00H ; SECOND MOV31H, #00H MOV40H, #40 MOV 71H, #00H MOV 72H, #00H MOV 73H, #00H MOV 74H, #00H ;对71H74H单元清零 MOV R2, #04H MOV R3, #04H MOV R1, #71H SETB EA SETB EX1 CLR ET1 SETB ET0 CLR PT0 CLR PT1 SETB PX1 SETB IT1 MOVP0, #0FFH CLRTR0 CLRTR1 CLR 7FH判断是否有键按下,并确定是哪一个键,转移到相应的子程序的入口地址去执行子程序。没有键按下则一直等待,直到有键按下。ML1:ACALLDISP ;调用显示程序P1.0键按下时,计数停止START: JB P1.0, LOOP1 ACALL DELAY10 ;延时JB P1.0, LOOP1 ;P1.0=1,跳转到LOOP1执行JNB P1.0, $LJMP STOP ;P1.0=0,跳转到停止子程序P1.1键按下时,数字清零复位LOOP1: JB P1.1, LOOP2 ACALL DELAY10 ;延时JB P1.1, LOOP2 ;P1.1=1,跳转到LOOP2执行JNB P1.1, $LJMP RESET ;P1.1=0,跳转到复位子程序P1.2键按下时,进行快加计数 LOOP2: JB P1.2,LOOP3ACALL DELAY10 ;延时JB P1.2, LOOP3 ;P1.2=1,跳转到LOOP3执行JNB P1.2, $LJMP KUAIJIA ;P1.2=0,跳转到快加子程序P1.3键按下时,执行记录功能LOOP3: JB P1.3,LOOP4 ACALL DELAY10 ;延时JB P1.3, LOOP4 ;P1.3=1,跳转到LOOP4执行JNB P1.3, $LJMP JILU ;P1.3=0,跳转到暂停记录子程序P1.4键按下时,执行上翻功能LOOP4: JB P1.4,LOOP5 ;P1.4=0,SHANGFAN ACALL DELAY10 ;延时 JB P1.4, LOOP5 ;P1.4=1,跳转到LOOP5执行 JNB P1.4, $ LJMP XIAFAN ;P1.4=0,跳转到上翻子程序P1.5 键按下时,执行下翻功能LOOP5: JB P1.5,LOOP ;P1.5=0,XIAFAN ACALL DELAY10 ;延时 JB P1.5, LOOP ;P1.5=1,跳转到LOOP执行 JNB P1.5, $ LJMP SHANGFAN ;P1.5=0,跳转到下翻子程序LOOP: SJMP HERE(2)停止子程序软件对定时器0和定时器1的控制位清零,使定时器停止工作STOP: CLR TR0 CLR TR1 ACALL DISP SJMP HERE(3)复位子程序软件对显示的各内存单元清零,并回到开始前的初始状态,具体程序如下所示 :RESET: CLR TR0 CLR TR1 ;关闭定时器0,1 MOV 20H, #00H MOV 30H, #00H MOV 31H, #00H ACALL DISP ;调用显示子程序SJMP HERE(4)按键消抖程序DELAY10: MOV R4,#14H 延时10ms再次判断该位的状态,若仍是0则说明该键被按下,弹起后去执行该按键功能;若为1,则说明是抖动则继续向下判断。例如下面的程序中就调用了这个子程序。LOOP3: JB P1.3,LOOP4 ;P1.3=0时,暂停记录 ACALL DELAY10 JB P1.3, LOOP4 JNB P1.3, $ LJMP JILU62系统流程图 第7章 调试步骤、结果、使用说明7.1 调试步骤与结果我们利用WAVE软件对源程序进行编译,编译成功后,把编译结果保存。然后根据我们的软件在PROTEUS中设计出相应的硬件电路,并将该电路保存到与WAVE程序相同的文件夹中,最后将程序装载到单片机中,通过PROTEUS仿真,看程序是否能够实现预想的功能。PROTEUS仿真图如下图所示:图7-1 计数中图7-2 快加7.2 使用说明按 键功 能备 注 P3.3开始按下后开始计时 P1.0停止按下后计时停止 P1.1复位按下后计时归零 P1.2快加按下后计时加快 P1.3暂停记录按下一次记录一次时间 P1.4上翻上翻查看不同的计时值 P1.5下翻下翻查看不同的计时值第8章 设计总结经过两周的学习和摸索,单片机的课程设计终于完成了。在这期间我们学会了很多,也学到了很多,同时,对单片机这门课程有了更深一步的理解和掌握。1、本次课程设计使我加深了对单片机课程的全面认识,复习和掌握,对MC-51单片机有了更深入的了解,对I/O口的使用,晶振电路的接法,以及复位电路等的掌握都有了很大程度的提高,这为以后的实践打下了良好的基础。2、掌握定时器、外部中断的设置和编程原理。3、通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。4、还要根据实验的实际情况,添加些额外程序来使系统更加的稳定,如开关的消震荡(采用延迟)。5、程序要尽量做到由各个子程序组成,在有些程序后面最好加注释,这样在程序出错的检查过程中可以更容易查找的到,也更简洁,更明白易懂。6、我在编程过程中还有好多不理解的地方,经过老师和同学的帮助终于完成了这次设计。在这个过程中体会到了合作的好处,更了解的互相帮助的重要性。在这次的单片机课程设计中,我遇到了很多困难,尝试了各种方法解决问题,最后终于找到了最佳的方案。 7、回顾起此次单片机课程设计,至今我仍感慨颇多,的确,从理论到实践,在反复编程的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,自己的知识还远远不够,而且要把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正运用到实际生活中,从而提高自己的实际动手能力和独立思考的能力。这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固8、由于编程能力的有限和所学知识的局限性,在这个程序和设计系统中只实现了所有的基本要求和部分的高级要求,而且这其中还有许多不完善的地方,有时在上翻和下翻时会出现一些问题,这说明我在这方面还存在着很多不足,知识不够完备和系统,在以后的学习中还有待提高。希望老师能在以后的学习和生活中对我多加指导,促使我能取得更大的进步。总之,通过这次课程设计我学到了很多东西。它使我对单片机的理论知进行了全面的复习和系统的理解。本设计不仅将我们所学的理论知识应用到实际中去,同时也锻炼了自己的动手能力。与此同时,我还学会了要充分利用各种可学习的资源,提高自己独立学习的能力,独立思考的能力,查资料的能力,创新的能力及解决问题的能力。第9章 参考文献1 余发山编著单片机原理及应用技术徐州:中国矿业大学出版社,2003年2 杨凌霄编著.微型计算机原理及应用.徐州:中国矿业大学出版社,2004年3 杨宁编著.单片机与控制技术.北京:北京航空航天大学出版社,2004年4 王闪编著.AT89系列单片机原理与接口技术.北京:北京航空航天大学出版社,2004年5 李群芳主编.单片机原理、接口及应用.北京:清华大学出版社,2005年附录A 系统电路原理图附录B 系统程序清单:ORG 0000HLJMP MAINORG 0003HLJMP JILUORG 000BHLJMP TIME1ORG 0013HLJMP ZHONGDUANORG 001BHLJMP TIME10ORG 0100HMAIN: MOV SP, #50H MOV TMOD, #11H MOV TH1, #0D8H ;定时10ms MOV TL1, #0F0H MOV TH0,#0CFH ;定时25ms MOV TL0, #02CH MOV 20H,#00H ;BIN SECOND MOV 30H,#00H ; SECOND MOV 31H, #00H MOV 40H, #40 MOV 71H, #00H MOV 72H, #00H MOV 73H, #00H MOV 74H, #00H MOV R2, #04H MOV R3, #04H MOV R1, #71H SETB EA SETB EX1 CLR ET1 SETB ET0 CLR PT0 CLR PT1 SETB PX1 SETB IT1 MOV P0, #0FFH CLR TR0 CLRTR1 CLR 7FHML1:ACALLDISP START: JB P1.0 , LOOP1 ;p1.0=0,STOP ACALL DELAY10 JB P1.0, LOOP1 JNB P1.0, $ LJMP STOPLOOP1: JB P1.1, LOOP2 ;P1.1=0时,复位 ACALL DELAY10 JB P1.1, LOOP2 JNB P1.1, $ LJMP RESETLOOP2: JB P1.2,LOOP3 ;P1.2=0时,快加 ACALL DELAY10 JB P1.2, LOOP3 JNB P1.2, $ LJMP KUAIJIALOOP3: JB P1.3,LOOP4 ;P1.3=0时,暂停记录 ACALL DELAY10 JB P1.3, LOOP4 JNB P1.3, $ LJMP JILULOOP4: JB P1.4,LOOP5 ;P1.4=0时,上翻 ACALL DELAY10 JB P1.4, LOOP5 JNB P1.4, $ LJMP XIAFANLOOP5: JB P1.5,LOOP ;P1.5=0时,下翻 ACALL DELAY10 JB P1.5, LOOP JNB P1.5, $ LJMP SHANGFANLOOP: SJMP HERESTOP: CLR TR0 ;停止程序 CLR TR1 ACALL DISP SJMP HERERESET: CLR TR0 ;复位程序 CLR TR1 MOV 20H, #00H MOV 30H, #00H MOV 31H, #00H ACALL DISP SJMP HEREJILU : MOV A,20H ;暂停记录程序 MOV R1, A INC R1DJNZ R2, HERE MOV R1, #71H SJMP STOPXIAFAN: MOV A,R1 ;下翻程序 MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B LCALL DISP INC R1 DJNZ R2, HERE MOV R1, #74H SJMP STOPSHANGFAN:MOV A,R1 ;上翻程序 MOV 20H, A MOV B, #0AH DIV AB MOV 31H, A MOV 30H, B LCALL DISP
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论