




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
#include #include /#define LCD_data P0 /数据口typedefunsigned char unint8;typedefunsigned char unint16;#define power_down 0x00#define power_on 0x01#define reset 0x07#define h_resolution_mod 0x10#define m_resolution_mod 0x13#define l_resolution_mod 0x16#define onetime_h 0x20#define onetime_m 0x23#define onetime_l 0x26#define write_1710 0x46#define read_1710 0x47sbit SCL = P10;sbit SDA = P11;sbit dvi = P12;unsigned char str1= ;unsigned char str2= ;char str3= ;unsigned char code wel1 = *;unsigned char code wel2 = | Welcome You !|;unsigned char code wel3 = | MADE: 李培陈杰;unsigned char code wel4 = *;unsigned char code dis1 = 温湿度检测系统:;unsigned char code dis2 = 湿度: %RH ;unsigned char code dis3 = 温度: C ;unsigned char code dis4 = 光强: LX ;sbit TRH = P36;sbit Beep = P15 ; sbit LCD_RS = P24; /寄存器选择输入 sbit LCD_RW = P25; /液晶读/写控制sbit LCD_EN = P26; /液晶使能控制sbit LCD_PSB = P21; /串/并方式控制sbit LCD_RST = P23; /液晶复位端口unint8TH_data,TL_data,RH_data,RL_data,CK_data;unint8TH_temp,TL_temp,RH_temp,RL_temp,CK_temp;unint8com_data,untemp,temp;unint8respond;/*/void delayNOP()_nop_();_nop_();_nop_();_nop_();/*/*/ 毫秒级延时子程序/*/void delay_ms(unsigned char ms)unsigned char i;while(ms-)for(i = 0; i250; i+)_nop_();_nop_();_nop_();_nop_();/*/*/5us级延时程序/*/void delay_us()unint8 i;i-;i-;i-;i-;i-;i-; /*/ /*/ 测试LCD忙碌状态/lcd_busy()为1时,忙,等待。lcd_busy()为0时,闲,可写指令与数据。/*/bit lcd_busy() bit result; LCD_RS = 0; LCD_RW = 1; LCD_EN = 1; delayNOP(); result = (bit)(P0&0x80); LCD_EN = 0; return(result);/*/*/ 写入指令数据到LCD/*/void lcd_wcmd(unsigned char cmd) while(lcd_busy(); LCD_RS = 0; LCD_RW = 0; LCD_EN = 0; _nop_(); _nop_(); P0 = cmd; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0;/*/*/写显示数据到LCD /RS=高电平,RW=低电平,E=高脉冲,D0-D7=数据。 /*/void lcd_wdata(unsigned char dat) while(lcd_busy(); LCD_RS = 1; LCD_RW = 0; LCD_EN = 0; P0 = dat; delayNOP(); LCD_EN = 1; delayNOP(); LCD_EN = 0; /*/*/LCD初始化设定/*/void lcd_init() LCD_PSB = 1; /并口方式 LCD_RST = 0; /液晶复位 delay_ms(3); LCD_RST = 1; delay_ms(3); lcd_wcmd(0x34); /扩充指令操作 delay_ms(5); lcd_wcmd(0x30); /基本指令操作 delay_ms(5); lcd_wcmd(0x0C); /显示开,关光标 delay_ms(5); /lcd_wcmd(0x01); /清除LCD的显示内容 /delay_ms(5);/*/*/设定LCD显示位置/*/void lcd_dis_pos(unsigned char X,unsigned char Y)unsigned char pos; if (X=1)X=0x80; else if (X=2)X=0x90; else if (X=3)X=0x88; else if (X=4)X=0x98; pos = X+Y ; lcd_wcmd(pos); /显示地址void lcd_pos(unsigned char X,unsigned char Y)unsigned char pos; if (X=2)pos=0x90; if (X=3)pos=0x88;if (X=4)pos=0x98;lcd_wcmd(Y | pos);/数据指针=80+地址变量/*/*/* * 清屏函数 * */void clr_screen() lcd_wcmd(0x34); /扩充指令操作 delay_ms(5); lcd_wcmd(0x30); /基本指令操作 delay_ms(5); lcd_wcmd(0x01); /清屏 delay_ms(5); /*/*/收发信号检测,数据读取/*/char receive() unint8 i;com_data=0;for(i=0;i=7;i+) respond=2;while(!TRH)&respond+);delay_us();delay_us();delay_us();if(TRH)temp=1;respond=2;while(TRH)&respond+); elsetemp=0;com_data=1; com_data|=temp; return(com_data); /*/*/湿度读取子程序 /温度高8位= TL_data/温度低8位= TH_data/湿度高8位= RH_data/湿度低8位= RH_data/校验 8位 = CK_data/调用的程序有 delay();, Delay_5us();,RECEIVE(); /*/void read_TRH()int m;/主机拉低18ms TRH=0; delay_ms(18); TRH=1;/DATA总线由上拉电阻拉高 主机延时20us delay_us(); delay_us(); delay_us(); delay_us();/delay_us();/delay_us();delay_us();delay_us();delay_us();/主机设为输入 判断从机响应信号 TRH=1;/判断DHT11是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!TRH) respond=2;/判断DHT11发出 80us 的低电平响应信号是否结束 while(!TRH)& respond+);respond=2;/判断从机是否发出 80us 的高电平,如发出则进入数据接收状态while(TRH & respond+);/数据接收状态 RH_temp = receive(); RL_temp = receive(); TH_temp = receive(); TL_temp = receive(); CK_temp = receive();TRH=1; /数据校验 untemp=(RH_temp+RL_temp+TH_temp+TL_temp);if(untemp=CK_temp) RH_data = RH_temp; RL_data = RL_temp;TH_data = TH_temp; TL_data = TL_temp; CK_data = CK_temp;/湿度整数部分str10 = (char)(0X30+RH_data/10); str11 = (char)(0X30+RH_data%10);/温度整数部分str20 = (char)(0X30+TH_data/10); str21 = (char)(0X30+TH_data%10);m=(int)(RH_data);void welcome()unsigned char i;lcd_dis_pos(1,0);for(i=0;i16;i+) /显示字符lcd_wdata(wel1i);lcd_dis_pos(2,0);for(i=0;i16;i+) /显示字符lcd_wdata(wel2i);lcd_dis_pos(3,0);for(i=0;i16;i+) /显示字符lcd_wdata(wel3i);lcd_dis_pos(4,0);for(i=0;i0;c-) for(b=120;b0;b-) for(a=1;a0;a-);void delayus() ; void BH_start() /dvi = 0;SDA=1; delayus(); SCL=1; delayus(); SDA=0; delayus();/dvi = 1;/delay120ms();/dvi = 0;/delay120ms();/dvi = 1;void BH_stop() SDA=0; delayus(); SCL=1; delayus(); SDA=1;void BH_respons() unsigned char i; SCL=1; delayus(); while(SDA=1)&(i250)i+; SCL=0; delayus();void init_BH() SDA=1; delayus(); SCL=1; delayus(); void BH_write_byte(unsigned char date) unsigned char i,temp; for(i=0;i8;i+) temp=date&0x80; SCL=0; delayus(); SDA=temp; delayus(); SCL=1; delayus(); date=date1; SCL=0; delayus(); SDA=1; delayus();unsigned char BH_read_byte() unsigned char i,k; SCL=0; delayus(); SDA=1; delayus(); for(i=0;i8;i+) SCL=1; delayus(); k=(k1)|SDA; SCL=0; delayus(); return k;void write_reg(unsigned char address,unsigned char shuju) BH_start(); BH_write_byte(address); BH_respons(); BH_write_byte(shuju); BH_respons(); BH_stop();unsigned int read_reg(unsigned char address) unsigned char date2; unsigned char date1; unsigned int date; BH_start(); BH_write_byte(address); BH_respons(); date1=BH_read_byte(); SCL=0; delayus(); SDA=0; delayus(); SCL=1; delayus(); date2=BH_read_byte(); SCL=0; delayus(); SDA=0; delayus(); SCL=1; delayus(); BH_stop(); date=date*256+date2; return date;unsigned int bh1710_read() int bh; write_reg(write_1710,power_on); write_reg(write_1710,reset); write_reg(write_1710,h_resolution_mod); delay120ms(); delay120ms(); bh=read_reg(read_1710); return bh; void read_Dat(void)unsigned char lx;init_BH(); lx= bh1710_read();str30 = lx%1000/100+0;str31 = lx%100/10+0;str32 = lx%10+0;/*/主函数/TH,TL,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年河南豫信电科所属公司招聘考试真题
- 2024年蚌埠市第二人民医院招聘考试真题
- 运动人体解剖踝关节课程
- 2025至2030年程控高精度电源项目投资价值分析报告
- 安全生产法对不同行业的影响及应对策略
- 特种作业安全管理制度
- 2025至2030年溜冰鞋轮项目投资价值分析报告
- 双重预防体系建设
- 2025至2030年果汁生产成套设备项目投资价值分析报告
- Python爬虫大数据采集与挖掘-微课视频版-课件 第二版-1 概述
- 国家粮食和物资储备局招聘考试真题2024
- 产品推广活动策划方案详解
- 上门催收技巧培训
- 【初中地理】《日本》课件-2024-2025学年湘教版初中地理七年级下册
- 洛索洛芬钠口服溶液-药品临床应用解读
- 18《井冈翠竹》公开课一等奖创新教学设计
- 漳州市医院招聘真题2024
- 专题05 文学文化常识 知识清单 中考语文复习
- 2025年江苏省安全员C证(专职安全员)考试题库
- 鱼塘修建申请书
- 网络与信息安全专业国家技能人才培养工学一体化课程设置方案
评论
0/150
提交评论