《设计并实现红外遥控步进电机单片机课程设计.doc》由会员分享,可在线阅读,更多相关《设计并实现红外遥控步进电机单片机课程设计.doc(26页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、课程设计任务书学生姓名: 专业班级: 指导教师: 工作单位: 题 目: 设计并实现红外遥控步进电机初始条件:(1)Proteus仿真软件或XL1000综合仿真试验仪一台;(2)课程设计辅导书:1. 李群芳、 张士军,单片微型计算机与接口技术, 电子工业出版社,20082. 张毅刚、彭喜元、董继成,单片机原理及应用,高等教育出版社,20043. 赵晓安.,MCS-51单片机原理及应用,天津大学出版社,2001(3)先修课程:微机原理与接口技术、单片机原理。要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)(1)课程设计时间:1周;(2)本课程设计统一技术要求:按照
2、要求对选定的设计题目进行分析,画出实现电路原理图,设计出各模块电路的功能,编写C51或汇编程序,上机调试、仿真,记录实验结果,对实验结果进行分析; (除了代码,运行结果可以打印,其他手写)(3)课程设计说明书按学校“课程设计工作规范”中的“统一书写格式”撰写,并标明参考文献至少5篇;(4)写出本次课程设计的心得体会(至少500字)。时间安排:课程设计时间为:6月26日至7月1日,7月2日上午答辩。指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目 录1.设计原理及方法11.1步进电机的工作原理11.2红外遥控器的原理11.3红外遥控步进电机的设计方法22.系统硬件线路设计22.
3、1红外遥控及LED模块22.2步进脉冲产生模块:62.3硬件线路设计图73.程序框图84.资源分配表:95.源程序:107.心得及体会:228.参考文献:239本科生课程设计成绩评定表241.设计原理及方法1.1步进电机的工作原理步进电机是数字控制电机,它将电脉冲信号转化为角位移,实质上是一种数字/角度转换器。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的,因此,单步和连续的动作区别只是单片机给步进电机脉冲个数不同而已。每按一次单步键就是给电机一个
4、脉冲,而连续则是不断的给电机脉冲,达到连续运转的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。步进电机可分为反应式步进电机(VR)、永磁式步进电机(PM)和混合式步进电机(HB)三种。永磁式一般为两相,转矩和体积较小,步进角一般为7.5或15;反应是一般为三相,可实现大转矩输出,步进角一般为1.5,但噪声和振动都很大,在欧美等发达国家在20世纪80年代已被淘汰;混合式应用最为广泛,它混合了永磁式和反应式的优点。步进电机区别其他控制电机的最大特点是,它通过输
5、入脉冲信号来进行控制的,即电机的总转到角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。1.2红外遥控器的原理红外线遥控系统就是指利用红外线来传递控制信号, 实现对控制对象的远距离控制的目的。由发射器发出红外线指令信号, 由接收器接收信号并对信号进行处理,最后实现对对象的各种功能的远距离控制。通用红外发射器由指令键、指令信号产生电路、调制电路、驱动电路及红外发射器组成。红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射雕红外光转换为相应的电信号,再送后置放大器。接收电路将发射器发出的已调制的编码指令信号接
6、收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令的操作控制(机构)。红外遥控器的特点是不影响周边环境,不干扰其他电器设备,在室内近距离(小于10m)遥控中得到了广泛的应用。例如在录音机、音响设备、空调机以及玩具等其他小型电器装置上都纷纷采用红外线遥控。1.3红外遥控步进电机的设计方法红外遥控器控制步进电机是利用LED发射红外线传递按键信息。由于红外采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms
7、、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”,在解码时通过判断高低电平持续时间的长短来识别发送的键值。单片机的晶振为12MHz,单周期指令执行时间为1MHz,由于机械动作需要一定时间来完成,如果以这么快的速度来给脉冲,电机是不会转动的,因此,在两个脉冲之间必须要有一定时间差,电机才有时间来执行动作。电机转动的速度与脉冲频率成正比,控制脉冲间隔时间就相当于控制了步进电机的转动角频率即快慢。根据该系统设计要求,需要通过红外遥控器按下按键和显示器来改变步进电机的运动状态以及显示,只需要红外遥控器中7个按键就可满足需求,外加8位LED数码显示管即可。由于实验箱上只有8个连体数码管
8、,因此需要动态扫描。通过从键盘上输入正、反转命令,按键数值显示在数码管上,CPU再读取正、反转命令,加减速后执行。经键盘可完成启动、停止、正转、反转、速度设置控制功能。按下红外遥控器上的相关按钮电机执行相关动作,同时数码管上显示按键的数值。2.系统硬件线路设计2.1红外遥控及LED模块本模块应完成对红外遥控器有无键按下进行确认,当有键按下时,确定按键值,并根据所得键值进行处理(包括所按键是不是停止键还是执行键。如是停止键,不断扫描键盘程序,等待执行键按下;如是执行键就启动产生步进电机控制信号程序)。显示模块主要是完成在进行键盘按下时,显示输入的数据值(转矩数、转动方向、转动速率及运行方式)。
9、2.1.1红外遥控编解码原理红外遥控系统由发射和接收两大部份组成,应用编/解码专用集成电路芯片来进行控制操作。发射部份包括键盘矩阵、编码调制、LED红外发送器;接收部份包括光、电转换放大器、解调、解码电路。由于采用不同芯片其发送和接受的过程是不一样的,我们用的实验箱采用的是HT6221红外编码芯片,因此以HT6221为例来说明红外遥控器编码和解码原理,其管脚图如图1所示。-20 DIP/SOPHT6221VSSX1X2D7VDDDOUTR4R3R2R11098765432116151413121117181920LEDC8C7C6C5C4C3C2C1AINR2R1AINC1C2C3C4C5C6
10、C7C8LEDR3R4R5R6R7R8DOUTVDDD7X2X1VSS123456789101112131415161718192021222324HT6222-24 DIP/SOP图表 1 HT6221管脚图1. HT6221 键码的形成当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”。当一个键按下超过36ms 振荡器使芯片激活如果这个键按下且延迟大约10
11、8ms,这 108ms 发射代码由一个起始码9ms ,一个结果码4.5ms ,低 8 位地址码9ms18ms ,高 8 位地址码9ms18ms ,8 位数据码9ms18ms 和这 8 位数据的反码9ms18ms 组成 如果键按下超过108ms 仍未松开接下来发射的代码 连发代码将仅由起始码9ms 和结束码2.5ms 组成。1.12ms为0,2.24ms 为1,如下图:图表 2 发送波形每发送一个码,HT6221 会先送出一个9ms 的头码和4.5ms 的间隙,然后依次送出16 位的地址码(18ms36ms)、8 位数据码(9ms18ms)和8 位数据反码,如下图:注: 代码宽度算法:16 位地
12、址码的最短宽度:1.12 *16=18ms16 位地址码的最长宽度2.24ms *16=36ms易知 8 位数据代码及其8 位反代码的宽度和不变:(1.12ms+2.24ms)* 8=27ms32 位代码的宽度为18ms+27ms (36ms+27ms)2 .代码格式(以接收代码为准,接收代码与发射代码反向)位定义单发代码格式连发代码格式3. 解码方法1 解码的关键是如何识别0 和 1 从位的定义我们可以发现0 1 均以 0.56ms的低电平开始不同的是高电平的宽度不同0 为 0.56ms, 1 为 1.68ms,所以必须根据高电平的宽度区别0 和 1 如果从 0.56ms 低电平过后开始延时
13、0.56ms 以后 若读到的电平为低说明该位为0 反之则为1 为了可靠起见 延时必须比0.56ms 长些 但又不能超过1.12ms,否则如果该位为0 读到的已是下一位的高电平因此取1.12ms+0.56ms /2=0.84ms 最为可靠一般取0.84ms2 根据码的格式应该等待9ms 的起始码和4.5ms 的结果码完成后才能读码左右均可这样接收到的仅仅是普通的代码要得到标准的键值还必须进行代码识别和代码转换。2.1.2 LED显示部分共阳接法:低电平亮,高电平灭数码管部分 JP5(控制数码管的8段)JP8(输入高电平选中相应的数码管)数码管实际上是由7个发光管组成的8字形构成的,加上小数点就是
14、8个。分别把它命名为ABCDEFGH,由于接法是共阳接法,所以低电平是亮,高电平是灭。例如,要显示一个数字2则是C、F、H(小数点)不亮,P0.0-P0.7控制数码管的8段,0为亮,1为灭,从高往低排列,P0.0-P0.7写成二进制为,把它转化为十六进制数为A2H,当然在此之前,还必须指定哪一个数码管亮。 CPU向字段输出口送出字形码,所有显示器接收到相同的字形码,由8个PNP的三极管,来控制这8位哪位工作如果要选中第一位,只需将该位清零即可。所有数码管的8个笔划段a-h同名端连在一起,在这种接法中同一瞬间所有的数码管显示都是相同的,不能显示不同的数字。在单片机里,首先显示一个数,然后关掉,然
15、后显示第二个数,又关掉,那么将看到连续的数字显示,轮流点亮扫描过程中,每个显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余晖效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会由闪烁感。2.2步进脉冲产生模块:2.2.1步进电机的控制步进电机系统中有两个重要电路:脉冲分配电路和驱动电路。脉冲分配电路有两个输入信号:步进脉冲和转向控制。脉冲分配电路在步进脉冲和转向控制信号的共同作用下产生正确转向的4相激励信号。此激励信号经过驱动电路送至步进电机,从而控制步进电机向正确的方向转动,此激励信号的频率决定了步进电机的转速。
16、脉冲分配可通过脉冲分配器实现,也可通过软件实现。驱动电路的主要作用是实现功率放大。一般脉冲分配器输出的驱动能力是有限的,它不可能直接驱动步进电机,而须要经过一级功率放大。对于功率比较小的步进电机,厂家已经生产出了集成度较高、脉冲分配与驱动电路集成在一起的芯片,应用中只需将它的输出端与步进电机相连即可。步进电机步进时是机械转动,因此存在惯性。当从静止状态启动步进时相当于开始转动的速度为0,它不可能立即就达到最大转速(频率),因此需要一个逐渐加速的过程,否则可能由于惯性儿导致“失步”。比如,开始应该走20步。却只走了19步,丢失了一步。步进电机的最高启动频率(又称突调频率)一般为0.1KHZ到3-
17、4KHZ,以超过最高启动频率的频率直接启动,将会出现失步现象,甚至无法启动。同理,当步进电机正以最高启动频率(可达几百千赫兹)步进时,他不可能立即停下来,很可能出现多走几步的情况,这当然也会造成错误,因此在停止之前应当有一个预先减速的过程,到该停止的位置时,速度已经很慢,惯性已经很小,可以立即停止。步进电机在转换方向时,也一定要在电机降速停止或降到突跳频率范围之类再换向,以免产生较大的冲击儿损坏电机。换向信号一定要在前一个方向的最后一个激励信号脉冲结束后以及下一个方向的第一个激励脉冲前发出。步进电机在某一高速下运行时的正反向切换实质上包含了降速换向升速三个过程。2.2.2步进电机的调速如果给步
18、进电机发送一个控制脉冲,它就转一步,再发送一个脉冲,它会再转一步。如果两个脉冲的间隔越短,步进电机就转得越快。调整步进电机发出的脉冲频率,就可以对步进电机进行调速,而脉冲频率可以通过软件延时和硬件定时两种方式实现。通过调用标准延时子程序产生脉冲的方法称软件延时,该法首先设置两个字节作为延时程序的入口地址,再根据需要延时的时间长短给这两个字节赋值,则单片机就会按照设置的延时时间不断地产生脉冲信号控制步进电机转动。软件延时的方法程序简单、思路清晰,而且不占用单片机的硬件资源。通过使用单片机的定时/计数器T0或T1,定时产生脉冲的方法称为硬件定时,该法首先根据定时的时间长短设定定时器的工作模式,然后
19、输入定时器的定时常数,则定时器就会定时溢出,单片机就会每溢出一次就产生一个脉冲信号控制步进电机转动。硬件定时的方法既需要硬件(定时/计数器T0或T1),又需要软件来产生所需频率的脉冲信号,是一种软硬结合的方法,虽然占用了一个定时器,但是提高了CPU的利用率,CPU在定时器没产生溢出时运行其它程序。用定时中断方式来控制电动机变速时,实际上是不断改变定时器装载值的大小。在程序中,每按一次加减速键,程序中speed都会加减1,最后通过查表的方法改变定时计数器初值,达到加减速的目的。至于步进电机的正反转则是公用一个键,按下转动方向就相反,正反转的实现是通过判断20号单元的第2位即20H.1是0还是1,
20、若是0则去查反转的表否则去查正转的表,实行起来比较方便。电机的加减速控制,只需控制好脉冲频率即可,可以采用中断计时的方法,内部定时器中断主要是利用单片机的内部定时器的方式1(16位计数方式)产生不同周期的定时信号,每次中断都给步进电机三个绕组一次脉冲,使得步进电机转动一个节拍。因此步进电机的转速是由单片机内部定时器的中断频率决定的,不断改变定时器的装载初值就可改变电机的运转速度。不论步进电机处于何种状态,只要按下复位键,马上跳转到主程序,停止给脉冲,电机停止运转。2.3硬件线路设计图原理图:3.程序框图程序流程图4.资源分配表:10H,单步正转 03H单步逆转01H连续正转 06H连续逆转09
21、H加速 1DH,减速1FH停止TH0 31HTL0 30HP1 OUTP2 选通P0 送数5.源程序:ORG 0000H SJMP START0 ORG 000BH AJMP ZHDUANORG 0030HSTART0: MOV SP,#60HMOV P0,#0FFHMOV P1,#0FFHMOV P2,#0FFHMOV P3,#0FFH MOV 35H,#00H MOV 31H,#3CH MOV 30H,#0B0H MOV 32H,#1START:HWAI: JB P3.7, $ ;等待遥控信号出现SB: MOV R4,#8 ;8毫秒为高电平错误SBA: MOV R5,#250SBB: JB
22、 P3.7,SXB1 DJNZ R5,SBB DJNZ R4,SBA MOV R4,#2 JMP SBCSXB1: MOV R5,#5SXB2: ; 去掉20US 的尖峰干扰信号 JNB P3.7,SBB DJNZ R5,SXB2 JMP 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
23、: ; 监测4.5MS 高电平,如3MS内出现低电平错误 JNB P3.7,SXC DJNZ R5,SB3 DJNZ R4,SB2_1 MOV R4,#2 JMP 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 P
24、3.7,SB3_2 DJNZ R5,SB4_1MOV R1,#1AH ; 设定1AH 为起始RAM 区MOV R2,#4PP: MOV R3,#8JJJJ: MOV R5,#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
25、 JMP STARTUUU:MOV A,R1 ; 将R1 中地址的给ARRC A ; 将C 中的值移入A 中的最低位MOV R1,A ;将A 中的数暂存在R1 中DJNZ R3,JJJJ ;接收地址码的高8 位INC R1 ;对R1 加1,换成下一个RAMDJNZ R2,PP ;以下对代码是否正确和定义进行识别MOV A,1AH ;比较高8 位地址码XRL A,#B ;判断1AH 的值是否等于,相等的话A 为0JNZ EXIT ;如果不等解码失败退出MOV A,1BH ;比较低8 位地址XRL A,#B ;再判高8 位地址是否正确JNZ EXIT ;如果不相等说明解码失败退出LCALL YS3
26、MOV A,1CH ;比较数据码和数据反码是否正确?CPL AXRL A,1DH ;将1CH的值取反后和1DH比较不同则无效丢弃,核对数据是否准确JNZ EXIT ;如果不相等说明解码失败退出LCALL YS3CLR P2.6 ;选中数码管CLR P3.3 ;解码成功喇叭响?AJMP BIJIAO ;判断在118 毫秒内是否有连发码AA: MOV R1,#25XX: ACALL YS2JNB P3.7,HH ;跳转到HHDJNZ R1,XXEXIT: ;对所有端口清零AJMP START ;连发码判断程序段-HH: MOV R6,#4S: ACALL YS1 ;调用882 微秒延时子程序JB
27、P3.7,EXIT ;延时882 微秒后判断P3.7 脚是否出现高电平如果有就退出解码程序DJNZ R6, S ;重复4次,目的是确认JNB P3.7, $ ;等待高电平LCALL YS3AJMP AABIJIAO:MOV A,1CH;红外键值;-;显示按键 MOV P2,#01H CJNE A,#10h,TT1MOV P0,#7EH ; 数码管显示1TT1: CJNE A,#03h,T2MOV P0,#0A2H ; 数码管显示2T2: CJNE A,#01h,T3MOV P0,#62H ; 数码管显示3T3: CJNE A,#06h,T4 MOV P0,#74H ; 数码管显示4T4: CJ
28、NE A,#09h,T5MOV P0,#61H ; 数码管显示5T5: CJNE A,#1dh,T6MOV P0,#21H ; 数码管显示6T6:CJNE A,#1fh,NEXTMOV P0,#7AH ; 数码管显示7;-;单步正转NEXT: CJNE A,#10H,NZHUAN2 CLR ET0 SJMP SZHUAN1SZHUAN: MOV 35H,#00HSZHUAN1: MOV A,35H MOV DPTR,#TABS MOVC A,A+DPTR JZ SZHUAN MOV P1 , A INC 35H AJMP HWAI;-;单步逆转NZHUAN2: CJNE A,#03H,LSZH
29、UAN2 CLR ET0 SJMP NZHUAN1NZHUAN: MOV 35H,#00HNZHUAN1: MOV A,35H MOV DPTR,#TABN MOVC A,A+DPTR JZ NZHUAN MOV P1 , A INC 35H AJMP HWAI;-;连续正转LSZHUAN2: CJNE A, #01H,LNZHUAN2 SETB 20H.0 ;标志位为1,说明正转 MOV TMOD ,#01H MOV TH0,31H MOV TL0,30H SETB TR0 SETB EA SETB ET0 AJMP HWAI;-;连续逆转LNZHUAN2: CJNE A, #06H,JIA
30、SU CLR 20H.0 ;标志位为0,说明反转 MOV TMOD ,#01H MOV TH0,31H MOV TL0,30H SETB TR0 SETB EA SETB ET0 AJMP HWAI;-JIASU: CJNE A, #09H,JIANSU MOV A,32H CJNE A,#5,JIA1 AJMP HWAIJIA1: INC 32H INC A MOV DPTR,#TABLE MOVC A,A+DPTR MOV P2,#03H MOV P0,A MOV A,32H CJNE A,#1,JIA2 MOV 31H,#3CH MOV 30H,#0B0H AJMP HWAIJIA2:
31、CJNE A,#2,JIA3 MOV 31H,#63H MOV 30H,#0C0H AJMP HWAIJIA3: CJNE A,#3,JIA4 MOV 31H,#8AH MOV 30H,#0D0H AJMP HWAIJIA4: CJNE A,#4,JIA5 MOV 31H,#0B1H MOV 30H,#0E0H AJMP HWAIJIA5: CJNE A,#5,JIAMAX MOV 31H, #0D8H MOV 30H, #0F0HJIAMAX: AJMP HWAI;-JIANSU: CJNE A,#1DH,STOP MOV A,32H CJNE A,#1,JIAN1 AJMP HWAIJIA
32、N1: DEC 32H DEC A MOV DPTR,#TABLE MOVC A,A+DPTR MOV P2,#03H MOV P0,A MOV A,32H CJNE A,#1,JIAN2 MOV 31H,#3CH MOV 30H,#0B0H AJMP HWAIJIAN2: CJNE A,#2,JIAN3 MOV 31H,#63H MOV 30H,#0C0H AJMP HWAIJIAN3: CJNE A,#3,JIAN4 MOV 31H,#8AH MOV 30H,#0D0H AJMP HWAIJIAN4: CJNE A,#4,JIAN5 MOV 31H,#0B1H MOV 30H,#0E0H
33、AJMP HWAIJIAN5: CJNE A,#5,JIANMAX MOV 31H, #0D8H MOV 30H, #0F0HJIANMAX: AJMP HWAI;-STOP: CJNE A,#1FH,FANHUI CLR ET0 MOV P3,0FFH AJMP HWAI;-FANHUI: AJMP HWAI;-; 中断ZHDUAN: JB 20H.0,SZH NZH : MOV DPTR,#TABN SJMP XHUAN SZH: MOV DPTR,#TABS SJMP XHUAN XHUAN1: MOV 35H,#00H XHUAN: MOV A,35H MOVC A,A+DPTR JZ
34、 XHUAN1 MOV P1 , A INC 35H MOV TMOD ,#01H MOV TH0,31H MOV TL0,30H SETB TR0 RETI;-YS1: MOV R4,#20 ; 延时子程序1, 882 微秒D1: MOV R5,#20DJNZ R5,$DJNZ R4,D1RETYS2: MOV R4,#10 ; 延时子程序2, 4740 微秒D2: MOV R5,#235DJNZ R5,$DJNZ R4,D2RETYS3:MOV R4,#2 ; 延时程序3, 1000 微秒D3:MOV R5,#248DJNZ R5,$DJNZ R4,D3RETTABLE: DB 28h,7
35、eh,0a2h,62h,74h,61h,21h,7ah,20h,60hTABS: DB 03H,09H,0CH,06H,00HTABN: DB 03H,06H,0CH,09H,00H ;0 1 2 3 4 5 6 7 8 9 END6.性能分析: 因为电机步进角为7.5,一圈需要360/7.5=48个脉冲。电机转速为1/(T*48),其中T为定时计数器中断时间,开始时电机以最小速度运行,即查表中第一个数据,HT0=15H,TL0=A0H,通过计算为60ms,因为单片机给48个脉冲步进电机才转一圈,因此电机的速度为0.35转/s。表中各种值对应的速度如下表: 转速(r/s)中断时间(ms)TH0
36、TL00.356015HA0H0.385529H28H0.42503CHB0H0.464550H38H0.524063HC0H0.603577H48H0.69308AHD0H0.83259EH58H1.0420B1HE0H1.3915C5H68H 电机单步运行:7.5/次 电机连续运行:0.35 r/s1.39r/s 数码管显示:红外按键值1-7 在试验箱上演示的结果表明程设计是符合要求的,利用红外遥控器按键1-7分别能够实现步进电机单步正转,单步反转,连续正转,连续反转,加速,减速,停止操作,所以此次课程设计是比较成功的。7.心得及体会:这次课程设计已经结束,经历的时间比较长,在这段时间里我
37、收获了知识,同时也收获了乐趣。一开始根本不知道步进电机,对红外遥控器也没有接触过。首先就是根据题目要求设计程序,虽然语言不限,但我还是选择了汇编语言。但是设计起来还是很困难的,所以我又把微机原理跟单片机的书拿出来温习了一遍,总算有了点底气。我把整个按键分为两大部分:单步和连续。它们共有一个动作:正反转和停止,在连续时有加速和减速。确定好思路后,写代码就非常简单了。但是还是遇到很多不懂的地方,所以向同学请教了许多,很多问题也通过讨论得到了解决。 程序写好后就是上机调试了,其实如果汇编语言学得好的话,调试是很快的,但我却用了很多时间,这也让我认识到自己理论知识掌握的并不牢固,必须加强学习。然后就可
38、以将调试好的程序写入实验箱了,由于设计程序时就考虑到要实现的所有功能,而且程序已经调试成功,所以实验结果是很让人满意的,步进步进电机能够启动,而且通过遥控可以使其单步、连续转动,正反向变换和加减速。通过此次课程设计,我巩固了自己的理论知识,也增强了实际动手能力,在设计与调试的过程中我体会到了快乐与艰辛,认识到理论知识对于时间的重要性,以及团队合作的力量。任何人都不可能单枪匹马的去成功地干成一件事,团队合作才是硬道理。总之,我收获了很多,也为我以后的工作奠定了一定的基础。8.参考文献:1韩全立。单片机控制技术及应用。北京:电子工业出版社,20042胡汉才。单片机原理及系统设计。北京:清华大学出版社,20023王晓明。电动机的单片机控制。北