单片机原理及应用课程设计说明书设计并实现红外遥控步进电机

上传人:沈*** 文档编号:62290497 上传时间:2022-03-14 格式:DOC 页数:33 大小:326KB
收藏 版权申诉 举报 下载
单片机原理及应用课程设计说明书设计并实现红外遥控步进电机_第1页
第1页 / 共33页
单片机原理及应用课程设计说明书设计并实现红外遥控步进电机_第2页
第2页 / 共33页
单片机原理及应用课程设计说明书设计并实现红外遥控步进电机_第3页
第3页 / 共33页
资源描述:

《单片机原理及应用课程设计说明书设计并实现红外遥控步进电机》由会员分享,可在线阅读,更多相关《单片机原理及应用课程设计说明书设计并实现红外遥控步进电机(33页珍藏版)》请在装配图网上搜索。

1、 课程设计任务书学生姓名: 专业班级: 电信0804 指导教师: 工作单位: 题 目: 设计并实现红外遥控步进电机初始条件:1. Protues软件;2. 课程设计辅导资料:“占空比可调的信号发生器设计与应用”、“电路设计技术与应用”等;3. 先修课程:模拟电子技术、数字电子技术、Protues电路设计教程及单片机原理及应用等课程要求完成的主要任务:(包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1. 课程设计时间:1周;课程设计内容:利用红外遥控器控制步进电机的动作,动作要有正、反方向转动;单步;连续;快慢等动作。2. 本课程设计统一技术要求:研读辅导资料对应章节,对选定的设计题

2、目进行理论分析,针对具体设计部分的原理分析、建模、必要的推导和可行性分析,画出程序设计框图,编写程序代码(含注释),上机调试运行程序,记录实验结果(含计算结果和图表),并对实验结果进行分析和总结;3. 课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,具体包括: 目录; 设计原理和方法; 系统硬件线路设计图; 程序框图; 资源分配表; 源程序 性能分析 课程设计的心得体会(至少500字); 参考文献;时间安排:指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录1总体设计原理.22系统硬件及主要模块设计.3 2.1红外遥控模块.3 2.1.1红外遥控编解码原理.

3、3 2.2 步进脉冲模块.6 2.2.1步进电机的工作原理与控制.6 2.2.2步进机的驱动电路.8 2.3 主要接口电路.9 2.3.1步进机的驱动电路与8051的接口电路.9 2.3.3 模拟按键与8051的接口电路.10 .2.4资源分配表和总图.113源程序设计.13 3.1实物源程序.13 3.2 仿真源程序.194 仿真结果与分析.235 心得体会.286 参考文献.297 本科生课程设计成绩评定表.301 总体设计原理 利用红外遥控器控制步进电机其实和用键盘控制步进电机原理类似,只不过按键是用导线传递键是否按下的信号,而红外则是利用LED发射红外线传递按键信息。由于红外采用脉宽调

4、制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”,在解码时通过判断高低电平持续时间的长短来识别发送的键值。控制步进电机正、反方向转动、单步、连续、快慢等动作,原理其实并不困难。步进电机将电脉冲信号转换成角位移,即给一个脉冲,步进电机就转动一个角度,转动的角度大小与施加的脉冲数成正比,因此,单步和连续的动作区别只是单片机给步进电机脉冲个数不同而已。每按一次单步键就是给电机一个脉冲,而连续则是不断的给电机脉冲,达到连续运转的目的。单片机的晶振为12MHz,单

5、周期指令执行时间为1MHz,由于机械动作需要一定时间来完成,如果以这么快的速度来给脉冲,电机是不会转动的,因此,在两个脉冲之间必须要有一定时间差,电机才有时间来执行动作。电机转动的速度与脉冲频率成正比,控制脉冲间隔时间就相当于控制了步进电机的转动角频率即快慢。步进电机的转动需要向电机以一定的顺序分配驱动脉冲。如四相单四拍,其脉冲分配的方式和顺序为A-B-C-D-A,如此周而复始,即可转动。转动方向与脉冲顺序有关,如果给相反脉冲,那么电机就会反转。 根据该系统设计要求,需要通过红外遥控器按下按键和显示器来改变步进电机的运动状态以及显示,只需要红外遥控器中6个按键就可满足需求,外加8位LED数码显

6、示管即可。由于实验箱上只有8个连体数码管,因此需要动态扫描。通过从键盘上输入正、反转命令,按键数值显示在数码管上,CPU再读取正、反转命令,加减速后执行。经键盘可完成启动、停止、正转、反转、速度设置控制功能。 按下红外遥控器上的相关按钮电机执行相关动作,同时数码管上显示按键的数值,系统大部分都是软件实现的,整个设计框图如下:LED显示单片机步进电机红外遥控按键红外接收图1 总体设计框图2主要模块设计2.1红外遥控模块本模块应完成对红外遥控器有无键按下进行确认,当有键按下时,确定按键值,并根据所得键值进行处理(包括所按键是不是停止键还是执行键。如是停止键,不断扫描键盘程序,等待执行键按下;如是执

7、行键就启动产生步进电机控制信号程序)。显示模块主要是完成在进行键盘按下时,显示输入的数据值(转矩数、转动方向、转动速率及运行方式)。2.1.1红外遥控编码原理: 通用型红外遥控系统由红外发射和红外接收两大部分组成。现在常应用编/解码专用集成电路芯片来进行控制操作,如图2所示。发射部分包括键盘、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路等。图2 红外线遥控系统框图红外遥控器所产生的脉冲编码的格式一般为:引导码(头)地址码(用户码)数据码数据的反码。其引导码为宽度是10 ms左右的一个高脉冲和一个低脉冲的组合,用来标识指令码的开始。地址码、数据码、数据码的反码均为数据

8、编码脉冲,用二进制数表示。“0”和“1”均由ms量级的高低脉冲的组合代表。地址码(即用户码)是对每个遥控系统的标识。通过对地址码的检验,每个遥控器就只能控制一个设备动作,有效地防止了多个设备之间的串扰。当指令键按下时,指令信号产生电路便产生脉冲编码。数据码后面一般还要有数据码的反码,用来检验数据码接收的正确性,以防止误动作,增强系统的可靠性。这些指令信号由调制电路调制成3240 kHz的信号,经调制后输出,最后由驱动电路驱动红外发射器件(LED)发出红外遥控信号。红外遥控发射接收器及其编解码遥控发射器的专用芯片很多,根据编码格式可以分成两大类,即频分制与码分制。频分制是按照载频的不同来进行频道

9、划分的,即它用不同的频率信号来表示不同的控制信号;码分制是用不同的脉冲数目或者宽度不同的脉冲组合来代表不同的控制指令的。这里我们以运用比较广泛,解码比较容易的码分制来加以说明。现以日本NEC的PD6121G组成发射电路为例说明编码原理。当发射器按键按下后,即有遥控码发出,所按的键不同则遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,其波形如图2所示。 解码的关键是如何识别“0”和“1”,从位的定义我们可以发

10、现“0”、“1”均以0.56ms的低电平开始,不同的是高电平的宽度不同,“0”为0.56ms,“1”为1.68ms,所以必须根据高电平的宽度区别“0”和“1”。如果从0.56ms低电平过后,开始延时,0.56ms以后,若读到的电平为低,说明该位为“0”,反之则为“1”,为了可靠起见,延时必须比0.56ms长些,但又不能超过1.12ms,否则如果该位为“0”,读到的已是下一位的高电平,因此取(1.12ms+0.56ms)/2=0.84ms最为可靠,一般取0.84ms左右均可。但根据码的格式,应该等待9ms的起始码和4.5ms的结果码完成后才能读码。 红外线解码框图如下:图4 解码框图 本次设计我

11、借用了实验室的试验箱,试验箱配备了标准的HT6121编码红外遥控器,这也就是红外发射部分,红外接收部分在试验箱上面。这样就省略了对红外发射部分的电路设计。2.2步进脉冲模块:2.2.1步进电机工作原理与控制: 步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)

12、的特点,广泛应用于各种开环控制。 在图1的a图中B相被励磁,转子与B相对准。在这个位置上,再对A相进行励磁,则转子在磁场作用下顺时针转过15,如图1的b图所示,这样步进电机就转过了一个步距角。继续对C相进行励磁,转子在磁场的作用下进一步顺时针转过15,到达c图所示的位置,又转过了一个步距角。再对D相进行励磁,又产生了一个新的磁场,在磁力的作用下转子又转过一个步距角15。这样步进电机的四相完成一个通电循环,若要继续转动,就继续顺次励磁,即步进电机按照ABCDA顺序顺次励磁,那么电机就不停地转动。一般对步进电机采用半步驱动,即四相八拍工作方式,使步进电机每次励磁转过1/2的步距角,即每次改变励磁方

13、式步进电机转过7.5,它的励磁方式是AABBBCCCDDDAA,若要反转也是只需改变励磁方式即可,即按照AADDDCCCBBBAA,采用八拍工作方式使得电机的转动更加稳定,也进一步增强了步进电机的控制精度。 实验箱中使用的是四相步进电动机,步进电机的控制有三个问题需要解决,下面分别阐述:(1) 控制其转动按照一定的顺序向步进电动机的各相分配驱动脉冲。就四相步进电机而言,如果采用但四拍方式,其脉冲分配的方式和顺序是A-B-C-D-A,如果采用单双八拍的方式,其脉冲分配的方式和顺序为:A-AB-B-BC-C-CD-D-DA-A.四相步进电动机的励磁工作方式如下表所示:编码结果(十六进制)ABCD0

14、701110300110B10110910010D11010C11000E1110060110表1 四相步进电动机励磁工作方式示例(2)控制其转动方向 控制其转动方向,其实只需考虑在脉冲分配的过程中注意一定得顺序即可解决。就四相步进电机而言,如果采用单四拍方式,其脉冲分配的方式和顺序是A-B-C-D-A,为正转;则其反转的脉冲分配方式和顺序是D-C-B-A-D。如果采用单双八拍方式,其反转的脉冲分配方式和顺序是D-DC-C-CB-B-BA-A-AD-D。(3)控制其转动速度 在脉冲分配的过程中,控制在每两个相邻脉冲输出中的间隔时间即可解决速度问题。 图5 单片机与步进电机的连接步进电机的控制

15、步进电机的速度由单片机发送的脉冲频率决定,而脉冲频率可以通过软件延时和硬件定时两种方式实现。通过调用标准延时子程序产生脉冲的方法称软件延时。通过使用单片机的定时/计数器T0或T1,定时产生脉冲的方法称为硬件定时,该法首先根据定时的时间长短设定定时器的工作模式,然后输入定时器的定时常数,则定时器就会定时溢出,单片机就会每溢出一次就产生一个脉冲信号控制步进电机转动。用定时中断方式来控制电动机变速时,实际上是不断改变定时器装载值的大小。在程序中,每按一次加减速键,程序中speed都会加减1,最后通过查表的方法改变定时计数器初值,达到加减速的目的。至于步进电机的正反转则是公用一个键,按下转动方向就相反

16、,正反转的实现是通过判断20号单元的第2位即20H.1是0还是1,若是0则去查反转的表否则去查正转的表,实行起来比较方便。2.2.2.步进机的驱动电路本系统采用额定电压为5V,相数为4相的步进电机,驱动方式为4相8拍。一共有5跟线连接,其中红色的为电源线。采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。由于单片机P口输出的电流比较弱不能驱动步进电机,所以要加一个ULN2003芯片来放大电流使之能驱动步进电机工作。步进电机驱动电路如下图 图6 步进机驱动电电路 由于驱动芯片ULN2003A本身就具有反相器的作用,所以控制步进机的信号都经过了反相器反相处理

17、再接入ULN2003A。2.3 主要接口电路将设计的几个模块和8051单片机结合起来。2.3.1步进机的驱动电路与8051的接口电路 图7 步进机的驱动电路与8051的接口电路 2.3.2 模拟按键与8051的接口电路 在proteus软件上对电路进行仿真,由于没有适合的作为红外发射和接收的芯片或元件,所以在仿真的时候将红外发射以及模块等效为模拟按键模块,其与8051芯片的接口电路如下:图8 模拟按键与8051的接口电路2.4 资源分配表和总图1. P3.0-P3.7输出字形码到LED数码管,用于显示对应按下的键值。2. P1.0-P1.4用于扫描模拟键盘所按下的按键。3. :P2.0-P2.

18、3是步进机控制脉冲输出口,用于控制步进机的运动,实现正反转,加减速,单步,停止的目的。4:对仿真总图语言设计进行的标注:1) 步进机正转表:07H,03h,0BH,09h,0DH,0ch,0EH,06h2 )步进机反转表:06H,0Eh,0CH,0Dh,09H,0Bh,03H,07h3 )减速中断计数初值表:TABLE1:DB 0C5H,8AH,3CH,15h TABLE2:DB 68H,0D0H,0B0H,0A0H4)加速中断计数初值表:TABLE3:DB 15H,3CH,8AH,0C5HTABLE4:DB 0A0H,0B0H,0D0H,68H详细接线见下面的总体硬件系统连接图: 图9 PR

19、OTEUS仿真总图3源程序设计由于实物和仿真由于条件限制造成了源程序不同,所以下面给出了两种源程序,仿真的源程序省略了红外发射与接收并处理的程序,改成了对模拟键盘的扫描。3.1实物源程序ORG 0000HAJMP STARTORG 0003HAJMP JIANORG 000BHAJMP loop4ORG 001BHAJMP loop5START:WAIT:JB P3.7, $ ;等待遥控信号出现SB:MOV R4,#8 ;8毫秒为高电平错误SBA:MOV R5,#250SBB:JB P3.7,SXB1 DJNZ R5,SBB DJNZ R4,SBA MOV R4,#2 JMP Q1SXB1:M

20、OV R5,#5SXB2: ;去掉20US的尖峰干扰信号 JNB P3.7,SBB DJNZ R5,SXB2JMP STARTSBC:MOV R5,#250SB1:JB P3.7,SB2 ;2MS内不为高电平错误 DJNZ R5,SB1 DJNZ R4,SBC JMP STARTSB2: ;去掉20US的尖峰干扰信号 MOV R5,#5SB2_A:JNB P3.7,SB1 DJNZ R5,SB2_A MOV R4,#3SB2_1:MOV R5,#250SB3: ;监测4.5MS高电平,如3MS内出现低电平错误 JNB P3.7,SXC DJNZ R5,SB3 DJNZ R4,SB2_1 MOV

21、 R4,#2JMP SB3_1SXC: ;去掉20US的尖峰干扰信号 MOV R5,#5SXC1:JB P3.7,SB3 DJNZ R5,SXC1 JMP STARTSB3_1: ;监测4.5MS高电平,如5MS内不为低错误 MOV R5,#250SB3_2:JNB P3.7,SB4 DJNZ R5,SB3_2 DJNZ R4,SB3_1 JMP STARTSB4: ;去掉20US的尖峰干扰信号 MOV R5,#5SB4_1:JB P3.7,SB3_2 DJNZ R5,SB4_1MOV R1,#1AH ;设定1AH为起始RAM区MOV R2,#4PP: MOV R3,#8JJJJ:MOV R5

22、,#250JJJJ2: ;1MS内不为低电平错误 JB P3.7,JJJJ3 DJNZ R5,JJJJ2 JMP STARTJJJJ3:LCALL YS1;高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态 MOV C,P3.7 ;将P3.7状态0或1存入C中 JNC UUU ;如果为0就跳转到UUU MOV R5,#250JJJJ4:JNB P3.7,UUU NOP DJNZ R5,JJJJ4 JMP STARTUUU:MOV A,R1 ;将R1中地址的给ARRC A ;将C中的值移入A中的最低位MOV R1,A ;将A中的数暂存在R1中DJNZ R3,JJJJ ;接收地址码的高8

23、位INC R1 ;对R1加1,换成下一个RAMDJNZ R2,PP;以下对代码是否正确和定义进行识别MOV A,1AH;比较高8位地址码XRL A,#00000000B ;判断1AH的值是否等于00000000,相等的话A为0JNZ EXIT;如果不等解码失败退出MOV A,1BH;比较低8位地址XRL A,#11111111B ;再判高8位地址是否正确JNZ EXIT;如果不相等说明解码失败退出LCALL YS3MOV A,1CH;比较数据码和数据反码是否正确?CPL AXRL A,1DH ;将1CH的值取反后和1DH比较 不同则无效丢弃,核对数据是否准确 JNZ EXIT ;如果不相等说明

24、解码失败退出 LCALL YS3 CLR P2.6 ;选中数码管 CLR P3.3 ;解码成功喇叭响? AJMP BIJIAO;判断在118毫秒内是否有连发码AA: MOV R1,#25XX: ACALL YS2 JNB P3.7,HH ;跳转到HH DJNZ R1,XXEXIT: ;对所有端口清零 AJMP START;连发码判断程序段-HH: MOV R6,#4S: ACALL YS1 ;调用882微秒延时子程序 JB P3.7,EXIT ;延时882微秒后判断P3.7脚是否出现高电平如果有就退出解码程序 DJNZ R6, S ;重复4次,目的是确认 JNB P3.7, $ ;等待高电?

25、LCALL YS3 AJMP AABIJIAO:MOV A,1CH;红外键值;-Q1: CJNE A,#10H,Q2 LOOP1:mov r3,#0ffh main1:inc r3 mov a,r3 mov dptr,#tab1 movc a,a+dptr mov p2,a lcall delay cjne a,#06h,main1tab1:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ2: CJNE A,#03H,Q3ZHENGZHUAN: LOOP2:mov r3,#0ffh main2:inc r3 mov a,r3 mov dptr,#tab2 movc a,a

26、+dptr mov p2,a lcall delay cjne a,#06h,main2 ljmp LOOP2tab2:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ3: CJNE A, #01H,Q4FANZHUAN: LOOP3:mov r3,#0ffh main3:inc r3 mov a,r3 mov dptr,#tab3 movc a,a+dptr mov p2,a lcall delay cjne a,#06h,main3 ljmp LOOP3 rettab3:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ4: CJNE A, #06

27、H,Q5ZHONGSU1: CLR A MOV R7,#0 MAIN4:MOV TMOD,#01H MOV A,R7 MOV DPTR ,#TABLE1 MOVC A,A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE2 MOVC A,A+DPTR MOV R5,A MOV TH0,R4 MOV TL0,R5 SETB TR0 SETB EA SETB ET0 mov r3,#0ffh deng: CJNE R3,#08H,jiansu mov r3,#0ffh jiansu: MOV A,R7 MOV DPTR ,#TABLE1 MOVC A,A+DPTR M

28、OV R4,A MOV A,R7 MOV DPTR ,#TABLE2 MOVC A,A+DPTR MOV R5,A sjmp deng loop4: MOV TH0,R4 MOV TL0,R5 push acc main5:inc r3 mov a,r3 mov dptr,#tab4 movc a,a+dptr mov p2,a pop a reti tab4:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ5: CJNE A,#09H,Q6ZHONGSU2: CLR A MOV R7,#0 MAIN6:MOV TMOD,#10H MOV A,R7 MOV DPTR ,#

29、TABLE3 MOVC A,A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE4 MOVC A,A+DPTR MOV R5,A MOV TH1,R4 MOV TL1,R5 SETB TR1 SETB EA SETB ET1 mov r3,#0ffh de:CJNE R3,#08H,jiasu mov r3,#0ffh jiasu: MOV A,R7 MOV DPTR ,#TABLE3 MOVC A,A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE4 MOVC A,A+DPTR MOV R5,A sjmp de loop5: MO

30、V TH1,R4 MOV TL1,R5 push acc main7:inc r3 mov a,r3 mov dptr,#tab5 movc a,a+dptr mov p2,a pop a reti tab5:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ6:CJNE A,#1dh,Q7CLR P3.2Q7: ajmp startJIAN: INC R7 CJNE R7,#04H,CHONG MOV R7,#00hCHONG:RETI delay:mov r5,#255 d1:mov r2,#25 d2:djnz r2,d2 djnz r5,d1 retYS1: MOV

31、 R4,#20 ;延时子程序1, 882微秒 D9: MOV R5,#20 DJNZ R5,$ DJNZ R4,D9 RETYS2: MOV R4,#10 ;延时子程序2, 4740微秒 D8: MOV R5,#235 DJNZ R5,$ DJNZ R4,D8 RETYS3: MOV R4,#2 ;延时程序3, 1000微秒 D7:MOV R5,#248 DJNZ R5,$ DJNZ R4,D7 RETTABLE1:DB 0C5H,8AH,3CH,15h TABLE2:DB 68H,0D0H,0B0H,0A0HTABLE3:DB 15H,3CH,8AH,0C5HTABLE4:DB 0A0H,0

32、B0H,0D0H,68Hend3.2 仿真源程序ORG 0000HAJMP STARTORG 0003HAJMP JIANORG 000BHAJMP loop4ORG 001BHAJMP loop5START:MOV P1,#0FFH SETB IT0 SETB EX0 SETB EA JIANCE:MOV A,P1 CJNE A,#0FFH,Q1 AJMP JIANCEQ1: cjne A,#0FEH,Q2 LOOP1:mov r3,#0ffh main1:inc r3 mov a,r3 mov dptr,#tab1 movc a,a+dptr mov p2,a lcall delay cj

33、ne a,#06h,main1tab1:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ2: cjne a,#0FDH,Q3ZHENGZHUAN: LOOP2:mov r3,#0ffh main2:inc r3 mov a,r3 mov dptr,#tab2 movc a,a+dptr mov p2,a lcall delay cjne a,#06h,main2 ljmp LOOP2tab2:03h,09h,0ch,06hQ3: cjne a,#0FBH,Q4FANZHUAN: LOOP3:mov r3,#0ffh main3:inc r3 mov a,r3 mov dp

34、tr,#tab3 movc a,a+dptr mov p2,a lcall delay cjne a,#06h,main3 ljmp LOOP3 rettab3:db 0ch,09h,03h,06hQ4: CJNE A,#0F7H,Q5YUANSU1: CLR A MOV R7,#0 MAIN4:MOV TMOD,#01H MOV A,R7 MOV DPTR ,#TABLE1 MOVC A,A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE2 MOVC A,A+DPTR MOV R5,A MOV TH0,R4 MOV TL0,R5 SETB TR0 SETB E

35、A SETB ET0 mov r3,#0ffh deng: CJNE R3,#08H,jiansu mov r3,#0ffh jiansu: MOV A,R7 MOV DPTR ,#TABLE1 MOVC A,A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE2 MOVC A,A+DPTR MOV R5,A sjmp deng loop4: MOV TH0,R4 MOV TL0,R5 push acc main5:inc r3 mov a,r3 mov dptr,#tab4 movc a,a+dptr mov p2,a pop a retitab4:db 07H

36、,03h,0BH,09h,0DH,0ch,0EH,06hQ5: CJNE A,#0EFH,Q6YUANSU2: CLR A MOV R7,#0 MAIN6:MOV TMOD,#10H MOV A,R7 MOV DPTR ,#TABLE3 MOVC A,A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE4 MOVC A,A+DPTR MOV R5,A MOV TH1,R4 MOV TL1,R5 SETB TR1 SETB EA SETB ET1 mov r3,#0ffh de:CJNE R3,#08H,jiasu mov r3,#0ffh jiasu: MOV A

37、,R7 MOV DPTR ,#TABLE3 MOVC A,A+DPTR MOV R4,A MOV A,R7 MOV DPTR ,#TABLE4 MOVC A,A+DPTR MOV R5,A sjmp de loop5: MOV TH1,R4 MOV TL1,R5 push acc main7:inc r3 mov a,r3 mov dptr,#tab5 movc a,a+dptr mov p2,a pop a retitab5:db 07H,03h,0BH,09h,0DH,0ch,0EH,06hQ6:ajmp start IAN: INC R7 CJNE R7,#04H,CHONG MOV R

38、7,#00hCHONG:RETI delay:mov r5,#255 d1:mov r2,#25 d2:djnz r2,d2 djnz r5,d1 retTABLE1:DB 0C5H,8AH,3CH,15h TABLE2:DB 68H,0D0H,0B0H,0A0HTABLE3:DB 15H,3CH,8AH,0C5HTABLE4:DB 0A0H,0B0H,0D0H,68Hend4 仿真结果与分析仿真结果如下:1 启动状态,数码管显示0,8051无工作,示波器无波形:图10 启动状态2 单步执行,数码管显示1,系统开始工作,步进机转动一定角度然后停止,示波器显示波形如下:图11 单步状态3 正转(

39、连续),数码管显示2,步进机不停地以恒定的速度逆时针(以逆时针为正转)转动,示波器波形如下:图12 正转(连续)状态4反转(连续),数码管显示3,步进机不停地以恒定的速度顺时针(以顺时针为反转)转动,示波器波形如下:图13 反转(连续)状态做完了反转然后就是加速控制,由于需要外部中断0来控制加速的进程,所以必须利用仅剩的P3口,即必须省去数码管显示部分。5减速(正转,连续),通过不断的按下P3口接部中断的按键来实现不断的减速并循环。图14 减速状态对照表6 加速(正转,连续)原理同加速,略。 仿真过程问题与分析 在仿真过程中,本人遇到了很多次困难,举例如下:1 端口资源分配,8051的四个P端

40、口都被利用了,最后为了设置外部中断0,不得不取消了数码管显示功能。2 步进机转表问题,实现正转和反转对应的转表不是直接相反的。3 加速与减速设计时候的定时中断与中断程序的衔接要好。4 中断表(计数初值表),步进机转表两概念不要混淆。 通过对上述截图的观察可以得到结论:仿真完全符合设计要求。5 心得体会 6参考文献1李群芳。单片微型计算机与接口技术。北京:电子工业出版社,2008.52胡汉才。单片机原理及系统设计。北京:清华大学出版社,20023王晓明。电动机的单片机控制。北京:北京航天航空大学出版社,20024汪道辉。单片机系统设计与实践。 北京:电子工业出版社 ,2006本科生课程设计成绩评定表姓 名杨飞性 别男专业、班级电子信息工程0804班课程设计题目: 设计并实现红外遥控步进机课程设计答辩或质疑记录:成绩评定依据:最终评定成绩(以优、良、中、及格、不及格评定)指导教师签字: 年 月 日

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!