标题:
单片机AD转换器(PCF8591)的返回值如何显示在1602液晶屏上?
[打印本页]
作者:
hls123
时间:
2019-4-10 22:41
标题:
单片机AD转换器(PCF8591)的返回值如何显示在1602液晶屏上?
接收了AD转换器(PCF8591)的返回值,然后怎么把这个值变成烟雾浓度值显示在LCD1206上?n=iic_readvoldata();然后呢?
uchar iic_readvoldata()
{
iic_start();
iic_sendbyte(add_write);
if(!iic_recACK())
{
iic_sendbyte(control_byte);
if(!iic_recACK())
{
iic_start();
iic_sendbyte(add_rec);
if(!iic_recACK())
{
voldata1 = iic_recbyte();
iic_sendbyte(0);
iic_stop();
}
}
}
return voldata1;
}
作者:
累不死的狗
时间:
2019-4-11 00:21
这是我自己写的程序,你自己参悟去
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit Data=P3^6;
uchar rec_dat[9];
sbit lcdrs=P3^0;
sbit lcdrw=P3^1;
sbit lcden=P3^2;
void delay(uint n)
{ uint x,y;
for(x=n;x>0;x--)
for(y=110;y>0;y--);
}
void write_com(uchar com)
{
lcdrs=0;
P2=com;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void write_dat(uchar dat)
{
lcdrs=1;
P2=dat;
delay(5);
lcden=1;
delay(5);
lcden=0;
}
void init_lcd()
{
lcden=0;
lcdrw=0;
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);
}
void DHT11_delay_us(uchar n)
{
while(--n);
}
void DHT11_delay_ms(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}
void DHT11_start()
{
Data=1;
DHT11_delay_us(2);
Data=0;
DHT11_delay_ms(30);
Data=1;
DHT11_delay_us(30);
}
uchar DHT11_rec_byte()
{
uchar i,dat=0;
for(i=0;i<8;i++)
{
while(!Data);
DHT11_delay_us(8);
dat<<=1;
if(Data==1)
dat+=1;
while(Data);
}
return dat;
}
void DHT11_receive()
{
uchar R_H,R_L,T_H,T_L,RH,RL,TH,TL,revise;
DHT11_start();
if(Data==0)
{
while(Data==0);
DHT11_delay_us(40);
R_H=DHT11_rec_byte();
R_L=DHT11_rec_byte();
T_H=DHT11_rec_byte();
T_L=DHT11_rec_byte();
revise=DHT11_rec_byte();
DHT11_delay_us(25);
if((R_H+R_L+T_H+T_L)==revise)
{
RH=R_H;
RL=R_L;
TH=T_H;
TL=T_L;
}
rec_dat[0]='0'+(RH/10);
rec_dat[1]='0'+(RH%10);
rec_dat[2]='R';
rec_dat[3]='H';
rec_dat[4]=' ';
rec_dat[5]=' ';
rec_dat[6]='0'+(TH/10);
rec_dat[7]='0'+(TH%10);
rec_dat[8]='C';
}
}
void main()
{
uchar i;
init_lcd();
while(1)
{
DHT11_delay_ms(100);
DHT11_receive();
write_com(0x80);
for(i=0;i<9;i++)
write_dat(rec_dat[i]);
write_com(0x80+0x40);
write_dat(0x2d);
write_dat(0x42);
write_dat(0x3a);
}
}
复制代码
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1