Proteus通过 硬件连接却失败,
源程序如下:#include<reg51.h>
#include <intrins.h>
#define ad0_7 P1
#define ag P0
#define uint unsigned int
#define uchar unsigned char
sbit adrd=P3^7;
sbit adwr=P3^6;
sbit adcs=P3^5;
sbit intr=P3^4;
uchar q,b,s,g;
uint value;
uchar adval;
uchar code tab[]={0X3F,0X06,0X5B,0X4F,0X66,0X6d,0X7D,0X07,0X7F,0X6F};
void start_ad();
void display();
void delay();
void main(void)
{
while(1)
{
start_ad();
display();
}
}
void start_ad()
{
adcs=0;
adwr=0;
_nop_();
adwr=1;
while(intr);
adcs=1;
adcs=0;
adrd=0;
delay();
adval=P1;
adrd=1;
adcs=1;
delay();
value=adval*5*100/255*2;
q=adval/51;
b=(adval%51)*10/51;
s=((adval%51)*10)%51*10/51;
g=(((adval%51)*10)%51*10%51)*10/51;
}
// display function
void display()
{
P2=0xfe;
P0=tab[q]+0x80;
delay();
P2=0xfd;
P0=tab[b];
delay();
P2=0xfb;
P0=tab[s];
delay();
P2=0xf7;
P0=tab[g];
delay();
}
//dalay function
void delay(void)
{
int k;
for(k=10;k<500;k++);
}

源程序如下:#include<reg51.h>
#include <intrins.h>
#define ad0_7 P1
#define ag P0
#define uint unsigned int
#define uchar unsigned char
sbit adrd=P3^7;
sbit adwr=P3^6;
sbit adcs=P3^5;
sbit intr=P3^4;
uchar q,b,s,g;
uint value;
uchar adval;
uchar code tab[]={0X3F,0X06,0X5B,0X4F,0X66,0X6d,0X7D,0X07,0X7F,0X6F};
void start_ad();
void display();
void delay();
void main(void)
{
while(1)
{
start_ad();
display();
}
}
void start_ad()
{
adcs=0;
adwr=0;
_nop_();
adwr=1;
while(intr);
adcs=1;
adcs=0;
adrd=0;
delay();
adval=P1;
adrd=1;
adcs=1;
delay();
value=adval*5*100/255*2;
q=adval/51;
b=(adval%51)*10/51;
s=((adval%51)*10)%51*10/51;
g=(((adval%51)*10)%51*10%51)*10/51;
}
// display function
void display()
{
P2=0xfe;
P0=tab[q]+0x80;
delay();
P2=0xfd;
P0=tab[b];
delay();
P2=0xfb;
P0=tab[s];
delay();
P2=0xf7;
P0=tab[g];
delay();
}
//dalay function
void delay(void)
{
int k;
for(k=10;k<500;k++);
}
