ImageVerifierCode 换一换
格式:DOCX , 页数:17 ,大小:794.37KB ,
资源ID:7915500      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/7915500.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机实验报告.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

单片机实验报告.docx

1、单片机实验报告 系别: 电力工程系 班别: 姓名: 学号: 指导老师: 2009年12月25日目 录1、实习目的.3二、实习内容.33、基本要求.34、强化要求.3五、实习器材.3六、设计方案.47、设计的程序.6八、实习小结.131、 实习目的 通过实习,使学生进一步弄懂所学到的课本知识,巩固和深化对单片机的结构、指令系统、中断系统、键盘/显示系统、接口技术、系统扩展、定时/控制、程序设计、应用开发、等基本理论知识的理解,提高单片机应用于技术的实践操作技能,掌握单片机应用系统设计、研制的方法,培养利用单片机进行科技革新、开发和创新的基本能力,为毕业后从事与单片机相关的工作打下一定的基础。二、

2、实习内容 利用软件MAVE2007在V51-S型实验板上设计键盘扫描+流水灯显示。三、基本要求 要求所设计的键盘扫描+流水灯显示具有如下功能 : 1、流水灯不停地工作。 2、按键从K0到KF显示对应的数字,同时流水灯速度越来越慢,并且交替显示学号。四、强化要求 在以上效果不变的同时加入按键控制流水灯方向的功能五、实习器材V51-S型实验板六、设计方案1、分析该程序可分为四个模块,分别是流水灯模块、显示模块、矩阵扫描显示模块、中断模块分别画出各模块的程序框图,如下所示:流水灯模块: 显示模块: 矩阵扫描模块: 中断模块: 2、方案 以流水灯模块为主程序,其他模块为子程序。本实习提供了一个44小键

3、盘,向P2口的低四位逐个输出高电平,如果有键按下,则相应输出高,如果没有键按下,则输出为低,通过输出的列码和读取的行码来判断按下什么键,在有键按下后要有一定的延时,防止抖动.七、程序设计;将4个7段数码显示器显示的内容放在4个显存中,4个显存空间定义如下LED0 EQU 30HLED1 EQU 31HLED2 EQU 32HLED3 EQU 33HDEL17 EQU 34HAK BIT 30HDEL EQU 35HORG 0000HLJMP MAINORG 0023H ;中断程序入口LJMP XQORG 0040HMAIN: MOV SP,#60HSTART: MOV P0,#00H ;使显示

4、器不显示 MOV P1,#00H MOV P3,#00H MOV LED0,#0 ;初始界面-0 MOV LED1,#16 MOV LED2,#16 MOV LED3,#16 MOV DEL17,#1 ;流水灯切换速度(值越大,速度越慢) MOV DEL,#10 ;显示管切换速度(值越大,速度越慢) MOV TMOD,#01H ;设T0为工作方式1 MOV TH0,#00H MOV TL0,#00H ;22.1184M晶振? SETB EA SETB ET0 SETB TR0 CLR AK MOV A,#01H; 主程序XM: MOV P1,A RL A ;流水灯方向由上至下 PUSH A M

5、OV R1,DEL17 ;用DEL17来控制流水灯速度D31: MOV R2,#10D21: MOV R3,#100D11: LCALL SKLOOP DJNZ R3,D11 DJNZ R2,D21 DJNZ R1,D31 POP A LJMP XM; 扫描键盘子程序 SKLOOP: MOV P0,#00H MOV P2,#11110111B ;P2.3口输出低电平,扫描K0,K1,K2,K3 LCALL DISLED3 SK0: JB P2.4,SK1 ;P2.4为高电平扫描K0 LCALL DELAY ;延时去除抖动 LCALL OPRK0 ;P2.4为低电平执行K0对应子程序 RET S

6、K1: JB P2.5,SK2 LCALL DELAY ;延时去除抖动 LCALL OPRK1 RET SK2: JB P2.6,SK3 LCALL DELAY ;延时去除抖动 LCALL OPRK2 RET SK3: JB P2.7,NP2 ;换一次输出位 LCALL DELAY ;延时去除抖动 LCALL OPRK3 RET NP2: MOV P0,#00H MOV P2,#11111011B ;P2.2口输出低电平,扫描K4,K5,K6,K7 LCALL DISLED2 SK4: JB P2.4,SK5 ;P2.4为高电平扫描K5 LCALL DELAY ;延时去除抖动 LCALL OP

7、RK4 ;P2.4为低电平执行K5对应子程序 RET SK5: JB P2.5,SK6 LCALL DELAY ;延时去除抖动 LCALL OPRK5 RET SK6: JB P2.6,SK7 LCALL DELAY ;延时去除抖动 LCALL OPRK6 RET SK7: JB P2.7,NP3 ;换一次输出位 LCALL DELAY ;延时去除抖动 LCALL OPRK7 RET NP3: MOV P0,#00H MOV P2,#11111101B ;P2.1口输出低电平,扫描K8,K9,KA,KB LCALL DISLED1 SK8: JB P2.4,SK9 ;P2.4为高电平扫描K8

8、LCALL DELAY ;延时去除抖动 LCALL OPRK8 ;P2.4为低电平执行K8对应子程序 RET SK9: JB P2.5,SKA LCALL DELAY ;延时去除抖动 LCALL OPRK9 RET SKA: JB P2.6,SKB LCALL DELAY ;延时去除抖动 LCALL OPRKA RET SKB: JB P2.7,NP4 ;换一次输出位 LCALL DELAY ;延时去除抖动 LCALL OPRKB RET NP4: MOV P0,#00H MOV P2,#11111110B ;P2.0口输出低电平,扫描KC,KD,KE,KF LCALL DISLED0 SKC

9、: JB P2.4,SKD ;P2.4为高电平扫描KC LCALL DELAY ;延时去除抖动 LCALL OPRKC ;P2.7为低电平执行KC对应子程序 RET SKD: JB P2.5,SKE LCALL DELAY ;延时去除抖动 LCALL OPRKD RET SKE: JB P2.6,SKF LCALL DELAY ;延时去除抖动 LCALL OPRKE RET SKF: JB P2.7,NP5 ;换一次输出位 LCALL DELAY ;延时去除抖动 LCALL OPRKF RET NP5: RET;按键值,改变显示数据和流水灯速度OPRK0: MOV LED0,#0 ;显示管切换

10、速度(值越大,速度越慢) MOV DEL17,#1 ;流水灯切换速度(值越大,速度越慢) RETOPRK1: MOV LED0,#1 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#1 ;流水灯切换速度(值越大,速度越慢) RETOPRK2: MOV LED0,#2 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#2 ;流水灯切换速度(值越大,速度越慢) RETOPRK3: MOV LED0,#3 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#3 ;流水灯切换速度(值越大,速度越慢) RETOPRK4: MOV LED0,#4 ;显示管切换速度(值越大,速

11、度越慢) MOV DEL17,#4 ;流水灯切换速度(值越大,速度越慢) RETOPRK5: MOV LED0,#5 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#5 ;流水灯切换速度(值越大,速度越慢) RETOPRK6: MOV LED0,#6 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#6 ;流水灯切换速度(值越大,速度越慢) RETOPRK7: MOV LED0,#7 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#7 ;流水灯切换速度(值越大,速度越慢) RETOPRK8: MOV LED0,#8 ;显示管切换速度(值越大,速度越慢) MOV

12、 DEL17,#8 ;流水灯切换速度(值越大,速度越慢) RETOPRK9: MOV LED0,#9 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#9 ;流水灯切换速度(值越大,速度越慢) RETOPRKA: MOV LED0,#10 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#10 ;流水灯切换速度(值越大,速度越慢) RETOPRKB: MOV LED0,#11 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#11 ;流水灯切换速度(值越大,速度越慢) RETOPRKC: MOV LED0,#12 ;显示管切换速度(值越大,速度越慢) MOV DE

13、L17,#12 ;流水灯切换速度(值越大,速度越慢) RETOPRKD: MOV LED0,#13 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#13 ;流水灯切换速度(值越大,速度越慢) RETOPRKE: MOV LED0,#14 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#14 ;流水灯切换速度(值越大,速度越慢) RETOPRKF: MOV LED0,#15 ;显示管切换速度(值越大,速度越慢) MOV DEL17,#15 ;流水灯切换速度(值越大,速度越慢) RET; 显示子程序DISLED0: MOV DPTR,#TAB MOV A,LED0 MOVC

14、 A,A+DPTR MOV P0,A NOP RETDISLED1: MOV DPTR,#TAB MOV A,LED1 MOVC A,A+DPTR MOV P0,A NOP RETDISLED2: MOV DPTR,#TAB MOV A,LED2 MOVC A,A+DPTR MOV P0,A NOP RETDISLED3: MOV DPTR,#TAB MOV A,LED3 MOVC A,A+DPTR MOV P0,A NOP RET;中断改变前三位显示子程序XQ: MOV TH0,#00H MOV TL0,#00H MOV R4,DEL DEC R4 MOV DEL,R4 CJNE R4,#0

15、,ENDRE MOV DEL,#10 JB AK,APP MOV LED3,#16 ;最高三位分别显示-42 MOV LED2,#4 MOV LED1,#2 CPL AK RETIAPP: MOV LED3,#3 ;最高三位分别显示38- MOV LED2,#8 MOV LED1,#16 CPL AKENDRE: RETI ; 廷时子程序DELAY: MOV R5,#1 ; D1: MOV R6,#200; D2: MOV R7,#200; DJNZ R7,$ ; DJNZ R6,D2 ; DJNZ R5,D1 ; RET ;段码表TAB: DB 3FH,06H,5BH,4FH,66H,6DH

16、,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,40H, ; 0 1 2 3 4 5 6 7 8 9 A B C D E F - ; 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 1680H,73H,00H . P 17 18 19END ;结束程序程序改进:增加按键改变流水灯方向的功能,要实现这个功能,我们利用进出栈来延时,程序如下:; 主程序LOOP2: POP ACCLOOP: MOV P1,A RL A PUSH ACC MOV R1,DEL17 ;用DEL17来控制流水灯速度D31: MOV R2,#10D21: MOV

17、 R3,#100D11: LCALL SKLOOP DJNZ R3,D11 DJNZ R2,D21 DJNZ R1,D31 ;将A寄存器中的数从P1端口输出 JNB P3.2,LOOP1 POP ACC ;将A寄存器中的数向左移动一位 SJMP LOOP ;跳转到LP标号循环LOOP1: POP ACCLOOP3: MOV P1,A RR A PUSH ACC MOV R1,DEL17 ;用DEL17来控制流水灯速度D61: MOV R2,#10D51: MOV R3,#100D41: LCALL SKLOOP DJNZ R3,D41 DJNZ R2,D51 DJNZ R1,D61 JNB P

18、3.3,LOOP2 POP ACC ;调用延时子程序A LJMP LOOP38、实习小结 单片机应用实习小结随着电子技术的发展,特别是随着大规模集成电路的产生,给人们的生活带来了根本性的变化,如果说微型计算机的出现使现代的科学研究得到了质的飞跃,那么可编程控制器的出现则是给现代工业控制测控领域带来了一次新的革命。在现代社会中,温度控制不仅应用在工厂生产方面,其作用也体现到了各个方面。本学期我们就学习了单片机这门课程,感觉是有点难呢。也不知道整个学习过程是怎么过来得,可是时间不等人。时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机实习课题也在一周内完成了。俗话说“好的开始是成功的一半”。说这

19、次实习,我认为最重要的就是做好程序调试,认真的研究老师给的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起产品就会事半功倍,如果没弄明白,就迷迷糊糊的去做,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。虽然这次的实习算起来在实验室的时间只有几天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。 硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,

20、由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。通过这次单片机实习,我不仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,而且我还学会了如何去培养我们的创新精神,从而不断地战胜自己,超越自己。创新可以是在原有的基础上进行改进,使之功能不断完善,成为真己的东西。

21、设计结果能够符合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。这个过程中,我们花费了大量的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。作为一名电子专业的学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践能力?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似实习就为我们提供了良好的实践平台。首先在做本次实习的过程中,我感触最深的当属查阅大量的设计资料了。为了让自己的设计更加完善,查阅这方面的设计资料是十分必

22、要的,同时也是必不可少的。我们是在做单片机实习,但我们不是艺术家,他们可以抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:汇编语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。最后,在实习之前,我们要对所用单片机的内部结构有一个系统的了解,知道该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改进是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应该让人一看就能明白你的思路,这样也为资料的保存和交流提供了方便;在实习过程中遇到问题是很正常的,但我们应该将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。但是从中学到的知识会让我受益终身。发现、提出、分析、解决问题和实践能力提高都会受益于我在以后的学习、工作和生活中。

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1