- 1、本文档共10页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STH10_C编程实例
这是我自己写的SHT10的程序,SHT1X系列的都适用。
几点说明:
主要是分以下几个模块写的:SHT10,LCD1602,主函数,头文件。
每支SHTxx传感器都在25℃(77 °F)和 3.3V条件下进行过标定并且完全符合精度指标.因为考虑到实际硬件5V的电压比较好操作,所以SHT10用的精度采用的为5V时的参数。其他的都采取默认值(14bit湿度 , 12bit 温度)。
SHT10中所以部分我都编写了。有的部分在本次程序中没用到,也可以作为参考。
所有程序都已经加了注释,且有仿真图。
个人认为还可以在此基础上添加个中断。
程序编写keil 4 ,仿真 protues7.5
/***********************************************************************************************************************************************************/
头文件(tou.h):
#ifndef __TOU_H__
#define __TOU_H__
#includereg52.h
#include intrins.h
//#include math.h //Keil library
#define uchar unsigned char
enum {TEMP,HUMI};
sbit DATA = P1^7;
sbit SCK = P1^6;
sbit LcdRs = P2^4;
sbit LcdRw = P2^5;
sbit LcdEn = P2^6;
sfr DBPort = 0x80; //P0=0x80,P1=0x90,P2=0xA0,P3=0xB0.数据端口
/******** DS1602函数声明 ********/
void LCD_Initial();
void GotoXY(unsigned char x, unsigned char y);
void Print(unsigned char *str);
void LCD_Write(bit style, unsigned char input);
/******** SHT10函数声明 ********/
void s_connectionreset(void);
char s_measure(unsigned char *p_value, unsigned char *p_checksum, unsigned char mode);
void calc_sth10(float *p_humidity ,float *p_temperature);
//float calc_dewpoint(float h,float t);
#endif
/***********************************************************************************************************************************************************/
SHT10程序(SHT10.c):
#includetou.h
#define noACK 0 //继续传输数据,用于判断是否结束通讯
#define ACK 1 //结束数据传输;
//地址 命令 读/写
#define STATUS_REG_W 0x06 //000 0011 0
#define STATUS_REG_R 0x07 //000 0011 1
#define MEASURE_TEMP 0x03 //000 0001 1
#define MEASURE_HUMI 0x05 //000 0010 1
#define RESET 0x1e //000 1111 0
//写字节程序
char s_write_byte(unsigned char value)
{
unsigned char i,error=0;
for (i=0x80;i0;i=1) //高位为1,循环右移
{
if (ivalue) DATA=1; //和要发送的数相与,结果为发送的位
else DATA=0;
您可能关注的文档
最近下载
- S实验针灸学题库.pdf VIP
- 强迫症的暴露疗法及其实施步骤.pptx
- 室性心律失常的药物治疗进展杨杰孚【58页】.pptx VIP
- 高考新题型现代文阅读Ⅱ小说之双文本比较阅读答题攻略-2025年高考语文一轮复习(全国通用).pdf VIP
- 057_创业板50 vs 上证50——大小盘轮动研究.pdf
- 2024-2025学年小学道德与法治五年级上册统编版(五四学制)教学设计合集.docx
- 锚索施工方案.docx VIP
- 理想、目标与计划规划(36页)讲解.ppt
- Unit 1 Life Choices 单元整体教学设计-高中英语北师大版必修第一册.docx
- 国开一体化平台00716《机械设计基础》形考任务(1-4)试题及答案.docx
文档评论(0)