找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3083|回复: 3
收起左侧

求一份基于stc12c5204ad的sht30的c51驱动程序

[复制链接]
ID:352616 发表于 2018-6-18 09:34 | 显示全部楼层 |阅读模式
25黑币
没有多余描述,设计,感觉有点难

最佳答案

查看完整内容

#include sbit SDA=P2^1; sbit SCL=P2^2; sbit lcden=P2^7; sbit lcdrs=P2^6; unsigned char a,b,c,d,z1,z2,z3,z4,z5,flag,e; unsigned int number,sensor; int time,second,key; void nop() { unsigned int TempCyc = 22; while(TempCyc--) ; } unsigned char code table[]="Temperature:"; unsigned char code table1[]="Humidity:"; unsigned char num,adc; void delay(unsign ...
回复

使用道具 举报

ID:134271 发表于 2018-6-18 09:34 | 显示全部楼层
#include<reg51.h>

sbit SDA=P2^1;
sbit SCL=P2^2;


sbit lcden=P2^7;
sbit lcdrs=P2^6;
   
unsigned char a,b,c,d,z1,z2,z3,z4,z5,flag,e;
unsigned int number,sensor;
int time,second,key;

void nop()
{    unsigned int TempCyc = 22;
    while(TempCyc--)  ;
    }
unsigned char code table[]="Temperature:";
unsigned char code table1[]="Humidity:";
unsigned char num,adc;
void delay(unsigned int z)
{
unsigned int x,y;
for(x=z;x>0;x--)

for(y<110;y>0;y--);

}
void write_com(unsigned char com)
{  delay(5);
lcdrs=0;
P0=com;
delay(5);
lcden=1;
  delay(5);
lcden=0;
}
void write_data(unsigned char date)
{     delay(5);
lcdrs=1;
P0=date;
delay(5);
lcden=1;
  delay(5);
lcden=0;
}
void init()
{
lcden=0;
write_com(0x38);
write_com(0x38);
write_com(0x0c);
write_com(0x06);
write_com(0x01);

   }

void init1()
{SCL=1;
nop();
SDA=1;
nop();
}
void start()
{
SDA=1;
nop();
SCL=1;
nop();
SDA=0;
nop();
SCL=0;
nop();
}
void respons()
{
unsigned char g=0;
SCL=1;
nop();
while((SDA==1)&&(g<255))
g++    ;
SCL=0;
nop();
}
void stop()
{SDA=0;
nop();
SCL=0;
nop();
SCL=1;
nop();
SDA=1;
nop();
}
void write_byte(unsigned char date)
{
unsigned char g,temp;
temp=date;
for(g=0;g<8;g++)
{
temp=temp<<1;
SCL=0;
nop();
SDA=CY;
nop();
SCL=1;
nop();
}
SCL=0;
nop();
SDA=1;
nop();
}
void cpuack()
{SDA=0;
nop();
SCL=1;
nop();
SCL=0;
nop();
}
unsigned char read_byte()
{
unsigned char g,k;
SCL=0;
nop();
SDA=1;
for(g=0;g<8;g++)
{
SCL=1;
nop();
k=(k<<1)|SDA;
SCL=0;
nop();
}
nop();
return k;
}


         main()                                                                             
        {
        init();

               
for(;;)
{
  write_com(0x80);
  for(num=0;num<12;num++)
  {
  write_data(table[num]) ;
  delay(5);
   }   
     write_data(c+48) ;
  delay(5);
   write_data(d+48) ;
  delay(5);
   write_data(46) ;
  delay(5);
   write_data(e+48) ;
  delay(5);
   write_com(0x80+0x40);
  for(adc=0;adc<9;adc++)     
{   
   write_data(table1[adc]);
   delay(5);
   }
   write_data(a+48) ;
  delay(5);   
  write_data(b+48) ;
  delay(5);
  write_data(37) ;
  delay(5);

  

               
              init1();
            start();
            write_byte(0x88);
            respons();
            write_byte(0x24);         
            respons();
            write_byte(0x16);
            respons();
            stop();
            nop();

            start();

            write_byte(0x89);
            respons();
            nop();
            nop();
            if(SCL==0)
            {
            z2=read_byte();
            cpuack() ;
            z3=read_byte();
            cpuack() ;
            read_byte();
            cpuack()    ;
            z4=read_byte();
            cpuack();   
            z5=read_byte();
            cpuack() ;
            read_byte();
            stop();
            number=256*z2+z3;
            sensor=256*z4+z5;
                number=(number/37.5)-450    ;
                sensor=sensor/656;
             a=sensor/10;
             b=sensor%10 ;

      c=(number%1000)/100;
      d=(number%100)/10;
      e=number%10;
            }
            }
            }

评分

参与人数 1黑币 +50 收起 理由
admin + 50 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

ID:352616 发表于 2018-11-21 20:05 | 显示全部楼层
谢谢大哥
回复

使用道具 举报

ID:824719 发表于 2020-10-23 13:38 | 显示全部楼层
number=256*z2+z3;
            sensor=256*z4+z5;
                number=(number/37.5)-450    ;
                sensor=sensor/656;
能不能解释一下这几行代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表