制作出來的實物圖如下:
PIC100623234819.jpg (631 KB, 下載次數(shù): 51)
下載附件
2021-7-13 14:52 上傳
PIC100623234510_副本.jpg (1.26 MB, 下載次數(shù): 48)
下載附件
2021-7-13 14:51 上傳
流程圖.jpg (23.21 KB, 下載次數(shù): 50)
下載附件
2021-7-13 14:52 上傳
PIC100623234510_副本.jpg (1.26 MB, 下載次數(shù): 63)
下載附件
2021-7-13 14:52 上傳
電路原理圖如下:
51hei.png (43.11 KB, 下載次數(shù): 57)
下載附件
2021-7-13 15:29 上傳
單片機源程序如下:
uchar IRcode[6]; //48位的鍵代碼
uchar Total; //接收到的計數(shù)
#define IRMAX 108
uint xdata IRcodeTime[IRMAX];
uchar xdata IRgraph[16];
uchar xdata IRgrapl[16];
uint xdata DispTime[2];
uchar ST;
sbit IRsignal=P3^2;
//采用定時中斷計時。當外部中斷電平由高變低時中斷響應(yīng),讀取定時器的時間值并保存,//然后等待外部中斷電平變高,再讀取定時器的值并保存。如此循環(huán)。直到定時器溢出3次
//后(>180ms)則本次接收結(jié)束。通過設(shè)定的參數(shù),對本次接收到的時間進行分析解碼。
void IR_ISR(void) interrupt 0 using 1
{
TR0=0;
if(Total<IRMAX) //取低電平時間
IRcodeTime[Total++]= TH0*256+TL0;
TH0 = 0;
TL0 = 0;
TR0=1;
while(!IRsignal); //等待電平變高
TR0=0;
if(Total<IRMAX) //取高電平時間
IRcodeTime[Total++]= TH0*256+TL0;
TH0 = 0;
TL0 = 0;
TR0=1;
TR2=0;
}
void Timer0_ISR() interrupt 1 using 3
{
if(++ST>3) //延時大于180ms接收停止結(jié)束
{
TR0=0;
TH0=0x00;
TL0=0x00;
TR2=1;
}
}
//IRgraph IRgraplg兩數(shù)組的一位對應(yīng)一個像素點,高電平為顯示,低電平不顯示
void Time_Graph(void) //時間換波圖形
{
uchar i,j,or;
uint mult;
if(Grp.Mult) //Grp.Mult 為顯示比例
mult=Grp.Mult * 50;
else
mult=10;
for(i=Grp.Max;i<IRMAX;i++)
{
IRcodeTime[ i]=0;
}
if(Grp.Wab>(Grp.Max>>1))
Grp.Wab=0;
or=Grp.Wab * 2 + 1;
for(i = 0; i < 16; i++)
{
IRgraph[ i]=0x00;
IRgrapl[ i]=0x00;
}
DispTime[0]=IRcodeTime[or]; //本次顯示波形的起始時間
DispTime[1]=IRcodeTime[or+1];
for(i = 0;i < 128;)
{
if(Grp.Max > or)
j = IRcodeTime[or++] / mult;
else
break;
if(j<2)j = 2;
while(j-- && i<128)
{
IRgraph[i / 8] |= 0x80 >> (i % 8);
i++;
}
if(i < 128)
IRgraph[i / 8] |= 0x80 >> (i % 8);
if(Grp.Max>or)
j = IRcodeTime[or++] / mult;
else
break;
if(j<2)j = 2;
while(j-- && i<128)
{
IRgrapl[i / 8] |= 0x80 >> (i % 8);
i++;
}
if(i < 128)
IRgrapl[i / 8] |= 0x80 >> (i % 8);
}
IRgrapl[0] |= 0x80;
for(i=127;i>0;i--) //沒顯示的部分全顯示低
{
if(!(IRgraph[i / 8] & (0x80 >> (i % 8))))
IRgrapl[i / 8] |= 0x80 >> (i % 8);
else
{
if(i!=127)IRgrapl[i / 8] |= 0x80 >> (i % 8);
break;
}
}
}
全部資料51hei下載地址:
源程序.rar
(98.76 KB, 下載次數(shù): 87)
2021-7-13 14:52 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
原理圖.7z
(39.21 KB, 下載次數(shù): 58)
2021-7-13 15:31 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|