基于89C52单片机功放的设计(尹东东)(6)

2019-02-15 13:43

聊城大学本科毕业论文(设计)

{

wela1=0,wela2=1,wela3=0;

P0=dula[a]; delayms(2);

wela1=0,wela2=0,wela3=1;

P0=dula[b]; delayms(2);

} }

void time0 () interrupt 1 using 1//定时器0中断服务函数

{

irtime++; //用于计数2个下降沿之间的时间

}

void ex0 () interrupt 0 using 0//外部中断0服务函数

{

static uchar i; //接收红外信号处理 static bit startflag; //是否开始处理标志位

if(startflag)

{

if(irtime<63&&irtime>=33)//引导码 TC9012的头码,9ms+4.5ms

i=0;

irdata[i]=irtime;//存储每个电平的持续时间,用于以后判断是0还是1

irtime=0; i++; if(i==33) { irok=1; i=0; }

} else

{irtime=0;startflag=1;}

}

void TIME0init()//定时器0初始化

{

TMOD=0x02;//定时器0工作方式2,TH0是重装值,TL0是初值

TH0=0x00; //重载值 TL0=0x00; //初始化值

ET0=1; //开中断

TR0=1;

}

void EX0init()

22

聊城大学本科毕业论文(设计)

{

IT0 = 1; //指定外部中断0下降沿触发,INT0 (P1.0)

EX0 = 1; //使能外部中断 EA = 1; //开总中断

}

void Ir_work()//红外键值散转程序

{

switch(IRcord[2])//判断第三个数码值

{

// case 0:P0=dofly[1];break;//1 显示相应的按键值

// case 1:P0=dofly[2];break;//2 /* case 2:P0=dula[2];break; case 3:P0=dula[3];break;*/

case 0:num++;

if(num>=16) num=16; break;// 1按键音量加 case 3: if(num<=0) //当到0时重新归零

num=0; else

num--; break;//4按键 音量减

// case 4:P0=dofly[5];break;//5

case 5:jidianqi=~jidianqi;break;// 5按键开机

// case 6:P0=dofly[7];break;//7 // case 7:P0=dofly[8];break;//8 // case 8:P0=dofly[9];break;//9 // case 9:P0=dofly[0];break;

}

irpro_ok=0;//处理完成标志

}

void Ircordpro()//红外码值处理函数

{

uchar i, j, k; uchar cord,value;

k=1;

for(i=0;i<4;i++) //处理4个字节

{

for(j=1;j<=8;j++) //处理1个字节8位

{

cord=irdata[k]; if(cord>7)

{

value=value|0x80;

} else {

23

聊城大学本科毕业论文(设计)

value=value;

} if(j<8) {

value=value>>1;

} k++; }

IRcord[i]=value;

value=0; }

irpro_ok=1;//处理完毕标志位置1

}

void vc() //数字音量

{

if(num==0||jidianqi==0)

{

voicec=1;vc1=0;vc2=0;vc3=0;vc4=0;

} if(num==1)

{

voicec=0;vc1=0;vc2=0;vc3=0;vc4=0;

} if(num==2)

{

voicec=0;vc1=0;vc2=0;vc3=0;vc4=1;

} if(num==3)

{

voicec=0;vc1=0;vc2=0;vc3=1;vc4=0;

} if(num==4)

{

voicec=0;vc1=0;vc2=0;vc3=1;vc4=1;

} if(num==5)

{

voicec=0;vc1=0;vc2=1;vc3=0;vc4=0;

} if(num==6)

{

voicec=0;vc1=0;vc2=1;vc3=0;vc4=1;

} if(num==7)

24

聊城大学本科毕业论文(设计)

{

voicec=0;vc1=0;vc2=1;vc3=1;vc4=0;

} if(num==8)

{

voicec=0;vc1=0;vc2=1;vc3=1;vc4=1;

}

if(num==9)

{

voicec=0;vc1=1;vc2=0;vc3=0;vc4=0;

} if(num==10)

{

voicec=0;vc1=1;vc2=0;vc3=0;vc4=1;

} if(num==11)

{

voicec=0;vc1=1;vc2=0;vc3=1;vc4=0;

} if(num==12)

{

voicec=0;vc1=1;vc2=0;vc3=1;vc4=1;

} if(num==13)

{

voicec=0;vc1=1;vc2=1;vc3=0;vc4=0;

} if(num==14)

{

voicec=0;vc1=1;vc2=1;vc3=0;vc4=1;

} if(num==15)

{

voicec=0;vc1=1;vc2=1;vc3=1;vc4=0;

} if(num==16)

{

voicec=0;vc1=1;vc2=1;vc3=1;vc4=1;

} } void hongwaijc()

{

25

聊城大学本科毕业论文(设计)

if(irok) //如果接收好了进行红外处理

{ Ircordpro(); irok=0; }

if(irpro_ok) //如果处理好后进行工作处理,如按对应的按键后显示对应的数字等

{ Ir_work();

} }

void main()

{

EX0init(); //初始化外部中断 TIME0init(); //初始化定时器

while(1) { keyscan(); delayms(2); hongwaijc(); delayms(2);

display(); delayms(2);

vc(); delayms(2);

} }

26


基于89C52单片机功放的设计(尹东东)(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《水仙子·咏江南》公开课教案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: