?? 紅外收發.c
字號:
/*-----------------------------------------------
名稱:99秒計時器
日期:2009.5
修改:無
內容:
*紅外測試程序,用單片機通過發射管發射38K的調制頻率碼,由一體化接收并解碼由發光管顯示。
*正常情況下,由于反射和高靈敏度接收,LED4(P1.3)一直閃爍,可以用黑色紙片完全遮擋接收頭使
*之不能接收到發射管的信號,這是LED4熄滅。說明功能性正常
------------------------------------------------*/
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義
sbit LED=P3^3; //紅外發射
sbit LED1=P1^3;
sbit IR=P3^2; //紅外一體化接收
bit Flag;
void Init_Timer0(void)
{
TMOD |= 0x01;
TH0=0xf0; /* Init value */
TL0=0x00;
EA=1; /* interupt enable */
ET0=1; /* enable timer0 interrupt */
TR0=1;
}
/******************************************************************/
/* 定時器0初始化 */
/******************************************************************/
void Timer0_isr(void) interrupt 1 using 1
{
TH0=0x0f; /* Init value */
TL0=0x00;
Flag=!Flag;
}
/******************************************************************/
/* 主函數 */
/******************************************************************/
main()
{
unsigned int j;
Init_Timer0(); //定時器初始化
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 + -