《红外发射单片机通信电子电子设计_通信电子-电子设计.pdf》由会员分享,可在线阅读,更多相关《红外发射单片机通信电子电子设计_通信电子-电子设计.pdf(9页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、用 AT89S51 单片机制作红外电视遥控器 一般红外电视遥控器的输出都是用编码后串行数据对 3840kHz 的方波进 行脉冲幅度调制而产生的。当发射器按键按下后,即有遥控码发出,所按的键不同遥控编码也不同。这 种遥控码具有以下特征:采用脉宽调制的串行码,以脉宽为 0.565ms、间隔 0.56ms、周期为 1.125ms 的组合表示二进制的“0”;以脉宽为 0.565ms、间隔 1.685ms、周期为 2.25ms 的组合表示二进制的“1”。上述“0”和“T 组成的 32 位二进制码经 38kHz 的载频进行二次调制,然 后再通过红外发射二极管产生红外线向空间发射。一般电视遥控器的遥控编码是
2、 连续的 32位二进制码组,其中前 16 位为用户识别码,能区别不同的红外遥控设 备,防止不同机种遥控码互相干扰。后 16 位为 8 位的操作码和 8 位的操作反码,用于核对数据是否接收准确。根据红外编码的格式,发送数据前需要先发送 9ms 的起始码和 4.5ms 的结果 码。遥控串行数据编码波形如下图所示:_ _ Iinniuuuinnimnnnrwmmoirwwif pfilg II I LI(I k I !L I I t II!_ L I!I I i!L I I_丄 I”I LLI.!L Lil(I”接收方一般使用 TL0038 一体化红外线接收器进行接收解码,当 TL0038 接收 到
3、38kHz 红外信号时,输出端输出低电平,否则为高电平。所以红外遥控器发送 红外信号时,参考上面遥控串行数据编码波形图,在低电平处发送 38kHz 红外信 号,高电平处则不发送红外信号。单片机红外电视遥控器电路图如下:/红外发射管的亮灭/延时计数器 endcount;flag;C51 程序代码:#inelude static bit OP;static un sig ned int count;static un sig ned int static un sig ned char sbit P3_2=P3A2;char iraddrl;II十六位地址的第一个字节 char iraddr2;I
4、I十六位地址的第二个字节 void SendlRdata(char p_irdata);void delay();il R1 匸 9K vcc|Di TRLEE 班2 560 vcc X o+C3 22uF 严 r-站 二二 Cl-C2 30pF SI 1 2 3 4 J Y1 J IT TF IT IT TT IT IT IT IF W 20 U1-P1.0 vcc Pl.l PO O(ADO)-Pl.2 PO 1(ADI)-Pl.3 P0.2(AD2)-Pl.4 P0.3(AD3)-Pl.5 PO 4(AD4)-Pl 6 POJ5(AD5)Pl 7 PO 6(ADS):-RST P0.7(
5、AD7)-(RXD)P3.0 EA/VPP (TXD)P3.1 ALEJPROO -(INTO)P3.2 PSEN-(INTI)P3.3 P2.7(A 15)-(TO)P3.4 P2.6(A14)-(T1)P3,5 P2.5(A 13)-(WR)P3.6 P2.4(A 12)-(RB)P3.7 P2.3(A11)-XTAL2 P2.2(A10)-XTAL1 P21(A9)-GND P20(AS)AT3PS51 39 33 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 21|vcc vcc 40T 生的当发射器按键按下后即有遥控码发出所按的键不同遥控编
6、码也不同这种遥控码具有以下特征采用脉宽调制的串行码以脉宽为间隔周期为的组合表示二进制的以脉宽为间隔周期为的组合表示二进制的上述和组成的位二进制码经的制码组其中前位为用户识别码能区别不同的红外遥控设备防止不同机种遥控码互相干扰后位为位的操作码和位的操作反码用于核对数据是否接收准确根据红外编码的格式发送数据前需先发送的起始码和的结果码遥控串行数据编码波高电平所以红外遥控器发送红外信号时参考上面遥控串行数据编码波形图在低电平处发送红外信号高电平处则不发送红外信号单片机红外电视遥控器电路图如下严匸班站二二程序代码红外发射管的亮灭延时计数器十六位地址的第一void main(void)count=0;f
7、lag=0;OP=0;P3_2=0;EA=1;/允许 CPU 中断 TMOD=0 x11;/设定时器 0 和 1 为 16 位模式 1 ET0=1;/定时器 0 中断允许 TH0=OxFF;TL0=0 xE6;/设定时值 0 为 38K 也就是每隔 26us 中断一次 TR0=1;/开始计数 iraddr1=3;iraddr2=252;do delay();Sen dlRdata(12);while(1);/定时器 0 中断处理 void timeint(void)interrupt 1 TH0=0 xFF;TL0=0 xE6;/设定时值为 38K 也就是每隔 26us 中断一次 coun t
8、+;if(flag=1)OP=OP;else 生的当发射器按键按下后即有遥控码发出所按的键不同遥控编码也不同这种遥控码具有以下特征采用脉宽调制的串行码以脉宽为间隔周期为的组合表示二进制的以脉宽为间隔周期为的组合表示二进制的上述和组成的位二进制码经的制码组其中前位为用户识别码能区别不同的红外遥控设备防止不同机种遥控码互相干扰后位为位的操作码和位的操作反码用于核对数据是否接收准确根据红外编码的格式发送数据前需先发送的起始码和的结果码遥控串行数据编码波高电平所以红外遥控器发送红外信号时参考上面遥控串行数据编码波形图在低电平处发送红外信号高电平处则不发送红外信号单片机红外电视遥控器电路图如下严匸班站二
9、二程序代码红外发射管的亮灭延时计数器十六位地址的第一 OP=0;P3_2=OP;void SendlRdata(char p_irdata)int i;char irdata=p_irdata;/发送 9ms 的起始码 en dcou nt=223;flag=1;coun t=0;do while(countendcount);/发送 4.5ms 的结果码 endcoun t=117 flag=0;coun t=0;do while(countendcount);/发送十六位地址的前八位 irdata=iraddr1;for(i=0;i8;i+)/先发送 0.56ms 的 38KHZ 红外波(
10、即编码中 0.56ms 的低电平)en dco un t=10;flag=1;coun t=0;do while(countendcount);/停止发送红外信号(即编码中的高电平)if(irdata-(irdata/2)*2)/判断二进制数个位为 1 还是 0 生的当发射器按键按下后即有遥控码发出所按的键不同遥控编码也不同这种遥控码具有以下特征采用脉宽调制的串行码以脉宽为间隔周期为的组合表示二进制的以脉宽为间隔周期为的组合表示二进制的上述和组成的位二进制码经的制码组其中前位为用户识别码能区别不同的红外遥控设备防止不同机种遥控码互相干扰后位为位的操作码和位的操作反码用于核对数据是否接收准确根据
11、红外编码的格式发送数据前需先发送的起始码和的结果码遥控串行数据编码波高电平所以红外遥控器发送红外信号时参考上面遥控串行数据编码波形图在低电平处发送红外信号高电平处则不发送红外信号单片机红外电视遥控器电路图如下严匸班站二二程序代码红外发射管的亮灭延时计数器十六位地址的第一en dcou nt=41;1 为宽的高电平 else endcount=15;0 为窄的高电平 flag=0;coun t=0;do while(count1;/发送十六位地址的后八位 irdata=iraddr2;for(i=0;i8;i+)en dco un t=10;flag=1;coun t=0;do while(co
12、untendcount);if(irdata-(irdata/2)*2)en dco un t=41;else en dco un t=15;flag=0;coun t=0;do while(count1;/发送八位数据 生的当发射器按键按下后即有遥控码发出所按的键不同遥控编码也不同这种遥控码具有以下特征采用脉宽调制的串行码以脉宽为间隔周期为的组合表示二进制的以脉宽为间隔周期为的组合表示二进制的上述和组成的位二进制码经的制码组其中前位为用户识别码能区别不同的红外遥控设备防止不同机种遥控码互相干扰后位为位的操作码和位的操作反码用于核对数据是否接收准确根据红外编码的格式发送数据前需先发送的起始码和
13、的结果码遥控串行数据编码波高电平所以红外遥控器发送红外信号时参考上面遥控串行数据编码波形图在低电平处发送红外信号高电平处则不发送红外信号单片机红外电视遥控器电路图如下严匸班站二二程序代码红外发射管的亮灭延时计数器十六位地址的第一irdata=p_irdata;for(i=0;i8;i+)en dco un t=10;flag=1;coun t=0;do while(countendcount);if(irdata-(irdata/2)*2)en dco un t=41;else en dco un t=15;flag=0;coun t=0;do while(count1;/发送八位数据的反码
14、irdata=p_irdata;for(i=0;i8;i+)en dco un t=10;flag=1;coun t=0;do while(countendcount);if(irdata-(irdata/2)*2)en dco un t=41;else en dco un t=15;生的当发射器按键按下后即有遥控码发出所按的键不同遥控编码也不同这种遥控码具有以下特征采用脉宽调制的串行码以脉宽为间隔周期为的组合表示二进制的以脉宽为间隔周期为的组合表示二进制的上述和组成的位二进制码经的制码组其中前位为用户识别码能区别不同的红外遥控设备防止不同机种遥控码互相干扰后位为位的操作码和位的操作反码用于核
15、对数据是否接收准确根据红外编码的格式发送数据前需先发送的起始码和的结果码遥控串行数据编码波高电平所以红外遥控器发送红外信号时参考上面遥控串行数据编码波形图在低电平处发送红外信号高电平处则不发送红外信号单片机红外电视遥控器电路图如下严匸班站二二程序代码红外发射管的亮灭延时计数器十六位地址的第一 flag=O;coun t=0;do while(count1;en dco un t=10;flag=1;coun t=0;do while(countendcount);flag=0;void delay()int i,j;for(i=0;i400;i+)for(j=0;j100;j+)制作的实物如下
16、图所示:1、引言 红外通信是目前比较常用的一种无线数据传输手段,其具有无污染、信息传 输稳定、信息安全性高以及安装使用方便等优点,并且可以在很多场合应用,如 家电产品,工业控制、娱乐设施等领域。红外通信是利用 950nm 近红外波段的 红外线作为传递信息的载体,通过红外光在空中的传播来传递信息,由红外发射 器和接收器实现。发射端将二进制数字信号调制成某一频率的脉冲序列,经电光 转换电路,驱动红外发射管 以光脉冲的形式发送到空中。接收端将接收到的光脉冲转换成电信号,再经解调 和译码后恢复出原二进制数字信号。本文设计了一种基于单片机 PIC18F248 的主从式红外通信系统,主要设计了红外接口电路
17、以及主机和从机 通信软件流程。2、系统硬件电路设计 在主从式红外通信系统中,主机及从机的红外发射电路相同,红外线的载波 频率生的当发射器按键按下后即有遥控码发出所按的键不同遥控编码也不同这种遥控码具有以下特征采用脉宽调制的串行码以脉宽为间隔周期为的组合表示二进制的以脉宽为间隔周期为的组合表示二进制的上述和组成的位二进制码经的制码组其中前位为用户识别码能区别不同的红外遥控设备防止不同机种遥控码互相干扰后位为位的操作码和位的操作反码用于核对数据是否接收准确根据红外编码的格式发送数据前需先发送的起始码和的结果码遥控串行数据编码波高电平所以红外遥控器发送红外信号时参考上面遥控串行数据编码波形图在低电平
18、处发送红外信号高电平处则不发送红外信号单片机红外电视遥控器电路图如下严匸班站二二程序代码红外发射管的亮灭延时计数器十六位地址的第一都为 38KHz,在同一时间内,可以是主机发射,从机接收;或者从机发射,主机接收。2.1 红外发射电路设计 红外发射器电路主要由单片机,驱动管 Q1 和 Q2、红外发射管 D1 等组成,电路如下:WJC Bai Si红外发射电路 红外发射器工作原理为:单片机通过 I/O 端口控制整个发射过程。其中,红 外载波信号采用频率为 38KHZ 的方波,由 PIC18F248 的*模块的 PWM 功能实 现,并由*1端口传输到三极管 T2 的基极。待发送到数据由单片机的 TX
19、 端口以串行方式送出并驱动三极管 Q1,当TX 为“0”使 Q1 管导通,通过 Q2 管采用脉宽调制(PWM)方式调制成 38KHZ 的载波信号,并由红外发射管 D1 以光脉冲的形式向外发送。当 TX 为“1 时使 Q1 管截止,Q2 管也截止,连接 Q1 和 Q2 的两个上拉电阻 R1 和 R3 把三极管的基极拉成高电平,分别保证两个三极管可靠截止,红外发 射管D1 不发射红外光。因此通过待发送数据的“(或“僦可控制调制后两个脉 冲串之间的时间间隔,即调制 PWM 的占空比。比如若传送数据的波特率为 1200bps,则每个数位“(就对应 32 个载波脉冲调制信号。红外发射管 D1 采用 TS
20、AL6200 红外发射二极管,其实现将电信号转变成一定频率的红外光信号,它发射一种时断时续的高频红 外脉冲信号,由于脉冲串时间长度是恒定的,根据脉冲串之间的间隔大小就可以 确定传输的数据是“(还是“。2.2 红外接收电路设计 红外接收电路主要采用 Vishay 公司的专用红外接收模块 HS0038B。接收电路及 HS0038B 内部结构如下:生的当发射器按键按下后即有遥控码发出所按的键不同遥控编码也不同这种遥控码具有以下特征采用脉宽调制的串行码以脉宽为间隔周期为的组合表示二进制的以脉宽为间隔周期为的组合表示二进制的上述和组成的位二进制码经的制码组其中前位为用户识别码能区别不同的红外遥控设备防止
21、不同机种遥控码互相干扰后位为位的操作码和位的操作反码用于核对数据是否接收准确根据红外编码的格式发送数据前需先发送的起始码和的结果码遥控串行数据编码波高电平所以红外遥控器发送红外信号时参考上面遥控串行数据编码波形图在低电平处发送红外信号高电平处则不发送红外信号单片机红外电视遥控器电路图如下严匸班站二二程序代码红外发射管的亮灭延时计数器十六位地址的第一 vcc vcc 生的当发射器按键按下后即有遥控码发出所按的键不同遥控编码也不同这种遥控码具有以下特征采用脉宽调制的串行码以脉宽为间隔周期为的组合表示二进制的以脉宽为间隔周期为的组合表示二进制的上述和组成的位二进制码经的制码组其中前位为用户识别码能区别不同的红外遥控设备防止不同机种遥控码互相干扰后位为位的操作码和位的操作反码用于核对数据是否接收准确根据红外编码的格式发送数据前需先发送的起始码和的结果码遥控串行数据编码波高电平所以红外遥控器发送红外信号时参考上面遥控串行数据编码波形图在低电平处发送红外信号高电平处则不发送红外信号单片机红外电视遥控器电路图如下严匸班站二二程序代码红外发射管的亮灭延时计数器十六位地址的第一
限制150内