设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx

上传人:b****4 文档编号:8249926 上传时间:2023-05-10 格式:DOCX 页数:19 大小:112.46KB
下载 相关 举报
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第1页
第1页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第2页
第2页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第3页
第3页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第4页
第4页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第5页
第5页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第6页
第6页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第7页
第7页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第8页
第8页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第9页
第9页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第10页
第10页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第11页
第11页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第12页
第12页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第13页
第13页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第14页
第14页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第15页
第15页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第16页
第16页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第17页
第17页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第18页
第18页 / 共19页
设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx_第19页
第19页 / 共19页
亲,该文档总共19页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx

《设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx(19页珍藏版)》请在冰点文库上搜索。

设计并实现红外遥控步进电机单片机课程设计Word文件下载.docx

...............................................................................................6

2.3硬件线路设计图.......................................................................................................7

3.程序框图..............................................................................................................................8

4.资源分配表:

.........................................................................................................................9

5.源程序:

............................................................................................................................10

7.心得及体会:

....................................................................................................................22

8.参考文献:

...........................................................................................................................23

9.本科生课程设计成绩评定表.........................................................................................24

1.设计原理及方法

1.1步进电机的工作原理

步进电机是数字控制电机,它将电脉冲信号转化为角位移,实质上是一种数字/角度转换器。

当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”,它的旋转是以固定的角度一步一步运行的。

可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的,因此,单步和连续的动作区别只是单片机给步进电机脉冲个数不同而已。

每按一次单步键就是给电机一个脉冲,而连续则是不断的给电机脉冲,达到连续运转的目的;

同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。

步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%的特点,广泛应用于各种开环控制。

步进电机可分为反应式步进电机(VR、永磁式步进电机(PM和混合式步进电机(HB三种。

永磁式一般为两相,转矩和体积较小,步进角一般为7.5°

或15°

;

反应是一般为三相,可实现大转矩输出,步进角一般为1.5°

但噪声和振动都很大,在欧美等发达国家在20世纪80年代已被淘汰;

混合式应用最为广泛,它混合了永磁式和反应式的优点。

步进电机区别其他控制电机的最大特点是,它通过输入脉冲信号来进行控制的,即电机的总转到角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。

1.2红外遥控器的原理

红外线遥控系统就是指利用红外线来传递控制信号,实现对控制对象的远距离控制的目的。

由发射器发出红外线指令信号,由接收器接收信号并对信号进行处理,最后实现对对象的各种功能的远距离控制。

通用红外发射器由指令键、指令信号产生电路、调制电路、驱动电路及红外发射器组成。

红外遥控的发射电路是采用红外发光二极管来发出经过调制的红外光波;

红外接收电路由红外接收二极管、三极管或硅光电池组成,它们将红外发射器发射雕红外光转换为相应的电信号,再送后置放大器。

接收电路将发射器发出的已调制的编码指令信号接收下来,并进行放大后送解调电路,解调电路将已调制的指令编码信号解调出来,即还原为编码信号。

指令译码器将编码指令信号进行译码,最后由驱动电路来驱动执行电路实现各种指令

的操作控制(机构。

红外遥控器的特点是不影响周边环境,不干扰其他电器设备,在室内近距离(小于10m遥控中得到了广泛的应用。

例如在录音机、音响设备、空调机以及玩具等其他小型电器装置

上都纷纷采用红外线遥控。

1.3红外遥控步进电机的设计方法

红外遥控器控制步进电机是利用LED发射红外线传递按键信息。

由于红外采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;

以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”,在解码时通过判断高低电平持续时间的长短来识别发送的键值。

单片机的晶振为12MHz,单周期指令执行时间为1MHz,由于机械动作需要一定时间来完成,如果以这么快的速度来给脉冲,电机是不会转动的,因此,在两个脉冲之间必须要有一定时间差,电机才有时间来执行动作。

电机转动的速度与脉冲频率成正比,控制脉冲间隔时间就相当于控制了步进电机的转动角频率即快慢。

根据该系统设计要求,需要通过红外遥控器按下按键和显示器来改变步进电机的运动状态以及显示,只需要红外遥控器中7个按键就可满足需求,外加8位LED数码显示管即可。

由于实验箱上只有8个连体数码管,因此需要动态扫描。

通过从键盘上输入正、反转命令,按键数值显示在数码管上,CPU再读取正、反转命令,加减速后执行。

经键盘可完成启动、停止、正转、反转、速度设置控制功能。

按下红外遥控器上的相关按钮电机执行相关动作,同时数码管上显示按键的数值。

2.系统硬件线路设计

2.1红外遥控及LED模块

本模块应完成对红外遥控器有无键按下进行确认,当有键按下时,确定按键值,并根据所得键值进行处理(包括所按键是不是停止键还是执行键。

如是停止键,不断扫描键盘程序,等待执行键按下;

如是执行键就启动产生步进电机控制信号程序。

显示模块主要是完成在进行键盘按下时,显示输入的数据值(转矩数、转动方向、转动速率及运行方式。

2.1.1红外遥控编解码原理

红外遥控系统由发射和接收两大部份组成,应用编/解码专用集成电路芯片来进行控制操作。

发射部份包括键盘矩阵、编码调制、LED红外发送器;

接收部份包括光、电转换放大器、解调、解码电路。

由于采用不同芯片其发送和接受的过程是不一样的,我们用的实验箱采用的是HT6221红外编码芯片,因此以HT6221为例来说明红外遥控器编码和解码原理,其管脚图如图1所示。

1.HT6221键码的形成

当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。

这种遥控码具有以下特征:

采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;

以脉宽为0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。

当一个键按下超过36ms振荡器使芯片激活如果这个键按下且延迟大约108ms,这108ms发射代码由一个起始码9ms,一个结果码4.5ms,低8位地址码9ms~18ms,高8位地址码9ms~18ms,8位数据码9ms~18ms和这8位数据的反码9ms~18ms组成如果键按下超过108ms仍未松开接下来发射的代码连发代码将仅由起始码9ms和结束码2.5ms组成。

1.12ms为0,2.24ms为1,如下图:

图表1HT6221管脚图

图表2发送波形

每发送一个码,HT6221会先送出一个9ms的头码和4.5ms的间隙,然后依次送出16位的地址码(18ms~36ms、8位数据码(9ms~18ms和8位数据反码,如下图:

注:

代码宽度算法:

16位地址码的最短宽度:

1.12*16=18ms

16位地址码的最长宽度2.24ms*16=36ms

易知8位数据代码及其8位反代码的宽度和不变:

(1.12ms+2.24ms*8=27ms

32位代码的宽度为18ms+27ms~(36ms+27ms

2.代码格式(以接收代码为准,接收代码与发射代码反向

位定义

单发代码格式

连发代码格式

3.解码方法

1.解码的关键是如何识别0和1从位的定义我们可以发现01均以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

2.根据码的格式应该等待9ms的起始码和4.5ms的结果码完成后才能读码左右均可

这样接收到的仅仅是普通的代码要得到标准的键值还必须进行代码识别和代码

转换。

2.1.2LED显示部分

共阳接法:

低电平亮,高电平灭

数码管部分JP5(控制数码管的8段

JP8(输入高电平选中相应的数码管

数码管实际上是由7个发光管组成的8字形构成的,加上小数点就是8个。

分别把它命名为ABCDEFGH,由于接法是共阳接法,所以低电平是亮,高电平是灭。

例如,要显示一个数字2则是C、F、H(小数点不亮,P0.0-P0.7控制数码管的8段,0为亮,1为灭,从高往低排列,P0.0-P0.7写成二进制为10100010,把它转化为十六进制数为A2H,当然在此之前,还必须指定哪一个数码管亮。

CPU向字段输出口送出字形码,所有显示器接收到相同的字形码,由8个PNP的三极管,来控制这8位哪位工作如果要选中第一位,只需将该位清零即可。

所有数码管的8个笔划段a-h同名端连在一起,在这种接法中同一瞬间所有的数码管显示都是相同的,不能显示不同的数字。

在单片机里,首先显示一个数,然后关掉,然后显示第二个数,又关掉,那么将看到连续的数字显示,轮流点亮扫描过程中,每个显示器的点亮时间是极为短暂的(约1ms,由于人的视觉暂留现象及发光二极管的余晖效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会由闪烁感。

2.2步进脉冲产生模块:

2.2.1步进电机的控制

步进电机系统中有两个重要电路:

脉冲分配电路和驱动电路。

脉冲分配电路有两个输入信号:

步进脉冲和转向控制。

脉冲分配电路在步进脉冲和转向控制信号的共同作用下产生正确转向的4相激励信号。

此激励信号经过驱动电路送至步进电机,从而控制步进电机向正确的方向转动,此激励信号的频率决定了步进电机的转速。

脉冲分配可通过脉冲分配器实现,也可通过软件实现。

驱动电路的主要作用是实现功率放大。

一般脉冲分配器输出的驱动能力是有限的,它不可能直接驱动步进电机,而须要经过一级功率放大。

对于功率比较小的步进电机,厂家已经生产出了集成度较高、脉冲分配与驱动电路集成在一起的芯片,应用中只需将它的输出端与步进电机相连即可。

步进电机步进时是机械转动,因此存在惯性。

当从静止状态启动步进时相当于开始转动的速度为0,它不可能立即就达到最大转速(频率,因此需要一个逐渐加速的过程,否则可能由于惯性儿导致“失步”。

比如,开始应该走20步。

却只走了19步,丢失了一步。

步进电机的最高启动频率(又称突调频率一般为0.1KHZ到3-4KHZ,以超过最高启动频率的频率直接启动,将会出现失步现象,甚至无法启动。

同理,当步进电机正以最高启动频率(可达几百千赫兹步进时,他不可能立即停下来,很可能出现多走几步的情况,这当然也会造成错误,因此在停止之前应当有一个预先减速的过程,到该停止的位置时,速度已经很慢,惯性已经很小,可以立即停止。

步进电机在转换方向时,也一定要在电机降速停止或降到突跳频率范围之类再换向,以免产生较大的冲击儿损坏电机。

换向信号一定要在前一个方向的最后一个激励信号脉冲结束后以及下一个方向的第一个激励脉冲前发出。

步进电机在某一高速下运行时的正反向切换实质上包含了降速→换向→升速三个过程。

2.2.2步进电机的调速

如果给步进电机发送一个控制脉冲,它就转一步,再发送一个脉冲,它会再转一步。

如果两个脉冲的间隔越短,步进电机就转得越快。

调整步进电机发出的脉冲频率,就可以对步进电机进行调速,而脉冲频率可以通过软件延时和硬件定时两种方式实现。

通过调用

标准延时子程序产生脉冲的方法称软件延时,该法首先设置两个字节作为延时程序的入口地址,再根据需要延时的时间长短给这两个字节赋值,则单片机就会按照设置的延时时间不断地产生脉冲信号控制步进电机转动。

软件延时的方法程序简单、思路清晰,而且不占用单片机的硬件资源。

通过使用单片机的定时/计数器T0或T1,定时产生脉冲的方法称为硬件定时,该法首先根据定时的时间长短设定定时器的工作模式,然后输入定时器的定时常数,则定时器就会定时溢出,单片机就会每溢出一次就产生一个脉冲信号控制步进电机转动。

硬件定时的方法既需要硬件(定时/计数器T0或T1,又需要软件来产生所需频率的脉冲信号,是一种软硬结合的方法,虽然占用了一个定时器,但是提高了CPU的利用率,CPU在定时器没产生溢出时运行其它程序。

用定时中断方式来控制电动机变速时,实际上是不断改变定时器装载值的大小。

在程序中,每按一次加减速键,程序中speed都会加减1,最后通过查表的方法改变定时计数器初值,达到加减速的目的。

至于步进电机的正反转则是公用一个键,按下转动方向就相反,正反转的实现是通过判断20号单元的第2位即20H.1是0还是1,若是0则去查反转的表否则去查正转的表,实行起来比较方便。

电机的加减速控制,只需控制好脉冲频率即可,可以采用中断计时的方法,内部定时器中断主要是利用单片机的内部定时器的方式1(16位计数方式产生不同周期的定时信号,每次中断都给步进电机三个绕组一次脉冲,使得步进电机转动一个节拍。

因此步进电机的转速是由单片机内部定时器的中断频率决定的,不断改变定时器的装载初值就可改变电机的运转速度。

不论步进电机处于何种状态,只要按下复位键,马上跳转到主程序,停止给脉冲,电机停止运转。

2.3硬件线路设计图

原理图:

03

3.程序框图

程序流程图

10H,单步正转03H单步逆转

01H连续正转06H连续逆转

09H加速1DH,减速

1FH停止

TH031H

TL030H

P1OUT

P2选通

9

P0送数

ORG0000H

SJMPSTART0

ORG000BH

AJMPZHDUAN

ORG0030H

START0:

MOVSP,#60H

MOVP0,#0FFH

MOVP1,#0FFH

MOVP2,#0FFH

MOVP3,#0FFH

MOV35H,#00H

MOV31H,#3CH

MOV30H,#0B0H

MOV32H,#1

START:

HWAI:

JBP3.7,$;

等待遥控信号出现SB:

MOVR4,#8;

8毫秒为高电平错误SBA:

MOVR5,#250

SBB:

JBP3.7,SXB1

DJNZR5,SBB

DJNZR4,SBA

MOVR4,#2

10

SXB1:

MOVR5,#5

SXB2:

;

去掉20US的尖峰干扰信号

JNBP3.7,SBB

DJNZR5,SXB2

JMPSTART

SBC:

SB1:

JBP3.7,SB2;

2MS内不为高电平错误

DJNZR5,SB1

DJNZR4,SBC

SB2:

SB2_A:

JNBP3.7,SB1

DJNZR5,SB2_A

MOVR4,#3

SB2_1:

SB3:

监测4.5MS高电平,如3MS内出现低电平错误JNBP3.7,SXC

DJNZR5,SB3

DJNZR4,SB2_1

JMPSB3_1

SXC:

11

SXC1:

JBP3.7,SB3

DJNZR5,SXC1

SB3_1:

监测4.5MS高电平,如5MS内不为低错误

SB3_2:

JNBP3.7,SB4

DJNZR5,SB3_2

DJNZR4,SB3_1

SB4:

SB4_1:

JBP3.7,SB3_2

DJNZR5,SB4_1

MOVR1,#1AH;

设定1AH为起始RAM区

MOVR2,#4

PP:

MOVR3,#8

JJJJ:

JJJJ2:

1MS内不为低电平错误

JBP3.7,JJJJ3

DJNZR5,JJJJ2

JJJJ3:

LCALLYS1;

高电平开始后用882微秒的时间尺去判断信号此时的高低电平状态MOVC,P3.7;

将P3.7状态0或1存入C中

12

JNCUUU;

如果为0就跳转到UUU

JJJJ4:

JNBP3.7,UUU

NOP

DJNZR5,JJJJ4

UUU:

MOVA,@R1;

将R1中地址的给A

RRCA;

将C中的值移入A中的最低位

MOV@R1,A;

将A中的数暂存在R1中

DJNZR3,JJJJ;

接收地址码的高8位

INCR1;

对R1加1,换成下一个RAM

DJNZR2,PP;

以下对代码是否正确和定义进行识别

MOVA,1AH;

比较高8位地址码

XRLA,#00000000B;

判断1AH的值是否等于00000000,相等的话A为0

JNZEXIT;

如果不等解码失败退出

MOVA,1BH;

比较低8位地址

XRLA,#11111111B;

再判高8位地址是否正确

如果不相等说明解码失败退出

LCALLYS3

MOVA,1CH;

比较数据码和数据反码是否正确?

CPLA

XRLA,1DH;

将1CH的值取反后和1DH比较不同则无效丢弃,核对数据是否准确

CLRP2.6;

选中数码管

CLRP3.3;

解码成功喇叭响?

13

AJMPBIJIAO;

判断在118毫秒内是否有连发码

AA:

MOVR1,#25

XX:

ACALLYS2

JNBP3.7,HH;

跳转到HH

DJNZR1,XX

EXIT:

对所有端口清零

AJMPSTART;

连发码判断程序段-----------

HH:

MOVR6,#4

S:

ACALLYS1;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2