?? text1.c
字號:
#include<reg52.h>
#define uchar unsigned char
sbit led0 = P2^0; //the led0 bit
sbit led1 = P2^1; //the led0 bit
sbit led2 = P2^2; //the led0 bit
sbit led3 = P2^3; //the led0 bit
sbit led4 = P2^4; //the led0 bit
sbit led5 = P2^5; //the led0 bit
sbit dat164 =P2^6; //the bit of HC164's data
sbit clk164 =P2^7; //the bit of HC164's clock
code uchar ledcode[] = // define the table of the "8bit led"
{
0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90,0x88,0x83,0xA7,0xA1,0x86,0x8E
};
void delay(void);
void displayled(uchar i,uchar m);
uchar lightflag=0x00;
void main()
{
P0=0xFF;
P1=0xFF;
IT0=0; //低電平出發(fā)
EX0=1;
EA=1;
P0=0xFE;
while(1)
{
if(lightflag>0x00)
{
switch(P0)///////////////////////
{
case 0xfe: displayled(1,1);break;
case 0xfd: displayled(2,2);break;
case 0xfb: displayled(3,3);break;
case 0xf7: displayled(4,4);break;
case 0xef: displayled(5,5);break;
case 0xdf: displayled(6,6);break;
}
delay();
lightflag=0x00;
P1=0xFF;
}
else
{
if(P0==0xFF) P0=0xFE;
else P0=((P0<<1)+1);
}
}
}
void int_0(void) interrupt 0
{
lightflag=P0;
}
void delay(void)
{
uchar i;
for(i=0;i<255;i++) ;
}
void displayled(uchar i,uchar m) //第i位led顯示m
{
uchar j,k;
k=ledcode[m];
switch(i)
{
case 1: led0=0;break;
case 2: led1=0;break;
case 3: led2=0;break;
case 4: led3=0;break;
case 5: led4=0;break;
case 6: led5=0;break;
}
for (j = 0; j < 8; j++)
{ dat164 =(k & 0x80); //1000,0000
//else dat164 = 0;
clk164 = 1;
clk164 = 0;
k<<= 1;
}
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -