




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、HUNANUNIVERSITYOFTECHNOLOGY单片机系统课程设计报告学院(部):电气与信息工程学院专业:电气工程及其自动化学生姓名:指导老师:班级:学号2013年12月单片机系统课程设计报告一:系统设计要求:最大计数值为:99时59分59秒9/10秒,约100小时。2系统采用2个按键控制输入,其中一个按键用作系统清0,另一个按键用作秒表的启动/停止。系统采用7个LED数码管实现计时显示。电路原理图:使用protel或visio或proteus绘制。编程思路,用visio画程序设计流程图,且用文字描述二:系统设计:1:总体方案的设计数字秒表具有显示直观、读取方便、精度高等优点,在计时中广
2、泛应用。本设计中用单片机和数码管组成数字秒表,力求结构简单。设计中包括硬件电路的设计和系统程序的设计。硬件电路主要有主控制器、控制按钮与显示电路组成。主控制器采用单片机AT89C51,显示电路采用七位共阳极数码管显示计时时间。硬件设计2.1.:输出设计:设计要求在数码管上进行数据显示,输出硬件设计可以采用1个BCD七段译码器74LS47驱动数码管的段选端,输出字形信息,采用38译码器输出作为动态扫描时数码管的位选痛信号。这样在一定程度上节约了单片机的硬件资源,也简化了软件设计时的任务量。在硬件设计时还应当注意一下问题:(1)数码管接口方法与动态扫描原理;(2)时、分、秒计数单元地址的分配及BC
3、D码的调整方法;(3)按键识别与消除抖动的方法。2.2:显示设计:数码管显示可以分为静态显示和动态显示两种。由于本设计需要采用数码管显示时间,如果静态显示则占用的口线多,硬件电路复杂,所以采用动态显示。秒表设计原理图如图1.0所示。单片机采用通用的AT89C51芯片,显示器为7个共阳极LED数码管,用1个BCD七段译码器74LS47驱动数码管(74LS47的输入为BCD码,其输出级为集电极开路输出,可直接驱动七段数码管,具有首尾消零等特点),用38译码器74LS138的输出作为动态扫描时数码管的选通信号。因为采用了上述两个芯片,所以在对数码管进行扫描显示时,只需要单片机的7条I/O线就能完成显
4、示功能。电路图中采用P1.0P1.3作为显示数据值的输出,连接在BCD七段译码器74LSs4的1310管脚上(译码器74LS47的BCD码输入端);P1.4P1.6作为扫描值的输出端连接在3874LS138译码器的输入端(74LS138的A,B,C)。因此,写程序应将P1口的高四位为扫描值,低四位为显示数据值(分离BCD码)。单片机的P0.0P0.1分别接在两个开关上,以控制启动/停止和清零。秒表系统功能如下:(1)开机时,秒表显示从00:00:00:0开始计时。(2)按键S1控制秒表的启动/停止。(3)按键S2控制秒表的清零。硬件电路按总体框图进行设计:图1:硬件电路总体框图三:系统总体电路
5、的设计AT89C51单片机为主电路的核心部分,各个电路均与单片机相连,由单片机统筹协调各个电路的运行工作。开始键和暂停键使用了检测的方法,所以需要连到单片机的P0.0和P0.1引脚上,对这两个I/O口进行循环扫描,检测是否按下。显示电路由七位数码管组成,采用动态显示方式,因此有8位段控制和7位位控制,并且通过74LS47译码器进行控制8位段控制,接P1口,P1.0P1.3分别控制数码管的abcdefg显示,位控制有38段译码器74LS138进行位控制接在P1.4P1.6的I/O口上,对数码管实现位控制。系统总体电路如下图所示:|12ML|CRYSTALU1C330PFR2znnR11K1Sin
6、i魏i2诲1卫3|12ML|CRYSTALU1C330PFR2znnR11K1Sini魏i2诲1卫3魏IdI魏145Bi1J5gBiIE?SP0JKADDKTAL2PO.1tfD1P02WD2PC303PO.tftDiPCJ5D5PQjemDSRSTP0.7tfDTP2BP3P2.1X3P22ft1QPSENP23ft11ALEP2.*rf12凹P2j5ft13P2.T15P1DP1.1P12P3IVFIKDP3.1/TXDP32nNTT卩轴RTFpi.isrnP3JSTT1P3.T/REFP1.AP15P1EP1.7ATB9C51U21口t嵌仁11嵌22兹悄6嵌冉QABQBcQCDQDBLH
7、BOQERBIQFLTQG74LSi7邃13A域12B11c:3;10D斑ET奪15F:净1*G:2122232XTAL1XTAL2RSTPSENALEEAP1DP1.1P12P13P1.4P15P1JBP1.7AT89C510123567PO.PO.PO.PO.PO.PO.PO.PO.P2.0#8P2.1#!QP2.2/A10P2.3/A11P2.4/A12P2.5/A13P2.6/A14P2.7/A15P3.0/RXDP3.1/TXDP3.2/IHT0P3.3/INT1P3.4XT1OP3.5/T1P3.6VRP3.7/RDproteus口日匚口已飞DFY0Y1Y2Y3Y4Y5Y16Y72
8、BORABcDR-1312B:11一::010:9E:15F14G:12仿真图Jr-3700.0-1200.0th1E31-5678五:源程序ORG0000HJMPSTARTORG000BHJMPTIMOSTART:MOVSP,#70HMOV28H,#00MOV2AH,#00HMOV2BH,#00MOV2CH,#00MOV2DH,#00MOVP1,#0F0HMOVR5,#1MOVTMOD,#O1HMOVTH0,#0F0HMOVTL0,#60HMOVIE,#82HMOVR4,#25LOOP:JBP0.0,N2CALLDELAYSETBTR0MOVA,R5CPLAMOVR5,AN1:JNBP0.0
9、,$CALLDELAYN2:JBP0.1,LOOPCALLDELAYCJNER5,#0,LOOPCLRTR0JMPSTARTN3:JNBP0.1,$CALLDELAYJMPLOOPTIMO:MOVTHO,#OFOHMOVTL0,#60HPUSHACCPUSHPSWDJNZR4,X2MOVR4,#25CALLCLOCKCALLDISPX2:CALLSCANPOPPSWPOPACCRETISCAN:MOVR0,#28HCJNER0,#7,X3MOVR0,#00X3:MOVA,R0ADDA,#20HMOVR1,AMOVA,R0SWAPAORLA,R1MOVP1,AINCR0RETCLOCK:CJNE
10、R5,#1,X4MOVA,2DHADDA,#1DAAMOV2DH,ACJNEA,#10H,X4MOV2DH,#00MOVA,2CHADDA,#1DAAMOV2CH,ACJNEA,#60H,X4MOV2CH,#00MOVA,2BHADDA,#1DAAMOV2BH,ACJNEA,#60H,X4MOV2BH,#00MOVA,2AHADDA,#1MOV2AH,ACJNEA,#99H,X4MOV2AH,#00X4:RETDISP:MOVRl,#20HMOVA,2DHMOVR1,2DHINCR1MOVA,2CHMOVR1,AMOVB,#10DIVABMOVR1,BINCR1MOVR1,AINCR1INCR
11、1MOVA,2BHMOVB,#10HDIVABMOVR1,BINCR1MOVR1,AINCR1MOVA,2AHMOVB,#10HDIVABMOVR1,BINCR1MOVR1,ARETDELAY:MOVR6,#60HD1:MOVR7,#248DJNZR7,$DJNZR6,D1RETEND六:总结经过两个星期紧张而充实的单片机实训,老师所要求的程序最终在自己的努力下调试出来了,并且通过了老师的验收,这次实训让我有了很大的收获。从刚开始接到课题:一个计数到99小时59分59秒0.9秒的计时秒表如何实现。所需的数码管有七位,直接利用单片机的I/O口显然很难实现,通过老师的指导,通过利用扫描方式来控制八
12、段数码管,这样既能节省很多硬件资源,又可以在排线布局方面节省很多时间,使整体电路简洁明了。因此:如何实现扫描控制成为了本次课题的重点突破目标。在前期的准备过程之中,通过认真翻阅课本,分析单片机的内部工作原理和每条语句的功能。对单片机内部的组成结构和单片机指令运用上应当注意的问题,认真查找参考书,翻阅资料。有些指令虽然能够使用,但比较复杂,如何更的使用指令,并且更加合理的利用指令方面有所欠缺。因此,我从图书馆借来许多单片机设计方面的书籍来看,认真分析程序,从程序中结合自己所学过的知识认真分析,如何把指令更好的运用到自己到自己的设计之中去。在秒表设计的另一设计中:中断计时功能也十分重要。如何正确使
13、用指令完成所需要的功能,都需要对程序进行很好的分析。通过认真调试才能更好的运用。平时书上所学的零碎的只是进行整理,各种语句的功能和使用方法,只有通过多学多调试,进行仿真才能真正掌握。在设计过程中出现的问题也是挺多的:首先由于对程序的编写设计量不足,容易出现不知如何入手的情况,通过对程序多分析,然后自己从一些简单的程序开始编译调试,逐渐熟悉,由简单到复杂,每个程序都是有很多语句组合在一起来实现其功能的,这样在编写时可以减少很多的麻烦。其次:有时候,在理论上编程没有什么错误,但是在调试和仿真的时候出现错误,通过查阅资料得知,单片机内部执行程序的有些区域是有限制的,超出区域会出现运行错误。在仿真时与
14、在理论上也有很多的差别,因为要考虑硬件部分的因素。通过查找问题出现在哪一部分,并且近一步分析一些相同指令的功能,进行替换之后进行仿真是是否符合仿真电路,解决问题。在使用proteus绘制电路图示,如何布局才能使整体更合理,如何更好地使用各个单片机的I/O口都需要知晓其原理。另外,在proteus中如何快速查找各种元件,节约时间绘制电路图时间,都是需要多查阅资料的。第三:在编写软件过程中,如何运用编程思想去解决问题,也十分关键。刚开始编程是,对于如何实现一个键控制秒表的启动和停止,我想了许久,最后想到利用计数奇、偶的不同来控制。后来在其他资料上看到利用奇偶校验和取反等许多中方法,能够实现相同的功能,但是程序要简洁很多。让我在学习中不对积累,不断丰富自己的知识。通过自己的努力,最终实现了软件仿真调试的成功。虽然在答辩的时候我的表现不够好,说明我的知识还很多欠缺。但是,通过自己编写程序并进行调试,让我的单片机知识有了很大的提升。看到只有两位同学采用汇编编写的程序,而我是其中之一,让我为我的努力和收获而高兴。在很多时候,调试出问题时,自己也想放弃,但是坚持下来才可能成功,我这样告诫自己。通过本次设计,不仅让我的自主的学习能力有了很大的提升,锻炼了我查阅资料解决问题的能力,而且对自己的毅力也是一次考验。让我在自己的学习道路上有了更多的积累,为以后的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- Unit 8 A green world Grammar 教学设计 2024-2025学年牛津译林版八年级英语下册
- 一年级体育上册 第十八课接力跑教学设计
- 16 大家一起来合作 第一课时(教学设计)-部编版道德与法治一年级下册
- 七年级生物下册 4.4.3《输送血液的泵-心脏》第二课时教学设计 (新版)新人教版
- 9短诗三首《繁星(一三一)》教学设计-2023-2024学年统编版语文四年级下册
- 基于技术创新的研究与实践
- 2024年五年级英语上册 Unit 2 My Country and English-speaking Countries Lesson 7 China教学设计 冀教版(三起)
- 21《长相思》教学设计-2024-2025学年五年级上册语文统编版
- 乘法、除法(二)-7的乘、除法(教学设计)-2024-2025学年沪教版二年级数学上册
- Unit 1 Past and Present Reading 教学设计 2024-2025学年牛津译林版八年级英语下册
- 民宿消防安全知识培训
- 干部人事档案任前审核登记表范表
- 娱乐场所安全管理制度与应急预案
- 危重患者护理与观察
- 《项脊轩志》 高中语文
- 2024年全国眼视光行业眼镜验光员技能大赛理论参考试题库(含答案)
- 基于眼动追踪的认知负荷评估
- 2024年全国“红旗杯”班组长大赛(复赛)备考试题库(简答、案例分析题)
- 传统戏剧与人工智能的创新融合
- 全新只分红不占股协议
- 江西省南昌市部分学校2023-2024学年七年级下学期期中数学试题(含答案)
评论
0/150
提交评论