proteus仿真 C51与ADC0809数模转换:万用表(电压、电流、电阻)数码管显示

本实验采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字多用表。

proteus仿真图:

 

1)ADC0809内部逻辑结构:

 2)图中多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表所示。

ADC0809通道选择表

C(ADDC)

B(ADDB)

A(ADDA)

选择的通道

0

0

0

IN0

0

0

1

IN1

0

1

0

IN2

0

1

1

IN3

1

0

0

IN4

1

0

1

IN5

1

1

0

IN6

1

1

1

IN7

3)上仿真结果图

一、电压的测量

 电压转化显示主要代码(注释项为不同数码管位数对于的ADC转换公式,按需删减):

void Display_Result(uchar d_1)
{
	   //int d=d_1*500.0/255.0;
	   //d= ((5.0/255) * d_1) * 100;
	   //d=d_1;
       P2=0xf7;  //1111 0111       
	   P0=0x3e;  //0101 1011	
       DelayMS(5);	
       P2=0xfb;  //1111 1011	
       P0=DSY_CODE[d%10];	
       DelayMS(5);	
       P2=0xfd;  //1111 1101	
       P0=DSY_CODE[d%100/10];	
       DelayMS(5);	
       P2=0xfe;  //1111 1110
       P0=DSY_CODE[d/100]|0x80;			
       DelayMS(5);
}

 二、电流的测量

 电流转化显示主要代码(注释项为不同数码管位数对于的ADC转换公式,按需删减):

void Display_Result_2(uchar e_1)
{
	   //int e=e_1*1.0/255*200;
	   //int e=(e_1*100.0/255.0)*5/p/0.1;
       P2=0xf7;  //1111 0111       
	   P0=0x77;  //0101 1011	
       DelayMS(5);	
       P2=0xfb;  //1111 1011	
       P0=DSY_CODE[e%10];	
       DelayMS(5);	
       P2=0xfd;  //1111 1101	
       P0=DSY_CODE[e%100/10]|0x80;	
       DelayMS(5);	
       P2=0xfe;  //1111 1110
       P0=0x3f|0x80;  //0101 1011
       P0=DSY_CODE[e/100];			
       DelayMS(5);
}

三、电阻的测量

电阻转化显示主要代码(注释项为不同数码管位数对于的ADC转换公式,按需删减):

void Display_Result_3(uchar f_1)
{
       //int f_2=f_1 *1.0/255*500;
       //int f_3=(150*f_2)/(500-f_2);
       //int f=f_3*100/3;
	   //int f=f_1*1.0/255*100;
       P2=0xf7;  //1111 0111       
	   P0=0x75;  //0101 1011	
       DelayMS(5);	
       P2=0xfb;  //1111 1011	
       P0=DSY_CODE[f%10];	
       DelayMS(5);	
       P2=0xfd;  //1111 1101	
       P0=DSY_CODE[f%100/10];	
       DelayMS(5);	
       P2=0xfe;  //1111 1110
       P0=DSY_CODE[f/100]|0x80;			
       DelayMS(5);
}

:本文章只提供ADC转换公式及整体思路,完整工程已打包,如需直接使用可查阅:

proteus仿真80C52+ADC0809(测电压电流电阻)工程仿真+C代码.rar-嵌入式文档类资源-CSDN下载


版权声明:本文为CSDN博主「肚子饿扁了啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ysjlew/article/details/121712684

本实验采用AT89S51单片机芯片配合ADC0809模/数转换芯片构成一个简易的数字多用表。

proteus仿真图:

 

1)ADC0809内部逻辑结构:

 2)图中多路模拟开关可选通8路模拟通道,允许8路模拟量分时输入,并共用一个A/D转换器进行转换。地址锁存与译码电路完成对A、B、C三个地址位进行锁存与译码,如表所示。

ADC0809通道选择表

C(ADDC)

B(ADDB)

A(ADDA)

选择的通道

0

0

0

IN0

0

0

1

IN1

0

1

0

IN2

0

1

1

IN3

1

0

0

IN4

1

0

1

IN5

1

1

0

IN6

1

1

1

IN7

3)上仿真结果图

一、电压的测量

 电压转化显示主要代码(注释项为不同数码管位数对于的ADC转换公式,按需删减):

void Display_Result(uchar d_1)
{
	   //int d=d_1*500.0/255.0;
	   //d= ((5.0/255) * d_1) * 100;
	   //d=d_1;
       P2=0xf7;  //1111 0111       
	   P0=0x3e;  //0101 1011	
       DelayMS(5);	
       P2=0xfb;  //1111 1011	
       P0=DSY_CODE[d%10];	
       DelayMS(5);	
       P2=0xfd;  //1111 1101	
       P0=DSY_CODE[d%100/10];	
       DelayMS(5);	
       P2=0xfe;  //1111 1110
       P0=DSY_CODE[d/100]|0x80;			
       DelayMS(5);
}

 二、电流的测量

 电流转化显示主要代码(注释项为不同数码管位数对于的ADC转换公式,按需删减):

void Display_Result_2(uchar e_1)
{
	   //int e=e_1*1.0/255*200;
	   //int e=(e_1*100.0/255.0)*5/p/0.1;
       P2=0xf7;  //1111 0111       
	   P0=0x77;  //0101 1011	
       DelayMS(5);	
       P2=0xfb;  //1111 1011	
       P0=DSY_CODE[e%10];	
       DelayMS(5);	
       P2=0xfd;  //1111 1101	
       P0=DSY_CODE[e%100/10]|0x80;	
       DelayMS(5);	
       P2=0xfe;  //1111 1110
       P0=0x3f|0x80;  //0101 1011
       P0=DSY_CODE[e/100];			
       DelayMS(5);
}

三、电阻的测量

电阻转化显示主要代码(注释项为不同数码管位数对于的ADC转换公式,按需删减):

void Display_Result_3(uchar f_1)
{
       //int f_2=f_1 *1.0/255*500;
       //int f_3=(150*f_2)/(500-f_2);
       //int f=f_3*100/3;
	   //int f=f_1*1.0/255*100;
       P2=0xf7;  //1111 0111       
	   P0=0x75;  //0101 1011	
       DelayMS(5);	
       P2=0xfb;  //1111 1011	
       P0=DSY_CODE[f%10];	
       DelayMS(5);	
       P2=0xfd;  //1111 1101	
       P0=DSY_CODE[f%100/10];	
       DelayMS(5);	
       P2=0xfe;  //1111 1110
       P0=DSY_CODE[f/100]|0x80;			
       DelayMS(5);
}

:本文章只提供ADC转换公式及整体思路,完整工程已打包,如需直接使用可查阅:

proteus仿真80C52+ADC0809(测电压电流电阻)工程仿真+C代码.rar-嵌入式文档类资源-CSDN下载


版权声明:本文为CSDN博主「肚子饿扁了啊」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ysjlew/article/details/121712684

生成海报
点赞 0

肚子饿扁了啊

我还没有学会写个人说明!

暂无评论

发表评论

相关推荐

PCA9555详细学习

2022.01.27 控制寄存器和命令寄存器,及英文理解 一般8位作为地址,其中前四位时固定的,中间三位为地址配置,最后一位是读写位,即读是1,写是0 当地址

stm32的 按键 消抖

一、什么是抖动 a、较为官方的解释: 在机械按键的触点闭合和断开时,都会产生抖动,为了保证系统能正确识别按键的开关,就必须对按键的抖动进行处理。         按键的抖动对于人类来说是感