您的位置 首页 分销

根据89C52与DT9122D红外遥控用数码管显现

本实验是89C52与DT9122D红外遥控的键值显示在数码管上,希望对朋友们有帮助,程序如下:includereg52h>includeintrinsh>typedefuns

本试验是89C52DT9122D红外遥控的键值显现在数码管上,期望对朋友们有协助,程序如下:

#include
#include
typedefunsigned int uint;
typedefunsigned char uchar;

uchar code smg_tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//数码管段码0~F

sbit IRINPUT=P3^2;//红外线接纳头端口

uchar IR_Input_Buffer[]={0x00,0x00,0x00,0x00};
uchar Display_Buffer[]={0x00,0x00};//数码管显现缓冲
//————————————————-/
//函数功用:延时函数(MS)              /
//进口参数:x/
//出口函数:无/
//————————————————/
void _delay_ms(uint x)
{
uchar i;
while(x–)for(i=0;i<120;i++);
}
//————————————————-/
//函数功用:延时函数(140US)           //
//进口参数:x//
//出口函数:无//

void _delay_us(uint x)
{
uchar i;
while(x–)
for(i=0;i<13;i++);
}
//————————————————-/
//函数功用:中止0初始化             /
//进口参数:无//
//出口函数:无//

void IR_INT0(void)
{
EX0=1;
IT0=1;
EA=1;
}
//————————————————/
//函数功用:显现函数(把接纳到数据显现在数码管)   /
//进口参数:无/
//出口函数:无  /
//————————————————/
void Show_IR_Input_Value(void)
{
P2=0x7f;
P0=smg_tab[Display_Buffer[0]];
_delay_ms(2);
P2=0xbf;
P0=smg_tab[Display_Buffer[1]];
_delay_ms(2);
}
//————————————————–/
//函数功用:主函数(程序进口)            /
//进口参数:无/
//出口函数:无  /
//————————————————/
void main(void)
{
IR_INT0();
IRINPUT=1;
while(1)
{
Show_IR_Input_Value();
}
}
//————————————————–/
//函数功用:外部中止0函数             /
//进口参数:无/
//出口函数:无  /
//————————————————-/
void Display_IR_Input_Value(void) interrupt 0//红外遥控信号进行键值解码和纠错.
{

uchar i,j,k,N=0;
EX0=0;
_delay_us(15);
for(i=0;i<14;i++)
{
if(IRINPUT)
{
EX0=1;
return;
}
}
while(!IRINPUT)
_delay_us(1);
for(j=0;j<4;j++)
{
for(k=0;k<8;k++)
{
while(IRINPUT)
_delay_us(1);
while(!IRINPUT)
_delay_us(1);
while(IRINPUT)
{
_delay_us(1);
N++;
if(N>=30)
{
EX0=1;
return;
}
}
IR_Input_Buffer[j]=IR_Input_Buffer[j]>>1;
if(N>=8)
IR_Input_Buffer[j]=IR_Input_Buffer[j]|0x80;
N=0;
}
}
if(IR_Input_Buffer[2]!=~IR_Input_Buffer[3])
{
EX0=1;
return;
}
Display_Buffer[0]=IR_Input_Buffer[2]&0x0f;
Display_Buffer[1]=IR_Input_Buffer[2]>>4;
EX0=1;
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/fenxiao/257779.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部