一、Proteus仿真电路图如下

二、51单片机程序如下
**由于网上的博客关于ADC0834的资源都是拿ADC0832来骗积分的,害我被骗了好多积分,所以自己看着手册写了一个时序,完美验证。
希望大家多举报骗积分的骗子,真可恨,本资源proteus工程可以用积分下载,也可加群免费下载,谢谢观看*
ADC结合51单片机或者STC15单片机的仿真需求,加QQ1661727532详谈,本人好说话
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
/*74HC595所用引脚宏定义*/
sbit HC595_DAT = P2^0;
sbit HC595_CLK = P2^1;
sbit HC595_STC = P2^2;
/*ADC0832所用引脚宏定义*/
sbit ADC0834_DO = P1^3;
sbit ADC0834_DI = P1^2;
sbit ADC0834_CS = P1^0;
sbit ADC0834_CLK = P1^1;
/*数码管段选码数组定义(不带小数点)*/
uchar LEDData[10]=
{
0x03, /*0*/
0x9F, /*1*/
0x25, /*2*/
0x0D, /*3*/
0x99, /*4*/
0x49, /*5*/
0x41, /*6*/
0x1F, /*7*/
0x01, /*8*/
0x09 /*9*/
};
/*数码管段选码数组定义(带小数点)*/
uchar LEDData1[10]=
{
0x02, /*0*/
0x9E, /*1*/
0x24, /*2*/
0x0C, /*3*/
0x98, /*4*/
0x48, /*5*/
0x40, /*6*/
0x1E, /*7*/
0x00, /*8*/
0x08 /*9*/
};
/*74HC595显示函数1->显示ADC电压值*/
uchar v1[3] = {0x03,0x03,0x03};
uchar v2[3] = {0x03,0x03,0x03};
uchar v3[3] = {0x03,0x03,0x03};
uchar v4[3] = {0x03,0x03,0x03};
void Send_HC595_Byte(uchar temp8)
{
uchar i;
for(i = 0; i < 8; i++)
{
HC595_DAT = temp8&0x01;//从高位开始传输
HC595_CLK = 0;
_nop_();
_nop_();
HC595_CLK = 1;
temp8=temp8>>1;
}
}
void Display(uchar v1[3],uchar v2[3],uchar v3[3])
{
HC595_STC = 0;
Send_HC595_Byte(v1[0]);
Send_HC595_Byte(v1[1]);
Send_HC595_Byte(v1[2]);
Send_HC595_Byte(v2[0]);
Send_HC595_Byte(v2[1]);
Send_HC595_Byte(v2[2]);
Send_HC595_Byte(v3[0]);
Send_HC595_Byte(v3[1]);
Send_HC595_Byte(v3[2]);
Send_HC595_Byte(v4[0]);
Send_HC595_Byte(v4[1]);
Send_HC595_Byte(v4[2]);
HC595_STC = 1;
}
uchar ADC0834(uchar chx)
{
/*完整的ADC读取程序去资源文件下载*/
}
int main()
{
while(1)
{
uchar adc_ch0 = ADC0834(0);
uchar adc_ch1 = ADC0834(1);
uchar adc_ch2 = ADC0834(2);
uchar adc_ch3 = ADC0834(3);
v4[2] = LEDData[adc_ch0/100];
v4[1] = LEDData[adc_ch0%100/10];
v4[0] = LEDData[adc_ch0%10];
v3[2] = LEDData[adc_ch1/100];
v3[1] = LEDData[adc_ch1%100/10];
v3[0] = LEDData[adc_ch1%10];
v2[2] = LEDData[adc_ch2/100];
v2[1] = LEDData[adc_ch2%100/10];
v2[0] = LEDData[adc_ch2%10];
v1[2] = LEDData[adc_ch3/100];
v1[1] = LEDData[adc_ch3%100/10];
v1[0] = LEDData[adc_ch3%10];
Display(v1,v2,v3);
}
return 0;
}
三、全国大学生电子交流群

四、Proteus版本和元件清单
Proteus8.6

五、程序下载与其他
接****51单片机、STM32-、相关和毕、设,有意联系QQ1661727532
记得点赞哦
2万+

被折叠的 条评论
为什么被折叠?



