📄 use595_2.c
字号:
#include <AT89X52.H>
unsigned char code tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,
0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};
unsigned char k;
void delay10ms(void)
{
unsigned char i,j;
for(i=20;i>0;i--)
for(j=248;j>0;j--)
;
}
void quzhi(void)
{unsigned char x,y,z;
P2=0xff;
P2=0x0f;
if(P2!=0x0f)
{
delay10ms();
if(P2!=0x0f)
{
x=P2;
}
}
P2=0xf0;
if(P2!=0xf0)
{
delay10ms();
if(P2!=0xf0)
{
y=P2;
}
}
z=x^y;//z=x|y;
switch(z)
{
case 0xee: k=0;break;
case 0xde: k=1;break;
case 0xbe: k=2;break;
case 0x7e: k=3;break;
case 0xed: k=4;break;
case 0xdd: k=5;break;
case 0xbd: k=6;break;
case 0x7d: k=7;break;
case 0xeb: k=8;break;
case 0xdb: k=9;break;
case 0xbb: k=10;break;
case 0x7b: k=11;break;
case 0xe7: k=12;break;
case 0xd7: k=13;break;
case 0xb7: k=14;break;
case 0x77: k=15;break;
}
}
void sdata(void)
{
unsigned char i;
for(i=0;i<8;i++)
{
P1_0=0;
P1_1=1;
P1_0=1;
}
}
void out(void)
{
P1_2=0;
P1_2=1;
}
void sdata1(void)
{
unsigned char c,num;
num=tab[k];
for(c=0;c<8;c++)
{
P1_3=0;
P1_4=num&0x80;
num=num<<1;
P1_3=1;
}
}
void main(void)
{
while(1)
{
quzhi();
sdata();
sdata1();
delay10ms();
out();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -