📄 adc0804连续转换实例.c
字号:
/*ADC0804连续转换,P1.0.1.2.3接数码管位选,
P0口接数码管段选,P2口接A/D转换输入*/
//===声明区=============================================================
#include<reg51.h>
char TAB[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,
0x82,0xf8,0x80,0x98};//段码驱动信号
unsigned char disp[4]={0,0,0,0};//声明显示数组,是4组
void display(void);//声明显示函数
void delay1ms(char);//声明延时函数
//===主程序==============================================================
mian()
{ int results;//声明变量
while(1)
{ P2=0xff;
results=P2*196;//读取ADC0804转换结果乘以196倍;数码管显示为5000
disp[3]=results/10000;//取得千位数
disp[2]=(results/1000)%10;//取得百位数
disp[1]=(results/100)%10;//取得十位数
disp[0]=(results/10)%10;//取得个位数
display();//调用显示函数
}
}
//===显示函数==============================================================
void display(void)
{ char j,scan;//声明变量
char i=10; //扫描10次
while(--i>=0)
{ scan=i; //开始扫描信号
for(j=0;j<4;j++)
{ P0=0xff; //关数码管显示器
P1=~scan; //输出扫描信号
P0=TAB[disp[j]];//转换成驱动信号,并输出到P0
delay1ms(4); //延时4ms
scan<<=1; //下一个扫描信号
}
}
}
//===延时函数=============================================================
void delay1ms(char x)
{ int i,j; //声明变量
for(i=0;i<x;i++) //外循环
for(j=0;j<120;j++); //内循环
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -