📄 aduc824.txt
字号:
///////////////////////程序///////////////////
#include "aduc824.h"
#include<intrins.h>
#define time_1 6000
unsigned char code dispcode[]={0x88,0xbb,0xc1,0x91,0xb2,0x94,0x84,0xb9,0x80,0x90};
unsigned char dispbuf[4]={0,0,0,0};
unsigned char data l_data[5] ;
float wd;
sbit CLKPIN = P1^3; //用户自定义CLK对应引脚
sbit DIPIN = P1^1; //用户自定义DI对应引脚
void lcdwbit(bit n) //串行移位脉冲输入
{ DIPIN = n;
CLKPIN = 1;
CLKPIN = 0;
CLKPIN = 1;
}
void lcdwd(unsigned char data1) //串行数据输入
{ unsigned char i;
for(i=0;i<8;i++)
{ if((data1&0x01)==0x01)
lcdwbit(1);
else
lcdwbit(0);
data1>>=1;
}
}
void delay(unsigned int t) // 延时子程序
{ unsigned int i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++)
;
}
void l_set()
{
l_data[1]=0xff;
l_data[2]=dispcode[dispbuf[1]];
l_data[3]=dispcode[dispbuf[2]];
l_data[4]=dispcode[dispbuf[3]];
l_data[5]=dispcode[dispbuf[4]];
}
void lcdwd1()
{ unsigned char i;
for(i=0;i<5;i++)
lcdwd(l_data[i+1]);
}
void transram()
{
l_set();
lcdwd1(); //显示
delay(time_1);
}
void ADCI () //24位AD转换模式
{
int l,m,h,i;
l=ADC0L;
m=ADC0M;
h=ADC0H;
i=65536*h+256*m+l;
wd=i/214748364.8;
}
void main(void)
{ float i ;
int j;
ADC0CON=0x00; //20mv范围
ADCMODE=0x63; //主ADC使能,连续转换
IE=0xC0; //开启ADC中断,打开总中断
while ( !( ADCSTAT&0x01 )) //完成数据写入寄存器ADS.7置1
{
ADCI (); //A/D转换数据处理,对应热电势
i=wd;
if(i>=5.770&&i<6.790) j=99.199*i+527.2;
else if(i>=6.790&&i<7.850) j=94.121*i+561.68;
else if(i>=7.850&&i<8.960) j=90.237*i+592.1;
else if(i>=8.960&&i<10.1) j=87.445*i+617.06;
else if(i>=10.1&&i<11.270) j=85.903*i+632.57;
else if(i>=11.270&&i<12.440) j=85.483*i+637.2;
else if(i>=12.440&&i<13.600) j=86.507*i+628.58;
dispbuf[1]=j/1000; //千位
dispbuf[2]=(j%1000)/100; //百位
dispbuf[3]=((j%1000)%100)/10; //十位
dispbuf[4]=((j%1000)%100)%10; //个位
transram();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -