1、精品教育2.3设计框图本次设计是基于STC89C52单片机的电动机保护装置,包括稳压模块、按键控制、红外发射接收模块、模数转换、电机部分。 模数转换MCU信号处理稳压模块按键控制电机红外发射接收模块 图2.1 电机保护装置的总体框图稳压模块2是经变压器、滤波、稳压后输出电压5V,为整个电路提供电源。按键控制根据设计需要设置工作模式和调节安全距离所用,主要用于控制整个装置的操作。模数转换是整个电路的桥梁,主要把模拟量转换为数字量。本设计的电机部分是由LED模拟电动机的工作和停止的。3 主要器件介绍及工作原理3.1红外传感器的简介红外技术是最近几十年中发展起来的一门新兴技术。它已在科技、国防和工农
2、业生产等领域获得广泛的应用。红外传感器的应用主要体现在以下几个方面:1、红外辐射计:用于辐射和光谱辐射测量。2、搜索和跟踪系统:用于搜索和跟踪红外目标,确定其空间位置并对其运动进行跟踪。3、热成像系统:能形成整个目标的红外辐射分布图像。4、红外测距系统:实现物体间距离的测量。5、通讯系统:红外线通信作为无线通信的一种方式。6、混合系统:是指以上各类系统中的两个或多个的组合。3.1.1 红外对管测距原理红外线测距是利用红外光来传送光波信号,因此,作为红外测距中的红外光发射器件的红外发光二极管和红外光接收器件的红外光敏管,是构成红外测距系统的基本器件。如图3.1所示是红外对管的实物图。图3.1 红
3、外对管实物图传感器的探测距离较短,一般在几十厘米之内,而这个测距范围是能够满足设计方案要求的。红外传感器的测距基本原理为红外发射电路的红外发光管发出红外光,经障碍物反射后,由红外接收电路的光敏接收管接收前方物体反射光,据此判断前方是否有障碍物。根据发射光的强弱可以判断物体的距离,由于接收管接收的光强随是随反射物体的距离变化而变化的,因而,距离近则反射光强,距离远则反射光弱。因为红外线是介于可见光和微波之间的一种电磁波,因此,它不仅具有可见光直线传播、反射、折射等特性,还具有微波的某些特性,如较强的穿透能力和能贯穿某些不透明物质等。红外传感器包括红外发射器件和红外接收器件。自然界的所有物体只要温
4、度高于绝对零度都会辐射红外线,因而,红外传感器须具有更强的发射和接收能力。3.1.2 红外线发射器件的结构红外线发射器件是最长用的为红外发光二极管,它与普通发光二极管的结构原理以及制作工艺基本相同,是只有一个PN结的半导体器件,只是所有的材料不同,制造红外发光二极管砷化钾,砷铝钾等,其中应用最多的是砷化钾。红外发光二极管一般采用环氧树脂,玻璃,塑料等封装,除白色透明材料封装外,还可见到用蓝色透明材料封装的,。红外发光二极管按发光功率的大小,可分为小功率,中功率,大功率三种。另外,红外发光二极管除顶面发光型外,还有侧面发光型。小功率管一般采用全塑封装,也有部分是采用陶瓷底座,顶端用玻璃或环氧树脂
5、透镜封装的,中大功率管一般采用带螺纹金属底座,以便安装散热片。随着发光功率得提高,相应体积的管子也增大。3.1.3 红外发光二极管测试方法红外发光二极管测试方法3非常简单,用万用表RX1K档测量,正向电阻在30K左右,反向电阻在200K以上的管子是好的。反向电阻越大,漏电流越小,质量越好。反之,若反向电阻只有几十K,说明管子质量不好,但可使用。若管子的正向的反向电阻都为无穷大或为零,说明管子是废品,不能使用。3.2 模数转换芯片3.2.1 TLC2543的简介TLC2543是TI公司的12位串行模数转换器,如图所示TLC2543的引脚图,其使用开关电容逐次逼近技术完成A/D转换过程4。由于是串
6、行输入结构,能够节省51系列单片机I/O资源;且价格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。如表3.1 TLC2543 引脚功能,TLC2543的特点如下:1、12位分辩率A/D转换器;2、在工作温度范围内10s转换时间;3、11个模拟输入通道;4、3路内置自测试方式;5、采样率为66kbps;6、线性误差1LSBmax;7、有转换结束输出EOC;8、具有单、双极性输出;9、可编程的MSB或LSB前导;10、可编程输出数据长度。表3.1 TLC2543 引脚功能引脚号名称I/O说明19,11,12AIN0AIN10I模拟量输入端。11路输入信号由内部多路器选通。15CSI片选端口。
7、在CS端由高变低时,内部计数器复位。由低变高时,在设定时间内禁止DATAINPUT和I/O CLOCK17DATANPUTI串行数据输入端。16DATAOUTOA/D转换结果的三态串行输出端。CS。为高时处于高阻态,为低电平时为激活态19EOCO转换结束端,在转换结束后为高电平图3.2 TLC2543引脚图3.2.2 工作时序TLC2543 每次转换和数据传送使用16 个时钟周期,且在每次传送周期之间插入/ CS 时序如图3.3所示。在TLC2543的/ CS 变低时开始转换和传送过程, I/ O CLOCK的前8 个上升沿将8 个输入数据位键入输入数据寄存器,同时,将前一次转换的数据的其余1
8、1 位移出DATAOU T 端,在I/ O CLOCK 下降沿时数据变化。当CS为高时, I/ O CLOCK 和DATA INPU T 被禁止,DA2TA OU T 为高阻态。 转换数据A/D转换时间移入新的器件地址,移出转换值访问周期采样周期高阻状态B15图3.3 TLC2543的时序图C73.2.3 数据输入格式数据寄存器的前4 位(D7D4) 数据4,当其为0000到1010 间的数据时,代表选中11个模拟通道的某一个通道51011到1110代表分别选中测试电压(Vref-+ Vref +) /2 、Vref - 以及Vref + 。D3 、D2 表示输出数据长度,D1 表示输出数据的
9、格式( 0 为MSB , 1 为LSB) ,D0 就决定了TLC2543 的工作方式。3.3 LCD1602的应用1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块6。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形。3.3.1 字符操作控制1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定
10、的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。因为1602识别的是ASCII码,试验可以用ASCII码直接赋值,在单片机编程中还可以用字符型常量或变量赋值,如A。3.3.2 指令操作控制1602通过D0D7的8位数据端传输数据和指令。显示模式设置: (初始化) 0011 0000 0x38 设置162显示,57点阵,8位数据接口。显示开关及光标设置: (初始化) 0000 1DCB D显示(1有效)、C光标显示(1有效)、B光标闪烁(1有效)。0000 01NS N=1(读或写一个字符后地址指针加1
11、 &光标加1)。N=0(读或写一个字符后地址指针减1 &光标减1),S=1 且 N=1 (当写一个字符后,整屏显示左移)。s=0 当写一个字符后,整屏显示不移动。数据指针设置:数据首地址为80H,所以数据地址为80H+地址码(0-27H,40-67H)。3.4主控芯片简介电动机保护装置设计的主控芯片是STC89C524 电路图设计4.1红外发射接收电路红外对管收发电路如图4.1所示,TLC2272轨对轨运放进行信号处理,频率和距离可以通过精密电阻调节。对从输入端口送入信号进行进行编码,使用编码红外线,抗干扰能力强,可通过单片机控制,可以避免多个红外模块之间干扰。除此之外TLC2272具有放大功
12、能经过两级放大后模拟电压达到了可以检测到范围。图4.1红外发射接收电路由运放LM324比较输出,当”输入端电压高于”输入端时,电压比较器输出为高电平;当”输入端电压低于”输入端时,电压比较器输出为低电平。NE555N组成施密特触发器8,输出信号经施密特电路整形,稳定可靠。施密特触发器555内部有电阻分压网络,当R13与R14的分压输入大于其阈值时输出反向,555是对Vcc及地而言的,不是对交流信号的。在交流信号中串接一个电容,改变信号的电位。滑动变阻器PR1可以调节LM324放大器的输入,可以调节比较电压,同时可以调节频率和距离。当555输出时高电平时,三极管9013导通。红外对管发射管LED
13、0工作。其中C1、C2分别与R15,R10组成无源高通滤波器,C3为旁路电容。LED2是之所以要反接,是因为红外接收管应用时PN结要反偏9,因为PN结反偏后漂移电流随着光变化的灵敏度大,这样可以更好地线性变化。从TLC2272第二级输出端即为AO是模拟信号输出端,随着障碍物与红外对管的距离,输出端的电压值也随着变化。4.2模数转换模块电路图4.2是数模转换电路整体效果图,主要由TLC2543 转换芯片,红外发射接收电路主要是普通红外发射管和红外接收三极管。图4.2数模转换电路电路工作原理:红外发光管发射出的红外光,在遇到前面的障碍物反射后,由红外接收三级管接收,此时红外接收三级管会产生一个与光
14、强相对应的电流。,在输出端可以得到一个03V的模拟电压,作51单片机模拟输入量进行A/D转换,最后将转换结果在LCD上显示出来。输入的模拟信号直接与AIN相连,用软件设置所选通道,然后对其进行读数据。4.3按键部分按键部分按功能主要是复位键和控制键如图4.3所示。复位键KEY1:当单片机运行出问题时,复位键控制单片机复位。控制键KEY2:调节模式,进入设置期望的安全距离数值。控制键KEY3:设置安全距离时,加数值。并且还具有开电动机的功能。控制键KEY4:置安全距离时,减数值。单片机根据ADC 转换的数据和拟合函数进行计算,得到实际距离并且在LCD 上显示距离大小。当实际距离小于设定距离时,L
15、CD 正常显示,继电器动作,LED灯灭,蜂鸣器响起。当设定距离大于时,LED灯保持亮的状态,蜂鸣器不响并且红外发光二极管发光报警。 图4.3 按键控制电路4.4 其他模块电路图4.4所示,继电器驱动电路10。当P20口给低电平时三极管8550饱和导通,此电路中的三级管有放大电流和做开关的作用。继电器上电吸合,此时LED0点亮。LED0是模拟电动机,LED亮说明在工作,灭是不工作。二极管D1与继电器线圈并联后,二极管负极接直流电源正极,继电器线圈断电时,二极管因势利导,为线圈电流继续流动提供途径,残余能量在线圈与二极管组成的回路中较为平缓地自我消耗掉,开关得到有效保护。图4.4 继电器驱动电路图
16、4.5蜂鸣器驱动电路3,这与继电器驱动电路有相似之处。当P21口给低电平时三极管8550饱和导通11,此电路中的三级管有放大电流和做开关的作用。这样蜂鸣器达到了工作的条件。图4.5 蜂鸣器驱动电路5 软件设计部分5.1 软件设计框图红外收发部分AD模块程序数据显示程序主程序实验数据 继电器控制 电机程序 图5.1软件设计框图如图5.1所示,红外收发部分根据障碍物与红外对管的距离不同,输出不同的模拟信号,模拟信号经过AD采集模块程序的处理转化为数字信号13,写入单片机中,进行实验,将固定距离所采集到的信号强度记录下来,然后将对应的数据加入程序中,最后通过红外模块进行测量,便可显示出对应的距离值,
17、根据设定距离与实时距离比对,比对的值送到单片机,单片机处理比对结果,然后对继电器做出处理。单片机主程序是整个程序的基础,也是核心。5.2程序设计流程在理解设计任务的时候,首先画出了如图5.2所示,根据程序设计流程图,我对程序的编写有了很清晰地思路。AD采集主要是对通过AD转换芯片对红外对管的数据采集。采样的电压数据在LCD上显示。电压值对应的距离是通过多次测量得出的结果。然后两者结合,显示出距离。用户可以根据具体情况设定安全距离,然后安全距离与实际距离比较。根据实际情况对比较的结果进行处理。AD采样开始数据初始化电压值软件处理继电器,蜂鸣器等控制程序图5.2 程序设计流程图电压对应距离数据设定
18、距离显示距离实际距离与设定距离比较5.3程序设计过程中问题总结程序设计过程中,出现了一些问题。问题主要出现在模数转换程序设计和LCD光标闪烁效果完善上。模数转换程序编写的时,主要对时序图的理解和各功能引脚的理解。SDI输入端,最先输入4位为了选通模拟量通道。后4位用来设置芯片的工作方式。最后4位是数据输出。开始设计程序时直接送入12位数据。当时认为前8为是为了选通道和工作方式,后4位作为输出数据,通过移位方式赋值于另一变量,然后通过返回值返回数据。这样写虽然在理论上也是可以说通的,但是效果上无法实现模数转换功能。后来通过查阅资料,可能因为程序编写使其出现错乱。于是改写,先送前8位,然后送低4位
19、,分两批送这个问题就解决了。EOC转换结束后会自动置位。开始设计时,没有判断是否置位导致转换结果出现乱码。 LCD光标闪烁,出现问题主要有光标比较暗,显示不明显,光标显示位置移动。LCD光标显示不明显,然后根据LCD的一些资料改写了读写数据函数的延时函数,使延时更长,这样就可以使光标变亮了。光标显示位置移动的原因是在调节数值的时候,其他数值仍在不断的更新,这使得光标不停地移动。解决的方案是设置标志位,当处于光标闪烁模式的时候,数值停止更新。跳出闪烁模式时,则数值开始更新。附 录附录A 设计电路图以上电路图为电动及保护装置的主电路图,基于Altium Desigener为平台绘制的。包括LCD显
20、示模块电路,模数转换电路,报警电路,继电器电路,按键部分控制电路等。本电路设计合理,预留扩展口,制作灵活,便于二次开发。附录B 设计仿真效果图 上图是基于Protues软件仿真的效果图。用滑动变阻器模拟红外对管输入模拟信号,滑动变阻器右边是电压值。LCD第一行显示的是“set 030mm”用户可以根据实际情况设置安全距离。第二行显示的是经过单片机处理后的实时距离值。附录C 程序源代码1602显示模块程序:#include#includesbitlcdrs=P25;sbitlcdrw=P26;sbitlcden=P27;voiddelay(uintz)uintx,y;for(x=z;x0;x-)
21、for(y=110;y0;y-);voidwrite_com(ucharcom)lcdrs=0;lcden=0;P0=com;delay(5); lcden=1; delay(5);lcden=0;voidwrite_data(uchardate)lcdrs=1;lcden=0;P0=date;delay(5);lcden=1;delay(5);lcden=0;voidinit()lcdrw=0;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);红外测距模块程序:#in
22、clude#include#defineucharunsignedchar#defineuintunsignedintsbitclk=P14;sbitcs=P15;sbitdin=P16;sbitdout=P17;sbitbit7=B7;/数据的最高位ucharcount,conword;/控制字的高四位决定通道口bitcy;voidwrite_sfm(ucharadd,uintdate)uintbai,shi,ge;ge=date%10;shi=date%100/10;bai=date%1000/100;write_com(0x80+add);write_data(0x30+bai);wri
23、te_data(0x30+shi);write_data(0x30+ge);write_data(m);write_data(m);voidwrite_sfm1(ucharadd,uintdate)uintqian,bai,shi,ge;ge=date%10;shi=date%100/10;bai=date%1000/100; qian=date/1000;write_com(0x80+0x40+add);write_data(0x30+qian);write_com(0x80+0x40+0x08);write_data(0x2e);write_data(0x30+bai); write_da
24、ta(0x30+shi);write_data(0x30+ge);uintreadad(ucharconword)chari;uintadvalue=0; ucharvalue=0;conword=conword0;i-)cy=dout;/dout的高位传给cydin=bit7;/控制字高位先送入clk=1;/控制字在时钟信号的上升沿送入B=B1;/控制字的次高位移入高位clk=0;value=value1;if(cy=1)value+;/value是dout的高八位advalue=value;advalue=advalue0;i-)/dout高四位的值赋给valuecy=dout;value
25、=value1;if(cy=1 )value+;clk=1;clk=0;advalue=advalue+value;cs=1;returnadvalue;/TLC转换出的advalue=U(显示的电压值)*4096/5附录D 元器件清单序号名称型号数量单价(元)1单片机STC89C522个52LCD1602A1个1433362电位器10K5个0.54红外对管415电机1个106数模转换TLC2543287LM32420.58变压器220v转6v 1169单排插母5个0.510双排插母5个0.511电解电容100uf5个0.512DIP 40底座2个0.513排阻10K 9pin3个0.2.14单排插针2个0.515三极管100.2164P85117NE55522.518电阻10k 5k 2k 200.0119蜂鸣器2个0.520晶振40.421二极管1N4007100.05-可编辑-