设计题目:简易数字电压表的设计。

设计内容:

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
  • 上一篇文章:
  • 下一篇文章: 没有了
  •