51单片机红外发射程序
时间: 2023-08-11 22:06:44 浏览: 43
以下是51单片机红外发射程序的示例代码:
```c
#include <reg51.h>
#define IR_OUT P0 // 红外发射输出口
void delay_us(unsigned int us) // 微秒级延时函数
{
while(us--);
}
void ir_send(unsigned char dat) // 发送一个字节的红外数据
{
unsigned char i;
for(i=0; i<8; i++)
{
if(dat & 0x01) // 发送高电平
{
IR_OUT = 0; // 低电平
delay_us(560);
IR_OUT = 1; // 高电平
delay_us(1690);
}
else // 发送低电平
{
IR_OUT = 0; // 低电平
delay_us(560);
IR_OUT = 1; // 高电平
delay_us(560);
}
dat >>= 1;
}
}
void main()
{
unsigned char code data[] = {0x12, 0x34, 0x56}; // 要发送的数据
unsigned char i;
while(1)
{
for(i=0; i<3; i++)
{
ir_send(data[i]); // 发送一个字节的数据
}
delay_us(100000); // 延时100ms
}
}
```
该程序使用了P0口作为红外发射输出口,发送的数据为0x12、0x34、0x56。程序中使用了微秒级延时函数,需要根据实际情况进行调整,以保证发送的红外数据正确。
阅读全文