?? 紅外收發.c
字號:
//紅外收發測試程序
//用單片機通過發射管發射38K的調制頻率碼,一體化接收并解碼,由發光管顯示。正常情況下,由于反射和高靈敏度接收,LED4(P1.3)一直
//閃爍,可以用黑色紙片完全遮擋接收頭使之不能接收到發射管的信號,這時LED4熄滅,說明功能正常。
#include <reg52.h>
sbit LED=P3^3; //紅外發射
sbit LED1=P1^3; //定義P1.3口為LED1
sbit IR=P3^2; //紅外一體化接收
bit Flag;
//定時/計數器T0初始化子程序
void Init_Timer0(void)
{
TMOD=0x01; //定時/計數器T0為方式1,16位計數器
TH0=0xF0; //計數器賦初值為0F000H
TL0=0x00;
EA=1; //CPU開總中斷
ET0=1; //開T0中斷
TR0=1; //定時/計數器T0啟動
}
//定時/計數器T0的中斷服務子程序
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x0F; //計數器賦初值為0F00H
TL0=0x00;
Flag=!Flag;
}
//主程序
void main()
{
unsigned int j;
Init_Timer0(); //調用定時/計數器T0初始化子程序
while(1)
{
LED1=IR; //讀取一體化接收頭數值
if(Flag)
{
for(j=0;j<27;j++) //大約38KHz
{
LED=!LED; //發射管輸出
}
}
}
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -