📄 main.c.bak
字号:
// KeyControl application
// 2007.8.17 by Ericosn
#include <REG51.h>
#define uchar unsigned char
#define uint unsigned int
sbit P20 = P2^0;
sbit P21 = P2^1;
sbit P22 = P2^2;
sbit P23 = P2^3;
sbit P24 = P2^4;
sbit P25 = P2^5;
sbit P26 = P2^6;
sbit P27 = P2^7;
sbit P00 = P0^0;
sbit P06 = P0^6;
sbit P07 = P0^7;
uchar Flag1 = 0,Flag2 = 0,Flag3 = 0,Flag4 = 0,Flag5 = 0;
uchar FlagTimer1 = 0,FlagTimer2 = 0,FlagTimer3 = 0,FlagTimer4 = 0,FlagTimer5 = 0;
uchar idata Buffer1[10] = {0x80,0x00,0xFA,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1,0xF1};
uchar idata Buffer2[10] = {0x80,0x00,0xFA,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2,0xF2};
uchar idata Buffer3[10] = {0x80,0x00,0xFA,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3,0xF3};
void init(void);
void SCI_Tx(char Buf[],uchar n);
void main(void)
{
init();
while(1){
//按键处理
if (Flag1==1)
{
Flag1=2;
SCI_Tx(Buffer1,10);
}
if (Flag2==1)
{
Flag2=2;
SCI_Tx(Buffer2,10);
}
if (Flag3==1)
{
Flag3=2;
SCI_Tx(Buffer2,10);
}
if (Flag4==1)
{
Flag4=2;
SCI_Tx(Buffer3,10);
}
if (Flag5==1)
{
Flag5=2;
SCI_Tx(Buffer1,10);
}
}
}
///////////////////////////////////////////////////////////////
void init(void)
{
TMOD = 0x21;
TH1 = 0xFD;
TL1 = 0xFD;
TH0 = 0x4C;
TL0 = 0x00;
SCON = 0x50;
IE |= 0x82;
// IP |= 0x02;
TR0 = 1;
TR1 = 1;
}
///////////////////////////////////////////////////////////////
//
void SCI_Tx(char Buf[],uchar n)
{
while(n){
SBUF = Buf[10-n];
while(TI==0);
TI = 0;
n--;
}
}
///////////////////////////////////////////////////////////////
//
///////////////////////////////////////////////////////////////
//Timer0 50ms interrupt
void timer0(void) interrupt 1 using 1
{
bit Sample;
TH0 = 0x4C;
TL0 = 0x00;
if(Flag1==0)
{
Sample = P20;
if(Sample==0)
{
FlagTimer1++;
if(FlagTimer1>2)
{
Flag1=1;
FlagTimer1=0;
P00 = 0;
}
}
else FlagTimer1=0;
}
if(Flag1==2)
{
Sample = P20;
if(Sample==1)
{
FlagTimer1++;
if(FlagTimer1>2)
{
Flag1=0;
FlagTimer1=0;
P00 = 1;
}
}
else FlagTimer1=0;
}
if(Flag2==0)
{
Sample = P21;
if(Sample==0)
{
FlagTimer2++;
if(FlagTimer2>2)
{
Flag2=1;
FlagTimer2=0;
P00 = 0;
}
}
else FlagTimer2=0;
}
if(Flag2==2)
{
Sample=P21;
if(Sample==1)
{
FlagTimer2++;
if(FlagTimer2>2)
{
Flag2=0;
FlagTimer2=0;
P00 = 1;
}
}
else FlagTimer2=0;
}
if(Flag3==0)
{
Sample = P22;
if(Sample==0)
{
FlagTimer3++;
if(FlagTimer3>2)
{
Flag3=1;
FlagTimer3=0;
P00 = 0;
}
}
else FlagTimer3=0;
}
if(Flag3==2)
{
Sample= P22;
if(Sample==1)
{
FlagTimer3++;
if(FlagTimer3>2)
{
Flag3=0;
FlagTimer3=0;
P00 = 1;
}
}
else FlagTimer3=0;
}
if(Flag4==0)
{
Sample = P23;
if(Sample==0)
{
FlagTimer4++;
if(FlagTimer4>2)
{
Flag4=1;
FlagTimer4=0;
P00 = 0;
}
}
else FlagTimer4=0;
}
if(Flag4==2)
{
Sample = P23;
if(Sample==1)
{
FlagTimer4++;
if(FlagTimer4>2)
{
Flag4=0;
FlagTimer4=0;
P00 = 1;
}
}
else FlagTimer4=0;
}
if(Flag5==0)
{
Sample = P24;
if(Sample==0)
{
FlagTimer5++;
if(FlagTimer5>2)
{
Flag5=1;
FlagTimer5=0;
P00 = 0;
}
}
else FlagTimer5=0;
}
if(Flag5==2)
{
Sample = P24;
if(Sample==1)
{
FlagTimer5++;
if(FlagTimer5>2)
{
Flag5=0;
FlagTimer5=0;
P00 = 1;
}
}
else FlagTimer5=0;
}
}
/*
///////////////////////////////////////////////////////////////
//Serial port transceive interrupt
void serial(void) interrupt 4 using 2
{
uchar temp;
if(RI&(!RcvFlag)){
RI = 0;
}
if(TI){
TI=0;
//the Tx interrupt processing code
}
}
*/
//END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -