/****************************************************************************************************************
*************************
*Author:JYW
*Time:2019_02_21
*Describe:LetAllLinesOfCodeSpeak
*****************************************************/
/******************************
*Describe:用单片机控制ADC0804进行模数转换,在
*数码管的前三位以十进制显示出转换后的数字量
****************************/
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit dula = P2^6;
sbit wela = P2^7;
sbit adwr = P3^6;
sbit adrd = P3^7;
uchar code table[] =
{
//数码管的显示
};
void delayms(uint xms)
{
uint x,j;
for(x = xms;x>0;x--)
for(j = 110; j>0; j--);
}
void display(uchar bai,uchar shi,uchar ge)
{
dula = 1;
P0 = table[bai];
dula = 0;//当锁存器的LE为高时,打开,为低时关闭
P0 = 0xFF;
wela = 1;
P0 = 0x7E;
wela = 0;
delayms(5);
dula = 1;
P0 = table[shi];
dula = 0;
P0 = 0xFF;
wela = 1;
P0 = 0x7D;
wela = 0;
delayms(5);
dula = 1;
P0 = table[ge];
dula = 0;
P0 = 0xFF;
wela = 1;
P0 = 0x7B;
wela = 0;
delayms(5);
}
void main()
{
uchar a,A1,A2,A3,adval;
wela = 1;
P0 = 0x7F;
wela = 0;
while(1)
{
adwr = 1;
_nop_();
adwr = 0;
_nop_();
adwr = 1;
for(a = 10;a>0;a--)
{
display(A1,A2,A3);
}
P1 = 0xFF;
adrd = 1;
_nop_();
adrd = 0;
_nop_();
adval = P1;
adrd = 1;
A1 = advla/100;
A2 = adval%100/10;
A3 = adval%10;
}
}