?? incept.c
字號:
// 遙控接收處理器
//使用AT89C52單片機,12MHZ晶振,
//
//#pragma src(E:\remote.asm)
#include "reg51.h"
#include "intrins.h" //_nop_();延時函數用
//
#define char unsigned char
#define int 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;
sbit PP=P2^6;
sbit QQQ=P2^7;
//
//
int i,j,m,n,k,s=1;
int keyvol; //值存放
//
////
/*********1毫秒延時程序**********/
delay1ms(int t)
{
for(i=0;i<t;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;}
}
//
//
/***********主函數***************/
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;}
case 16:{II=~II;break;}
case 17:{if(disout==0x00){disout=0xff;}else{disout--;}loop();break;}
default:break;
}
}
}
EX0=1;
}
//
//
//*********************結束**************************//
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -