ImageVerifierCode 换一换
格式:DOC , 页数:6 ,大小:44KB ,
资源ID:12374509      下载积分:10 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-12374509.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(温湿度计程序.doc)为本站会员(j35w19)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

温湿度计程序.doc

1、/*Project: SHTxx 驱动程序 4 位数码管移位扫描显示*/#include /Microcontroller specific library, e.g. port definitions#include /Keil library (is used for _nop()_ operation)#define uchar unsigned char#define uint unsigned int#define outdata P0 /8951mcuenum TEMP,HUMI;sbit DATA=P21;sbit SCK=P20;#define noACK 0#define A

2、CK 1#define MEASURE_TEMP 0x03 /000 0001 1#define MEASURE_HUMI 0x05 /000 0010 1#define RESET 0x1e /000 1111 0/-硬件配置-/P0 口为段码数据, P1.4, P1.5, P1.6, P0.5 分别为 1234 位数码管/=显示段码数据=uchar duanma10=0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0;/=位控制=sbit WEI1=P27;sbit WEI2=P26;sbit WEI3=P25;sbit WEI4=P24;

3、/8951/=按键配置=/=显示缓冲区 RAM 配置=uchar buffer4=0,0,0,0;uchar wd,sd;union unsigned int i;float f;wendu,shidu;/定义两个共同体,一个用于湿度,一个用于温度/=void delayHM(uint k)/毫秒级延时子函数uint i;uchar j;for(i=0;i0;i/=2) /shift bit for masking if (i /masking value with i , write to SENSI-BUSelse DATA=0;SCK=1; /clk for SENSI-BUS_nop_

4、();_nop_();_nop_(); /pulswith approx. 5 usSCK=0;DATA=1; /release DATA-lineSCK=1; /clk #9 for ackerror=DATA; /check ack (DATA will be pulled down by SHT11)SCK=0;return error; /error=1 in case of no acknowledge/-char s_read_byte(unsigned char ack)/-/读数据;unsigned char i,val=0;DATA=1; /release DATA-line

5、for (i=0x80;i0;i/=2) /shift bit for masking SCK=1; /clk for SENSI-BUSif (DATA) val=(val | i); /read bitSCK=0;DATA=!ack; /in case of “ack=1“ pull down DATA-LineSCK=1; /clk #9 for ack_nop_();_nop_();_nop_(); /pulswith approx. 5 usSCK=0;DATA=1; /release DATA-linereturn val;/-void s_transstart(void)/-/

6、generates a transmission start/ _ _/ DATA: |_|/ _ _/ SCK : _| |_| |_DATA=1; SCK=0; /Initial state_nop_();SCK=1;_nop_();DATA=0;_nop_();SCK=0;_nop_();SCK=1;_nop_();DATA=1;_nop_();SCK=0;/-void s_connectionreset(void)/-/ /启动传输/ _ _/ DATA: |_|/ _ _ _ _ _ _ _ _ _ _ _/ SCK : _| |_| |_| |_| |_| |_| |_| |_|

7、|_| |_| |_| |_unsigned char i;DATA=1; SCK=0; /Initial statefor(i=0;i100)rh_true=100; /cut if the value is outside ofif(rh_true0.1)rh_true=0.1; /the physical possible range*p_temperature=t_C; /return temperature*p_humidity=rh_true; /return humidity%RH/-void main()/- uchar error,checksum;uint xunh;s_c

8、onnectionreset();while(1)xunh+;if(xunh=4000)xunh=0;error=0;error+=s_measure(unsigned char*) /湿度测量error+=s_measure(unsigned char*) /温度测量if(error!=0) s_connectionreset(); /如果发生错误,系统复位else shidu.f=(float)shidu.i; /转换为浮点数wendu.f=(float)wendu.i; /转换为浮点数calc_sth11( /修正相对湿度及温度sd=(char)shidu.f;wd=(char)wendu.f;buffer0=sd%10;buffer1=sd/10;buffer2=wd%10;buffer3=wd/10;led_dispy(buffer);/-led_dispy(buffer);

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报