




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
青岛大学本科生毕业论文(设计)复位电路51系列单片机的复位引脚是9脚,当此引脚连接高电平超过两个机器周期时,即可产生复位动作。为了保证使单片机所正在进行的应用程序系统准确地功能进行复位,因此在设计本设计实验所使用的复位电路进行复位时,通常的做法是使RST引脚始终保持在的高电平的时间要10ms以上。复位电路有上电复位和手动复位两种,本例采用上电复位的形式。电路如图2.5所示。图2.5单片机最小系统2.3红外发射芯片TC901红外发射芯片TC9012是一款专门用于日本东芝公司所生产的红外遥控系统的专用红外发射集成电路。该款芯片在使用中可外以对外进行连接32个按键,可以提供8种可供用户选择的用户编码,与此同时,其按键还可以具备双重按键的功能。红外发射芯片TC9012的所应用的各个引脚的功能设置和所应用的外围应用线路都进行比较高度的优化,其目的是为了配合PCB的电气布线和价格成本低廉的要求。2.3.1TC9012的引脚TC9012的引脚图如图2.6所示,其引脚功能定义见表2.2。图2.6TC9012的引脚图表2.2TC9012引脚功能引脚号名称类型描述1-4KI0-KI3IN4位输入引脚,用于键盘扫描输入(平时为低电平,内置下拉电阻)5REMOUT带载波的遥控信号输出6VDD电源正端(2-4.0V),3V(典型)7NC空引脚8OSC0OUT晶振输出9OSC1IN晶振输入10VSS电源负端(接地)11LMPOUT指示灯输出12-19KO0-KO7OUT8位输出引脚,用于键盘扫描输出20SELIN用户编码选择跳线(平时为高电平,内置下拉电阻)2.3.2TC9012的编码在本设计实验所使用的TC9012芯片的一帧传输数据中,总共是含有了32位码(两次8位用户码、8位数据码及其反码),发射码的格式如图2.7所示。图2.7TC9012的发射码格式S0S1S2S3S4S5S6S7S0S1S2S3S4S5S6S7D0D1D2D3D4D5D6D7012345678引导码用户码用户码数据码数据码的反码TC9012共有8位用户码,其中S0、S1和S2由SEL与KO0-KO7的连接来确定,S3固定为“1”,S4、S5、S6和S7固定为“0”。用户码一共有8种,利用SEL引脚与KO0-KO7中的任意引脚相连接来进行选择。TC9012的用户码设置见表2.3。表2.3TC9012的用户码设置与SEL相连用户码(S2S1S0)与SEL相连用户码(S2S1S0)KO0000KO4100KO1001KO5101KO2010KO6110KO3011KO7111红外发射芯片TC9012最主要的功能设置是设置了4个通过按键进行的功能输入端KI0-KI3和8个通过按键进行的功能输出端KO0-KO7,从而形成了一个矩阵键盘,而这个矩阵键盘将共有4×8=32个功能按键,由于是在同一系统下,所以这32个功能按键均按照同一方式进行编码,以实现特定的功能。其使用方法是:若将32组按键中其中一个按键按下且保持按下的状态,那么所产生的效果就是将一帧码发完之后然后会不断的发射固定的重复码,而如果此时松开该枚按键,那么所产生的效果就是系统在该帧码发完后会成功进入使用的低功耗模式。用户码以及键数据码的发送顺序所应用的规律均是低位在前,高位在后。2.3.3TC9012的工作模式红外发射芯片TC9012有两种比较常用的工作模式,这两种模式分别是正常工作模式和低功耗模式。在实际实验操作中,如果没有任何按键被按下,那么实验中的振荡器所处的状态是停振的,这样的效果是可以明显的降低功耗。在本电路中设计了消抖功能,如果在扫描过程中检测到按键按下的的时间小于32毫秒,则被认为是按键的抖动,而不是正常的按键,所以没有任何码发出,随之产生的效果是振荡器会停振。红外发射芯片TC9012所使用455KHz的晶振,与此同时,芯片采用的是可以进行脉宽调制的串行码,定义产生的脉宽幅度为0.565毫秒、而两个脉宽之间的间隔为0.56毫秒、总共的脉宽周期为1.125毫秒的组合表示二进制的“0”;定义产生的脉宽幅度为0.565毫秒、而两个脉宽之间的间隔为1.685毫秒、总共的脉宽周期为2.25毫秒的组合表示二进制的“1”。2.4红外接收头HS0038一体化的红外射线接收头HS0038可以接收遥控信号、放大遥控信号、检波遥控信号和整形遥控信号,而且在与单片机相配合情况下可以输出能够让单片机识别的信号——TTL信号,这样做的效果就是明显简化了本设计实验中所使用接收电路的复杂程度以及整个实验电路的设计工作。红外一体化接收头HS0038的外观如图2.8所示。图2.8红外一体化接收头HS0038如上图所示,一体化红外接受头芯片HS0038是黑色外壳,使用环氧树脂材料进行封装,这种封装形式能够使芯片不受荧光、灯日光等光源的干扰。在本设计实验中,将会采用用小功率发射管进行信号的发射,由此所决定的接收距离大概为35米。HS0038为直立侧面收光型。一体化红外信号接收芯片HS0038所能构接收的红外信号频率为38kHz,由此得出其需要的周期为26微妙。如上图所示,一体化红外信号接收芯片HS0038共有三个引脚,分别是接地(GND)、+5V电源(Vs)、解调信号输出端(OUT)。在进行本设计实验时,当在遥控器上没有任何按键按下时,对应的红外发射二极管将不会发出红外信号,此时,遥控信号接收头所输出的信号即为输出信号1。而当在遥控器上有按键按下时,输出信号0和输出信号1编码中的高电平经遥控信号接收头导向后所输出的信号将会是输出信号0。由于红外遥控信号接收头的输出端与所相连接单片机的中断引脚相关联,即相应的引脚的电平为低电平时将会触发单片机产生中断。而单片机在产生中断时产生的效果是将会使用定时器0开始计时,并且同时通过特定的软件可以判断出当前的电平情况和周期和周期的情况,由此获得的结果是可以得知接收到的数据是引导码还是0或者1。如果接收到的情况是接收到了在一个完整的传输周期内呈现高电平状态时间为4.5毫秒,与此同时,在一个完整周期里维持低电平状态的时间也为4.5毫秒,那么藉此所获得的结论就是认为接收到的就是导引码,而如果此时的所获得的计时值是等于1.12毫秒,那么所获得的结论就是认为接收到的是编码0,而如果此时所获得的计时值等于2.25毫秒,那么所获得的结论就是认为接收到的是编码1。解码方法如下:
⑴进行单片机初始化外部中断0,首先就是把定时器0设定为16位计数器,而初始值则设定为0。⑵程序第一次进入遥控中断后,中断开始计时。⑶通过软件判断在第一个周期内高电平以及低电平的时间幅度,如果所获得的计时值与事先预设的前导码的时间幅度相符,那么直接进入第(4)步,而如果获得的计时值与事先预设的不符,则就将会进入第(6)步。⑷继续接收前导码之后的地址码两次(16位)数据码(8位)、数据反码(8位)。⑸而当接收完总共的32位数据码时,说明在此时接收完毕了一帧数据。此时可停止定时器的计时,并判断本次接收的是否有效。如果两次地址码相同且等于本系统的地址,数据码与数据反码之和等于0xFFH,则接收的本帧数码有效。否则丢弃本次接收到的数据。⑹接收完毕,初始化本次接收的数据,准备下一次遥控接收。2.5双H桥电动机驱动芯片L298NL298N芯片是由ST宏盛公司生产的一种电动机驱动芯片,该芯片可以驱动高电压、大电流状态下的电动机,其实物如图2.9。图2.9L298N芯片实物图如图2.9所示,双H桥电机驱动芯片共有15个引脚,其特点主要是:工作电压高、输出电流大、额定功率高。在驱动芯片内总共设置了两个H桥的大电流高电压形式的全桥式驱动器,该芯片的功能是既可以用来驱动直流电动机也可以用来驱动步进电机以及继电器线圈等感性负载。而在使用L298N芯片驱动电动机,该芯片可以驱动一台两相步进电动机或四相步进电动机,也可以驱动两台直流电动机。L298采用15引脚的MULTIWATT15(垂直型)封装,其引脚图如图2.10所示,各引脚定义见表2.4。图2.10L298N的引脚图表2.4L298N引脚说明引脚号符号引脚说明引脚号符号引脚说明1ISENA电流反馈A9VSS逻辑电源电压2OUT1输出引脚110IN3输入引脚33OUT2输出引脚211ENB使能引脚B4VS电源电压12IN4输入引脚45IN1输入引脚113OUT3输出引脚36ENA使能引脚A14OUT4输出引脚47IN2输入引脚215ISENB电流反馈B8GND接地引脚VSS所提供的电压最小为4.5伏,最大可达36伏;VS最大电压值也是36伏。但是经过一系列的实验比较,VS电压应该比VSS电压高,否则有时会出现失控现象。SENSEA、SENSEB为电流反馈引脚,用于电动机的保护,串联0.5Ω/2W采样电阻接地。当L298N控制电动机停止时,电动机由于惯性的作用并不能马上停下来,还会继续转动。这是电动机就相当于“发电机”,产生较高的反向电压,若没有渠道将它释放出来,它就自己找渠道反向放给驱动器芯片,于是L298N就会瞬间烧坏。这样就需要增加续流二极管,接在L298N的输出端与电源(地)之间,用来释放反向电压。本实验的二极管选用快速反应二极管1N5822。2.6直流电动机2.6.1对于直流电动机的基本认识电动机简称电机,是使机械能与电能相互转换的机械,直流电动机把直流电能变成机械能,其实物图见图2.11.图2.11直流电动机直流电机的主要功能是作为执行机电功能的动力元器件,其内部会存在一个闭合的主磁路。线圈产生的主磁通将会在主磁路中流动,同时会与电动机内部的两个主要电路相交联,其中的一个电路是通过电磁定律来产生磁通的,称为励磁绕组,而另一个电路是对外提供动力的,称为电枢回路。电动机必然会包括定子和转子,在直流电机中,励磁回路作为定子,电枢回路作为转子。2.6.2直流电动机的基本工作原理下图2.16是直流动机的工作原理图。在电刷A和电刷B外接直流电源的情况下,两个电刷及其与之相连的线圈内会产生电流。如果电刷A是连接的外接电源的正极,而电刷B则连接的外接电源的负电位时,那么由此所形成的效果将会是此时与N极磁铁相近的导体内的电流方向是由a指向b,而在在S极范围内导体内的电流流向是由c指向d。这样产生的效果是通电线圈会在磁场中受到电磁力的作用,由于上下两个导体所在磁场范围不同,所以两者所受的会相反。又由于N极和S极所产生的磁场相同的,上下两个导体又流经的相同的电流,所以a这两条边所受电磁力的将会是大小相等,方向相反。那么整个线圈就会受力转动。当线圈继续转动直到转到磁极的中性面上时,从图中可以看出,换向器将会与电刷脱离,那么线圈将不再与外接电源相连,所以此时线圈中并未有电流流过,电流为零的情况下即不会在产生电磁力。电磁力为零,也即磁场中的线圈不再受力的作用,但是由于惯性的作用,线圈继续转动。线圈继续转动直到恰好转过半周的位置上时,这个时候线圈一边ab边和线圈一边cd边的位置发生了调换,也即线圈的一条边ab转到了磁极S范围内,而线圈的另一条边cd边转到了磁极N的范围内,与此同时,此前与电刷相连接的换向器也发生了调换,所产生的后果就是线圈内流经电流的方向也发生了变化,cd边中的电流是d流向c,而ab边中的电流则是从b流向a。所以,整个线圈所受的电磁力的方向依然不变,仍然受力按逆时针方向转动。可见,分别处在N极和S极的范围内的导体中的电流总是不变的,因此在其范围内的线圈的受力方向也不发生变化,这样线圈就可以按照受力方向不停的旋转,通过齿轮获皮带等机构的转动,便可以带动其他机械的工作。图2.16直流电动机的原理图从以上的分析可以看出,要使线圈按照一定方向的旋转,关键问题是导体从一个磁极转到另外一个磁极时,导体中的电流方向也要同时改变煤,而上图所显示的换向器和电刷就是完成这一任务的装置。在直流电机中,换向器和电刷把输入的直流电变成线圈中的交流电,从而带动外部装置一个方向的转动。这就是直流电动机的基本原理。2.6.3直流电动机的驱动在本设计实验中,用单片机进行控制驱动直流电动机时,不能直接相连,需要增加驱动电路来进行电机的驱动,这样将会给直流电动机提供足够大的驱动电流。根据不同的直流电机,选择的驱动电流也不同。因此,我们根据实际需求来选择合适的驱动电路。一般有三种驱动电路:三极管电流放大驱动电路,电机专用驱动模块(如本实验所使用的L298N)和达林顿驱动器。如果是驱动单个电机,并且电机的驱动电流不大时,可以使用三极管搭建驱动电路,但是这样的电路连接比较复杂,所以本实验未采用此种方式。如果所需要的驱动电流较大,可以直接选用电机驱动模块,本实验即选用的双H桥电动机驱动芯片L298N,不仅能为本实验所使用的电机提供较大的驱动电流,而且接口简单,操作方便,较易使用,因此本实验采用此种电机的驱动方式。本设计所应用的原理分析3.1红外通信技术介绍本设计的信号发射与接收是使用的红外通信实现的,即通过红外发射芯片TC9012发射红外信号,而通过红外接收头HS0038进行接收并解码分析。而红外通信,就是通过红外线(波长范围0.7微米—1毫米)进行传输数据的一种通信方式。电脑技术发展的早期,数据传输都是通过线缆等实物介质完成的,比较麻烦。所以后来就出现了可以明显提高传输效率与质量的红外通信技术。红外通信技术实际上就是在两点之间利用红外技术进行一定距离以内的保密通信和信息转发的技术,用于红外发射和红外接收系统的装置是其基本的结构组成,而由发射和接收装置构成的系统称为红外通信系统。本设计设定的红外发射装置是红外发射芯片TC9012,而设定的红外接收装置是红外接收头HS0038。一般来讲,两个事物如果传递信息进行通信,必然会通过一定的渠道,也即信息通道,而红外通信所利用的通信信道是950纳米近红外线。红外通信装置的信息发射端将基带上的二进制信号调制为一系列脉冲序列串信号,然后通过红外发射管发射已变为脉冲序列的红外信号。红外通信装置的信息接收端将接收到的光脉冲转换为电信号,在经过放大滤波等处理后送给解调电路进行解调,还原为二进制数字信号后输出,这样就完成了一组红外通信。由于红外线遥控技术没有必要具有像无线电遥控技术那样穿过一系列的障碍物去控制被控对象的能力,因此通常在设计和选择红外线的信息发射和信息接收装置时,不必像无线电遥控器那样,发射器和接收器要有不同的遥控频率和编码,所以同类的红外线发射器和接收器,因此可以拥有相同的或者是相类似的遥控频率或者是控制编码,而不会出现像是无线电遥控通信时所产生的遥控信号“串门”的情况。3.2单片机的定时器中断3.2.1中断的基本概念在单片机处理指令的过程中,有些时候会产生中断。所谓的单片机的中断是指单片机的中央处理器在处理某一条指令A时,又接到了另外的一条指令B,请求处理器迅速去处理新接到的这条指令(中断发生);此时处理器将会暂时停止原来指令的处理(中断响应),而转去处理刚刚接到的那条指令(中断服务);待处理器将新近接到的那条指令处理完毕后,再回到原来接收原指令的地方继续处理未完成的原指令的处理(中断返回),这一过程称为中断。其流程图如图3.1所示。中断响应图3.1单片机中断过程中断响应主程序主程序中断请求中断请求执行主程序执行中断断点处理程序中断返回继续中断返回执行主程序单片机的CPU之所以会发生中断,是因为有中断源,中断源意即引起单片机CPU中断的根源,本设计实验所使用的51单片机内部一共有5个中断源,分别是:外部中断0(INT0),外部中断1(INT1),定时器/计数器0中断(T0),定时器/计数器1中断(T1),串行口中断(TX/RX)。3.2.2中断允许寄存器IE在单片机中,用来控制各个中断源的打开或关闭的寄存器是中断允许寄存器IE。IE寄存器的字节地址为A8H,位地址(由低位到高位)分别是A8H—AFH,各位定义见表3.1。表3.1中断允许寄存器位序号D7D6D5D4D3D2D1D0位符号EA——ESET1EX1ET0EX0位地址AFH——ACHABHAAHA9HA8H下面分列出各位符号的含义及赋值,为:EA——全局中断允许位,EA=1,打开全局中断控制,在此条件下,由各个中断控制位确定相应中断的打开或关闭,EA=0,关闭全部中断;———无效位;ES——串行口中断允许位,ES=1,打开出串行口中断,ES=0,关闭出串行口中断;ET1——定时器/计数器1中断允许位,ET1=1,打开T1中断,ET1=0,关闭T1中断;EX1——外部中断1中断允许位,EX1=1,打开外部中断1中断,EX1=1,关闭外部中断1中断;ET0——定时器/计数器0中断允许位,ET1=1,打开T0中断,ET1=0,关闭T0中断;EX0——外部中断0中断允许位,EX0=1,打开外部中断0中断,EX0=1,关闭外部中断0中断。3.2.2定时器/计数器工作方式寄存器TMOD定时器/计数器工作方式在特殊功能寄存器中,字节地址为89H,不能位寻址,TMOD用来确定定时器的工作方式及功能选择。单片机复位时TMOD全部清0,其各位定义见表3.2。表3.2定时器/计数器工作方式寄存器TMOD位序号D7D6D5D4D3D2D1D0位符号GATEM1M0GATEM1M0定时器1定时器0由表3.2可知,TMOD的高4设置定时器1,低4设置定时器0,对应4位的含义如下:GATE——门控制位,GATE=0,定时器/计数器启动与停止仅受TCON寄存器中的TRX(X=0,1)来控制,GATE=1,定时器/计数器启动与停止受TCON寄存器中的TRX(X=0,1)和外部中断引脚(INT0或INT1)来共同控制;——定时器模式和计数器模式选择位,=1,为计数器模式,=0,为定时器模式;M1M0——工作方式选择位,每个定时器/计数器都有4种工作方式,他们由M1M0设定,对应关系如表3.3所示。表3.3定时器/计数器的4种工作方式M1M0工作方式00方式0,为13位定时器/计数器01方式1,为16位定时器/计数器10方式2,8位初值自动重装的8位定时器/计数器11方式3,仅适用于T1,分成两个8位计时器,T1停止计数3.2.3定时器/计数器控制寄存器TCON在单片机中,用于控制定时器的启、停、标志定时器溢出和中断情况是定时器/计时器控制寄存器TCON,字节地址为88H,位地址(由低位到高位)分别是88H—8FH,其各位定义如表3.4。表3.4定时器/计数器控制寄存器TCON位序号D7D6D5D4D3D2D1D0位符号TF1TR1TF0TR0IE1IF0IE0IT0位地址8FH8EH8DH8CH8BH8AH89H88HTF1—定时器1溢出标志位,当定时器1计满溢出时,由硬件使TF1置1,并且申请中断。进入中断服务程序后,由硬件自动清0当查询到该位置1后,就需要用软件清0;TR1—定时器1运行控制位,由软件清0关闭定时器1,当GATE=1,且INT1为高电平时,TR1置1启动定时器1,当GATE=0时,TR1置1启动定时器1;TF0—定时器0溢出标志,其功能及操作方法同TF1;TR0—定时器0运行控制位,其功能及操作方法同TR1;IE1—外部中断1请求标志;当IT1=0时,为电平触发方式,每个机器周期的S5P2采样INT1引脚,若INT1脚为低电平,则置1,否则IE1清0;当IT1=1时,INT1为跳变延触发方式,当第一个机器采样周期采样到INT1为低电平时,则IE1=1;表示外部中断1正在向CPU请求中断。当CPU响应中断,转向中断服务程序时,该位由硬件清0;IT1—外部中断1触发方式选择位,IT1=0时,为电平触发方式,引脚INT1上低电平有效,IT1=1时,为跳变沿触发方式,引脚INT1上的电平从高到低的负跳变有效;IE0—外部中断0请求标志,其功能及操作方法同IE1;IT0—外部中断0触发方式选择位,其功能及操作方法同IT!。3.3脉冲宽度调制PWM(脉冲宽度调制),是英文“PulseWidthModulation”的缩写,简称脉宽调制,是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。随着电子技术的发展,出现了许多种PWM技术,其中包括:相电压控制PWM,PWM法、随机PWM、SPWM法、线电压控制PWM等。在直流电动机控制中采用的是PWM法,它是把每一脉冲宽度均相等的脉冲作为PWM波形,通过改变脉冲列的周期可以调频,改变脉冲的宽度或占空比可以调压,采用适当控制方法即可使电压与频率协调变化。可以通过调整PWM的周期、PWM的占空比而达到控制电流,进而达到对电动机的转速进行控制的目的。PWM是一种对模拟信号电平进行数字编码的方法。通过高分辨计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去。STC89C51单片机没有专门的PWM产生模块,但可以利用STC89C51单片机的定时器与I/O端口产生PWM信号。PWM信号包含两个参数:PWM信号的频率和PWM信号的占空比。所以需要两个定时器,其中一个用于控制PWM信号的频率,另一个用来控制PWM信号的占空比。具体实现方法:用到两个定时器,定时器0和定时器1.定时器0用来控制PWM的频率,工作在模式1下,定时器1用来调节占空比,工作在模式2下。查资料得知电动机工作的最佳频率为1KHz左右。初始化定时器0使其定时时间为1ms。在定时器0的中断函数里开启定时器1同时置位PWM的输出引脚,在定时器1的中断函数里复位PWM的输出引脚。这样就可以得到PWM信号了,PWM信号的频率等于定时器0定时时间的倒数,占空比等于定时器1的定时时间除以定时器2的定时时间。利用STC89C51单片机的定时器产生PWM信号的程序流程图如图3.2所示。图3.2定时器产生PWM信号的程序流程(a)定时器初始化程序(b)定时器0中断处理程序(c)定时器1处理中断程序关定时器1重新设定定时器0与定时器1的初值关定时器1重新设定定时器0与定时器1的初值初始化定时器0工作在模式1改变PWM输出引脚的电平为高改变PWM输出改变PWM输出引脚的电平为高改变PWM输出引脚的电平为低设定时器0定时时间为1ms开定时器1初始化定时器1开定时器1初始化定时器1工作在模式2开定时器中断开定时器中断开定时器0硬件设计4.1总体方案设计及框图首先,是利用红外信号发射装置的芯片TC9012,按下按键后将信号调制后发射出去,接收端芯片HS0038接收到信号后经过译码重复出之前的调制信号并将其发送给STC51单片机进行处理,从而实现按键远程的功能。然后,利用STC89C51单片机与L298双H桥专用电动机驱动芯片通信,驱动小型直流电动机,通过调节PWM波的占空比实现对电动机转速的控制。实现按键远程控制电动机转速的功能。本设计的设计框图如下,见图4.1。图4.1本实验的实验框图红外接收端发射端红外接收端发射端电动机驱动电路按键TC9012PWM输出STC89C51电动机驱动电路按键TC9012PWM输出STC89C51 4.2发射电路设计系统发射电路原理图如图4.2所示。图4.2系统发射电路原理图本设计实验的发射电路使用的红外发射芯片TC9012,使用3V的外接电源,,接到6脚上,使用455KHz的晶振,由8脚和9脚的晶振输入和晶振输出端接入,有5脚REM来进行带载波的信号输出,由11脚(LMP)连接LED显示灯、100欧电阻和3伏电源来作为信号发出的指示灯输出。而SEL引脚(20脚)与KO0相连,所以用户码的选择即S0、S1、S2、S4、S5、S6、S7分别为0、0、0、1、0、0、0、0,换算成十六进制为08H。按键与发射数据对应表见表4.1。表4.1按键与发射数据对应表按键发送数据K1(一级)08(用户吗)08(用户码)00(数据码)FF(数据码的反码)K2(二级)08(用户吗)08(用户码)01(数据码)FE(数据码的反码)K3(三级)08(用户吗)08(用户码)02(数据码)FD(数据码的反码)K4(四级)08(用户吗)08(用户码)03(数据码)FC(数据码的反码)K5(五级)08(用户吗)08(用户码)04(数据码)FB(数据码的反码)K6(关闭)08(用户吗)08(用户码)05(数据码)FA(数据码的反码) 4.3接收电路设计系统接收电路的原理图4.3所示。 图4.3系统接收电路原理图接收原理电路主要由三部分组成,分别是89C51单片机,红外接收头芯片HS0038,和双H桥电动机驱动芯片L298N以及直流电动机。红外接收头芯片HS0038用来接收红外信号,HS0038一共有三个引脚,其中1引脚接地,2引脚接+5伏电源,而3引脚作为信号输出引脚将从TC9012接收来的红外信号送至单片机进行解码输出。89C51单片机的闲置引脚处于最小系统下,即31引脚和40引脚(VCC)接5伏外接电源,9引脚(RST复位引脚)连接复位电路,使用上电复位的方式进行复位,在单片机最小系统中使用的是12MHz的晶振,通过18引脚(XTAL1晶振接入端)和19引脚(XTAL2晶振接出端)外接12MHz的晶振。将12引脚(即P3.2接口)作为HS0038芯片的3引脚发出的信号的接收接口,进而进行解码,并根据破解代码与设定代码的比较,单片机输出相应的控制信号,实现红外遥控功能。双H桥电动机驱动芯片L298N用来控制电动机的启、停及速度调节,9引脚(VSS)接5伏的电源电压,而4引脚(VS)接512伏的逻辑电源电压2引脚和3引脚作为输出引脚外接直流电动机。为了不使电动机由于惯性作用而对L298N产生瞬时的较高的反向使其烧坏,因而在输出端与地以及输出端与12伏的外接电源之间接快速反应二极管IN4007作为续流二极管。L298N是恒压恒流双H桥集成电动机芯片,可以同时控制两个直流电机,因此会有4个输出引脚,但是本设计实验只用到了1路H桥来控制一个直流电动机。由于STC89C51单片机没有专用PWM调制信号输出引脚,可以单片机普通I/O口加定时器用来模拟PWM输出,L298N的ENA(6引脚)与STC89C51单片机的P2.0接口相连,用P2.0接口模拟PWM作为调制信号。L298N的IN1(5引脚)和IN2(7引脚)分别与STC89C51单片机的P2.2接口和P2.1接口相连接,作为电动机方向控制。电动机控制方向引脚见表4.2。表4.2L298N控制引脚使能逻辑关系ENA(B)IN1(IN3)IN2(IN4)电动机运行情况HHL正转HLH反转H同IN2(IN4)同IN1(IN3)快速停止LXX停止软件设计该系统设计的软件基于C语言编写。程序是在KEIL公司集成开发环境上设计。实现红外信号的发射、接收、解码、输出等功能,保证了各个硬件模块协调运行,实现所设计的单片机功能。图5.1是解码程序流程图,上电之后,进行初始化,由接收装置进行接收数据,然后判断是否接收完3个数据,是的话就发送应答信号送出显示,如果不是的话返回继续数据。这一部分的程序为:while(c++<3);if(redata1[0]==redata1[1]) //地址码校验{if(redata1[2]==-remdata[[3])//数据码校验 { remdata=remdata1[2];//如果数据码校验通过,则保存到变量remdata }}remout:;其中,redata[4]为定义数据的数组。图5.2为接收程序总流程图,单片机上电后,各模块进入初始化状态,然后将接收到的红外数据保存至事先定义的变量remdata中,然后对其进行判断,然后得出相应的速度指令,如判断remdata是否为0x00,若是则指令风扇为一级转速,判断结束后继续接收数据保存至remdata重新进行判断。接收数据并进行判断的程序为:while(1){if(redata=0x00)//如果接收到的数据码为0x00 { //即按键K1按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=5;;//则一级转速控制输出开启 } else { if(redata=0x01)//如果接收到的数据码为0x01 { //即按键K2按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=0x1f;;//则二级转速控制输出开启 } else { if(redata=0x02)//如果接收到的数据码为0x02 { //即按键K3按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=0x4f;;//则三级转速控制输出开启 } else { if(redata=0x03)//如果接收到的数据码为0x03 { //即按键K3按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=0x6f;;//则四级转速控制输出开启 } else { if(redata=0x04)//如果接收到的数据码为0x04 { //即按键K4按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=0x7f;;//则五级转速控制输出开启,0x7f为Vlaue设定的最大值 } else { if(remdata=0x05)//如果接收的数据码为0x05 { MotorIn1=0; motorIn2=0; Value=0;//则风扇电动机停转 } } } } } }}} 图5.1解码程序流程图5.2接收程序总流程开始开始开始开始初始化初始化初始化初始化接收红外数据接收红外数据保存至remdataRemdata是否为0x00?Remdata是否为0x00?风扇一级转速风扇一级转速接收数据是是否接收完3个数据?否否是否接收完3个数据?Remdata是否为0x01?Remdata是否为0x01?风扇二级转速风扇二级转速否是否Remdata是否为0x02?Remdata是否为0x02?风扇三级转速发送应答信号风扇三级转速发送应答信号否送出显示送出显示否 Remdata是否为0x03?Remdata是否为0x03?风扇四级转速风扇四级转速否Remdata是否为0x04?Remdata是否为0x04?风扇六级转速Remdata是否为0x05?风扇五级转速是风扇六级转速Remdata是否为0x05?风扇五级转速否是第6章系统测试为了保证设计的系统能够正常的进行工作,对系统各个模块进行测试,各系统模块正常工作后,测试整个系统各模块协调工作性能。6.1测试工具直流稳压电源、普通及发光二极管、示波器等。6.2各功能模块的测试1、STC89C51单片机的最小系统板测试可正常工作,单片机可进行编程与仿真。系统电源供电测试端子测试为3.3V,电源指示灯工作。编程测试外部晶振,程序正常运行,示波器观测32.768KH晶振两端振荡波形正常。复位按键按下,单片机能够正常复位。单片机最小系统板工作正常。2、红外一体化接收头及红外发射装置的测试可利用图6.1所示的电路进行,在HS0038的电源端与信号输出端之间串联一只普通二极管和发光二极管,再配上规定的外接电源(+5伏),当手拿含TC9012芯片的遥控器对着接收头按任意键时,发光二极管会闪烁,说明红外接收头和遥控器工作都正常,如果发光二极管不闪烁发光,说明红外接收头和遥控器至少有一个损坏。图6.1HS0038测试图3、6.3模块软件测试及系统测试将整个系统各硬件模块测试完毕后,进行模块软件测试,即需要编写各模块驱动程序供系统编程时使用。模块软件测试完毕后,完整功能测试。6.4完整程序功能测试说明 系统的完整程序测试主要步骤为:将本系统设计进行安装调试,待上电正常后进入开机程序,系统检测各个硬件模块的工作是否正常,若正常后开始执行主程序。首先,主程序开始进行各模块初始化,初始化完成后进入外部中断0,用来解码数据,进行判断,之后进入定时器1调节占空比,之后进行数据的接收,各项测试系统均能正常执行。小型红外遥控风扇系统测试通过。结束语本系统设计是采用STC的8位51系列单片机STC89C51实现系统的设计,将由红外装置控制的风扇作为未来智能家居集成化控制的一次尝试。文中主要介绍了照明控制系统各个模块的主要装置以及所应用的原理,硬件设计以及软件实现流程等。经过系统测试和调试,风扇能够实现遥控器的控制。按下遥控器的K1键之后,风扇启动,并成一级转速转动。接着按下将遥控器的K2键之后,风扇成二级转速转动,接着按下将遥控器的K3键之后,风扇成三级转速转动,接着按下将遥控器的K4键之后,风扇成四级转速转动,接着按下将遥控器的K5键之后,风扇成5级转速转动,然后按下K6键则风扇停止转动,再次按键则风扇再次转动。整个电路的装置简便易得,电源使用外接的5伏电源。本次设计能够基本满足要求,经过实际测试应用数月后,得到使用者的肯定与赞许,但是有些方面还要改进,比如本设计所用的驱动电机的模块是L298N,这是一个双H桥的电机驱动芯片,即可以同时驱动2台直流电动机,但是在本设计实验中,只应用了其中的一个,有点资源的浪费,因此需要进一步改进,设计出更合理的方案。在比如,本设计产品只是实验类产品,只是原理应用类产品,距离真正的家居使用产品尚有一段距离,有些地方更需重新设计以更实用化,智能化。但是,本设计实验作为智能家居的部分尝试,还是取得了预期的效果,成本也能得到控制,成品较宜向市场推广。谢辞光阴荏苒,日月如梭,岁月在指尖悄然流逝,不知不觉般我走过四年的大学之路,即将踏入人生的另一段征程。回首这四年,有辛酸,有苦甜,而最为重要的则是我在这大学四年中的种种人生经历,不管是高兴下成功还是低落中失败,都将为我的性格重塑发挥作用,为我以后的社会经历埋下铺垫,都将影响我以后的人生生涯。再看这四年,我已然褪去了大一时青涩,蜕变成为了今天这个相对成熟些的大四毕业生。期间,经历种种让人难以忘怀的往事,有幸进入我校的创新实验室就是其中之一。早在大一刚入校时,我们就有幸参观过这个实验室,听杨老师讲解过,告诉我们来青岛大学自动化学院是幸运的,因为这里有个穿心实验室。如此在我的心中种下了萌芽,想要进入这个实验室学习。终于在第二年我们上大二的时候通过考核进入实验室,有了自己的分组,当时的感觉就是有了自己另外一个像宿舍一样的地方。可是十分可惜,大二时功课比较多,而且我还选了第二专业学习经济学,再加上一些琐事缠身,留在实验室里的时间很少了。后来,由于成绩下滑到了低谷,感到力不从心,就渐渐离开实验室,后来的一些活动也没有参加。总之,是我自己不努力造成的这些事情,现在回想起来,只能怪自己意志不坚定,让自己错失了那么多学习进步的机会,十分后悔。然而,上个学期末,杨老师不计较我之前在实验室的不辞而别,主动联系我,来做我毕业设计的指导老师,我十分感动,心想要以自己的一番行动来回报杨老师的期许。经过一番努力,本文终于得以完成。而细思本文能够完成,首先就应该感谢这篇论文的指导老师——杨艳老师,在这篇论文的选题、立题、撰写、修改方面,杨老师都给予了我较大的帮助,特别是让我明白了该怎样对待论文和该以什么样的姿态来完成这篇论文,这些都让我获益匪浅,对未来的人生态度也有一定的启发,在此表示衷心的感谢。同时,我还要感谢在我大学学习的这四年里,感谢我的舍友和同学,他们和我在这四年里一起学习,一起生活,一起进步,共同走过四年的大学生活,共同迈过这人生最青春的时光。四年间可能会有摩擦,亦或是隔阂,但是相聚的缘分早已让我们相逢一笑,抿去乐忧。虽然我们宿舍里的几个人在毕业之后路途迥异,我们之间有读研的,有去电网公司的,有去铁路部门的,还有考研复读的,但是我们彼此之间并未改变我们彼此的位置,依旧如故。在论文的完成中,我们也是互帮互助,把这一次论文的完成当成我们整个宿舍的一次知识的提高。而我的这篇论文中的原理图的完成,就得到我们宿舍的陈明帅同学的大力支持,非常感谢!最后,感谢在大学四年里所有教过我课的任课老师,是你们,教会了在大学里最需要的专业技能,让我的大学生活得以充实,有意义。让我为未来的人生道路积淀了重要的基础,谢谢!祝愿各位老师工作时顺顺心心、生活中美美满满!参考文献[1]郭天祥,新概念51单片机C语言教程——入门、提高、开发、拓展全攻略,电子工业出版社,2008[2]张元良,高艳,吕艳,郎庆阳,周志民,单片机综合设计实用教程,机械工业出版社,2013.8[3]万福君,潘松峰,刘芳,吴贺荣,王秀梅,MCS-51单片机原理、系统设计与应用,清华大学出版社,2008[4]李发海,朱东起,电机学,科学出版社,2013[5]张新,陈跃琴,51单片机应用开发,电子工业出版社——基于Proteus仿真,2013[6]李永东,脉宽调制(PWM)技术——回顾、现状及展望,《电气传动》,1996,[7]《数字社区&智能家居》编辑部,智能生活从指尖开始——家居智能化终端推荐专题,2008[8]王正勇,轻松实现DesignerAltium板极设计与数据管理,电子工业出版社,2013[9]孙旭才,L298N在直流电机PWM调速系统中的应用,潍坊学院学报,2009.7[10]许继彦,杜钦生,红外通信模块的设计与实现,长春大学学报,2009.10[11]张林,王春,刘志鹏,TC9012红外遥控发射集成电路的研究及其在MCS-51单片机的应用,《消费电子》,2013[12]聂诗良,李磊民,采用单片机发送并接收红外遥控信号的方法,《信息技术》,2004.2[13]谭浩强,C程序设计(第三版),清华大学出版社,2005.7附录/***********头文件*********/#include<reg51.h>#include<intrins.h>/***********引脚定义*********/sbitremin=P3^2; //红外信号输入引脚sbitPWM=P2^0; //电动机PWM控制输出引脚sbitMotorIn1=P2^1;//电动机方向控制引脚1sbitMotorIn1=P2^2;//电动机方向控制引脚2/***********全局变量定义*********/unsignedcharremdata=0xff;//定义变量,用来保存接收的数据码unsignedcharPWMFlag=0;unsignedcharValue=0;/***********主程序*********/main(){TMOD=0x20;TH1=0xa4;//100微妙中断一次TL1=0xa4;EA=1;//开总中断EX0=1;//允许外部中断ET1=1;//允许定时器1中断TR1=1;//开定时器1MotorIn1=0;MotorIn1=0;EA=EX0=1;while(1){if(redata=0x00)//如果接收到的数据码为0x00 { //即按键K1按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=5;;//则一级转速控制输出开启 } else { if(redata=0x01)//如果接收到的数据码为0x01 { //即按键K2按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=0x1f;;//则二级转速控制输出开启 } else { if(redata=0x02)//如果接收到的数据码为0x02 { //即按键K3按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=0x4f;;//则三级转速控制输出开启 } else { if(redata=0x03)//如果接收到的数据码为0x03 { //即按键K3按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=0x6f;;//则四级转速控制输出开启 } else { if(redata=0x04)//如果接收到的数据码为0x04 { //即按键K4按下 MotorIn1=0; MotorIn1=1; //风扇电动机正转 Value=0x7f;;//则五级转速控制输出开启,0x7f为Vlaue设定的最大值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 客运旅游公司运营管理制度
- 家族公司企业总部管理制度
- 对口片区幼儿园管理制度
- 小物品进出自动化设备管理制度
- 山西省餐厨垃圾管理制度
- 工地临时机械设备管理制度
- 幼儿园安全培训管理制度
- 幼儿园建立财产管理制度
- 幼儿园新冠舆情管理制度
- 幼儿园涉校车辆管理制度
- 陕西省专业技术人员继续教育2025公需课《党的二十届三中全会精神解读与高质量发展》20学时题库及答案
- 重庆万州区社区工作者招聘笔试真题2024
- 学习通《科研诚信与学术规范》课后及考试答案
- 陕09J01 建筑用料及做法图集
- PFMEA模板完整版文档
- 大理智能制造项目可行性研究报告模板
- 现代护理管理工具的应用.ppt
- 上海市基本医疗保险结算项目库动态维护细则
- 灼烫事故应急演练方案
- 徐文明技术集锦
- 新华字典(拼音)
评论
0/150
提交评论