51单片机C语言编程.docx
《51单片机C语言编程.docx》由会员分享,可在线阅读,更多相关《51单片机C语言编程.docx(64页珍藏版)》请在冰点文库上搜索。
51单片机C语言编程
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitLED=P1^0;
voidDelayMS(uintx)
{
uchari;
while(x--)
{
for(i=120;i>0;i--);
}
}
voidmain()
{
while
(1)
{
LED=~LED;
DelayMS(150);
}
}
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
voidDelayMS(uintx)
{
uchari;
while(x--)
{
for(i=120;i>0;i--);
}
}
voidmain()
{
P0=0xFE;
while
(1)
{
P0=_crol_(P0,1);
DelayMS(150);
}
}
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
voidDelayMS(uintx)
{
uchart;
while(x--)
{
for(t=120;t>0;t--);
}
}
voidmain()
{
uchari;
P2=0x01;
while
(1)
{
for(i=7;i>0;i--)
{
P2=_crol_(P2,1);
DelayMS(150);
}
for(i=7;i>0;i--)
{
P2=_cror_(P2,2);
DelayMS(150);
}
}
}
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodePattern_P0[]=
{
0xfc,0xf9,0xf3,0xe7,0xcf,0x9f
};
ucharcodePattern_P2[]=
{
0xf5,0xf6,0xfe,0x54,0x56,0x76,0xd7,0x49,0xa9,0xe4,0xc6
};
voidDelayMS(uintx)
{
uchart;
while(x--)
{
for(t=120;t>0;t--);
}
}
voidmain()
{
uchari;
while
(1)
{
for(i=136;i>0;i--)
{
P0=Pattern_P0[i];
P2=Pattern_P2[i];
DelayMS(150);
}
}
}
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitRED_A=P0^0;
sbitYELLOW_A=P0^1;
sbitGREEN_A=P0^2;
sbitRED_B=P0^3;
sbitYELLOW_B=P0^4;
sbitGREEN_B=P0^5;
ucharFlash_Count=0;
Operation_Type=1;
voidDelayMS(uintx)
{
uchart;
while(x--)
{
for(t=120;t>0;t--);
}
}
voidTraffic_lignt()
{
switch(Operation_Type)
{
case1:
RED_A=1;YELLOW_A=1;GREEN_A=0;
RED_B=0;YELLOW_B=1;GREEN_B=1;
DelayMS(2000);
Operation_Type=2;
break;
case2:
DelayMS(200);
YELLOW_A=~YELLOW_A;
if(++Flash_Count!
=10)
return;
Flash_Count=0;
Operation_Type=3;
break;
case3:
RED_A=0;YELLOW_A=1;GREEN_A=1;
RED_B=1;YELLOW_B=1;GREEN_B=0;
DelayMS(2000);
Operation_Type=4;
break;
case4:
DelayMS(200);
YELLOW_B=~YELLOW_B;
if(++Flash_Count!
=10)
return;
Flash_Count=0;
Operation_Type=1;
break;
}
}
voidmain()
{
while
(1)
{
Traffic_lignt();
}
}
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0x82,0xf8,0x80,0x90,0xff
};
voidDelayMS(uintx)
{
uchart;
while(x--)
for(t=120;t>0;t--);
}
voidmain()
{
uchari=0;
P0=0x00;
while
(1)
{
P0=~DSY_CODE[i];
i=(i+1)%10;/*显示0-9*/
DelayMS(200);
}
}
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
voidDelayMS(uintx)
{
uchari;
while(x--)
{
for(i=200;i>0;i--);
}
}
voidmain()
{
uchari,k=0x80;
while
(1)
{
for(i=8;i>0;i--)
{
P2=0xff;
k=_crol_(k,1);
P0=DSY_CODE[8-i];
P2=k;
DelayMS(3);
}
}
}
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
voidDelayMS(uintx)
{
uchart;
while(x--)
{
for(t=120;t>0;t--);
}
}
voidmain()
{
uchark,m=0x80;
P0=0xff;
P2=0x00;
while
(1)
{
for(k=0;k<8;k++)
{
m=_crol_(m,1);
P2=m;
P0=DSY_CODE[k+1];
DelayMS
(2);
}
}
}
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
ucharcodeDSY_IDX[]=
{
0x01;0x02;0x04;0x08;0x10;0x20;0x40;0x80
}
voidDelayMS(uintx)
{
uchart;
while(x--)
{
for(t=120;t>0;t--);
}
}
voidmain()
{
uchark,m;
P0=0xff;
P2=0x00;
while
(1)
{
for(k=0;k<30;k++)
{
for(m=0;m<8;m++)
{
P2=codeDSY_IDX[k];
P0=DSY_CODE[m];
DelayMS
(2);
}
}
P2=0x00;
DelayMS(1000);
}
}
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90
};
ucharNum[]=
{
10,10,10,10,10,10,10,10,2,9,8
};
voidDelayMS(uintx)
{
uchart;
while(x--)
{
for(t=120;t>0;t--);
}
}
voidmain()
{
uchari,j,k,m;
P0=0xff;
P2=0x00;
m=0x80;
k=0;
while
(1)
{
for(i=0;i<15;i++)
{
for(j=0;j<8;j++)
{
m=_crol_(m,1);
P2=m;
P0=DSY_CODE[Num[(k+j)%11]];
DelayMS
(2);
}
}
k=(k+1)%11;
}
}
#include
#defineucharunsignedchar
#defineuintunsignedint
voidDelayMS(uintx)
{
uchart;
while(x--)
{
for(t=0;t<120;t--);
}
}
voidmain()
{
uchark,t,Key_State;
P0=0xff;
P1=0xff;
while
(1)
{
t=P1;
{
DelayMS(10);
if(t!
=P1)
continue;
Key_State=~t>>4;
k=0;
while(Key_State!
=0)
{
k++;
Key_State>>=1;
}
switch(k)
{
case1:
if(P0==0x00)
P0=0xff;
P0<<=1;
DelayMS(200);
break;
case2:
P0=0xf0;
break;
case3:
P0=0x0f;
break;
case4:
P0=0xff;
}
}
}
}
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff
};
ucharcodeDSY_Index[]=
{
0x80,0x40,0x20,0x10,0x08,0x04,0x02,0x01
};
ucharDisplay_Buffer[]=
{
0,10,10,10,10,10,10,10
};
voidDelayMS(uintx)
{
uchart;
while(x--)
{
for(t=0;t<120;t++);
}
}
voidShow_Count_ON_DSY()
{
uchari;
for(i=0;i<8;i++)
{
P2=DSY_Index[i];
P0=DSY_CODE[Display_Buffer[i]];
DelayMS
(2);
}
}
voidmain()
{
uchari;
ucharKey_NO,Key_Counts=0;
P0=0xff;
P1=0xff;
P2=0x00;
while
(1)
{
Show_Count_ON_DSY();
P1=0xff;
Key_NO=P1;
switch(Key_NO)
{
case0xfe:
Key_Counts++;
if(Key_Counts>8)
Key_Counts=8;
Display_Buffer[Key_Counts-1]=Key_Counts;
break;
case0xfd:
if(Key_Counts>0)
Display_Buffer[--Key_Counts]=10;
if(Key_Counts==0)
Display_Buffer[0]=0;
break;
case0xfb:
Display_Buffer[0]=0;
for(i=1;i<8;i++)
Display_Buffer[i]=10;
Key_Counts=0;
}
while(P1!
=0xff)
Show_Count_ON_DSY();
}
}
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff
};
ucharNum_Buffer[]={0,0,0};
ucharKey_Code,Key_Counts=0;
voidDelayMS(uintx)
{
uchart;
while(x--)
{
for(t=0;t<120;t++);
}
}
voidShow_Counts_ON_DSY()
{
uchari,j=0x01;
Num_Buffer[2]=Key_Counts/100;
Num_Buffer[1]=Key_Counts/10%10;
Num_Buffer[0]=Key_Counts%10;
for(i=0;i<3;i++)
{
j=_cror_(j,1);
P2=j;
P0=DSY_CODE[Num_Buffer[i]];
DelayMS
(1);
}
}
voidmain()
{
uchari;
P0=0xff;
P1=0xff;
P2=0x00;
Key_Code=0xff;
while
(1)
{
Show_Counts_ON_DSY();
P1=0xff;
Key_Code=P1;
if(Key_Code!
=0xff)
{
for(i=0;i<30;i++)
{
Show_Counts_ON_DSY();
}
}
switch(Key_Code)
{
case0xfe:
if(Key_Counts<255)Key_Counts++;break;
case0xfd:
if(Key_Counts>0)Key_Counts--;break;
case0xfb:
Key_Counts=0;
}
Key_Code=0xff;
}
}
#include
#include
#defineucharunsignedchar
#defineuintunsignedint
ucharcodeDSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00
};
ucharcodeKeyCodeTable[]=
{
0x11,0x12,0x14,0x18,0x21,0x22,0x24,0x28,0x41,0x42,0x44,0x48,0x81,0x82,0x84,0x88
};
voidDelay()
{
uchari;
for(i=0;i<200;i++);
}
ucharKeys_Scan()
{
ucharsCode,kCode,i,k;
P1=0xf0;
if((P1&0xf0)!
=0xf0)
{
Delay();
if((P1&0xf0)!
=0xf0)
{
sCode=0xfe;
for(k=0;k<4;k++)
{
P1=sCode;
if((P1&0xf0)!
=0xf0)
{
kCode=~P1;
for(i=0;i<16;i++)
{
if(kCode==KeyCodeTable[i])
returni;
}
}
else
sCode=_crol_(sCode,1);
}
}
}
return-1;
}
voidmain()
{
ucharKeyNO=-1;
uchari,P2_LED,P3_LED;
while
(1)
{
KeyNO=Keys_Scan();
if(KeyNO!
=-1)
{
P2_LED=0xff;
P3_LED=0xff;
for(i=0;i<=KeyNO;i++)
{
if(i<8)
P3_LED>>=1;
else
P2_LED>>=1;
}
P3=P3_LED;
P2=P2_LED;
}
}
}
#include
#defineucharunsignedchar
#defineuintunsignedint
sbitBEEP=P3^7;
ucharcodeDSY_CODE[]=
{
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00
};
ucharPre_KeyNO=16,KeyNO=16;
voidDelayMS(uintms)
{
uchart;
while(ms--)
{
for(t=0;t<120;t++);
}
}
voidKeys_Scan()
{
ucharTmp;
P1=0x0f;
DelayMS
(1);
Tmp=P1^0x0f;
switch(Tmp)
{
case1:
KeyNO=0;break;
case2:
KeyNO=1;break;
case4:
KeyNO=2;break;
case8:
KeyNO=3;break;
default:
KeyNO=16;
}
P1=0xf0;
DelayMS
(1);
Tmp=P1>>4^0x0f;
switch(Tmp)
{
case1:
KeyNO+=0;break;
case2:
KeyNO+=4;break;
case4:
KeyNO+=8;break;
case8:
KeyNO+=12;
}
}
voidBeep()
{
uchari;
for(i=0;i<100;i++)
{
DelayMS
(1);
BEEP=~BEEP;
}
BEEP=1;
}
voidmain()
{
P0=0x00;
while
(1)
{
P1=0xf0;
if(P1!
=0xf0)
Keys_Scan();
if(Pre_KeyNO!
=KeyNO)
{
P0=~DSY_CODE[KeyNO];
Beep();
Pre_KeyNO=KeyNO;
}
DelayMS(100);
}
}
#include
sbitS1=P1^0;
sbitS2=P1^1;
sbitLED1=P0^0;
sbitLED2=P0^1;
voidmain()
{
while
(1)
{
LED1=S1;
LED2=S2;
}
}
#inclu