单片机模拟红外遥控器发射的C语言程序
//********************************************单片机红外发射*******************************************
#include "reg52.h"
sbit ir=P1^0;//红外发射管控制脚,使用24M晶振
sbit ka=P2^0;
sbit kb=P2^1;
unsigned int count, set_count; //中断计数,设定中断次数
bit irflag,keyflag; //红外发送标志位,按键标志位
unsigned char irsys[]={0x00,0xff};//16位用户码
unsigned char irdata,ircode; //发送的红外数据
//---------------------------------------------------------------------------
void delay(unsigned int a)//延时约1ms,晶振24M ,此处延时不需很精确
{
unsigned char i;
while(--a!=0)
for(i=300;i>0;i--); //若是12M晶振i=125
}
//---------------------------------------------------------------------------
void keyscan() // 按键扫描
{
if(ka==0){keyflag=1;irdata=0x0a;} //a键按下,则发射数据0x0a
if(kb==0){keyflag=1;irdata=0x0b;} //b键按下,则发射数据0x0b
}
//---------------------------------------------------------------------------
void ir_sendbyte() //红外发送一个字节数据
{
unsigned char i;
for(i=0;i<8;i++) //发送8位数据
{
set_count=43;//35; //发送编码中的0.56ms高电平 (//后为12M晶振下的数值)
本内容试读结束,登录后可阅读更多
下载后可阅读完整内容,剩余4页未读,立即下载