📄 main.c
字号:
adfcnt++;
return(1);
}
}
////////////////////////////////////////////////////////系统配置
void initsys(void)
{
AUXR = 0X80;
EA = 0;
//把timer设置成1ms
TMOD = 0X21;
TH0 = 0XD4; //65535 - 11059
TL0 = 0X46;
TH1 = 0XFF;
TR0 = 1;
TR1 = 1;
P1M0 = 0x03;//0;
P1M1 = 0X03;//0;
P3M0 =0;
P3M1 =0;
P1 = 0X0f;;//P1 = 0;/
P2 = 0Xc0;
P3 = 0XFF;
SCON = 0x50;
REN =1;
PCON = PCON | 0X80;
CFLAG = 0;
adrfcnt = 0;
adr_data = 0;
// ad_poweron();
//ad7887_poweron();
}
///////////////////////////////////////////////////转速显示
void ad_show(uint temp)
{
show_data[0] = real2show(temp /1000);
temp = temp % 1000;
show_data[1] = real2show(temp / 100);
temp = temp % 100;
show_data[2] = real2show(temp/10);
show_data[3] = real2show(temp%10);
if(!set_input)
{
show_data[0] = show_data[0] | 2;
}
else
{
show_data[1] = show_data[1] | 2;
}
}
///////
void show_real(void)
{
send164data(show_data[show_count]);
selectcol(show_count);
show_count = (show_count+1) %4;
}
uchar real2show(uchar areal)
{
return(segments[areal]);
}
///////选择要显示的管
void selectcol(uchar col)
{
ledcol1 = 1;
ledcol2 = 1;
ledcol3 = 1;
ledcol4 = 1;
switch (col+1)
{
case 1:
ledcol1 = 0;break;
case 2:
ledcol2 = 0;break;
case 3:
ledcol3 = 0;break;
case 4:
ledcol4 = 0;break;
}
}
///////////显示的数据
void send164data(uchar adata)
{
uchar i;
ledcol1 = 1;
ledcol2 = 1;
ledcol3 = 1;
ledcol4 = 1;
adata = ~adata;
clk164 = 0;
for(i=0;i<8;i++)
{
if (((adata >> i)&1)> 0)
data164 = 1;
else
data164 = 0;
clk164 = 1;
clk164 = 0;
}
}
/////////////////
//void ad_poweron(void)
//{
// ADC_POWER = 1;
// SPEED1 = 0;
// SPEED0 = 0;
// CHS2 = 0;
// CHS1 = 0;
// CHS0 = 0;
// ADC_CONTR = AD_CONTR;
//}
//uchar ad_readdata(void)
//{
//char tmp;
//tmp=ADC_DATA;
//ADC_FLAG=0;
//ADC_CONTR = AD_CONTR;
//return(tmp);
//}
/////////////
/////////
void ad7887_readdata(void)
{
// 31
//sbit adc_cs = P3^7;
//sbit adc_sclk = P3^2;
//sbit adc_dout = P3^3;
//sbit adc_din = P3^4;
adc_cs =1;
adc_sclk = 1;
adc_din =1;
adc_dout = 1;
adc_cs = 0;
//adc_sclk = 0;
//while(1)
//{
//wait(60);
ad7887_tmp = 0;
adc_cs = 0;
//0 msb
//adc_din = 1; //7 nc one or two
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//1
//adc_din = 0; //6 zero
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//2
//adc_din = 1; //5 zero no ref one ref
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//3
//adc_din = 1; //4 single/dual select
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//4
//adc_din = 0; //3 channel select
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
wait(2);
//5
//adc_din = 0; //2 zero
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//6
//adc_din = 1; //1 PM1
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//7
//adc_din = 0; //0 PM0
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//8 msb
//adc_din = 1;
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//9
//adc_din = 0;
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//10
//adc_din = 1;
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//11
//adc_din = 1;
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//12
//adc_din = 0;
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//13
//adc_din = 0;
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//14
//adc_din = 0;
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
//15
//adc_din = 1;
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
if(adc_dout){ad7887_tmp = ad7887_tmp+1;ad7887_tmp=ad7887_tmp<<1;}else{ad7887_tmp=ad7887_tmp<<1;}
//wait(2);
adc_cs = 1;
wait(4);
adr_data=ad7887_tmp&0x0FFF;
ad7887_tmp = 0;
}
/////
void ad7887_poweron(void)
{
//while(1)
//{
wait(60);
//x=0xaa;//ad_command;
ad7887_tmp = 0;
adc_cs = 0;
//0 msb
adc_din = 1; //7 NC
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//1
adc_din = 0; //6 zero
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//2
adc_din = 1; //5 0 ref, 1 no ref
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//3
adc_din = 1; //4 single/dual select 1 dual ,0 single
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//4
adc_din = 0; //3 channel select o ain0, 1 ain1
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//5
adc_din = 0; //2 zero
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//6
adc_din = 1; //1
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//7
adc_din = 1; //0
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//8 two word msb
adc_din = 1; //7
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//9
adc_din = 0; //6
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//10
adc_din = 1; //5
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//11
adc_din = 1; //4
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//12
adc_din = 0; //3
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//13
adc_din = 0; //2
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//14
adc_din = 0; //1
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
//15
adc_din = 1; //0
wait(2);
adc_sclk = 0;
wait(4);
adc_sclk = 1;
wait(2);
adc_cs= 1;
// }
}
/// wait(4) ===125KHZ
void wait(uint tmp)
{uint i;
for(i=0;i<tmp;i++);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -