📄 2020.c
字号:
/*
ad通道1、2 传感器信号
ad通道3 环境温度信号
P2.0-2.4 键盘
P3.7 485芯片控制
*/
#include <aduc812.h>
// data union { int word;
// struct{unsigned char hi;
// unsigned char lo;
// }byte;
// }ad[3];
void sys_init(void)
{
/*AD set */
ADCCON1=0x64;
ADCCON2=0;
/*发送 set*/
TMOD=0X20;
TH1=0Xfd;
TL1=0Xfd;
PCON=0X00;
TR1=1;
SCON=0X50;
// ES=1;EA=1;
}
void delay(unsigned int x)
{ unsigned int j;
while(x--){
for(j=0;j<100;j++)
{;}
}
}
void SendByte(unsigned char s)
{
//P3_7=0;
SBUF = s; //sbuf 发送寄存器
while (TI == 0) ;
TI=0; //TI 发送结束标志
//P3_7=1;
}
void SendTemperature(int ss)
{ char ch;
SendByte('a');
delay(100);
if (ss < 0) {SendByte('-');
delay(100);
ss = 0 - ss;
}
if (ss > 99) {
ch = ss/100+0X30; //转化为字符
SendByte(ch);
delay(100);
ch = (ss%100)/10+0X30;
SendByte(ch);
delay(100);
ch = ss%10+0X30;
SendByte(ch);
delay(100);
} else {
if (ss > 9) {
ch = ss/10+0X30; //转化为字符
SendByte(ch);
delay(100);
ch = ss%10+0X30;
SendByte(ch);
delay(100);
} else { ch = (char) ss + 0X30; //转化为字符
SendByte(ch);
delay(100);
}
}
SendByte('b');
delay(200);
}
code unsigned int amb_[71]= /*环温数据表*/
{0X2200,
0X22A1,0X2323,0X2500,0X25FF,0X2734,0X2889,0X28DE,0X2901,0X2c87,0X3300,
0X36A2,0X3A25,0X3D89,0X40D1,0X43FC,0X470D,0X4A03,0X4CE1,0X4FA8,0X5258,
0X54F2,0X5779,0X59EC,0X5C4D,0X5E9D,0X60DD,0X630E,0X6532,0X674A,0X6955,
0X6B57,0X6D50,0X6F40,0X7129,0X730D,0X74EC,0X76C7,0X789F,0X7A77,0X7C4E,
0X7E25,0X7FFF,0X81DC,0X83BD,0X85A3,0X878F,0X8983,0X8B80,0X8D86,0X8F97,
0X91B4,0X93DF,0X9617,0X985F,0X9AB7,0X9D21,0X9F9D,0XA22D,0XA4D2,0XA78D,
0XAA5F,0XAD49,0XB04D,0XB36B,0XB6A5,0XB9FB,0XBD70,0XC103,0XC4B6,0XC88B};
code unsigned int irvt[471]=
{
0x01ff,0x0238,0x023b,0x0240,0x0243,0x0248,0x024e,0x024f,0x0252,0x0257,
0x025d,0x025f,0x0261,0x0263,0x0265,0x0268,0x026a,0x026c,0x026e,0x0270,
0x0273,0x0275,0x0277,0x027a,0x027c,0x027e,0x0280,0x0282,0x0285,0x0288,
0x028a,0x028e,0x0292,0x0295,0x0297,0x0299,0x029b,0x02a0,0x02a4,0x02a8,0x02aa,0x02ac,0x02b0,
0x02b5,0x02b7,0x02b9,0x02bb,0x02bd,0x02c1,0x02c3,0x02c5,0x02c9,0x02cc,0x02d0,0x02d4,0x02d8,
0x02dc,0x02df,0x02e3,0x02e6,0x02e8,0x02ea,0x02ed,0x02ee,0x02f1,0x02f4,0x02f7,0x02f9,0x02fa,
0x02fe,0x0300,0x0302,0x0304,0x0307,0x0309,0x030b,0x0310,0x0315,0x0319,0x031d,0x0321,0x0325,
0x0329,0x032e,0x0331,0x0333,0x0335,0x0338,0x033d,0x0343,0x0348,0x034e,0x0354,0x0357,0x035a,
0x0360,0x0363,0x0366,0x036c,0x0372,0x0375,0x0378,0x037e,0x0381,0x0385,0x038c,0x0393,0x039a,
0x03a1,0x03a5,0x03a8,0x03ab,0x03af,0x03b3,0x03b6,0x03bd,0x03c4,0x03cb,0x03d2,0x03d9,0x03e0,
0x03e8,0x03eb,0x03ef,0x03f2,0x03f6,0x03f9,0x03fd,0x0405,0x0409,0x040c,0x0413,0x041b,0x0422,0x0427,0x0429,
0x0431,0x0434,0x0438,0x043b,0x0440,0x0444,0x0448,0x0450,0x0454,0x0458,0x045f,0x0467,0x046f,0x0473,0x0477,
0x047f,0x0483,0x0487,0x048f,0x0493,0x0497,0x049b,0x049f,0x04a3,0x04a7,0x04af,0x04b3,0x04b7,0x04bf,0x04c7,
0x04d0,0x04d4,0x04d8,0x04e0,0x04e4,0x04e8,0x04f1,0x04f5,0x04f9,0x0501,0x0505,0x050a,0x0512,0x0516,0x051a,
0x0523,0x0527,0x052e,0x0533,0x0539,0x053f,0x0544,0x054f,0x0554,0x055a,0x0565,0x0570,0x0573,0x057b,0x0586,
0x0591,0x0595,0x0599,0x05a2,0x05a7,0x05ab,0x05b3,0x05b9,0x05bc,0x05c5,0x05ca,0x05cd,0x05d1,0x05d6,0x05df,
0x05e8,0x05ee,0x05f0,0x05f4,0x05f9,0x0602,0x0607,0x060a,0x0613,0x0618,0x061c,0x0624,0x0629,0x062d,0x0636,
0x063f,0x064a,0x0652,0x0656,0x065e,0x0661,0x0666,0x066d,0x0672,0x0678,0x067f,0x0684,0x068f,0x069b,0x06a6,
0x06b2,0x06b8,0x06bd,0x06c3,0x06c9,0x06d4,0x06dc,0x06e0,0x06e5,0x06eb,0x06f7,0x0702,0x070e,0x0712,0x0719,
0x0725,0x072d,0x0731,0x0739,0x073e,0x0743,0x074a,0x0751,0x0757,0x0763,0x076b,0x0770,0x077c,0x0789,0x0795,
0x07a2,0x07a7,0x07ae,0x07b2,0x07bb,0x07c0,0x07c7,0x07d4,0x07e0,0x07e5,0x07ed,0x07f2,0x07f9,0x0806,0x0812,
0x081f,0x0824,0x082d,0x0833,0x083c,0x0843,0x084b,0x0853,0x085a,0x0869,0x086f,0x0877,0x0886,0x0895,0x08a4,
0x08b3,0x08bb,0x08c1,0x08c8,0x08d0,0x08d8,0x08df,0x08e7,0x08ee,0x08f5,0x08fd,0x0904,0x090b,0x0913,0x091a,
0x0921,0x0929,0x0932,0x0938,0x0940,0x0947,0x094f,0x0956,0x095e,0x0965,0x096c,0x0974,0x097a,0x0983,0x0989,
0x098a,0x0993,0x09ae,0x09a2,0x09aa,0x09b1,0x09ba,0x09c0,0x09c8,0x09cf,
0x09d4,0x09df,0x09e5,0x09ee,0x09f3,0x09fd,0x0a04,0x0a0c,0x0a15,0x0a1b,
0x0a22,0x0a2b,0x0a32,0x0a3a,0x0a41,0x0a49,0x0a52,0x0a58,0x0a5f,0x0a67,
0x0a70,0x0a77,0x0a81,0x0a88,0x0a93,0x0a9a,0x0aa4,0x0aac,0x0ab3,0x0abe,
0x0ad0,0x0ad5,0x0adb,0x0ae1,0x0aec,0x0af3,0x0afc,0x0b05,0x0b0f,0x0b17,
0x0b21,0x0b29,0x0b33,0x0b3a,0x0b43,0x0b4c,0x0b53,0x0b5e,0x0b67,0x0b70,
0x0b7b,0x0b82,0x0b8a,0x0b93,0x0b9e,0x0ba5,0x0bb0,0x0bb7,0x0bc1,0x0bc9,
0x0bd3,0x0bdb,0x0be2,0x0bec,0x0bd4,0x0bfd,0x0c02,0x0c0e,0x0c13,0x0c1f,
0x0c26,0x0c31,0x0c3b,0x0c42,0x0c4d,0x0c53,0x0c5a,0x0c64,0x0c6c,0x0c76,
0x0c7f,0x0c87,0x0c92,0x0c98,0x0ca2,0x0ca9,0x0cb3,0x0cbb,0x0cc4,0x0ccc,
0x0cd2,0x0cdd,0x0ce5,0x0cee,0x0cf6,0x0cff,0x0d05,0x0d0e,0x0d11,0x0d17,
0x0d22,0x0d2d,0x0d33,0x0d3c,0x0d44,0x0d4e,0x0d56,0x0d5c,0x0d62,0x0d67,
0x0d72,0x0d78,0x0d7f,0x0d83,0x0d89,0x0d94,0x0d9b,0x0da3,0x0dac,0x0db2,
0x0db8,0x0dbd,0x0dc2,0x0dc8,0x0dce,0x9dd4,0x0ddb,0x0de0,0x0de4,0x0dff,
};
main(void)
{
unsigned char hi,lo; /* AD采集转换的三个通道的值*/
int j,ad[3];
// int ambf,ambc;
SP=0x60;
sys_init();
while(1)
{
ADCCON2=0x18;
// SCONV=1;
;
;
while(ADCCON3>0x7f);
lo=ADCDATAL;
hi=ADCDATAH&0x0f;
ad[0]=hi*256+lo;
SBUF="$"
while(TI==0);
TI=0;
delay(200);
SBUF=hi;
while(TI==0);
TI=0;
delay(200);
SBUF=lo;
while(TI==0);
TI=0;
delay(200);
/*
for(j=0;j<3;j++)
{
ADCCON2=j; /*转到通道j*/
/* SCONV=1; /*启动转换*/
/* ;
;
while(ADCCON3>0x7f); /*当转换结束*/
/* lo=ADCDATAL; /*存转换的结果*/
/* hi=ADCDATAH&0x0f;
ad[j]=hi*256+lo;
if (j==2) ADCCON2=0; /*转到通道0*/
/* else ADCCON2=ADCCON2+1; /*转到下一通道*/
/* }
/*数据处理
if((ad[0]<irvt[0])||(ad[0]>irvt[470])) ircov=888;
else
{
for(a=1;a<471;a++)
{
if(ad[0]<=irvt[a])
{
ircov=a-20;
if((irvt[a]-ad[0])>=(ad[0]-irvt[a-1]))ircov--;
break;
}
}
}*/
//环境温度计算
// ad[2]=ad[2]>>4;
//if((ad[2]>0x7af) || (ad[2]<0xe5)) /*环温>50 环温<-10度 */
// { SendTemperature(888);}
//else { ad[2]=ad[2]>>2;
// ambf=((ad[2]*125)>>1)+0x80;
// ambf=ambf>>8;
// ambc=(ambf-32)*5/9;
//}
// SendTemperature(ad[2]);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -