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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(基于单片机的AM温湿度传感器在LCD上显示驱动程序带实物图Word文件下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

基于单片机的AM温湿度传感器在LCD上显示驱动程序带实物图Word文件下载.docx

1、Bit重复性精度250505互换性可完全互换采样周期S响应时间1/e(63%)25,1m/s 空气迟滞0.3长期稳定性典型值%RH/yr温度0.5量程范围-40801/e(63%)620AM2301 驱动电路图3-11 AM2301驱动电路图温湿度传感器模块流程设计用户主机(MCU)发送一次开始信号后,AM2301自动从休眠模式转换到高速模式。等待主机开始,信号发送后,AM2301发送响应信号,送出40比特的数据,发送数据结束之后触发一次信号采集,对外部环境进行数据采集,采集结束传感器自动转入休眠模式,直到下一次通信信号的来临。此时AM2301的SDA数据线由上拉电阻拉高,一直保持高电平,且A

2、M2301的SDA引脚处于输入状态,时刻检测外部信号。一旦接收到主机发送的信号,再次进入采集状态,对外部数据进行一次采集。整个过程流程图如下:图4-10温湿度传感器流程图1602 LCD显示屏测试根据第三章说明的LCD硬件连线要求,将屏幕的14个接口按要求分别连接至单片机的各端口,确认无误后,个单片机上电,并将编完的程序通过STC-ISP软件烧入到单片机中,连线图如下:图5-3 LCD1602连线图 给单片机上电之后,屏幕显示如下:图5-4 LCD1602显示效果 该LCD显示屏能正常显示预期设置字幕。AM2301温湿度传感器测试根据温湿度传感器驱动电路,实物连接图如下:图5-7 AM2301

3、连线图给单片机上电,则可在LCD屏幕上得到如下数据:图5-8 AM2301采集数据LCD屏幕第一行显示当前室内湿度情况,第二行显示当前室内温度情况,若用吹风机对其吹风,则温湿度会相应变化。附录主要程序源代码:1.REG52.H/*-REG52.HHeader generic 80C52 and 80C32 microcontroller.Copyright (c) 1988-2002 Keil Elektronik GmbH and Keil Software, Inc.All rights reserved.-*/#ifndef _REG52_H_#define _REG52_H_/* BY

4、TE Registers */sfr P0 = 0x80;sfr P1 = 0x90;sfr P2 = 0xA0;sfr P3 = 0xB0;sfr PSW = 0xD0;sfr ACC = 0xE0;sfr B = 0xF0;sfr SP = 0x81;sfr DPL = 0x82;sfr DPH = 0x83;sfr PCON = 0x87;sfr TCON = 0x88;sfr TMOD = 0x89;sfr TL0 = 0x8A;sfr TL1 = 0x8B;sfr TH0 = 0x8C;sfr TH1 = 0x8D;sfr IE = 0xA8;sfr IP = 0xB8;sfr SC

5、ON = 0x98;sfr SBUF = 0x99;/* 8052 Extensions */sfr T2CON = 0xC8;sfr RCAP2L = 0xCA;sfr RCAP2H = 0xCB;sfr TL2 = 0xCC;sfr TH2 = 0xCD;/* BIT Registers */* PSW */sbit CY = PSW7;sbit AC = PSW6;sbit F0 = PSW5;sbit RS1 = PSW4;sbit RS0 = PSW3;sbit OV = PSW2;sbit P = PSW0; /8052 only/* TCON */sbit TF1 = TCON7

6、;sbit TR1 = TCON6;sbit TF0 = TCON5;sbit TR0 = TCON4;sbit IE1 = TCON3;sbit IT1 = TCON2;sbit IE0 = TCON1;sbit IT0 = TCON0;/* IE */sbit EA = IE7;sbit ET2 = IE5;sbit ES = IE4;sbit ET1 = IE3;sbit EX1 = IE2;sbit ET0 = IE1;sbit EX0 = IE0;/* IP */sbit PT2 = IP5;sbit PS = IP4;sbit PT1 = IP3;sbit PX1 = IP2;sb

7、it PT0 = IP1;sbit PX0 = IP0;/* P3 */sbit RD = P37;sbit WR = P36;sbit T1 = P35;sbit T0 = P34;sbit INT1 = P33;sbit INT0 = P32;sbit TXD = P31;sbit RXD = P30;/* SCON */sbit SM0 = SCON7;sbit SM1 = SCON6;sbit SM2 = SCON5;sbit REN = SCON4;sbit TB8 = SCON3;sbit RB8 = SCON2;sbit TI = SCON1;sbit RI = SCON0;/*

8、 P1 */sbit T2EX = P11; / 8052 onlysbit T2 = P10; /* T2CON */sbit TF2 = T2CON7;sbit EXF2 = T2CON6;sbit RCLK = T2CON5;sbit TCLK = T2CON4;sbit EXEN2 = T2CON3;sbit TR2 = T2CON2;sbit C_T2 = T2CON1;sbit CP_RL2 = T2CON0;#endif2.INTRINS.HINTRINS.HIntrinsic functions for C51.Copyright (c) 1988-2004 Keil Elek

9、tronik GmbH and Keil Software, Inc.#ifndef _INTRINS_H_#define _INTRINS_H_extern void _nop_ (void);extern bit _testbit_ (bit);extern unsigned char _cror_ (unsigned char, unsigned char);extern unsigned int _iror_ (unsigned int, unsigned char);extern unsigned long _lror_ (unsigned long, unsigned char);

10、extern unsigned char _crol_ (unsigned char, unsigned char);extern unsigned int _irol_ (unsigned int, unsigned char);extern unsigned long _lrol_ (unsigned long, unsigned char);extern unsigned char _chkfloat_(float);extern void _push_ (unsigned char _sfr);extern void _pop_ (unsigned char _sfr);3.STDIO

11、.HSTDIO.HPrototypes for standard I/O functions.#ifndef _STDIO_H_#define _STDIO_H_#ifndef EOF #define EOF -1#ifndef NULL #define NULL (void *) 0)#ifndef _SIZE_T #define _SIZE_T typedef unsigned int size_t;#pragma SAVE#pragma REGPARMSextern char _getkey (void);extern char getchar (void);extern char un

12、getchar (char);extern char putchar (char);extern int printf (const char *, .);extern int sprintf (char *, const char *, .);extern int vprintf (const char *, char *);extern int vsprintf (char *, const char *, char *);extern char *gets (char *, int n);extern int scanf (const char *, .);extern int ssca

13、nf (char *, const char *, .);extern int puts (const char *);#pragma RESTORE4.LCD1602.H#include #ifndef _LCD1602_H_H#define _LCD1602_H_H#define uchar unsigned char#define uint unsigned int/-函数声明-void delayms(uchar z);void writecmd(uchar com);void writedata(uchar dat);void init_LCD();/-函数声明结束-/1602端口定

14、义sbit RS = P24 ; /数据命令选择端(H/L)sbit RW = P25 ;/读写选择端(H/L)sbit E=P26;/* /自定义的字符(5X8) uchar code tab1=0x03,0x05,0x19,0x19,0x19,0x05,0x03,0x00;/小喇叭uchar code tab2=0x08,0x0f,0x12,0x0f,0x0a,0x1F,0x02,0x02,;/年uchar code tab3=0x0f,0x09,0x0f,0x09,0x0f,0x09,0x11,0x00;/月uchar code tab4=0x00,0x1F,0x11,0x1F,0x11

15、,0x11,0x1F,0x00;/日uchar code tab5=0x18,0x18,0x07,0x08,0x08,0x08,0x07,0x00;/C(温度符号)*/*void lcd_pos(uchar pos)/设定显示位置 lcd_wcmd(pos | 0x80) ;void delayms(uchar z) /延时函数 uint i,j; for(i=z;i0;i-) for(j=100;jj-); void writecmd(uchar com) /写指令 RS=0; RW=0; E=0; delayms(1); P0=com; E=1;void writedata(uchar d

16、at) /写数据 RS=1; P0=dat; /* 写汉字编码到CGRAM函数 *void writetab() unsigned char i ; lcd_wcmd(0x40) ; /写CGRAM for (i = 0 ; istdio.h#include lcd1602.htypedef unsigned char U8; /* 无符号8位整型变量 */typedef signed char S8; /* 有符号8位整型变量 */typedef unsigned int U16; /* 无符号16位整型变量 */typedef signed int S16; /* 有符号16位整型变量 *

17、/typedef unsigned long U32; /* 无符号32位整型变量 */typedef signed long S32; /* 有符号32位整型变量 */typedef float F32; /* 单精度浮点数(32位长度) */typedef double F64; /* 双精度浮点数(64位长度) */#define uint unsigned int/-IO口定义-/sbit DHT = P20 ; /AM2301端口定义/-全局变量-/bit flagtemp;/温度正负标志位,k U8count, bit flagsendtemp;/发送温度的标志位U8 U8FLAG

18、;U8 U8temp;U8 U8T_data_H,U8T_data_L,U8RH_data_H,U8RH_data_L,U8checkdata;U8 U8T_data_H_temp,U8T_data_L_temp,U8RH_data_H_temp,U8RH_data_L_temp,U8checkdata_temp;U8 U8comdata;U16 DHTData1,DHTData2;U8 outdata5; /定义发送的字节数 U8 indata5;U8 count, count_r=0;U8 str5;U8 data tab6=0x00,0x00,0x00,0x00,0x00,0x00;/存

19、储温湿度数据U8 code dis1=Humdity: % ;U8 code dis2=Temper: c /*函数名称 : 延时子程序*/void Delay(U16 j) U8 i; for(;j-) for(i=0;i27;i+); void Delay_10us(void)/延时10uS U8 i; i-; /* 读温湿度字节函数 功 能 : 读取温湿度每个字节说 明 : 无 void COM(void)/读字节 for(i=0;8;i+) U8FLAG=2; while(!DHT)&U8FLAG+); Delay_10us(); U8temp=0; if(DHT)U8temp=1;

20、while(DHT)& /超时则跳出for循环 if(U8FLAG=1)break; /判断数据位是0还是1 / 如果高电平高过预定0高电平值则数据位为 1 U8comdata=1; U8comdata|=U8temp; /0 /end i /- /- /-湿度读取子程序 - /-以下变量均为全局变量- /-温度高8位= U8T_data_H- /-温度低8位= U8T_data_L- /-湿度高8位= U8RH_data_H- /-湿度低8位= U8RH_data_L- /-校验 8位 = U8checkdata- /-调用相关子程序如下- /- Delay();, Delay_10us();,COM(); 温湿度读取函数 读取温湿度数据 void RH(void)/读取温湿度 /主机

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1