红外线通信是日前使用比较广泛的一种通信手段。由十红外线通信具有体积小、功耗低、功能强、成木低等特点,因一而,继彩电、录像机之后,在录音机、音响设备、空调机以及玩具等其它小型电器装置上一也纷纷采用红外线通信技术。工业设备中,在高压、辐射、有毒气体、粉尘等环境下,采用红外线通信技术不仅完全可靠一而.目.能有效地隔离电气干扰。而单片机是日前设计应用中用得比较广泛的器件,它可以通过软件编程来达到不同的效果,实现一各种一各样不同的功能,具有.灵活性强、可靠性高,可扩展性好等优点。
木文所要介绍的内容就是如何利用单片机,结合红外线器件设计构达出一套简易的车载红外线通信系统,以实现在中短距离内的红外无线通信的功能。与一般通用的红外遥控器不同的是它不是利用专用的编解码芯片来实现发收端的编解码,而是应用C51单片机,通过单片机的编、解码程序来实现红外信号的发收,从一而实现红外遥控通信功能。此通信系统经过一些必要的扩展,完全可以实现通用和各种专用红外遥控器的功能。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include <reg51.h>
- #include"wait.h"
- #define uchar unsigned char
- #define uint unsigned int
- sbit rev=P3^1;
- sbit baoj=P3^7;
- uchar aa=0,bb=0;
- uchar sz[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- void display(uchar dz)
- {
- P2=dz;
- switch(dz)
- {
- case 0xf: P1=sz[0];
- break;
- case 0x1e: P1=sz[1];
- break;
- case 0x2d: P1=sz[2];
- break;
- case 0x3c: P1=sz[3];
- break;
- case 0x4b: P1=sz[4];
- break;
- case 0x5a: P1=sz[5];
- break;
- case 0x69: P1=sz[6];
- break;
- case 0x78: P1=sz[7];
- break;
- }
- }
- uchar read()
- {
- uchar dat=0,i=0,j=0;
- while(i<8)
- {
- while(rev==0);
- j++;
- wait_600();
- if(rev==1)
- {
- dat++;
- wait_900();
- }
- if(i<7)
- dat=dat<<1;
- i++;
- }
- i=0;
- return dat;
- }
- void recieve() interrupt 0
- {
- uchar dz;
- EX0=0;
- while(rev==1);
- dz=read();
- //display(dz);
- if(dz==0xb4)
- {
- baoj=0;
- dz=read();
- display(dz);
- EX0=1;
- baoj=1;
- }
- else
- {
- EX0=1;
- return;
- }
- }
- int main()
- {
- TMOD=0x11;//定时器0,1设置为方式1,16位定时器
- ET0=0;
- ET1=0;
- EA=1;
- EX0=1;
- baoj=1;
- while(1);
- return 0;
- }
复制代码
所有资料51hei提供下载:
红外光通信.rar
(75.51 KB, 下载次数: 54)
|