[学士]基于AT89C51单片机红外遥控系统毕业设计 - secret - 图文(9)

2019-09-02 13:28

毕业设计 // /***********初始化函数**********/ clearmen() {

remoteout=0; //关遥控输出

IE=0x00; IP=0x01;

TMOD=0x22; //8位自动重装模式 TH1=0xf3; //40KHZ初值 TL1=0xf3;

EA=1; //开总中断 }

/**********发射函数************/ sed() {

ET1=1;TR1=1;delay1ms(3);ET1=0;TR1=0;remoteout=0;//40KHZ发3毫秒 for(m=keyvol;m>0;m--) {

delay1ms(1); //停1毫秒

ET1=1;TR1=1;delay1ms(1);ET1=0;TR1=0;remoteout=0; //40KHZ发1毫秒 }

delay1ms(10); } // tx() {

switch(keyvol) {

case 0:keyvol=keyvol+1;sed();break; case 1:keyvol=keyvol+1;sed();break; case 2:keyvol=keyvol+1;sed();break; case 3:keyvol=keyvol+1;sed();break; case 4:keyvol=keyvol+1;sed();break; case 5:keyvol=keyvol+1;sed();break; case 6:keyvol=keyvol+1;sed();break; case 7:keyvol=keyvol+1;sed();break; case 8:keyvol=keyvol+1;sed();break; case 9:keyvol=keyvol+1;sed();break; case 10:keyvol=keyvol+1;sed();break; case 11:keyvol=keyvol+1;sed();break; case 12:keyvol=keyvol+1;sed();break;

36

毕业设计 case 13:keyvol=keyvol+1;sed();break; case 14:keyvol=keyvol+1;sed();break; case 15:keyvol=keyvol+1;sed();break; default:break; } } // //

/**********键功能函数************/ keywork() {

keyvol=0x00;key1=0xf0;if(key0!=0xff) {delay1ms(20);if(key0!=0xff) {while(key0!=0xff);

key1=0xfe;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i;tx();}} }

else{key1=0xfd;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+8;tx();}} }} //

key1=0xfb;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+16;tx();}} } //

key1=0xf7;if(key0!=0xff){for(i=0;i<8;i++){if(~key0==keyv[i]){keyvol=i+24;tx();}} } } } } // //

/***********主函数***************/ main() {

clearmen(); //初始化

while(1) {

keywork(); //按键扫描 } } // //

37

毕业设计 /*********40KHZ发生器***********/ // 定时中断T1

void time_intt1(void) interrupt 3 {

remoteout=~remoteout; } // //

//*********************结束**************************// 附录2:接收程序 /*********************************************************************/

// incept.c

// 遥控接收处理器

// LRM 2010.4.22 /*********************************************************************/

//使用AT89C52单片机,12MHZ晶振, //

//#pragma src(E:\\remote.asm) #include \

#include \#define uchar unsigned char #define uint unsigned int #define disout P1

sbit remotein=P3^1; // 遥控输入 sbit sin=P3^0; //基准正弦波相位输入 sbit AA=P0^0; sbit BB=P0^1; sbit CC=P0^2; sbit DD=P0^3; sbit EE=P0^4; sbit FF=P0^5; sbit GG=P0^6; sbit HH=P0^7; sbit II=P2^0; sbit JJ=P2^1; sbit KK=P2^2; sbit LL=P2^3; sbit MM=P2^4; sbit NN=P2^5;

38

毕业设计 sbit PP=P2^6; sbit QQQ=P2^7; // //

uint i,j,m,n,k,s=1;

uint keyvol; //值存放 // ////

/*********1毫秒延时程序**********/ delay1ms(uint t) {

for(i=0;i

for(j=0;j<120;j++) ; } //

/***********初始化函数**********/ clearmen() {

EX0=1;

EA=1; //} // // //

/**********函数************/ loop() {

switch(disout&0x07) {

case 0:{s=1;break;} case 1:{s=2;break;} case 2:{s=3;break;} case 3:{s=4;break;} case 4:{s=5;break;} case 5:{s=6;break;} case 6:{s=7;break;} case 7:{s=8;break;} default:break;} } // //

/***********主函数***************/

39

开总中断 毕业设计 main() {

clearmen(); //初始化 loop(); P2=0xfe; while(1) {

while(sin==1); delay1ms(s);

QQQ=0;delay1ms(1);QQQ=1; } } // //

/************外中断遥控接收函数**************/ //外中断0

void intt0(void) interrupt 0 {

EX0=0;keyvol=0; if(remotein==0) {delay1ms(1); if(remotein==0) {while(1)

{while(remotein==0); keyvol++;k=0;

while(remotein==1){delay1ms(1);k++;if(k>2){ goto OOUUTT;};} } OOUUTT:

switch(keyvol) {

case 2:{AA=~AA;break;} case 3:{BB=~BB;break;} case 4:{CC=~CC;break;} case 5:{DD=~DD;break;} case 6:{EE=~EE;break;} case 7:{FF=~FF;break;} case 8:{GG=~GG;break;} case 9:{HH=~HH;break;} case 10:{PP=~PP;break;} case 11:{NN=~NN;break;} case 12:{MM=~MM;break;} case 13:{LL=~LL;break;} case 14:{KK=~KK;break;} case 15:{JJ=~JJ;break;}

40


[学士]基于AT89C51单片机红外遥控系统毕业设计 - secret - 图文(9).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:高级分析工理论考试试题库(高职)

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

马上注册会员

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