




下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、文华学院单片机原理及应用课程设计报告姓名:学号:学部(系):专业年级:指导老师:2016年 12月 5日一标题 1二设计内容,设计要求 1三设计思路 1四工作原理 2五硬件设计 3六 软件设计(含流程图) 5七调试 9八改进意见 10九收获及体会 10十源程序(含注释) 11、标题简易计时器一一LED数码管显示接口技术应用二、设计内容,设计要求1、目的a. 通过简易计时器的制作,熟悉 LED数码管与单片机的接口方式;b. 定时/计数器、中断技术的综合应用;c. 学会简易键盘的使用。2、明确要完成的任务a利用按键构成键盘实现秒表的启动、停止与复位,b. 利用LED数码管显示时间。c. 进行简单的
2、串行通信。3、用单片机实现任务a. 如何运用单片机实现计时;b. 如何显示时间;c. 如何利用按键实施对秒表的控制。d. 定时器TO或TI的定时时间作为时钟计时的基准e启动与停止定时器工作实现计时。f. 先用两个数码管动态显示时间,时间范围为 0-60sg. 用三个独立式按键实现秒表的启动、停止和复位功能。h. A机发送,B机接收三、设计思路1、硬件设计思路a. 采用P0 口输出并联控制两个数码管的8个段选控制端b. 用P2.0 P2.1分别控制两个LED数码管的位选控制端c. 动态显示电路接法,LED采用共阳极数码d. 三个按键采用独立式键盘接法,e. 两个按键连接到外部中断INTO、INT
3、1的输人引脚P3.2和P3.3f. S4按键接到T1的外部脉冲输入引脚P3.5,以中断方式实现键盘输入状态的扫 描g. 其中S2为启动按钮,S3为停止按钮,S4清零按钮。h. K1为复位键2、程序设计思路a. 根据设计的总体要求划分出各功能程序模块,分别确定主程序、子程序及中断 服务程序结构b. 对各程序模块占用的单片机资源进行统一调配c. 对各模块间的逻辑关系进行细化,优化程序结构d. 设计出各模块程序结构流程图e. 最后依据流程图编制具体程序f. 将整个程序划分为主程序、键盘扫描程序、秒计时程序三大模块g. 其中主程序除完成初始化外,主要由动态显示程序构成h. 秒计时程序由定时器0中断服务
4、子程序构成i. 键盘扫描程序也由各中断服务子程序来实现四、工作原理1、计时表10K 10KOKVccP1.0XTAL1P1.1P1.2P1.3P1.4P1.5XTAL2P1.6P1.7P2.0P2.1P2.2P2.3INT0P2.4P2.5TXDT1RXDVssRESET89C51T1 INR1 INR1 OUTT1 OUTS1:复位按键S2:启动按键S3:暂停按键S4:清零按键T1(P3.5)INT1(P3.3)INT0(P3.2)工作原理图如上图所示,单片机所需的晶振频率由振荡电路提供,复位由复位电路实现。其中S2为启动按钮,S3为停止按钮,S4为清零按钮,三个按钮分别连接 到外部中断IN
5、TO、NT1的输人引脚P32P3.3和T1的外部脉冲输入引脚P3.5。 设置外部中断为下降沿触发,当按键未被按下时,其相应的引脚为高电平,而当 按键被按下后,变为低电平,因此有下降沿,产生中断,从而执行相应的外部中 断服务程序,实现启动和停止的功能。同理,只要设置T1为计数器,因为计数器是对外脉冲的下降沿计数,当按键按下时,产生下降沿,计数值加1,这样,只要选择合适的计数初值,使其只要加1后产生溢出,也会执行T1的中断服务程序,实现清零的功能。而对 1S时间的准确控制可以由定时器 TO来控制,这 样,就实现了 TO、T1、INTO、INT1等4个中断源的运用。对于数码管,采用P0 口输出并联控
6、制两个数码管的8个段选控制端,而 用P2.0、P2.1分别控制两个LED数码管的位选控制端,这是动态显示的电路接 法,LED采用共阳极接法,0-9的共阳极数码管编码如下所示:共阳极数码管编码0xc00xf90xa40xb00x99012340x920x820xf80x800x9056789五、硬件设计P0.0P0.1P0.2P1.0P1.1P1.2P1.5P1.6P0.3P0.4P0.5P0.6P0.71baC f 1bd丄f丄 dpgdp comb adfjeeHgdp comb a:丄匚gdp com1b ad Lgdp comAT89C51P1.7INT1P2.0INT0P2.1EA/V
7、PPP2.4XTAL1P2.5XTAL2P2.6RESETP2.7RXDWRTXDGNDALEVCCPSENT0T1P2.2P2.33130272522+ 5+5+5+5+5+ 5GND1311110R1 INR1OUTR2 INR2OUTT1 INT1OUTT2 INT2OUTC1+C2+C1 -C2 -1247MAX232Gf图2电路布线图(protel)*图3 PCB图元器件清单元件名称参数/型号说明封装数量1单片机89C51厂家:ATMELDIP-4012IC插座DIP40双列直插式/40个 引脚孔13晶体振荡器12MHZ石英晶体振荡器(非温度补偿式)直插式14数码管HS-5101BS
8、265IC插座单排针插座/16个 引脚孔,间距2.54mm说明:串口下载RS23216RS232通讯MAX232DIP17普通按键DTS65K38复位按键6*6*4.319瓷片电容30pF直插式210电解电容1040.1uF直插式611电阻1k Q612电阻10k Q413电阻510 Q614直流电源GM-0501005V/1A115电源插头DC座(中号)与直流电源的插 口直径相同116串口接口9针117USB转串口线9针118三极管9014619电源拨动开关单排120制PCB板1六、软件设计(含流程图)K3 (S4): 001BH方式2计数,中断,计数初值:256-仁255,秒计数清0K1(
9、S2): 0013H下降沿中断,启动 TO、T1K2(S3): 0003H下降沿中断,关断T0,暂停计时T0: 000BH方式1,50ms定时中断, 中断20次为1S。1. 两个LED显示的时间由显示缓冲区31H、30H单元中的数据决定。动态显 示每位的持续时间为Ims,采用软件延时。2. 1 秒钟的定时采用定时器T0的方式1来实现。3. T0每50ms中断一次,每中断一次计数单元 R0内容减1 ;若计满20次, 秒计数单元R4内容加1。4. R4单元中的数据采用压缩BCD码按十进制计数,将该单元中的数据拆成个位和十位两个十进制数据后分别送至显示缓冲区的3OH、31H单元。主程序流程图:1.显
10、示程序YN2.查询程序开始秒車设定时器初值显不麥 +他 13 /Ijjn半保护现场.,一 _N清除溢出标志位,重置计数查询是否溢秒表加一也码送厝口|_60s ?N秒值清04秒值除以10个位、十位送相应缓冲区返回3.按键子程序否七、调试(遇到的问题和解决方法)1、输人源程序。2、先调试主程序,实现基本的显示功能。3、当无键按下时,将一直显示初值“ 00”。4、再调试查询服务程序。5、当按键S2按下时,程序将会跳转到启动子程序,启动定时器开始计时。7、当按键S3按下时,程序将会跳转到停止子程序,定时器停止计时,秒表显示 内容保持不变;当按键S3在次按下时定时器开始计时。8、当按键S4按下时,程序将
11、会跳转到清零停止子程序,停止定时器工作,秒表 显示清零。9、最后将各模块联调实现全部功能。遇到的问题和解决方法这次课设我用的是汇编对我来说是一个新的挑战, 在程序设计过程中也遇到 了很大的困难,开始对编程软件不熟悉,就连很小的问题也调试了很久,后来慢 慢的解决了这些问题自己也学到了许多东西。1. 在调试时,遇到的最大的问题就是在使用开关查询的时候, 对开关进行只 按不松也会计时,停止和清零也是这样。后来加了一个按下开关时不计数, 弹起 来的程序,也就是等待。2. 在开始做的时候自己没把原理图看清楚,还是采用以前共阴极的方式来做结果数码管不亮。后来问同学知道这是共阳极的位选要给1、段选给0就可以
12、亮了。3. 设置的暂停键只能暂停,不能恢复,只能重新按启动键才能开始计数。开始就把问题锁定在暂停程序那里,我发现我最开始编写的是按下暂停,则CLRTRQ关闭了启动,后来我改成了 CPL TR0将TR0取反这样再按下去就可以恢 复。4. 按键没有消抖在后来调试中通过老师讲的必须消除抖动的不良后果,所以 我加了一个延时10ms的子程序,从而消除抖动的影响。八、改进意见主要是暂停按键按下暂停在按一下启动是有时候有点不灵敏,我想主要的 原因可能是在按键扫描时但我们再次按下时CPU没有及时反应过来花费时间在扫描按键上去了,我后来通过自己去查资料去学习问题的所在。 我用的是查询方 式做的后来自己看书把中断
13、方式也写了通过改进把程序在完善,通过自己的学习编写程序多加一些功能。九、收获及体会通过这次的设计使我认识到我对单片机方面的知识知道的太少了,对于书 本上的很多知识还不能灵活运用,有很多我们需要掌握的知识在等着我去学习, 我会在以后的学习生活中弥补我所缺少的知识。 在做本次课程设计的过程中,为 了让自己的设计更加完善,查阅这方面的设计资料是十分必要的, 同时也是必不 可少的。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,这是 我做这次课程设计的又一收获是要做好一个课程设计,就必须做到:在设计程序之前,对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源; 要有一个清晰的思
14、路和一个完整的的软件流程图; 在设计程序时,不能妄想一次 就将整个程序设计好,反复修改、不断改进是程序设计的必经之路; 要养成注释 程序的好习惯,一个程序的完美与否不仅仅是实现功能, 而应该让人一看就能明 白你的思路,这样也为资料的保存和交流提供了方便; 在设计课程过程中遇到问 题是很正常德,但我们应该将每次遇到的问题记录下来, 并分析清楚,以免下次 再碰到同样的问题的课程设计结束了, 但是从中学到的知识会让我受益终身。 发 现、提出、分析、解决问题和实践能力的提高都会受益于我在以后的学习、工作 和生活中。设计过程,好比是我们人类成长的历程,常有一些不如意,但毕竟这 是第一次做,难免会遇到各种
15、各样的问题。在设计的过程中发现了自己的不足之 处,对以前所学过的知识理解得不够深刻, 掌握得不够牢固。我们通过查阅大量 有关资料,若遇到实在搞不明白的问题就会及时请教同学, 使自己学到了不少知 识,也经历了不少艰辛,但收获同样巨大。通过这次课程设计我也发现了自身存 在的不足之处,虽然感觉理论上已经掌握,但在运用到实践的过程中仍有意想不 到的困惑,经过一番努力才得以解决。这也激发了我今后努力学习的兴趣, 我想 这将对我以后的学习产生积极的影响。通过这次设计,我懂得了学习的重要性,了解到理论知识与实践相结合的 重要意义,学会了坚持、耐心和努力,这将为自己今后的学习和工作做出了最好 的榜样。我觉得作
16、为一名自动化专业的学生,单片机的课程设计是很有意义的。 更重要的是如何把自己平时所学的东西应用到实际中。我认为这个收获应该说是相当大的。本次的设计使我从中学到了一些很重要的东西, 那就是如何从理论到 实践的转化,怎样将我所学到的知识运用到我以后的工作中去。 在大学的课堂的 学习只是在给我们灌输专业知识,而我们应把所学的用到我们现实的生活中去, 此次的设计给我奠定了一个实践基础, 我会在以后的学习、生活中磨练自己,使 自己适应于以后的竞争。十、源程序(含注释)简易时钟(时分秒)ORG 0000H;初始化程序入口地址AJMP MAIN;主程序ORG 0030H;程序入口地址MAIN:MOV TMO
17、D,#01H;定时器T0工作于方式1MOV DPTR,#TABLE;DPTR指向TABLE表首地址MOV R1, #59;秒表时间置初值MOV R2, #59;分钟时间置初值MOV R3, #23;小时时间置初值LP1: MOV R0, #20;软件计数器置初值LP2: MOV TH0, #3CH;置50ms定时初值咼位MOV TL0, #0B0H;:置50ms定时初值低位LP3:LCALL DISP;调用显示程序JNB P3.2, K1;判断启动键是否按下JNB P3.3, K2;判断停止键是否按下JNB P3.5, K3;判断清零键是否按下JNB TFO, LP3CLR TFODJNZ R
18、O, LP2MOV R0,#20INC R1CJNE R1,#60,LP1MOV R1, #0INC R2MOV A,R2CJNE A,#60,MOV R2, #0INC R3MOV A,R3CJNE A,#24,MOV R3, #0K1: LCALL DELAYLCALL DISPJB P3.2, LP3SETB TR0LJMP LP3K2: LCALL DELAYLCALL DISPJB P3.3, LP3CPL TR0LJMP LP3K3: LCALL DELAYLCALL DISPJB P3.5, LP3CLR TR0;判断中断标志位是否溢出;定时50到ms,则中断标志位清零;中断二十
19、次;重新装软件计数器初值;1 秒时间到,秒表数加一; 与60比较,小于60就跳转;若秒表数加到60秒,则清零;60秒时间到,分钟数加一;R2 地址里面的数赋给ALP1;与60比较,小于60就跳转;若秒表数加到60分钟,则清零;60 分钟时间到,小时数加一;R3地址里面的数赋给 ALP1;与24比较,小于24就跳转;若秒表数加到24小时,贝U清零;按下,调用显示子程序;消除抖动;判断启动键是否释放;启动T0;跳转到启动键是否按下的指令段,不断判断;按下,调用显示子程序; 消除抖动;判断暂停键是否释放; 取反TR0;跳转到暂停键是否按下的指令段,不断判断;按下,调用显示子程序;消除抖动;判断清零键是否释放;关闭T0MOV R1, #0;秒表时间清零MOV R2, #0;分钟时间清零MOV R4, #0;小时时间清零LJMP LP3;跳转到清零键是否按下的指令段,不断判断DISP:MOV A,R1 ;显示程序,先将秒表计时值给累加器作为被除数MOV B,#10;除数为10,存放在B累加器DIV AB;当前值除以10MOV 20H,A;得出的商送给十位MOV 21H,B;得出的余数送给个位MOV A,20H;十位显示MOVC A,A+DPTR;查表找个位数段码MOV P0,A;将个位段码送给P0 口SETB P2.4;用第一个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025双方协商离婚合同范本
- 肥料知识普及与教育考核试卷
- 道路货物运输保险与理赔考核试卷
- 运动防护用具的虚拟现实技术应用考核试卷
- 2024年碳纤维针刺预制件项目投资申请报告代可行性研究报告
- 消费者权益保护仲裁调解服务协议
- 新能源汽车充电桩安全认证与施工建设协议
- 民办高等教育机构师资派遣及教学辅助服务协议
- 美国职业篮球联赛合作伙伴合同
- 质押财产补充协议范本
- 办公楼室内装饰工程施工设计方案技术标范本
- 执业医师法培训课件
- 新时代新型职业农民素养课件讲解
- 2024年无锡市滨湖区名小六年级毕业考试语文模拟试卷
- 2024年咸阳市城市发展集团有限公司招聘笔试冲刺题(带答案解析)
- 2023年电力安全生产工作规程
- 小学新眼保健操比赛总结
- 公司SWOT分析表模板
- 学校青春期性教育系列- 《保护青春期安全》
- 新媒体视频节目制作 课件 学习领域1 新闻短视频制作
- 秦始皇帝陵的物探考古调查863计划秦始皇陵物探考古进展情况的报告
评论
0/150
提交评论