- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
温湿度传感器程序
/*基于盛群单片机开发的 获得温湿传感器dht11和光敏电阻的数据 并且发送到1602显示屏的程序*/
#include ht46r232.h
#pragma vector isr_4 @ 0x4
#pragma vector isr_8 @ 0x8
#pragma vector isr_c @ 0xc
#pragma vector isr_ad @ 0x10 //ad中断服务程序(r232地址是10)
//ISR for safequard
void isr_4(){} // external ISR
void isr_8(){} // timer/event 0
void isr_c(){} // timer/event 1
//initialize registers for safeguard
void safeguard_init(){
_intc0=0;
_intc1=0;
_tmr0h=0;
_tmr0l=0;
_tmr0c=0;
_tmr1h=0;
_tmr1l=0;
_tmr1c=0;
_pac=0xff;
_pbc =0xff; //input mode
_pcc =0xff;
}
typedef unsigned char u8;
#define rs _pc2 //屏幕的控制rs
#define ep _pc0 //屏幕的控制rs
#define rw _pc1 //屏幕的控制rs
#define dht _pb1
#define ko _pb2 //外部按键定义
#define ky _pb3
#define LED_DATA_CRL _pac //屏幕数据管脚的I/O控制
#define DHT_DATA_CRL _pbc //dht数据管脚的I/O控制
#define LED_DATA_DATA _pa //屏幕数据管脚的数据传递
#define LED_CRL_CRL _pcc //屏幕控制管脚的I/O控制
#define ad_start _26_7 //定义ad转换的start位(r232的adcr寄存器地址是0x26h)
void busycheck(void);
void init(void);
void cmd(unsigned char);
void data(int);
signed char U8FLAG,U8temp,U8comdata;
int U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;/*中间数值,校对校验码后付给最终的结果*/
int U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;/*实际数值*/
int k; //外部按键常量
unsigned int light; //光强的数字值
int light_b; //百位
int light_s; //十位
int light_g; //个位
int count;
void ADtrans(){ //ad转换开始
ad_start=0;
ad_start=1;
ad_start=0;
}
//--------------------------------------屏幕部分------------------------------
//********************************屏幕初始************************************
void init()
{
LED_DATA_CRL=0;
LED_CRL_CRL=0;
LED_DATA_DATA=0;
_pc=0;
_delay(5000);
_delay(5000);
_delay(5000);
cmd(0x38);
_delay(5000);
cmd(0x38);
_delay(5000);
cmd(0x38);
_delay(5000);
cmd(0x38);
busycheck();
cmd(0x08);
busycheck();
文档评论(0)