- 1、本文档被系统程序自动判定探测到侵权嫌疑,本站暂时做下架处理。
- 2、如果您确认为侵权,可联系本站左侧在线QQ客服请求删除。我们会保证在24小时内做出处理,应急电话:400-050-0827。
- 3、此文档由网友上传,因疑似侵权的原因,本站不提供该文档下载,只提供部分内容试读。如果您是出版社/作者,看到后可认领文档,您也可以联系本站进行批量认领。
查看更多
ADC0804测电压
主要工作流程图:
图1 数字电压表系统框图
图2 AD转换电路
图3 单片机十进制转换电路
图4 显示电路
程序代码:
#includereg51.h
#includestdio.h
#define MAXMEAN 8
unsigned char disp[10]=
{0x3f,0x60,0x5b,0x4f,0x66,0x6d,0x7d,0x70,0x7f,0x6f};
//和0-9相对应的七段数码管所需电平
unsiglled char show[3];
unsigned int t;
unsigned int j;
sbit P1 7=Pl^7:
//腚义引脚(P一定要大写),用P1—7来表示P1.7
引脚
sbit P3 0=P3^O:
shit P3 l=P3^1:
sbit P3 2=P3^2:
sbit P3 3=P3^3://CS
sbit P3 4=P3^4://RD
sbit P3 5=P3^5:///WR
sbit P3 6=P3^6:
sbit P3 7=P3^7://INIR
void timedelay(t)
{
for(;t0;t--)
{
for(j=124;j0;j一){}
}
}
Void decode(unsigned int adc)
{
Adc=adc*2;
Show[2]=adc/100;
Show[1]=adc%100;
Show[1]=show[1]/10;
Show[0]=adc%10;
}
Void display()
{
P3=0xff;
P1=disp[show[2]];
P3_0=0;
Timedelay(1000);
P1=disp[show[1]];
P3_0=1;
P3_1=0;
Timedelay(1000);
P1=disp[show[0]];
P3_1=1;
P3_2=0;
Timedelay(1000);
}
Void main(void)
{
Unsigned char adc;
P3=0xff;
Adc=0x3f;
While(1)
{
P3_3=0;//使adc0804有效
P3_5=0;
P3_5=1;
P1=0xff;
While(p3_7);//检测adc是否转换完毕
P3_4=0;//开始读
Adc=p1;
P3_3=1;//使adc0804无效
Decode(adc);
Display();
}
}
文档评论(0)