標題: 51單片機的紅外遙控接收程序 為什么接收端沒有顯示? [打印本頁]
作者: 夢想的方向 時間: 2022-11-20 14:16
標題: 51單片機的紅外遙控接收程序 為什么接收端沒有顯示?
接收程序
#include<AT89X51.h>
#define uchar unsigned char
#define uint unsigned int
uchar data IRcode[4]; //定義一個4字節的數組用來存儲代碼
uchar CodeTemp; //編碼字節緩存變量
uchar i,j,k; //延時用的循環變量
uchar dat=0;
uchar num;
uint time;
sbit led1=P1^0;
sbit led2=P1^1;
sbit led3=P1^2;
sbit led4=P1^3;
sbit led5=P1^4;
sbit led6=P1^5;
sbit led7=P1^6;
sbit led8=P1^7
sbit IRsignal=P3^2; //HS0038接收頭OUT端直接連P3.2(INT0)
void delay(uint z);
void delay(uint z)
{
uint a,b;
for(a=z;a>0;a--)
for(b=120;b>0;b--);
}
/**************************延時0.9ms子程序**********************/
void Delay0_9ms(void)
{uchar j,k;
for(j=18;j>0;j--)
for(k=20;k>0;k--) ;
}
/***************************延時1ms子程序**********************/
void Delay1ms(void)
{uchar i,j;
for(i=2;i>0;i--)
for(j=230;j>0;j--) ;
}
/***************************延時4.5ms子程序**********************/
void Delay4_5ms(void)
{uchar i,j;
for(i=10;i>0;i--)
for(j=225;j>0;j--) ;
}
/**************************** 延時子程序 ************************/
/************************中斷0解碼服務子程序**********************/
void int0(void) interrupt 0 using 2
{
EX0=0;
P3_0=!P3_0;
num=0;
for(k=0;k<4;k++)
{
Delay0_9ms();
if (IRsignal==1) //如果0.9ms后IRsignal=1,說明不是引導碼
{
k=4;
break; //P0=0XFF;
}
else if(k==2) //如果持續了3×0.9ms=9ms的低電平,說明是引導碼
{
//P0=0;
time=0;
num=0;
while(IRsignal==0);
//if(IRsignal==0)
// num+=1;
// P1=num;
// while(IRsignal==0);
while(time<100)
{
time++;
Delay0_9ms(); //跳過持續1ms的高電平
Delay0_9ms(); //跳過持續1ms的高電平
if(IRsignal==0)
{
P0=num;
num+=1;
//P1=num;
}
while(IRsignal==0);
}
if(num==1)
led1=!led1;
if(num==2)
led2=!led2;
if(num==3)
led3=!led3;
if(num==4)
led4=!led4;
if(num==5)
led5=!led5;
if(num==6)
led6=!led6;
if(num==7)
led7=!led7;
if(num==8)
led8=!led8;
break;
// delay(2);
}
}
EX0=1;
}
void init()// 定時器初始化
{
TMOD=0x11;
EA=1;
IT0=1; //INT0為負邊沿觸發, (1:負邊沿觸發,0:低電平觸發)
EX0=1; //外部中斷INT0開, (1:開, 0:關 )
CodeTemp=0; //初始化紅外編碼字節緩存變量
}
main()
{
init();
while(1)
{
}
}
求求各位大佬看看我這個為什么接收端沒有顯示
-
51hei截圖20221120141625.png
(169.78 KB, 下載次數: 78)
下載附件
2022-11-20 14:16 上傳
作者: 夢想的方向 時間: 2022-11-20 14:36
對于這個網上找了很久了 有點頭大了
作者: taotie 時間: 2022-11-20 15:19
看看這語句末尾
sbit led8=P1^7 <———— 缺點什么?????
作者: 夢想的方向 時間: 2022-11-20 19:24
有點不太理解
作者: dyx811 時間: 2022-11-20 19:41
應該是解碼環節出了問題。NEC編解碼有點復雜。
但是你用單片機寫發送碼,哪跟編碼還有一定關系。
編解碼要一致。
我沒有仔細研究過代碼,但就這是這個思路。
作者: 51hei**1140 時間: 2022-11-20 20:53
1、晶振用的多少,是否合適
2、收發程序都發上來
3、用示波器觀察波形,是怎樣波形
作者: 夢想的方向 時間: 2022-11-20 22:45
晶振用的都是38KHZ 發射程序也放上來了 人都要麻了 發射那里波形出來 然后接收模塊都不動的
作者: 夢想的方向 時間: 2022-11-20 22:47
作者: 145678 時間: 2022-12-6 13:24
sbit led8=P1^7 <—— 缺了一點什么
作者: 145678 時間: 2022-12-6 13:24
sbit led8=P1^7 <————缺一點什么

作者: 虛心的帥哥 時間: 2022-12-7 12:07
sbit led8=P1^7 <——缺點什么
| 歡迎光臨 (http://m.raoushi.com/bbs/) |
Powered by Discuz! X3.1 |