sht20中写用户寄存器_谁用过sht20这块温湿度传感器,有调通的程序分享下吧

本文档介绍了如何使用I2C通信协议与SHT20温湿度传感器交互,包括SHT20的软件复位、写用户寄存器设置分辨率以及读取数据的详细步骤。提供了C语言实现的I2C模拟函数和SHT20传感器操作函数,适合嵌入式系统开发者参考。
摘要由CSDN通过智能技术生成

#include         //12M

#include

typedef unsigned char uint8;

typedef signed char fuint8;

typedef unsigned int uint16;

typedef signed int fuint16;

#define uchar unsigned char

#define uint  unsigned int

#define ulong unsigned long

#define TC  0xF3 //温度测量

#define SH  0xF5 //湿度测量

#define WR        0xE6 //写寄存器

#define RD  0xE7 //读寄存器

#define RST 0xFe //软复位

/*================================================================

【  Name  】

【Function】SHT20的I2C地址

【  Notes 】

【 Author 】dingshidong

【  Data  】2012.08.07

================================================================*/

#define SHT20ADDR 0x80

/*================================================================

【  Name  】

【Function】应答位电平定义

【  Notes 】

【 Author 】dingshidong

【  Data  】2012.08.07

================================================================*/

#define ACK            0            //应答信号

#define NACK        1             //非应答信号

#define led_duan P0                //数码管段选//

#define led_wei P2                //数码管位选//

fuint16 value;

fuint16 ys;

bit dian = 0;

bit ad_ok = 0;

sbit        wei_1 = P2^0;

sbit        wei_2 = P2^1;

sbit        wei_3 = P2^2;

sbit        wei_4 = P2^3;

sbit        wei_5 = P2^4;

sbit        wei_6 = P2^5;

sbit        wei_7 = P2^6;

sbit led_dian = P0^5;

sbit        SDA = P3^4;

sbit        SCL =  P3^3;

uint8 xsjs = 0;

uint16 pca_s=0;

uint16 wendu,shidu;

uint8 xszc[7];        //显示缓冲区

uint8 code duan_ma[] = {

0x28,/*0*/

0x7E,/*1*/

0xA2,/*2*/

0x62,/*3*/

0x74,/*4*/

0x61,/*5*/

0x21,/*6*/

0x7A,/*7*/

0x20,/*8*/

0x60,/*9*/

};

uint8 code wei_ma [] = {0x7F,0xBF,0xDF,0xEF,0xF7,0xFB,0xFD};

/*================================================================

【  Name  】void Delay(uint t)

【Function】delay Nms

【  Notes 】

【 Author 】dingshidong

【  Data  】2012.08.07

================================================================*/

void Delay(uint t)

{

uchar i;

while(t--)

{

for(i=0;i<200;i++);

}

}

/*------------------------------------------------------------*/

/***********

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值