#include<reg52.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit key1=P3^4;
sbit key2=P3^5;
sbit key3=P3^6;
sbit key4=P3^7;
sbit dula=P2^6;
sbit wela=P2^7;
uchar code table[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar temp,i,j,Z=0,num=0;
void display1();
void display2();
void display3();
void key();
void delay_10ms(uchar i)
{
uchar a,b,c;
for(c = i; c > 0; --c)
for(b = 129; b > 0; b--)
for(a = 38; a > 0; a--);
}
void main()
{
while(1)
{
key();
switch(Z)
{
case 1:display1();break;
case 2:display2();break;
case 3:display3();break;
}
}
}
void display1()
{
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=0x00;
delay_10ms(1);
P0=0x06;
dula=0;
temp = 0xfe;
P1 = temp;
for (i=0; i<7; i++)
{
temp = crol(temp,1);
delay_10ms(100);
P1 = temp;
}
for (j=0; j<8; j++)
{
temp = _cror_(temp,1);
delay_10ms(100);
P1 = temp;
}
}
void display2()
{
P0=0xff;
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=0x00;
delay_10ms(1);
dula=0;
dula=1;
P0=0x5b;
delay_10ms(1);
dula=0;
temp = 0xfe;
P1 = temp;
for (i=0; i<4; i++)
{
temp = crol(temp,2);
delay_10ms(100);
P1 = temp;
}
temp = 0xfd;
P1 = temp;
{
for (i=0; i<3; i++)
{
temp = crol(temp,2);
delay_10ms(100);
P1 = temp;
}
}
void display3()
{
wela=1;
P0=0xfe;
wela=0;
dula=1;
P0=0x00;
delay_10ms(1);
P0=0x06;
dula=0;
for(i=0;i<2;i++)
{
temp=0xaa;
delay_10ms(100);
P1=temp;
}
for(i=0;i<2;i++)
{
temp=0x55;
delay_10ms(100);
P1=temp;
}
}
}
void key()
{
if(key1==0)
{
delay_10ms(1);
if(key1==0)
{
Z=1;
delay_10ms(1);
}
while(!key1);
}
if(key2==0)
{
delay_10ms(1);
if(key2==0)
{
Z=2;
delay_10ms(1);
}
while(!
晕了,这么长的代码,没法看的。
你自己编译一下,看有没有语法错误。
编译不过,可以把编译错误的信息发出来。
编译过了,把运行结果发出来,告诉我们什么样的运行结果是正确的。