/*這是可以使用的程序,你可以參靠一下*/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit wela=P2^7;
sbit AD_wr=P3^6;
sbit AD_rd=P3^7;
uchar temp;
void delay(uint x)
{
int i,j;
for(i=x;i>0;i--)
for(j=110;j>0;j--);
}
uchar code table_a[]=
{0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};
uchar code table_b[]=
{0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
uchar check()
{
wela=1; //鎖存1
AD_wr=0;
delay(1);
AD_wr=1;
delay(10);
wela=0;//鎖存1
wela=1; //重新打開有AD片選信號鎖存器的鎖存端
P1=0xff; //讀取P1口之前先給其寫全1
AD_rd=0;
temp=P1; //AD數據讀取賦給P1口
AD_rd=1;
AD_wr=0;
P1=temp;
return temp;
}
void main()
{
while(1)
{
while(check()>140)
{ uchar i;
for(i=0;i<8;i++)
{
P0=table_a[i];
delay(10);
}
}
while(check()<80)
{ uchar i;
for(i=0;i<8;i++)
{
P0=table_b[i];
delay(10);
}
}
}
}
|