您的位置 首页 汽车

315M单片机无线解码–HS2262

发上程序前记一个C语言小知识,免得下次犯同样错误!unsignedchari=0x01;i=i1+1;其结果i的值为4,而不是3。C语言除法运算中,余…

发上程序前记一个C言语小常识,以免下次犯相同过错!

unsigned char i=0x01;
i=i<<1+1;
其成果i的值为4,而不是3。
C言语除法运算中,余数的符合要求和被除数的符号共同,比方:2/(-2); 成果为FF(-1), 2%(-2)=0
/********************************************************/
#include
unsigned char counter=0;
unsigned char Receive[3];
sbit RemPin=P0^0;
static bit flag=0;
sbit LED=P2^0;
sbit LED1=P2^5;
void delay( )
{
unsigned char i;
for(i=0;i<50;i++);
}
void delay_nms(unsigned int n)
{
unsigned int i=0,j=0;
for (i=n;i>0;i–)
for (j=0;j<1140;j++);
}
void scan()
{
unsigned char i=0;
unsigned char j=0;
unsigned char Time=10;
unsigned int count=0;
Receive[0]=Receive[1]=Receive[2]=0;
while(–Time)
{
count=0;
while(RemPin)
{
count++;
delay();
if(count>30)
{
break;
}
}
if((count>25)||(count<10))
{
continue;
}
count=0;
while(!RemPin)
{
count++;
delay( );
if(count>660)
{
break;
}
}
if((count>655)||(count<600))
{
continue;
}
count=0;
for(j=0;j<3;j++)
{
for(i=0;i<8;i++)
{
while(RemPin);
count=0;
while(!RemPin)
{
count++;
delay( );
if(count>=85)
{
return;
}
}
if((count>15)&&(count<42))
{
//counter=count;
Receive[j]=Receive[j]<<1;
Receive[j]=Receive[j]+0x01;
}
else if((count>45)&&(count<75))
{
Receive[j]=Receive[j]<<1;
//counter=count;
}
else
{
//LED1=~LED1;
Receive[0]=Receive[1]=Receive[2]=0;
counter=count;
return;
}
while(RemPin);
}
}
flag=1;
//LED=~LED;
}
}
void main()
{
while(1)
{
scan();
//P1=counter;
if(flag)
{
flag=0;
P1=Receive[2];
P1=~P1;
delay_nms(100);
}
}
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/266759.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部