|
100黑幣
用Keil uVision5編寫的C語言代碼如下畫的原件圖在附件里
不懂哪里有問題
#include<regx51.h>
#define uchar unsigned char
#define uint unsigned int
uint code unm[]={0,1,3,5,7,9,15,60,100,200,300,400,500,600,700,800,900,1000,1100,1200,1300,1400,1500};
uchar unm1[]={0xff,0xef,0xc7,0xab,0xef,0xef,0xef,0xff};
uchar m,n,j,y;
uint l,g;
void delay(uint i)
{
uchar j;
while(i--)
for(j=0;j<120;j++);
}
void init()
{
TMOD = 0x11;
TH0 = 0x00;
TL0 = 0x00;
TH1 = 0xaa;
TL1 = 0xbb;
EA = 1;
ET0 = 1;
ET1 = 1;
TR0 = 1;
TR1 = 1;
}
bit ce_anjian ( )
{
bit key=0;
P1=0xf3;
if(P1!=0xf3)
key=1;
else
key=0;
return(key);
}
void ce_jianzhi ( )
{
uchar i,j,p;
do
{
while(ce_anjian()==0);
delay(50);
}while(ce_anjian()==0);
for(i=0;i<2;i++)
{
P1=(0xfe<<i)|i;
for(j=0;j<2;j++)
{
p=P1&0x0c;
if(p==0x08>>j)
{
y=i*2+j+1;
goto D1;
}
}
}
D1: delay(50);
do
{
while(ce_anjian()==1);
delay(50);
}while(ce_anjian()==1);
}
void mingjiao()
{
uchar t;
for(t=0;t<50;t++)
{
P1_7=0;
}
P1_7=1;
}
void main()
{
init();
n=5;
while(1)
{
l=unm[n];
if(ce_anjian()==1)
{
ce_jianzhi();
switch(y)
{
case 1: {m=1;j=0x7f;mingjiao();}break;
case 2: {m=2;j=0xfe;mingjiao();}break;
case 3: {n=n+1;if(n==24)n=23;mingjiao();}break;
case 4: {n=n-1;if(n==0)n=1;mingjiao();}break;
default: break;
}
}
}
}
void t_1()interrupt 3
{
uchar a,k;
TH1 = 0xaa;
TL1 = 0xbb;
switch(m)
{
case 1:
{
a=0x01;
for(k=0;k<8;k++)
{
P2=a;
P3=unm1[k];
delay(2);
a=a<<1;
if(a==0)a=0x01;
P0=j;
}
}break;
case 2:
{
a=0x80;
for(k=0;k<8;k++)
{
P2=a;
P3=unm1[k];
delay(2);
a=a>>1;
if(a==0)a=0x80;
P0=j;
}
}
}
}
void t_0()interrupt 1
{
uchar b1,b2,b3,b4,b5,b6,b7,b8;
if(++g<l) return;
g=0;
switch(m)
{
case 1:{ j=(j>>1)|0x80;
if(j==0xff)j=0x7f;}break;
case 2:{ j=(j<<1)|0x01;
if(j==0xff)j=0xfe;}break;
}
b1=unm1[0];
b2=unm1[1];
b3=unm1[2];
b4=unm1[3];
b5=unm1[4];
b6=unm1[5];
b7=unm1[6];
b8=unm1[7];
unm1[0]=b2;
unm1[1]=b3;
unm1[2]=b4;
unm1[3]=b5;
unm1[4]=b6;
unm1[5]=b7;
unm1[6]=b8;
unm1[7]=b1;
}
這是C語言代碼
|
|