1 / 3
文档名称:

2831.CX3多功能家居控制系统及应用设计 红外发送.doc

格式:doc   页数:3页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

2831.CX3多功能家居控制系统及应用设计 红外发送.doc

上传人:智客网 2011/11/19 文件大小:0 KB

下载得到文件列表

2831.CX3多功能家居控制系统及应用设计 红外发送.doc

文档介绍

文档介绍:/********************************************************************
/*状态标志为0时,后一个字节表示数据脉冲为低电平
/*状态标位为1时,后一个字节表示数据脉冲为高电平
/*80个数据发送完毕后,定时6秒。(32个高低电平判断位,32个脉冲电平持/*续的时间数据,高与低电平数据位的总和校验。)
/*6秒等待后继续判断标志位是否为“1”,是1则退出。否则继续发送数据。
/********************************************************************
sbit P25=p2^5;
#define M 80
unsigned char dm,i,j,k,st,t,h,m,l;
unsigned char data a[M],sd,ds; //定义数组,用来存储从AT24C08中读取的代码
snsigned char int tt,ss,uu;
void ds9ms(void) //9ms时间高电平
{
 unsigned char i,j;
   for(i=18;i>0;i--)
{
P25=1;
for(j=225;j>0;j--) ;
}
 }
void ds4_5ms(void) //
{ //表示识别头信号
 unsigned char i,j;
   for(i=9;i>0;i--)
{
P25=0;
for(j=225;j>0;j--) ;
}
}
sbitflag( unsigned char flag)
{
while( flag==0 ) // 检查状态标志
{
ds9ms( );
ds4_5ms( );
h=M;
while( (h--)-- ) //将读取的数据发射完
{
If(a[--M]==0) //状态位为0则输出低电平
{
sd=0;
ds=a[M--]; //用来给输出定时器T1赋值
m++;
}
if(a[ --M ]==1) //状态位为1则输出高电平
{
sd=1;
ds=a[M--]; //用来给定时器T1赋值
l++;
}
If(h==0)
{
m=m+l;
ds=m; //对数据位的总和来进行判断
}
/*************************************************************
/*数据发射完,定时6秒钟
/*************************************************************
 for(tt=6