设计题目:简易数字电压表的设计。
设计内容:
1.可以测量0~5V范围内的8路直流电压值。
2.在4位LED数码管上轮流显示各路电压值或单路选择显示,其中3位LED数码管显示电压值,显示范围为0.00V~5.00V,1位LED数码管显示路数,8路用数字表示分别为0-7。
3.测量最小分辨率为0.02V。
仿真效果图系统首先通过按键逐路选择八路通道中的一路或是循环显示,将该路某一路电压送入ADC相应通道,单片机软件设置ADC开始A/D转换,转换结束ADC的EOC端口产生高电平,同时将ADC的EO端口置为高电平,单片机将转换后结果存如片内RAM。系统调出计算子程序,将保存结果转化为0.00-5.00V分别保存在片内RAM;系统调用显示子程序,将转化后数据查表,输出到LED显示电路,将相应电压显示出来,程序进入下一个循环。
按键处理程序:
voidkey()
{
if(key_1==0)//单通道与多通道转换
{
Delay(5);
if(key_1==0)
{
xflag=!xflag;
}
while(!key_1);
}
//单通道选择
if(fi_key==0)
{
Delay(5);
if(fi_key==0)
{
in_x=0;
}
x_disp();
while(!fi_key);
}
if(se_key==0)
{
Delay(5);
if(se_key==0)
{
in_x=1;
}
x_disp();
while(!se_key);
}
}
通道选择程序:
voidx_disp()
{
switch(in_x)
{
case0:ADDA=0;ADDB=0;ADDC=0;table4[3]=0;break;//通道选择
case1:ADDA=1;ADDB=0;ADDC=0;table4[3]=1;break;
}
}
数码管显示程序:
voidClock_Disp(void)//数码管显示
{
SMG1_ON();
P0=SMGData[table4[0]];
Delay(4);SMG1_OFF();
SMG2_ON();
P0=SMGData[table4[1]];
Delay(4);SMG2_OFF();
SMG3_ON();
P0=SMGData1[table4[2]];
Delay(4);SMG3_OFF();
SMG4_ON();
P0=SMGData[table4[3]];
Delay(4);SMG4_OFF();
}
主函数程序:
voidmain(void)
{
ST=0;
OE=0;
ET0=1;
ET1=1;
EA=1;
ADDA=0;ADDB=0;ADDC=0;
TMOD=0x12;
while(1)
{
ST=0;
TH0=;
TL0=;
TR0=1;
//ST=1;
//ST=0;
if(xflag==0)//单通道启动转换
{
ST=1;
ST=0;
}
key();
if(xflag==1)//多通道程序
{
in_x=in_x+1;
if(in_x==2)
{
in_x=0;
}
x_disp();
ST=1;//先转换//因为启动转换他先转化之前选择的通道
ST=0;
Delay(50);//延时下//所以这里先把之前数据转换再进行新通道的数据转换
ST=1;
ST=0;//再转换
}
if(EOC==1)
{
OE=1;
x[1]=P1;
OE=0;
getdata=x[1];
n=getdata*1.0/*;
table4[0]=n%10;
table4[1]=n/10%10;
table4[2]=n/%10;
if(xflag==0)//单通过显示
{
Clock_Disp();
}else//多通道需要延时才能看清每个通道显示
{
Clock_Disp();Clock_Disp();key();Clock_Disp();Clock_Disp();key();Clock_Disp();Clock_Disp();Clock_Disp();
Clock_Disp();key();Clock_Disp();Clock_Disp();key();Clock_Disp();Clock_Disp();key();Clock_Disp();Clock_Disp();
Clock_Disp();Clock_Disp();key();Clock_Disp();Clock_Disp();key();Clock_Disp();Clock_Disp();key();Clock_Disp();
Clock_Disp();Clock_Disp();key();Clock_Disp();Clock_Disp();key();Clock_Disp();Clock_Disp();key();Clock_Disp();
}
}
}
}
转载请注明地址:http://www.abmjc.com/zcmbwh/1772.html