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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(广东机电师兄心血《计算机控制技术》课程设计报告A4版.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

广东机电师兄心血《计算机控制技术》课程设计报告A4版.docx

1、广东机电师兄心血计算机控制技术课程设计报告A4版广东机电职业技术学院计算机控制技术课程设计报告(2014-2015学年 第一学期) 专业: 电气自动化 班级: 电气0000班 _ 姓名: 学号: 指导教师: 老师 1、秒表设计1、秒表的硬件设计(电路图及说明)开发环境:Proteus Pro V7.5 SP3主芯片:AT89C51*1(CPU工作时钟晶振12MHz)六位七段共阴极数码管7SEG-MPX6-CC-BLUE*1八单线驱动器74LS240*1反相器74LS04*6秒表功能按钮:复位清零;启动/暂停;读取时间;读取模式秒表功能使用说明:清零状态下,按下“启动/暂停”按钮,秒表开始计时,

2、再按一次可暂停,显示屏记录当前秒数,再按一次可继续计时;清零状态下,按下“读数”按钮切换读数模式,接着按下“启动/暂停”按钮,单片机内部开始计时,再按下“读取”按钮,可在显示屏读取当前的秒数,依次类推,再按可连续读取;按下“复位清零”按钮恢复初始值、初始模式,等待重新计时。2、秒表的程序设计1. ORG 0000H2. LJMP START3. ORG 0003H ;外部中断0入口4. LJMP TO_INT05. ORG 000BH ;定时器0中断入口6. LJMP TO_T07. ORG 0013H ;外部中断1入口8. LJMP TO_INT19. ORG 0100H10. START:

3、CLR TR0 ;定时器0启动控制位11. MAIN:CLR 00H12. CLR 01H13. CLR 02H14. CLR RS1 ;初始化,选择第0组工作寄存器15. CLR RS016. MOV SP,#70H ;堆栈入口17. MOV 30H,#0 ;赋值,秒表初始时间18. MOV 31H,#019. MOV 32H,#020. MOV 33H,#021. MOV 34H,#022. MOV 35H,#023. MOV TMOD,#00010001B ;设置为16位定时器24. MOV TH0,#0D8H ;设初值,定时10MS(针对12MHz晶振)25. MOV TL0,#0F0

4、H26. SETB IT0 ;设置边沿触发27. SETB IT128. MOV IE,#10000111B ;设置允许外部中断0、1,定时器0中断请求, 开总中断29. MOVE_CLOCK:MOV R1,#40H30. MOV R2,#631. MOV R0,#30H32. LOOP:MOV A,R033. MOV DPTR,#TAB34. MOVC A,A+DPTR ;查段码,获取当前数值的共阴极码35. CPL A ;硬件有反相器,所以软件取反36. MOV R1,A37. INC R038. INC R139. DJNZ R2,LOOP40. SAOMIAO:MOV A,#00000

5、001B ;扫描,使数值显示在数码管上41. MOV R1,#40H42. MOV R2,#643. LOOP1:MOV P1,A44. MOV P0,R145. LCALL DELAY46. RL A47. INC R148. DJNZ R2,LOOP149. JNB P3.1,START ;清零功能,键按下时,返回初始化50. JNB P3.6,DUSHU ;检查是否启动读数模式51. JB 01H,RETURN52. JNB 00H,SAOMIAO53. CLR 00H54. LJMP MOVE_CLOCK55. DUSHU:SETB 01H ;读数模式标志位56. CLR RS1 ;读

6、数模式下选择第1组工作寄存器57. SETB RS058. RETURN:LJMP SAOMIAO59. TO_T0:CLR TR060. CLR RS1 ;读数模式启动后,内部计时依然使用第0组工作寄存器61. CLR RS062. MOV TH0,#0D8H ;设初值,定时10MS(针对12MHz晶振)63. MOV TL0,#0F0H64. SETB TR065. SETB 00H ;10MS时间到标志位66. INC 30H67. MOV R3,30H68. CJNE R3,#10,TIME_10MS ;进位比较69. MOV 30H,#070. INC 31H71. MOV R3,3

7、1H72. CJNE R3,#10,TIME_10MS73. MOV 31H,#074. INC 32H75. MOV R3,32H76. CJNE R3,#10,TIME_10MS77. MOV 32H,#078. INC 33H79. MOV R3,33H80. CJNE R3,#6,TIME_10MS81. MOV 33H,#082. INC 34H83. MOV R3,34H84. CJNE R3,#10,TIME_10MS85. MOV 34H,#086. INC 35H87. MOV R3,35H88. CJNE R3,#6,TIME_10MS89. MOV 35H,#090. T

8、IME_10MS:JNB 01H,Y0 ;检查是否进入读数模式91. SETB 02H ;标志位,去除不同模式下按钮的干扰92. SETB RS0 ;若是,中断结束前,返回第1组工作寄存器93. CLR RS194. Y0:RETI95. TO_INT0:CPL TR0 ;通过取反,实现启动/暂停96. RETI97. TO_INT1:JB 02H,Y198. LJMP Y299. Y1:JNB TR0,Y2100. CLR RS0 ;返回读取内部计时101. CLR RS1102. PUSH A ;保护现场103. MOV R1,#40H104. MOV R2,#6105. MOV R0,#

9、30H106. LOOP2:MOV A,R0107. MOV DPTR,#TAB108. MOVC A,A+DPTR ;查段码109. CPL A ;硬件有反相器,所以软件取反110. MOV R1,A111. INC R0112. INC R1113. DJNZ R2,LOOP2114. POP A ;恢复现场115. Y2:RETI116. DELAY:MOV R7,#100 ;延时子程序117. D2:MOV R6,#18118. D1:NOP119. NOP120. NOP121. DJNZ R6,D1122. DJNZ R7,D2123. RET124. TAB:DB 3FH,06H

10、,5BH,4FH,66H ;段码表125. DB 6DH,7DH,07H,7FH,6FH126. RET127. END3、秒表工作原理及技术分析关于秒表:硬件上,该电路外部P3.1增设一“复位清零”按钮,外部中断增设一“启动/暂停”按钮,增设一“读取”按钮,P3.6增设一“读数模式”切换按钮。软件上,清零功能:通过将检测P3.1口是否动作的程序嵌入数码管扫描程序中,当检测到P3.1有动作时,跳转到程序START开始阶段,恢复初始值、初始模式;启动/暂停:通过外部中断0随时等待请求中断,初始定时器启动控制位TR0为0,当中断请求时,将定时器启动控制位置1,开始计时;再按一次,即将TR0取反置0

11、,停止计时,可反复操作;关于秒表计时,采用定时器0溢出中断,通过设置好计时溢出时间实现加10ms以及通过比较指令、标志位实现进位;读数模式:通过启用第1组工作寄存器,第0组工作寄存器仍用于内部定时器计时,从而使当前计数不显示在数码管上,再利用外部中断1,当“读取时间”按钮申请中断时,扫描30H-35H当前值,利用第0组工作寄存器中将当前值重新查询段码送至40H-45H,返回后即可显示所读取的秒数。二、教学实例功能拓展1、密码锁教学实例说明在相关硬件基础下,通过检测P0八个口是否有键按下,与对应密码组合进行比较,正确则驱动P3.7相应电路使其灯亮,错误则对P1口赋值,使其报警灯亮起。2、拟拓展功

12、能描述为更加贴近生活中电子密码锁的应用,拟拓展以下功能: 在原有教学实例上,将3个实例功能整合;即:按1亮1盏灯,按2亮2盏灯,按8亮8盏灯 可以再次输入密码 报警灯闪烁 密码只有三次的输入错误机会,三次一到,冻结按键; 增设一“解除冻结”按钮,以模拟等待主人开锁。3、硬件及软件修改方法关于密码锁:硬件上,该外部电路P3.0增设一“解除冻结”按钮,增添一7SEG-BCD数码管。软件上,对应拟拓展功能:将输入密码传送至ACC累加器再与报警灯亮灯方案进行比较;在密码比较环节入口新增计数环节,每输错密码进入报警灯比较环节自动“减1”,剩余输入次数通过对应BCD码传送到P2口,使其数码管显示,当输入三

13、次连续错误时,通过JB P3.0,$死循环使其等待解锁指令;通过P3.0口解除,正常工作下,按下P3.0也可复位。1. ORG 0000H2. LJMP START3. ORG 0100H4. START:CLR P3.7 ;初始化,上锁5. MOV P2,#00000011B ;设置输入次数6. MOV P1,#0FFH ;初始化,灭灯7. MOV R4,#08. MOV R5,#09. CLR 00H10. CLR 01H11. KEY:MOV A,P012. CJNE A,#0FFH, KEYDOWN13. JNB P3.0,START14. JNB 00H,KEY ;无键按下,返回重新

14、检测15. JB 01H,Y116. Y2:LCALL DELAY ;延时显示17. MOV P1,#0FFH18. LCALL DELAY19. LCALL DELAY20. MOV P1,R021. INC R422. CJNE R4,#250,KEY ;扫描新输入23. MOV R4,#024. LJMP KEY25. Y1:INC R526. CJNE R5,#03H,Y3 ;三次输入次数到27. MOV P2,#00H28. JB P3.0,$ ;冻结按键,等待P3.0口解除29. LJMP START30. Y3:DEC P2.0 ;输入错误,次数减131. CLR 01H32.

15、LJMP Y233. KEYDOWN:LCALL DELAY ;延时去抖动34. MOV A,P035. CJNE A,#0FFH,KEY136. LJMP KEY ;无键按下,返回重新检测37. KEY1:CJNE A,#11111011B,KEY2 ;与正确密码比较38. SETB P3.7 ;密码正确,开锁39. MOV P2,#00000011B40. MOV P1,#11111111B41. MOV R5,#042. CLR 00H43. LJMP COMOUT44. KEY2:SETB 01H ;记录输入次数标志位45. CJNE A,#11111110B,L1 ;以下为比较环节,

16、找出所输错误密码 46. MOV R0,#11111110B ;对应的亮灯47. L1:CJNE A,#11111101B,L248. MOV R0,#11111100B49. L2:CJNE A,#11111011B,L350. MOV R0,#11111000B51. L3:CJNE A,#11110111B,L452. MOV R0,#11110000B53. L4:CJNE A,#11101111B,L554. MOV R0,#11100000B55. L5:CJNE A,#11011111B,L656. MOV R0,#11000000B57. L6:CJNE A,#10111111

17、B,L758. MOV R0,#10000000B59. L7:CJNE A,#01111111B,NEXT60. MOV R0,#00000000B61. NEXT:MOV P1,R062. CLR P3.763. SETB 00H ;等待新密码密码标志位64. COMOUT:LJMP KEY65. DELAY:MOV R6,#64H ;延时子程序66. LOOP1:MOV R7,#0F8H67. NOP68. LOOP2:DJNZ R7,LOOP269. DJNZ R6,LOOP170. RET71. END4、调试过程及结果调试过程中在显示延时上做了颇多调整,初步解决了按键失灵的故障,再

18、经过调整标志位的合适位置,最终能到达自己拟拓展的相关功能。3、课程学习总结不知不觉,我学了单片机将近一个学期,感觉收益匪浅。我现在对单片机的理解,要说一句最大的感受,那就是“单片机是一种集成度很高的微型计算机 ”。就这学期所学的AT89C51芯片,它包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线这样一个完善的硬件设备;而对于单片机的程序控制,机器码、汇编语言,从我理解的角度,程序的本质是寄存器之间的数据传递。程序是由两部分组成的:首先是寄存器之间的数据传递,剩下的就是逻辑控制。而在这一学期

19、,通过经典流水灯,密码锁,数码管等不同控制要求的实例学习,从老师的一次又一次地耐心教导中逐渐领悟了逻辑程序的魅力。要想开发自己的逻辑思维,就要多看别人的程序,找出别人程序中的“闪光点”,并且在自己以后的编程中加以运用。而不是照着老师已编好的程序思路被“引”进去,这才是进步之道。课程建议:至于课程建议的话,个人倒是真的没有什么可采取性的建议。叶老师讲得很好,思路清晰明朗。学习关键还是学生本身,逻辑思维不多练,肯定写不成完整的程序;课本我觉得也很重要,书里详细的硬件、功能介绍看多了,自己编程时才会有更好的运用。我们是大专生,电气自动化以贴近企业生产、工控学习为主。就现在单片机在大量生产开发中的应用,课程若是能以C语言、汇编语言互辅教学那就更好啦但又涉及大一学习C语言程序基础,所以没有什么采取性。

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

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