




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理课程设计说明书 目录一、课程设计目的.1二、仪器设备.1三、设计内容.1四、参考实验.11.实现功能 . 12.实验接线 . 13.程序清单 . 1五、系统硬件设计思想.121、 课程设计任务 . 122、 设计思路 . 123、 硬件原理图 . 134、 硬件连线 . 136、 单片机应用程序.13七、系统总调试.161、 软件编辑 .162、 调试仿真 .17八、存在的问题和改进设想.171. 存在的问题 .172. 改进设想 .173. 设计总结与心得 .17九、参考文献 . 181、 课程设计目的1、 培养学生正确的设计思想、严谨的工作作风及处理工程技术问题的独立工作的能力;
2、2、 通过查阅资料,熟悉使用常用的与单片机有关的芯片; 3、 学习写技术文件的方法。2、 仪器设备 DICE-5210K单片机实验开发系统3、 设计内容 利用DICE-5210K、AEDK实验开发系统及AEDK-DJ6机电实验平台等,完成步进电机/直流电机控制实验(启动/停止、快慢控制、正/反控制等),然后根据各小组的不同控制任务进行软硬件设计与调试。4、 参考实验1、 实现功能 从键盘上输入数字使显示器显示,第一位为0(正转),为1(反转),第二位0F显示转速,第三六位为设定步数。按下FO/EX键后,步进电机开始转动,步数逐渐减小到零,步进电机同时停止转动2、 实验接线 用双头线将P1.0P
3、1.3接至HAHD3、 程序清单ORG 0000HLJMP STORG 0080HST:MOV P2,#0FFHMOV 7EH,#11HMOV 7DH,#10HMOV 7CH,#10HMOV 7BH,#10HMOV 7AH,#10HMOV 79H,#10H ;显示缓冲区赋初值MOV A,#43HMOV DPTR,#0FF20HMOVX DPTR,A ;8155初始化,8155用于控制数码管和键盘 ;MOV R0,#59H MOV A,#7EH ;MOVX R0,A MOV DPTR,#2059HMOVX DPTR,ADOJ0:MOV SP,#53HDOJ6:LCALL X2 ;调键扫显示子程序
4、JNC DOJ5 ;功能键转LCALL X3 ;调数字键处理子程序MOV R1,#7EHSJMP DOJ6DOJ5:CJNE A,#16H,DOJ6 ;判断执行键是否按下MOV A,7AHSWAP AORL A,79HMOV R6,A ;低字节步距送R6MOV A,7CHSWAP AORL A,7BHMOV R7,A ;高字节步距送R7MOV A,7EHCJNE A,#00H,DOJ2 ;判断转动方向DOJ1:MOV P1,#03H ;顺时针转动子程序LCALL DEL0YLCALL GGJ0MOV P1,#06HLCALL DEL0YLCALL GGJ0MOV P1,#0CHLCALL DE
5、L0YLCALL GGJ0MOV P1,#09HLCALL DEL0YLCALL GGJ0SJMP DOJ1DOJ2:MOV P1,#09H ;逆时针转动子程序LCALL DEL0YLCALL GGJ0MOV P1,#0CHLCALL DEL0YLCALL GGJ0MOV P1,#06HLCALL DEL0YLCALL GGJ0MOV P1,#03HLCALL DEL0YLCALL GGJ0SJMP DOJ2 ;延时子程序DEL0Y: MOV A,7DH ;根据(7D)内容改变延时时间 SWAP A MOV R2,A MOV R5,#80HDEL1Y: DJNZ R5,DEL1Y LCALL
6、SSEE DJNZ R2,DEL1Y RETGGJ0:CJNE R7,#00H,GGJ1 ;步距数为0停止CJNE R6,#00H,GGJ1 ;不为0,减1后显示AJMP DOJ4GGJ1:DJNZ R6,DOJ3CJNE R7,#00H,DDJ8DOJ4:LCALL DOJ7SJMP DOJ4DDJ8:DJNZ R7,DOJ3AJMP DOJ4DOJ3:LCALL DOJ7RETDOJ7:MOV R0,#79HMOV A,R6LCALL PTDS5MOV A,R7LCALL PTDS5LCALL SSEE ;调用显示子程序RETPTDS5: MOV R1,A ;拆送数据子程序ACALL PT
7、DS6MOV A,R1SWAP APTDS6: ANL A,#0FHMOV R0,AINC R0RETX3:MOV R4,A ;数字键处理子程序;MOV R0,#59H;MOVX A,R0MOV DPTR,#2059HMOVX A,DPTRMOV R1,AMOV A,R4MOV R1,ACLR APOP DPHPOP DPLMOVC A,A+DPTRINC DPTRCJNE A,01H,X30CLR AMOVC A,A+DPTRX31:;MOVX R0,AINC DPTRPUSH DPLPUSH DPHMOV DPTR,#2059HMOVX DPTR,ARETX30:DEC R1MOV A,R
8、1SJMP X31X2:MOV R6,#50HX0:ACALL XLEJNB ACC.5,XX0DJNZ R6,X0MOV R6,#20H;MOV R0,#59H;MOVX A,R0MOV DPTR,#2059HMOVX A,DPTRMOV R0,AMOV A,R0MOV R7,AMOV A,#10HMOV R0,AX1:ACALL XLEJNB ACC.5,XX1DJNZ R6,X1MOV A,R7MOV R0,ASJMP X2XX1:MOV R6,AMOV A,R7MOV R0,AMOV A,R6XX0:RETXLE:ACALL DISACALL KEYMOV R4,A;MOV R1,#4
9、8H;MOVX A,R1MOV DPTR,#2048HMOVX A,DPTRMOV R2,A;INC R1;MOVX A,R1MOV DPTR,#2049HMOVX A,DPTRMOV R3,AMOV A,R4XRL A,R3MOV R3,04HMOV R4,02HJZ X10MOV R2,#88HMOV R4,#88HX10:DEC R4MOV A,R4XRL A,#82HJZ X11MOV A,R4XRL A,#0EHJZ X11MOV A,R4ORL A,R4JZ X12MOV R4,#20HDEC R2SJMP X13X12:MOV R4,#0FHx11:MOV R2,04HMOV R
10、4,03HX13:;MOV R1,#48HMOV A,R2;MOVX R1,AMOV DPTR,#2048H MOVX DPTR,A;INC R1MOV A,R3;MOVX R1,AMOV DPTR,#2049HMOVX DPTR,AMOV A,R4RETLS3:DB 07H,04H,08H,05H,09H,06H,0AHDB 0BH,01H,00H,02H,0FH,03H,0EHDB 0CH,0DHDIS:PUSH DPHPUSH DPLSETB RS1MOV R0,#7EHMOV R2,#20HMOV R3,#00H;MOV DPTR,#LS0LS2:MOV DPTR,#LS0 MOV A
11、,R0MOVC A,A+DPTR;MOV R1,#22H;MOVX R1,AMOV DPTR,#0FF22HMOVX DPTR,AMOV A,R2CPL A;DEC R1;MOVX R1,AMOV DPTR,#0FF21HMOVX DPTR,ACPL ADEC R0LS1:DJNZ R3,LS1CLR CRRC AMOV R2,AJNZ LS2;INC R1MOV A,#0FFH;MOVX R1,AMOV DPTR,#0FF22HMOVX DPTR,ACLR RS1POP DPLPOP DPHRETLS0:DB 0C0H,0F9H,0A4H,0B0H,99H,92HDB 82H,0F8H,80
12、H,90H,88H,83H,0C6HDB 0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFHKEY:SETB RS1MOV R2,#0FEHMOV R3,#08HMOV R0,#00HLP1:MOV A,R2;MOV R1,#21H ;MOVX R1,AMOV DPTR,#0FF21HMOVX DPTR,ARL AMOV R2,A;MOV R1,#23H;MOVX A,R1MOV DPTR,#0FF23H MOVX A,DPTRCPL AANL A,#0FHJNZ LP0INC R0DJNZ R3,LP1;MOVX A,R1MOV DPTR,#0FF23H MOVX A,DP
13、TRJB ACC.4,XP33MOV A,#19HSJMP XP3XP33:MOV A,#20HXP3:CLR RS1RETLP0:CPL AJB ACC.0,XP0MOV A,#00HSJMP LPPXP0:JB ACC.1,XP1MOV A,#08HSJMP LPPXP1:JB ACC.2,XP2MOV A,#10HSJMP LPPXP2:JB ACC.3,XP33MOV A,#18HLPP:ADD A,R0CLR RS1CJNE A,#10H,LX0LX0:JNC XP35MOV DPTR,#LS3MOVC A,A+DPTRXP35:RET ;显示子程序SSEE:SETB RS1 ;换工
14、作区MOV R5,#05HSSE2:MOV 30H,#20HMOV 31H,#7EHMOV R7,#06HSSE1:;MOV R1,#21H ;字位MOV A,30HCPL A;MOVX R1,AMOV DPTR,#0FF21HMOVX DPTR,AMOV R0,31HMOV A,R0MOV DPTR,#DDFFMOVC A,A+DPTR ;取字形代码;MOV R1,#22H;MOVX R1,A ;字形送入MOV DPTR,#0FF22HMOVX DPTR,AMOV A,30HRR A ;右移MOV 30H,ADEC 31HMOV A,#0FFH;MOVX R1,A ;关显示MOV DPTR,
15、#0FF22HMOVX DPTR,ADJNZ R7,SSE1 ;六位显示完了吗?DJNZ R5,SSE2 ;5次显示完了吗?CLR RS1RETDDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEHEND5、 系统硬件设计思想1、课程设计任务:利用DICE-5210K实验开发系统,编写步进电机控制软件实现:快速正转,设定步局距为80H,第5、6位从80H逐渐减小到0,转入快速反转,设定步局距为80H,第5、6位从80H逐渐减小到0,再转入快速正转,如此
16、循环两次停止。2、设计思路:数码管显示各位内容为显示位置123456显示内容0为正转1为反转0为快速1为慢速设定步距设定步距逐步减小所以为完成任务所要实现的内容:(1) 数码管第1位显示0,然后转为1,再转为0,再转为1,这就完成正反转的两次循环。由检查P1.4是否为低电平来判断正反转,是则执行正转子程序,否则执行反转子程序。(2) 步进电机一直是快速转动,第2位显示0一直不变。利用延时子程序来设定它的快速慢速转,根据延时的长短来区别快速和慢速。(3) 步局距一直是80H,设定它为80H不变。(4) 不管正转还是反转都是从80H逐渐减小到0。判断步局数是否为0,是0则转向下一个旋转循环,不为0
17、则减1后显示在数码管上。(5) 循环两次,利用累加器,因为程序中A使用过了,只能用一个单元来赋值为00H,每执行完一次反转且步局数减小到0为循环一次,计数加1,将计数次数与02H对比,等于02H则停止,不等于则继续转动。3、硬件原理图:见A3图纸4、硬件连线(1) 确认KB1开关打在“一般模式”,KB2短路块插在MCS-51(1、2)位置上,SW1短路块插在“UP”位置。SW3、SW4、SW5打在“ON”的位置。(2) 在确认断电的情况下,取下DICE-5210K实验仪右上角锁紧插座上的AT89S52单片机芯片。(3) 将40芯白色的扁平线上的IDC40插头与DICE-KEIL USB仿真器的
18、IDC40插座插好,然后用随机配送的USB线将仿真器与PC机连接。(4) 将40芯白色的扁平线另一头的40芯仿真头插在DICE-5210K实验仪右上角绿色锁紧插座上。(5) 用双头线将P1.0P1.3接至HAHD。6、 单片机应用程序ORG 0000HLJMP STORG 0080H MOV 99H,#00HST:MOV P2,#0FFHMOV 7EH,#00HMOV 7DH,#01HMOV 7CH,#10HMOV 7BH,#10HMOV 7AH,#10HMOV 79H,#10H MOV 78H,#08H ;显示缓冲区赋初值MOV A,#43HMOV DPTR,#0FF20HMOVX DPTR
19、,A ;8155初始化,8155用于控制数码管和键盘 ;MOV R0,#59H MOV A,#7EH ;MOVX R0,A MOV DPTR,#2059HMOVX DPTR,ADOJ0:MOV SP,#53HDOJ5:MOV R6,#80H MOV R7,#80HSHIT: MOV 78H,#20H MOV 7DH,#01H MOV 7EH,#00H MOV R3,#01HDOJ1:MOV P1,#03H ;顺时针转动子程序LCALL DEL0YLCALL GGJ0MOV P1,#06HLCALL DEL0YLCALL GGJ0MOV P1,#0CHLCALL DEL0YLCALL GGJ0M
20、OV P1,#09HLCALL DEL0YLCALL GGJ0SJMP DOJ1SHIT2: MOV 78H,#20H MOV 7DH,#01H MOV 7EH,#01H MOV R3,#00H DOJ2:MOV P1,#09H ;逆时针转动子程序LCALL DEL0YLCALL GGJ0MOV P1,#0CHLCALL DEL0YLCALL GGJ0MOV P1,#06HLCALL DEL0YLCALL GGJ0MOV P1,#03HLCALL DEL0YLCALL GGJ0SJMP DOJ2INC 99HCJNZ 99H ,#02H,LOOP1LOOP1: SJMP $ ;延时子程序DEL
21、0Y: MOV A,7DH ;根据(7D)内容改变延时时间 SWAP A MOV R2,A MOV R5,#80HDEL1Y: DJNZ R5,DEL1Y LCALL SSEE DJNZ R2,DEL1Y RETGGJ0:CJNE R7,#00H,GGJ1 ;步距数为0停止CJNE R6,#00H,GGJ1 ;不为0,减1后显示AJMP DOJ4GGJ1:DJNZ R6,DOJ3DOJ4:LCALL DOJ7 MOV R6,#80H CJNE R3,#00H,SHIT2LJMP SHITDOJ3:LCALL DOJ7RETDOJ7:MOV R0,#79HMOV A,R6LCALL PTDS5M
22、OV A,R7LCALL PTDS5LCALL SSEE ;调用显示子程序RETPTDS5: MOV R1,A ;拆送数据子程序ACALL PTDS6MOV A,R1SWAP APTDS6: ANL A,#0FHMOV R0,AINC R0RETSSEE:SETB RS1 ;换工作区MOV R5,#05HSSE2:MOV 30H,#20HMOV 31H,#7EHMOV R7,#06HSSE1:;MOV R1,#21H ;字位MOV A,30HCPL A;MOVX R1,AMOV DPTR,#0FF21HMOVX DPTR,AMOV R0,31HMOV A,R0MOV DPTR,#DDFFMOV
23、C A,A+DPTR ;取字形代码;MOV R1,#22H;MOVX R1,A ;字形送入MOV DPTR,#0FF22HMOVX DPTR,AMOV A,30HRR A ;右移MOV 30H,ADEC 31HMOV A,#0FFH;MOVX R1,A ;关显示MOV DPTR,#0FF22HMOVX DPTR,A DJNZ R7,SSE1 ;六位显示完了吗?DJNZ R5,SSE2 ;5次显示完了吗?CLR RS1RETDDFF: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90HDB 88H,83H,0C6H,0A1H,86H,8EH,0FFH,
24、0CH,89H,0DEHEND7、 系统总调试1、软件编辑(1)打开Keilc软件后,建立“project”;(2)建立汇编源程序保存为“.ASM”文件;(3)然后添加文件到源程序组并对软件项目进行设置;(4)按“F7”进行编译生成了“.hex”文件,若出现错误或者警告会有提示,根据提示修改;(5)按“debug”进行仿真,此时先用原程序进行仿真的,按下“go”之后需要按键盘进行设置,如果按下011000,则进行快速正转,待后四位为0后停止转动。2、调试仿真改好的程序经过仿真出现的情况:数码显示管上出现0180xx,后两位在变化中到0后显示1180xx,循环下去。8、 存在的问题和改进设想1、存在的问题 设计过程中对循环过程的控制没有想到很好的循环的方法,未能实现2次循环后停止,需要进一步地学习对程序进行改进实现任意循环次数控制。且2、改进设想用循环子程序直接对次数进行限制,通过从键盘输入循环控制的次数,对步进电机进行次数控制。3、设计总结与心得通过这次一周的单片机课程设计的实践,我收获很大,因为在团队合作中我们,需要共同探讨,集思广益,需要团结协作,还需要之前就分配好任务。 步进电机控制系统课程设计是对我们的一次较全面的设计训练,其目的就是培养我们理论联系实际的设计思想,训练综合运用所学的基础理论知识分析和解决实际应用问题的能力,从而使课堂的理论知
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆矿石运输合同
- 新材料生产绿色环保技术应用推广合作协议
- Module 3 Journey to space Unit 1 (教学设计)-2023-2024学年外研版英语八年级下册
- 月子中心房屋振动限制协议
- 13我能行 教学设计 -2023-2024学年道德与法治二年级下册(统编版)
- 家具厂白蚁防治施工方案
- 23《纸船和风筝》第二课时 教学设计-2024-2025学年语文二年级上册统编版
- 活动一《揭穿骗术》(教学设计)-2023-2024学年五年级下册综合实践活动沪科黔科版
- 第10课 夺取抗日战争和人民解放战争的胜利 第2课时 教学设计-2023-2024学年道德与法治五年级下册统编版
- 第五单元第13课《广东名山秀水》(教学设计)-2023-2024学年六年级下册综合实践活动广州版
- 高压氧科工作总结高压氧科个人年终总结.doc
- 电子电路基础习题解答
- 《政治学概论》教学大纲
- 食品生物化学习题谢达平(动态)
- 保安员工入职登记表
- 断路器控制回路超详细讲解
- 签证户口本完整翻译模板
- 睿达RDCAM激光雕刻切割软件V5.0操作说明书
- 变电设备运行与维护培训课件(共102页).ppt
- 机械设计基础平面连杆机构课件
- 寒假学习计划表-
评论
0/150
提交评论