单片机计数器设计报告.._第1页
单片机计数器设计报告.._第2页
单片机计数器设计报告.._第3页
单片机计数器设计报告.._第4页
单片机计数器设计报告.._第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、HUNAN UNIVERSITY OF TECHNOLOGY单片机系统课程设计报告学院(部):电气与信息工程学院专业:电气工程及其自动化学生姓名:指导老师:班级:学号2013年12月单片机系统课程设计报 告一:系统设计要求:1 .最大计数值为:99时59分59秒9/10 秒,约100小时。2 系统采用2个按键控制输入,其中一个按键用作系统清0,另一个按键用作秒表的启动 /停止。3. 系统采用7个LED数码管实现计时显示。4. 电路原理图:使用protel或visio 或proteus 绘制。5. 编程思路,用visio画程序设计流程图,且用文字描述二:系统设计:1:总体方案的设计数字秒表具有显

2、示直观、读取方便、精度高等优点,在计时中广泛应用。本设计中用 单片机和数码管组成数字秒表,力求结构简单。设计中包括硬件电路的设计和系统程序的设计。硬件电路主要有主控制器、控制按钮与显 示电路组成。主控制器采用单片机AT89C51,显示电路采用七位共阳极数码管显示计时时 间。2.硬件设计2.1.:输出设计:设计要求在数码管上进行数据显示,输出硬件设计可以采用1个BCD七段译码器 74LS47驱动数码管的段选端,输出字形信息,采用3 8译码器输出作为动态扫描时数码 管的位选痛信号。这样在一定程度上节约了单片机的硬件资源,也简化了软件设计时的任 务量。在硬件设计时还应当注意一下问题:(1)数码管接口

3、方法与动态扫描原理;(2)时、分、秒计数单元地址的分配及BCD码的调整方法;(3)按键识别与消除抖动的方法。2.2 :显示设计:数码管显示可以分为静态显示和动态显示两种。由于本设计需要采用数码管显示时 间,如果静态显示则占用的口线多,硬件电路复杂,所以采用动态显示。秒表设计原理图如图1.0所示。单片机采用通用的AT89C51 芯片,显示器为7个共 阳极LED数码管,用1个BCD七段译码器74LS47驱动数码管(74LS47的输入为BCD码, 其输出级为集电极开路输出,可直接驱动七段数码管,具有首尾消零等特点),用3 8译 码器74LS138的输出作为动态扫描时数码管的选通信号。因为采用了上述两

4、个芯片,所以 在对数码管进行扫描显示时,只需要单片机的7条I/O线就能完成显示功能。电路图中采用P1.0P1.3 作为显示数据值的输出,连接在BCD七段译码器74LSS4的 1310管脚上(译码器74LS47的BCD码输入端);P1.4P1.6 作为扫描值的输出端连接在 3 874LS138 译码器的输入端(74LS138 的A,B,C)。因此,写程序应将P1 口的高四位为扫 描值,低四位为显示数据值(分离BCD码)。单片机的P0.0P0.1 分别接在两个开关上, 以控制启动/停止和清零。秒表系统功能如下:(1)开机时,秒表显示从00:00:00:0 开始计时。(2)按键S1控制秒表的启动/停

5、止。(3)按键S2控制秒表的清零。硬件电路按总体框图进行设计:图1 :硬件电路总体框图三:系统总体电路的设计AT89C51 单片机为主电路的核心部分,各个电路均与单片机相连,由单片机统筹协调 各个电路的运行工作。开始键和暂停键使用了检测的方法,所以需要连到单片机的P0.0和P0.1引脚上, 对这两个I/O 口进行循环扫描,检测是否按下。显示电路由七位数码管组成,采用动态显示方式,因此有8位段控制和7位位控制, 并且通过74LS47译码器进行控制8位段控制,接P1 口,P1.0P1.3 分别控制数码管的a b c d e f g显示,位控制有3 8段译码器74LS138进行位控制接在P1.4P1

6、.6 的I/O 口上, 对数码管实现位控制。系统总体电路如下图所示:raiaxn 吃lairnr nuRTTF3VFU P35/FI PJQiJh erxinr .1 2 n L -:FCmon PQIM3I FOJfflJDZFD.4M+P97WD?HVI世EJQ 越ji -a2J(4I2bill9申|口sT8图2 : 总体电路图四:软件设计4.1主程序设计本系统程序主要模块由主程序、定时中断服务程序、显示子程序和扫描子程序组成。 其中主程序是整个程序的主体。可以对各个中断程序进行调用。协调各个子程序之间的关 系。主程序:首先进行初始化。设置秒表的计时初值为00:00:00:0 ,设置T0高

7、低位初值, 且允许T0中断。然后检测S1S2是否按下,当S1按下时,启动T0进行4ms定时,开始进 行计时。系统主程序流程图:置显示 初值:00.00.00.0主程序置TO为4ms定时开TO中断Y启动,停止,清零图3:主程序流程图4.2 :定时器T0中断服务子程序:中断服务子程序的作用是进行“时”、“分”、“秒”的计时与显示。定时器TO用于定0.1秒计数单元进行加1操作。时2AH(时)内存单元中。在计数单元秒满60进位。时,定时周期设为4ms,中断累计25次(即0.1秒),对 间计数值分别存放在2DH(0.1 秒)、2CH(秒)、2BH(分)、 中采用组合BCD码计数,0.1秒是满10进位,时

8、、分、0.1S计时采用内部中断方式计时,通过内部中断设置4ms的定时溢出中断,单片机的频率 为12MHz,则机器周期为1us,要实现4ms的定时,在4ms内需要计数N次::N=4ms 十 1us=4000 次 令定时器/计数器0工作方式1下,此时计数初值X为::X=最大计数值M-计数次数N=65536-4000=61536=0F060H即向TH0写入计数初值0F0H,向TL0写入计数计数初值60H。TMOD 初始化:TMOD=00000001B=01H。GATE=0 ,C/T=0 ,M仁0,M0=1.TCON 初始化:TR0=1 ,启动T0。IE初始化:开放中断EA=1 ,允许定时器T0中断E

9、T0=1。定时器T0中断服务程序流程图如图所示:图4 : TO中断服务流程图显示子程序DISP:DISP 子程序的作用是分别将时间计数单元2DH(0.1 秒)、2CH(秒)、2BH(分)、2AH(时)中的十进制时间值(组合BCD码)转化为个位和十位(分离BCD码) 并分别存放在显示缓冲中。显示缓冲区的地址为20H26H。其中20H中存放0.1秒数据,21H22H 中存放秒数据,23H24H 中存放分钟数据,25H26H 中存放小时数据。由于每一 个地址单元内均为分离BCD码,用BCD七段译码器74LS47直接进行译码,因此不需要 软件方式对BCD码数据进行译码。扫描子程序SCAN:SCAN 的

10、作用是把显示缓冲区中的数据依次送往显示器显示。把扫描值 作为高4位,显示数值作为低4位,输出到P1 口,以完成显示。因为采用3 8译码器74LS138 作为扫描输出,故用28H单元存放扫描指针,即28H单元中存放的是数码管的序号。显示 时,只需取出20H26H 某一地址中的数据,并从P1 口的低4位输出,同时P1 口的高四 位作为扫描值输出,这样就能保证数码管正常工作。4.3 系统调试Proteus ISIS 是英国Labcenter 公司开发的电路分析与实物仿真软件,它可以仿真、 分析各种模拟器件和集成电路。该软件的主要特点为:实现了单片机仿真和SPICE电路仿 真相结合的功能,支持目前主流

11、单片机系统的仿真,提供了软件调试的功能,具有强大的 原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极 其强大。在电子领域中起到了很大的作用,它的出现仿真不需要先焊接电路板,可以先仿 真调试通过之后再焊接电路,节省了不少在硬件调试上花费的时间。打开已经画好的Proteus DSN 文件,双击图中的AT89C51芯片,就弹出一个窗口,在 program file项中通过路径选择在keil中生成hex文件,双击选中后确定,这样仿真图中的AT89C51芯片就已经读取了本设计中的hex文件。然后进行仿真,仿真图如下所示:也|+丟心 LIS 3r nrnjEBinn* !

12、icw ajiHsiii)MSi 舟出冏简 ilFtanffiUJ inii:i凶 书 辱帕|国|可 寺丨*独鱼亀a |呼& m#丿jxi妙直揮 血甜 色-.片 EE*:.HT&KSI BLrrciN IFU11附一也丘百 Cflrfi fM.MTdri iria PtNP:3-3in?Fipf斗p4/nriars/TiFl?PtTIIWIT: oooean*!IE+1IMMiLH :ruhrP0EM40 r1r| ET.MHXT roswoE OMKd 觸KrbMW7W| 卜 |W | 丁 I-.aMJSED OijXi占?ma i他a 由zT:lTi7 Tr图5: proteus 仿真图五

13、:源程序ORG 0000HJMP STARTORG 000BHJMP TIMOSTART:MOV SP,#70HMOV 28H,#00MOV 2AH,#00HMOV 2BH,#00MOV 2CH,#00MOV 2DH,#00MOV P1,#0F0HMOV R5,#1MOV TMOD,#O1HMOV TH0,#0F0HMOV TL0,#60HMOV IE,#82HMOV R4,#25LOOP:JB P0.0,N2CALL DELAYSETB TR0MOV A,R5CPL AMOV R5,AN1:JNB P0.0,$CALL DELAYN2:JB P0.1 ,L OOPCALL DELAYCJNE

14、 R5,#0,LOOPCLR TR0JMP STARTN3:JNB P0.1,$CALL DELAYJMP LOOPTIMO:MOV THO,#OFOHMOV TL0,#60HPUSH ACCPUSH PSWDJNZ R4,X2MOV R4,#25CALL CLOCKCALL DISPX2:CALL SCANPOP PSWPOP ACCRETISCAN:MOV R0,#28HCJNE R0,#7,X3MOV R0,#00X3:MOV A,R0ADD A,#20HMOV R1,AMOV A,R0SWAP AORL A,R1MOV P1,AINC R0RETCLOCK:CJNE R5,#1,X4M

15、OV A,2DHADD A,#1DA AMOV 2DH,ACJNE A,#10H,X4MOV 2DH,#00MOV A,2CHADD A,#1DA AMOV 2CH,ACJNE A,#60H,X4MOV 2CH,#00MOV A,2BHADD A,#1DA AMOV 2BH,ACJNE A,#60H,X4MOV 2BH,#00MOV A,2AHADD A,#1MOV 2AH,ACJNE A,#99H,X4MOV 2AH,#00X4:RETDISP:MOV R1,#20HMOV A,2DHMOV R1,2DHINC R1MOV A,2CHMOV R1,AMOV B,#10DIV ABMOV R1

16、,BINC R1MOV R1,AINC R1INC R1MOV A,2BHMOV B,#10HDIV ABMOV R1,BINC R1MOV R1,AINC R1MOV A,2AHMOV B,#10HDIV ABMOV R1,BINC R1MOV R1,ARETDELAY:MOV R6,#60HD1:MOV R7,#248DJNZ R7,$DJNZ R6,D1RETEND六:总结经过两个星期紧张而充实的单片机实训,老师所要求的程序最终在自己的努力下调 试出来了,并且通过了老师的验收,这次实训让我有了很大的收获。从刚开始接到课题: 一个计数到99小时59分59秒0.9秒的计时秒表如何实现。所需的

17、数码管有七位,直接利 用单片机的I/O 口显然很难实现,通过老师的指导,通过利用扫描方式来控制八段数码管, 这样既能节省很多硬件资源,又可以在排线布局方面节省很多时间,使整体电路简洁明了。 因此:如何实现扫描控制成为了本次课题的重点突破目标。在前期的准备过程之中,通过 认真翻阅课本,分析单片机的内部工作原理和每条语句的功能。对单片机内部的组成结构 和单片机指令运用上应当注意的问题,认真查找参考书,翻阅资料。有些指令虽然能够使 用,但比较复杂,如何更的使用指令,并且更加合理的利用指令方面有所欠缺。因此,我 从图书馆借来许多单片机设计方面的书籍来看,认真分析程序,从程序中结合自己所学过 的知识认真

18、分析,如何把指令更好的运用到自己到自己的设计之中去。在秒表设计的另一 设计中:中断计时功能也十分重要。如何正确使用指令完成所需要的功能,都需要对程序 进行很好的分析。通过认真调试才能更好的运用。平时书上所学的零碎的只是进行整理, 各种语句的功能和使用方法,只有通过多学多调试,进行仿真才能真正掌握。在设计过程中出现的问题也是挺多的:首先由于对程序的编写设计量不足,容易出现 不知如何入手的情况,通过对程序多分析,然后自己从一些简单的程序开始编译调试,逐 渐熟悉,由简单到复杂,每个程序都是有很多语句组合在一起来实现其功能的,这样在编 写时可以减少很多的麻烦。其次:有时候,在理论上编程没有什么错误,但是在调试和仿 真的时候出现错误,通过查阅资料得知,单片机内部执行程序的有些区域是有限制的,超 出区域会出现运行错误。在仿真时与在理论上也有很多的差别,因为要考虑硬件部分的因 素。通过查找问题出现在哪一部分,并且近一步分析一些相同指令的功能,进行替换之后 进行仿真是是否符合仿真电路,解决问题。在使用proteus 绘制电路图示,如何布局才能 使整体更合理,如何更好地使用各个单片机的I/O 口都需要知晓其原理。另外,在proteus 中如何快速查找各种元件,节约时间绘制电路图时间,都是需要多查阅资料的。第三:在 编写软件过程中,如何

温馨提示

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

评论

0/150

提交评论