单片机资料

更新时间:2023-09-19 09:13:01 阅读量: 小学教育 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

目录

1系统设计原理 ?????????????????????..2

1.1总体方案 设计????????????????????2

2主要模块设计?????????????????????....3

2.1红外遥控及LED模块?????????????????.3

2.11红外遥控编解码原理?????????????.????3

2.12 LED部分???????????????????..?...6

2.2 步进脉冲产生模块????????????????..?...7

2.2.1步进电机工作原理?????????????????....7

2.2.2步进电机的调速?????????????????.?9

3系统硬件线路设计??????????????????..?.11

4系统软件设计????????????????????..?.12

5系统分配表??????????????????????...13

6源程序????????????????????????...14

7仿真分析????????????????????????14

8性能分析????????????????????????16

9心得及体会???????????????????????17

10参考文献???????????????????????..19

1

系统设计原理:

利用红外遥控器控制步进电机其实和用键盘控制步进电机原理类似,只不过按键是用导线传递键是否按下的信号,而红外则是利用LED发射红外线传递按键信息。由于红外采用脉宽调制的串行码,以脉宽为0.565ms、间隔0.56ms、周期为1.125ms 的组合表示二进制的“0”;以脉宽为0.565ms、间隔1.685ms、周期为2.25ms 的组合表示二进制的“1”,在解码时通过判断高低电平持续时间的长短来识别发送的键值。

控制步进电机正、反方向转动、单步、连续、快慢等动作,原理其实并不困难。步进电机将电脉冲信号转换成角位移,即给一个脉冲,步进电机就转动一个角度,转动的角度大小与施加的脉冲数成正比,因此,单步和连续的动作区别只是单片机给步进电机脉冲个数不同而已。每按一次单步键就是给电机一个脉冲,而连续则是不断的给电机脉冲,达到连续运转的目的。 单片机的晶振为12MHz,单周期指令执行时间为1MHz,由于机械动作需要一定时间来完成,如果以这么快的速度来给脉冲,电机是不会转动的,因此,在两个脉冲之间必须要有一定时间差,电机才有时间来执行动作。电机转动的速度与脉冲频率成正比,控制脉冲间隔时间就相当于控制了步进电机的转动角频率即快慢。

步进电机的转动需要向电机以一定的顺序分配驱动脉冲。如四相单四拍,其脉冲分配的方式和顺序为A-B-C-D-A,如此周而复始,即可转动。转动方向与脉冲顺序有关,如果给相反脉冲,那么电机就会反转。 1.1总体方案设计:根据该系统设计要求,需要通过红外遥控器按下按键和显示器来改变步进电机的运动状态以及显示,只需要红外遥控器中6个按键就可满足需求,外加8位LED数码显示管即可。由于实验箱上只有8个连体数码管,因此需要动态扫描。通过从键盘上输入正、反转命令,按键数值显示在数码管上,CPU再读取正、反转命令,加减速后执行。经键盘可完成启动、停止、正转、反转、速度设置控制功能。 按下红外遥控器上的相关按钮电机执行相关动作,同时数码管上显示按键的数值,系统大部分都是软件实现的,整个设计框图如下:

LED显示

单片机

步进电机

红外遥控按键

红外接收

2主要模块设计:

2.1红外遥控及LED模块:

本模块应完成对红外遥控器有无键按下进行确认,当有键按下时,确定按键值,并根据所得键值进行处理(包括所按键是不是停止键还是执行键。如是停止键,不断扫描键盘程序,等待执行键按下;如是执行键就启动产生步进电机控制信号程序)。显示模块主要是完成在进行键盘按下时,显示输入的数据值(转矩数、转动方向、转动速率及运行方式)。

2.1.1红外遥控编解码原理:红外遥控系统由发射和接收两大部份组成,应用编/解码专用集成电路芯片来进行控制操作,如图1 所示。发射部份包括键盘矩阵、编码调制、LED红外发送器;接收部份包括光、电转换放大器、解调、解码电路。由于采用不同芯片其发送和接受的过程是不一样的,我们用的实验箱采用的是HT6221红外编码芯片,因此以HT6221为例来说明红外遥控器编码和解码原理。

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,如下图:

每发送一个码,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 从位的定义我们可以发现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

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,当然在此之前,还必须指定哪一个数码管亮。

原理图中把所有数码管的a-h同名端连在一起,而每一个显示器的公共极COM是各自独立地受IO线控制。CPU向字段输出口送出字形码,所有显示器接收到相同的字形码,由8个PNP的三极管,来控制这8位哪位工作如果要选中第一位,只需将该位清零即可。 所有数码管的8个笔划段a-h同名端连在一起,在这种接法中同一瞬间所有的数码管显示都是相同的,不能显示不同的数字。在单片机里,首先显示一个数,然后关掉,然后显示第二个数,又关掉,那么将看到连续的数字显示,轮流点亮扫描过程中,每个显示器的点亮时间是极为短暂的(约1ms),由于人的视觉暂留现象及发光二极管的余晖效应,尽管实际上各位显示器并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会由闪烁感。

特别说明:实验箱采用的数码管较为特殊,和一般的共阴、共阳数码管都不一样,在Proteus中共阳数码管给高电平才表示选中,而实验箱采用低电平选中,各字段表也不一样。如一般共阳给\表示\,但实验箱需要给\,为了仿真的需要,后面的程序均采用的是一般共阳数码管写法,在实验箱上调试程序时进行了变更! 2.2步进脉冲产生模块:2.2.1步进电机工作原理: 步进电机是一种将电脉冲转化为角位移的执行机构。当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(称为“步距角”),它的旋转是以固定的角度一步一步运行的。可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。

现在比较常用的步进电机包括反应式步进电机(VR)、永磁式步进电机(PM)、混合式步进电机(HB)和单相式步进电机等。

该电机定子上有8个凸齿,相距180°的两个凸齿构成一相,每一相上的线圈反相连接,这样8个齿就构成四相,AA1、BB1、CC1、DD1,因此称为四相步进电机。当有一相绕组被励磁时,磁通从正相齿,经过软铁芯的转子,并以最短的路径流向负相齿,而其他的六个凸齿并无磁通。为使磁通路径最短,在磁场力的作用下,转子被迫转动,使最近的一对齿与被励磁的一相对准。

在图1的a图中B相被励磁,转子与B相对准。在这个位置上,再对A相进行励磁,则转子在磁场作用下顺时针转过15°,如图1的b图所示,这样步进电机就转过了一个步距角。继续对C相进行励磁,转子在磁场的作用下进一步顺时针转过15°,到达c图所示的位置,又转过了一个步距角。再对D相进行励磁,又产生了一个新的磁场,在磁力的作用下转子又转过一个步距角15°。这样步进电机的四相完成一个通电循环,若要继续转动,就继续顺次励磁,即步进电机按照A→B→C→D→A??顺序顺次励磁,那么电机就不停地转动。 一般对步进电机采用半步驱动,即四相八拍工作方式,使步进电机每次励磁转过1/2的步距角,即每次改变励磁方式步进电机转过7.5°,它的励磁方式是A→AB→B→BC→C→CD→D→DA→A??,若要反转也是只需改变励磁方式即可,即按照A→AD→D→DC→C→CB→B→BA→A??,采用八拍工作方式使得电机的转动更加稳定,也进一步增强了步进电机的控制精度。

本文来源:https://www.bwwdw.com/article/kfrh.html

Top