电动机直流调速以及电压测量

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

#include
#include
sbit adcs=P1^5;
sbit dacs=P1^7;
sbit adsclk=P2^1;
sbit dasclk=P2^5;
sbit sdo=P2^2;
sbit din=P2^4;
unsigned char bdata var;
sbit v7=var^7;sbit v3=var^3;
sbit v6=var^6; sbit v2=var^2;
sbit v5=var^5;sbit v1=var^1;
sbit v4=var^4;sbit v0=var^0;
sbit A1=P1^0;
sbit A2=P1^1;
sbit A3=P2^3;
sbit A4=P2^6;
unsigned int i,j,adresult,v;
unsigned int d1,d2,d3;
void delayadcs();
void delay(int x);
void adconvert();
void daconvert();
void votage();
void display();
void main()
{ A1=1;
A2=1;
A3=1;
A4=1;
while(1)
{
adconvert();
// daconvert();
votage();//电压计算

} }


void delayadcs()
{ i=0;
while(i<3)
{i++;}
}
void adconvert()
{ adcs=0;
display();
v7=sdo;
adsclk=1;display();
adsclk=0;
display();;v6=sdo;
adsclk=1;
display();
adsclk=0;
display();v5=sdo;
adsclk=1;
display();
adsclk=0;
display();
v4=sdo;adsclk=1;
display();
adsclk=0;
display();
v3=sdo;adsclk=1;
display();
adsclk=0;
display();
v2=sdo;adsclk=1;
display();
adsclk=0;
display();
v1=sdo;adsclk=1;
display();
adsclk=0;
display();
v0=sdo;adsclk=1;
display();
adsclk=0;
adcs=1;
for(j=0;j<36;j++)
display();
adresult=var;
v=adresult*5*100/255;

}
/*void daconvert() //数模转换
{P0=adresult;
dasclk=0;
dacs=0;
din=0;//第一位数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=0; //第二个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=v7; //第3个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=v6; //第4个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=v5; //第5个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=v4; //第6个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=v3; //第7个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=v2; //第8个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=v1; //第9个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=v0; //第10个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=0; //第11个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
din=0; //第12个数据;
//delayadcs();
dasclk=1;
//delayadcs();
dasclk=0;
//delayadcs();
dacs=1;//使输入的数据有效
} */
void delay(int x)
{
for(i=0;i{
for(j=0;j<255;j++);
}
}

void votage()
{
d3=v%10;
d2=(v/10)%10;
d1=(v/100)%10;
switch(d1)
{
case 0:d1=0X40;break;
case 1:d1=0X79;break;
case 2:d1=0X24;break;
case 3:d1=0X30;break;
case 4:d1=0X19;break;
case 5:d1=0X12;break;
case 6:d1=0X02;break;
case 7:d1=0X78;break;
case 8:d1=0X00;break;
case 9:d1=0x10;break;

}
switch(d2)
{
case 0:d2=0XC0; break;
case 1:d2=0XF9; break;
case 2:d2=0XA4; break;
case 3:d2=0XB0; break;
case 4:d2=0X99; break;
case 5:d2=0X92; break;
case 6:d2=0X82; break;


case 7:d2=0XF8; break;
case 8:d2=0X80; break;
case 9:d2=0x90; break;

}
switch(d3)
{
case 0:d3=0XC0;break;
case 1:d3=0XF9;break;
case 2:d3=0XA4;break;
case 3:d3=0XB0;break;
case 4:d3=0X99;break;
case 5:d3=0X92;break;
case 6:d3=0X82;break;
case 7:d3=0XF8;break;
case 8:d3=0X80;break;
case 9:d3=0x90;break;

}

}
void display()
{
A2=0;
P0=d1;
delayadcs();
A2=1;
A3=0;
P0=d2;
delayadcs();
A3=1;
A4=0;
P0=d3;
delayadcs();
A4=1;
delayadcs();
}

相关文档
最新文档