这是一个简单的红外解码程序,是针对9ms起始码和4.5ms结束码的红外信号晶振用的是11.0592M的
#i nclude
#i nclude
sfr p0=0x80;
sfr p3=0xb0;
sbit p32=p3^2;
unsigned char dm,i,j,k;
unsigned char data a[4];//定义4个数组,用来存储代码
void ds0_9ms(void)
{
unsigned char j,k;
for(j=18;j>0;j--)
for(k=20;k>0;k--) ;
}
void ds1ms(void)
{
unsigned char i,j;
for(i=2;i>0;i--)
for(j=230;j>0;j--) ;
}
void ds4_5ms(void)
{
unsigned char i,j;
for(i=10;i>0;i--)
for(j=225;j>0;j--) ;
}
void ds2s(void)
{
unsigned char i,j,k;
for(i=200;i>0;i--)
for(j=200;j>0;j--)
for(k=10;k>0;k--) ;
}
void main()
{
IT0=1;
EX0=1;
EA=1;
dm=0;
ds2s();
p0=0;
while(1);
}
void t0(void) interrupt 0 using 2//外部中断0的函数
{
EA=0;
for(k=0;k<10;k++)
{
ds0_9ms();
if (p32==1) {k=10;break;}
else if(k==9)
{
while(p32==0);
ds4_5ms();
for(i=0;i<4;i++)
{
for(j=1;j<=8;j++)
{
while(p32==0);
ds0_9ms();
if(p32==1)
{ds1ms();
dm=dm|0x80;
if(j<8) dm=dm>>1;
}
else if(j<8)dm=dm>>1;
}
a[i]=dm;
dm=0;
}
for(i=0;i<4;i++)
{
p0=a[i];
ds2s();
}
}
}
p0=0;
EA=1;
}
上一篇:C51编写菜单的例子
下一篇:AT89C51音乐盒
推荐阅读最新更新时间:2024-03-16 15:21
设计资源 培训 开发板 精华推荐
- 等值现金悬赏,等你揭榜!
- 有奖直播:基于GaN 的高频(1.2MHz)高效率 1.6kW 高密度临界模式 (CrM) 图腾柱功率因数校正 (PFC)转换器的应用介绍
- 恩智浦无线MCU应用征集+100套开发套件申请
- 下载白皮书 答题赢好礼|TE《智能监控应用连接解决方案指南》
- 双旦抢楼送祝福活动
- EDI CON 2020 门票免费领
- 有奖直播|瑞萨电子 Arm MCU 的新能源进击:RA6T2
- 有奖直播:安森美汽车热管理e- Compressor 应用
- 下载有礼喽!2017年泰克亚太专家大讲堂第三期: 超宽带复杂电磁信号产生与实时分析技术
- 有奖直播|安森美图像传感器,助力汽车、机器视觉和人工智能领域发展