以前做过一款51的板子,正好上面有0804的部分
数码管显示部分就不要我上传图了吧,都是一个样子的
测试程序
#include
#include
#define uchar unsigned char
#define uint unsigned int
sbit cs=P3^4;
sbit wr=P3^6;
sbit rd=P3^7;
sbit aa=P2^0;
sbit bb=P2^1;
sbit cc=P2^2;
sbit LE1=P2^7;
uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,
0x6d,0x7d,0x07,0x7f,0x6f};
void init();
void ad_start();
uchar ad_read();
void display(uchar bai,uchar shi,uchar ge );
void delay(uint t) //延时程序
{
uint i;
for(;t>0;t--)
for(i=110;i>0;i--);
}
void main()
{
uchar adout,a1,a2,a3;
init();
while(1)
{
ad_start();
delay(10);
adout=ad_read();
P1=ad_read();
a1=adout/100;
a2=adout%100/10;
a3=adout%100%10;
display(a1,a2,a3);
}
}
void init()
{
P1=0xff;
P2=0xff;
P3=0xff;
}
void ad_start() //start convertion
{
cs=0;
_nop_();
wr=0;
_nop_();
wr=1;
_nop_();
cs=1;
}
uchar ad_read()
{
uchar temp;
P1=0xff;
cs=0;
_nop_();
rd=0;
_nop_();
temp=P1;
_nop_();
rd=1;
_nop_();
cs=1;
wr=0;
return(temp);
}
void display(uchar bai,uchar shi,uchar ge )
{
LE1=1;//选通138
aa=0;
bb=0;
cc=0;
P0=table[bai];
delay(1);
aa=1;
bb=0;
cc=0;
P0=table[shi];
delay(1);
aa=0;
bb=1;
cc=0;
P0=table[ge];
delay(1);
P0=0; //关闭显示
LE1=0;
}