📄 adc0809.c
字号:
/******************************************************/
//程序名:AD0809.c
//实验:将实验板中两路模拟电压信号转换成数字量
//并以十进制形式显示,前3位显示第二通道信号
//后3位显示第一通道信号
/******************************************************/
#include<reg51.h>
#include<absacc.h>
#define uchar unsigned char
#define IN0 XBYTE[0X0000] //通道0
#define IN1 XBYTE[0X0001]
#define IN2 XBYTE[0X0002]
#define IN3 XBYTE[0X0003]
#define IN4 XBYTE[0X0004]
#define IN5 XBYTE[0X0005]
#define IN6 XBYTE[0X0006]
#define IN7 XBYTE[0X0007]
uchar code tab[]={0x88,0xEB,0x4C,0x49,0x2B,0x19,0x18,0xCB,0x08,
0x09,0x0A,0x38,0x9C,0x68,0x1C,0x1E,0xFF};//0123456789abcdef//
sbit ad_busy=P3^5;
sbit P1_2=P1^2;
sbit P1_3=P1^3;
sbit P1_4=P1^4;
void AD0809(uchar idata *x);
void Display(uchar ucChn1,uchar ucChn2);
void main();
{
uchar i,j,h;
uchar ad[8];
SCON=0;
P1_4=1;
P1_3=0;
p1_2=0;
while(1)
{
AD0809(ad);
Display(ad[0],ad[1]);
for(i=0;i<50;i++);
for(j=0;j<250;j++)
for(h=0;h<250;h++);
}
}
/////////////////////////////////////////////
/**************************************************************************************/
/*************调用该程序后应将模拟量转换成数字量存于一数组(x)之中***************/
/**************************************************************************************/
void AD0809(uchar idata *x)
{
uchar i;
data uchar xdata *ad_adr;
ad_adr=&IN0;
for(i=0;i<8;i++)
{
*ad_adr=0;
ad_busy=0; //书中为 1 ,我认为应为0
while(ad_busy==0);
x[i]=*ad_adr; //对应ad[8]
ad_adr++;
}
}
//////////////////////////////////////////
void Display(uchar ucChn1,uchar ucChn2)
{
uchar ucHi,ucMid,ucLow;
ucHi=ucChn1/100;
ucMid=(ucChn1-ucHi*100)/10;
ucLow=ucChn1%10;
if(ucHi==0)
{
SBUF=tab[ucLow];
while(!TI);
TI=0;
if(ucMid==0)
{
SBUF=0xff;
while(!TI);
TI=0;
}
else {
SBUF=tab[ucMid];
while(!TI);
TI=0;
}
}
else{
SBUF=tab[ucLow];
while(!TI);
TI=0;
SBUF=tab[ucMid];
while(!TI);
TI=0;
SBUF=tab[ucHi];
while(!TI);
TI=0;
}
ucHi=ucChn2/100;
ucMid=(ucChn2-ucHi*100)/10;
ucLow=ucChn2%10;
if(ucHi==0)
{
SBUF=tab[ucLow];
while(!TI);
TI=0;
if(ucMid==0)
{
SBUF=0xff;
while(!TI);
TI=0;
}
else {
SBUF=tab[ucMid];
while(!TI);
TI=0;
}
}
else{
SBUF=tab[ucLow];
while(!TI);
TI=0;
SBUF=tab[ucMid];
while(!TI);
TI=0;
SBUF=tab[ucHi];
while(!TI);
TI=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -