基于51单片机的温湿度测量仪课程设计.doc
《基于51单片机的温湿度测量仪课程设计.doc》由会员分享,可在线阅读,更多相关《基于51单片机的温湿度测量仪课程设计.doc(25页珍藏版)》请在咨信网上搜索。
单片机应用课程设计 重庆邮电大学 单片机应用课程设计 2013-2014(1) 课设题目: 基于单片机的简易温湿度测量仪 指导教师: 黄 老 师 序号 姓名 班级 学号 性别 工作量(%) 分数 1 夏恒发 0121101 2011210050 男 20 2 文 翻 0121101 2011210009 女 20 3 罗春雪 0121101 2011210010 女 15 4 王 琎 0121101 2011210043 男 15 5 刘 艺 0121101 2011210069 女 15 6 李怡佳 0121101 2011210072 女 15 目录 第1章 摘要………………………………………………………1 第2章 设计任务分析及方案论证………………………………1 2.1设计要求……………………………………………1 2.2设计方案及其论证…………………………………1 2.3器件选定……………………………………………2 2.4 AT89C51单片机……………………………………4 2.5显示部分……………………………………………5 第3章 电路与程序设计…………………………………………6 3.1主控制电路和测温时控制电路……………………6 3.2主要模块的电路……………………………………7 3.2.1温湿度采集模块 ………………………………7 3.2.2报警模块 ………………………………………7 3.2.3显示模块 ………………………………………8 第4章 测试方案与测试结果 ……………………………………10 4.1测试方案及测试条件 ……………………………10 4.2测试结果及其完整性………………………………10 4.3测试结果分析………………………………………10 结论 ………………………………………………………………11 心得体会 …………………………………………………………12 参考文献 …………………………………………………………12 附录 ………………………………………………………………13 摘 要 本次设计是采用MSC-51系列单片机中的AT89C51和DHT11构成的低成本的温湿度的检测控制系统。单片机AT89C51是一款低消耗、高性能的CMOS8位单片机,由于它强大的功能和低价位,因此在很多领域都是用它。DHT11温湿度传感器是一款含有已校准数字输出的温湿度复合传感器,传感器包括一个电阻式感湿原件和一个NTC测温元件,该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。设计主要包括硬件电路的设计和系统软件的设计。 硬件电路主要包括单片机、温湿度传感器、显示模块、报警器以及控制设备等5部分。其中由DHT11温湿度传感器及1602字符型液晶模块构成系统显示模块;测温湿度控制电路由温湿度传感器和预设温度值比较报警电路组成;用户根据需要预先输入预设值,当实际测量的温湿度不符合预设的温湿度标准时,发出报警信号(蜂鸣器蜂鸣),启动相应控制。 关键词:AT89C51;DHT11;温湿度传感器 第2章 设计任务分析及方案论证 2.1设计要求 以MCS_51系列单片机AT89C51学习板作为本次实验的核心器件,外接报警电路,温湿度采集电路,组成一个温湿度采集报警系统。基本要求温湿度采集使用DHT11芯片,报警电路用有源蜂鸣器作为报警器件;测量空气温湿度;通过数码管显示温度和湿度,显示位数精确到个位,要求观察时无闪烁;设置温度和湿度的上下限,通过蜂鸣器报警;将温度和湿度单位显示在数据后面,温度C 或F、湿度%RH。提升部分:采用液晶显示,声音告警、闪烁显示告警项、按键设定上下限值,单位转换。 2.2设计方案及其论证 本设计要实现的功能是:实时显示当前环境的温湿度,并且允许用户设定温湿度阀值,当环境温湿度超过或低于标准值时,系统会以蜂鸣器鸣响的方式进行报警提示。 用于用户设定温湿度准确值,1602用于数据显示,蜂鸣器用于提示用户。按照系统的设计功能所要求的,温湿度监控系统原理图如下图2.2.1所示: 温湿度传感器 LCD1602、数码管温湿度显示 蜂鸣器 单片机 LED灯 图2-2-1 温湿度监控系统原理图 方案1:利用DHT11与单片机上的数码管一起用来显示室内温湿度。然后对当前的温湿度进行判断是否超出阈值。若超出阈值,通过三极管放大作用使蜂鸣器报警。 方案2:利用DHT11采集温湿度,然后传入单片机,通过扩展槽连接到LCD1602上,使用LCD1602显示温湿度,然后在温湿度后面显示阈值。若温度或湿度超出阈值,通过三极管使蜂鸣器报警。 方案3:利用DHT11采集温湿度,将数据传入单片机,通过扩展槽连接到LCD1602,并一起使用数码管显示温湿度。阈值的显示在LCD1602上显示。若温度或湿度超出阈值,通过三极管产生三种不同频率,使蜂鸣器发出不同的报警声音。 2.3器件选定 2.3.1测量部分:温湿度传感器 DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的温湿度传感和数字模块采集技术,具有很高的稳定性和可靠性,DHT11传感器内含一个NTC测温和一个电阻式感湿元件,并与一个8位的高性能单片机相连接,在精确的湿度校验室中DHT11传感器进行过校准,以程序的形式校准系数储存在0TP内存中,检测信号的时候,在处理过程中传感器内部要调用这些校准系数,采用单线制的串行接口,使系统集成可以有较低的功耗,而且更加简单快速,信号传输距离超过20米,作为一个数字温湿度传感器DHT11具有响应快速、抗干扰强、性价比高等优点,它的性能指标如下:湿度测量范围为20%~90%RH;湿度测量精度为±5%RH;温度测量范围为0~50 ℃,温度测量精度为±2℃,工作电压3.0~5.5 V,相应时间<5S,DHT1l采用4针单排引脚封装, 传感器通电后,需要等待1s,这是因为要越过不稳定的状态,在此期间不需发送指令,电源引脚(VDD,GND)之间可增加一个100nF 的电容,用以去耦滤波。 图2-3-1典型的应用电路 图2-3-1 DHT11实物图 (1)DHT11温湿度传感器产品参数: 相对湿度 分 辨 率:16Bit 重 复 性:±1%RH 精 度:25°C ±5%RH 迟 滞:<±0.3%RH 长期稳定性:<±0.5%RH/yr 温度 分 辨 率:16Bit 重 复 性:±0.2°C 量程范围:25°C ±2°C 电气特征 供 电:DC 3.5-5.5V 供电电流:测量0.3mA 待机60μA 采样周期:次 大于2秒 引脚说明 (1)VDD 供电3.5-5.5V (2)DATA 串行数据,单总线 (3)NC 空脚 (4)GND 接地,电源负极 2.3.2串行接口(单线双向) DATA 用于微处理器与 DHT11之间的通讯和同步,采用单总线数据格式,一次通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部分用于以后扩展,现读出为零.操作流程如下:一次完整的数据传输为40bit,高位先出。 数据格式:8bit湿度整数数据+8bit湿度小数数据+8bit温度整数数据+8bit温度小数数据+8bit校验和。 数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据”所得结果的末8位。 DHT11发送响应信号的时候总线为低电平 ,DHT11把总线拉高80us之前,必须等到响应信号发送,准备发送数据时,每一bit数据都以50us低电平时隙开始,数据位是0或1是由高电平的长或短来决定。假如响应信号的读取为高电平,但是DHT11无响应响应,这时候说明路线可能连接不正常,当最后一bit数据传送结束后,DHT11把总线拉低50us,接着总线由上拉电阻拉高进入空闲状态。 2.3.3引脚说明 表2.3.5 DHT11引脚说明 Pin 名称 注释 1 VDD 供电3-5.5V 2 DATA 串行数据,单总线 3 NC 空脚,悬空 4 GND 接地,电源负极 2.3.7 封装信息 图2-3-6 DHT11的封装信息: 2.4单片机资料简介 AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4k bytes的可反复擦写的只读程序存储器(PEROM)和128 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器(CPU)和Flash存储单元,功能强大AT89C51单片机可为您提供许多高性价比的应用场合,可灵活应用于各种控制领域。 2.5显示部分:LCD 显示部分是LCD1602液晶显示, 图2-8 正常工作LCD1602显示 2.5.1引脚功能说明 1602液晶模块的读写操作,屏幕和光标的操作都是通过指令编程来实现的。 表2-8-3 引脚接口说明表 LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明 符号 引脚说明 1 VSS 地 2 VDD 正极 3 VL 液晶显示偏压 4 RS 寄存器选择 5 R/W 读/写选择 6 EN 使能信号 7 D0 数据 8 D1 数据 9 D2 数据 10 D3 数据 11 D4 数据 12 D5 数据 13 D6 数据 14 D7 数据 15 BLA 背光源正极 16 BLK 背光源负极 图2-8-3 LCD1602的管脚图 图2-8-3 1602字符型液晶显示器实物图 第3章 电路与程序设计 单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能,硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起,这种设计方法可以降低系统设计的复杂性,本系统主要硬件设计包括电源电路、蜂鸣器电路、晶振电路,LCD显示电路以及温湿度传感器电路。 3.1主控制电路和测温时控制电路 本次硬件的核心就是AT89C511,其他的外围电路都是围绕它所设计的。数字温湿度传感器的DHT11的DATA口连接单片机AT89C51的P1.7口。显示电路就是把LCD1602和单片机的P2口分别相连,当温度或湿度高于预设值的时候蜂鸣器蜂鸣报警,代表控制系统的指示灯闪烁。 3.2主要模块的电路 3.2.1系统的蜂鸣器电路 图3-2-1 蜂鸣器电路 开始 (RHH||RHL)&&(HT||LT) HXD=0,蜂鸣器报警 HXD=1,蜂鸣器不报警 报警电路流程图 void warning() //报警函数 { uchar i; HXD=1; //蜂鸣器不报警 if((RHH||RHL)&&(HT||LT)) { for(i=0;i<5;i++) { HXD=0;Delay(2000); HXD=1;Delay(2000); HXD=0;Delay(2000); HXD=1; //温湿度都超标时,频率1报警 }} 报警模块子程序 3.2.2传感器电路 DHT11是数字型温湿度传感器,可直接以数字方式传输所采集的当前环境温湿度,DHT11采用的是单总线通信,因此只需将单片机的一个I/O端口与DHT11的通信接口连接就可以实现数据的采集和传送,相对于其他电路来说比较简单。如图3.4所示: 图3-2-5 传感器电路 3.2.3显示电路 显示模块选用1602字符型液晶模块,它是目前工控系统中使用最广泛的液晶屏之一,由于它显示的质量高,电路图如图3.4所示,1602字符型液晶模块是点阵型液晶,驱动方便,经过编程后显示内容多样化。 图3-2-4 显示电路 显示子程序开始 初始化P0=0;P1=0X0C 段选/位选 Seq_Tab/Dig_Tab[ ] 结束 数码管显示流程图 LCD模块开始 LCD_init初始化,清屏 设置输入指令函数LCD_write_command 设置输入数据函数 LCD_write_data 单数据显示函数LCD_disp 整体显示函数 LCD_display 结束 LCD显示流程图 void display() //数码管显示函数 { uint j=0; P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[10];Segce=1; Segce=0; P0=Dig_Tab[4];Digce=1;Digce=0;for(j=0;j<500;j++); P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[11]; Segce=1;Segce=0; P0=Dig_Tab[0];Digce=1;Digce=0;for(j=0;j<500;j++); P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[12];Segce=1;Segce=0; P0=Dig_Tab[1];Digce=1;Digce=0;for(j=0;j<500;j++); P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[d4];Segce=1;Segce=0; P0=Dig_Tab[2];Digce=1;Digce=0;for(j=0;j<500;j++); P0=Seg_Tab[d3];Segce=1;Segce=0; } //**************LCD液晶屏函数部分************* void LCD_write_command(uchar dat) //写指令 { LCD_DB=dat; LCD_RS=0;//指令 LCD_RW=0;//写入 LCD_E=1;//允许 delay_n40us(1); LCD_E=0; delay_n40us(1); } 显示模块子程序 第4章 测试方案与测试结果 4.1测试方案及测试条件 Ø 软件调试 将整个硬件电路通过学习板上的接口与电脑上的软件Keil uVision4连接,运行程序,此时学习板上的数码管显示的为测量的当前温湿度值(室温)。 Ø 改变测量温湿度值 用手握住DHT11,人为改变芯片所处环境温度,观察数码管上显示的温度值是否有改变。超出初始设定温度上下限时,蜂鸣器发出响声报警; 对着DHT11哈气,改变湿度,观察数码管上显示的湿度度值是否有改变。超出初始设定湿度上下限时,蜂鸣器发出响声报警 Ø 软件设定报警温湿度上下限值 在Keil uVision4中直接改变初始设定的报警温湿度值,运行程序,观察显示效果。超出新设的报警温湿度,蜂鸣器发出响声报警。 4.2测试结果及其完整性 Ø 能正常显示DHT11测量到的温湿度。显示无闪烁,有效值精确到小数点后一位; Ø 超出设定的报警温湿度值,蜂鸣器发出不同频率响声报警; Ø 当显示温度值在设定温度值之内时,蜂鸣器不发出声音; Ø 多次改变报警温度上下限值,蜂鸣器能在每次显示温度值超出设定报警值时发出声音报警。 4.3测试结果分析 Ø 稳定无闪烁显示当前环境温湿度值,有效值精确到小数点后一位。改变环境温湿度,显示改变; Ø 蜂鸣器在显示温湿度超出设定的上下限值时发出响声报警,显示温湿度在设定范围之内时,不发出声音; Ø 多次改变报警温度上下限值,改变DHT11所处环境温度,每次超出新设报警温度值时,蜂鸣器都可以准确发出声音报警。 根据温湿度监控系统功能,系统软件流程图如图4-1所示: N Y 图4-1系统流程图 结 论 本文设计的是粮库的温湿度监测报警、控制系统。由高性价比单片机对数字温湿度传感器控制,通过温、湿度传感器,实现对温湿度数据采集,并对数据处理、LCD1602显示屏显示即时温、湿度值。当温湿度数据超出设定温、湿度值时,由单片机驱动报警装置,实现现场报警功能,控制系统自行启动,调节不在范围内的温、湿度,使其恢复正常。 首先,介绍了设计的核心组成部分单片机AT89S51的的基本构成和原理,简要的说明了单片机的最小系统,中断系统,复位电路和时钟电路。然后介绍了显示部分LCD1602的各个引脚和指令说明,为下面的编程做准备。 其次,介绍了本次设计的传感器:DHT11温湿度传感器。然后给出了主要模块电路的结构,在硬件连接以后,初步的硬件运行结果,以实物图的形式进行了说明。介绍了控制温、湿度的设备,在根据不同环境下的应用和选择。 最后,说明了用到的软件,给出了总体的原理图和流程图和Proteus运行结果,以便更好的理解。 最后程序检查正常,焊接成品,硬件运行正常,满足了初步设计要求,达到了粮库温、湿度控制的目的。在设计中还有不足的部分,在现场控制时,保证传感器不受条件因素的影响是很重要的,由于研究时间和条件的限制,粮库温、湿度还有许多地方需要深入研究。 心得体会 这次的课程设计是要求做一个DHT11的温湿度传感器,才拿到这个任务的时候,看着上面的要求,觉得好像是一个挺大的工程的,当时感觉还是比较迷茫的。于是我们从找资料到买器材就花了一周的时间,这期间对于DHT11的一些性能有了初步的了解,也对一些实际的电路器材有了认识,但毕竟都是第一次做这种项目,所以光是完全确认原理电路和元件清单就用了很久,不过还好最后基本上准备齐全了。 做项目的第一步,我们组是在一起讨论了一个比较完善的焊接电路图,因为只是51板的一个外拓模块,且元器件也不是很多,所以留给我们的设计空间很大,最后我们决定了一个充分利用板子大小的方案来作为最终的方案。 然后第二步,我们则是焊电路和编程一块进行的。在焊电路过程中,因为有设计图做参考,所以比较顺利,而在程序编写过程中,则遇到了一些困难。比如DHT11的数据传输有严格的时间标准,但是我们设计的延时程序总是与传输标准存在误差,导致无法正确接收数据。还有数据处理上面,因为没有进行字符型转化,所以一开始在LCD液晶屏上显示的是乱码。再就是对于按键设置上面,一开始是准备添加按键功能的,然后在编程过程中发现对于单一的温度或者湿度的按键调整比较好编,但是模式转换和将两者结合在一起的地方感觉思路很混乱,最终因为其他模块还亟待改善,就放弃了这个模块的添加。最后在全部设计完了以后做硬件调试时还发现了蜂鸣器一直会叫,检查了几遍也没发现错误,结果后来换了一个端口就没事了,一开始用的是P0口,后来是把LED灯的端口用来做蜂鸣器端口,发现鸣叫正常了,而且LED灯也会亮起报警,是意料之外的惊喜。 最后,这一次的课程设计真的让我们学到了很多,从一开始的资料查找,到购买原件,再到设计电路和编写程序,让我们切实的感受到了一个项目的完成需要做很多的准备和付出很多的精力。不过在这同时我们收获的也很多,总之这次课程设计让我们对单片机这一块有了很大的提高,很有意义。 参考文献 [1] 电子发烧友网. [2] 谭浩强.C语言程序设计(第三版) 清华大学出版社. [3] 胡汉才.单片机原来及其接口技术(第三版)清华大学出版社. [4] 百度文库:最全面的DHT11中文资料 [5] 百度文库 :单片机驱动蜂鸣器原理与设计 [6] 百度文库 :DHT11数据手册 附录 附录A 硬件原理图 附录B 代码 #include<regx51.h> #include<intrins.h> #define uchar unsigned char #define uint unsigned int #define LCD_DB P2 uchar Seg_Tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x39,0x76,0x77,0x63}; //uchar Seg1_Tab[]={0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; uchar Dig_Tab[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; uchar temp_H,temp_L,humi_H,humi_L; uchar value,check,bt,sum,bt_temp,keynum,flag; uchar tH,tL,hH,hL,RHH,RHL,HT,LT; uchar warning_RHHL[2]={65,20}; uchar warning_THL[2]={25,16}; uchar m,n,d1,d2,d3,d4,d5,d6; uchar TD=0; uchar s1[5]; uchar s2[5]; sbit Segce=P1^0; sbit Digce=P1^1; sbit Keyce=P1^3; sbit LCD_RS=P1^4; sbit LCD_RW=P1^5; sbit LCD_E=P1^6; sbit DHT11=P1^7; sbit HXD=P1^2; //******************延时函数部分**************** void Delay(uint j) //(j/10)ms { uchar i; for(;j>0;j--) { for(i=0;i<27;i++); } } void Delay_10us(void) //10us { uchar i; i--; i--; i--; i--; i--; i--; } void delay_n40us(uint n) { uint i; uchar j; for(i=n;i>0;i--) for(j=0;j<2;j++); } //***************DHT11数据接收处理与数码管显示部分************* void inter_init() //初始化函数 { P0=0; P1=0x0c; TMOD=0x01; TH0=-50000/256; TL0=-50000%256; EA=1; ET0=1; } void COM(void) //DHT11的bit读取 { uchar i; for(i=0;i<8;i++) { flag=2; while((!DHT11)&&flag++); Delay_10us(); Delay_10us(); Delay_10us(); bt=0; if(DHT11)bt=1; flag=2; while((DHT11)&&flag++); //超时则跳出for循环 if(flag==1)break; //判断数据位是0还是1 // 如果高电平高过预定0高电平值则数据位为 1 value<<=1; //DHT11数据是从高位开始传的,于是用左移,进行数据处理 value|=bt; } } void RH(void) //DHT11的数据读取 { //主机拉低18ms DHT11=0; Delay(180); DHT11=1; //总线由上拉电阻拉高 主机延时20us Delay_10us(); Delay_10us(); Delay_10us(); Delay_10us(); //主机设为输入 判断从机响应信号 DHT11=1; //判断从机是否有低电平响应信号 如不响应则跳出,响应则向下运行 if(!DHT11) //T ! { flag=2; //判断从机是否发出 80us 的低电平响应信号是否结束 while((!DHT11)&&flag++); flag=2; //判断从机是否发出 80us 的高电平,如发出则进入数据接收状态 while((DHT11)&&flag++); //数据接收状态 COM(); humi_H=value; //第一次出湿度的整数值 COM(); humi_L=value; //第二次出湿度的小数值 COM(); temp_H=value; //第三次出温度的整数值 COM(); temp_L=value; //第四次出温度的小数值 COM(); check=value; // 第五次出效验码 DHT11=1; //数据校验 bt=(humi_H+humi_L+temp_H+temp_L);//当前四次数据相加等于第五次的效验码时,数据正确 if(bt==check) { hH=humi_H; hL=humi_L; tH=temp_H; tL=temp_L; bt_temp=bt; } } } void deal() //数据处理函数 { m=tH; //温度整数位 d1=m/10; //温度十位 d2=m%10; //温度个位 n=hH; //湿度整数位 d3=n/10; //湿度十位 d4=n%10; //湿度个位 d5=tL/10; //温度小数位 d6=hL/10; //湿度小数位 if(n>= warning_RHHL[0]) RHH=1 ; else RHH=0; //湿度与最大值相比 if(n<= warning_RHHL[1]) RHL=1 ; else RHL=0; //湿度与最小值相比 if(m>= warning_THL[0]) HT=1 ; else HT=0; //温度与最大值相比 if(m<= warning_THL[1]) LT=1 ; else LT=0; //温度与最小值相比 s1[0] = (char)(0X30+d3); s1[1] = (char)(0X30+d4); //湿度整数部分 s1[2] = (char)(0X30+d6); //湿度小数部分 s2[0] = (char)(0X30+d1); s2[1] = (char)(0X30+d2); //温度整数部分 s2[2] = (char)(0X30+d5); //温度小数部分 } void warning() //报警函数 { uchar i; HXD=1; //蜂鸣器不报警 if((RHH||RHL)&&(HT||LT)) { for(i=0;i<5;i++) { HXD=0; Delay(2000); HXD=1; Delay(2000); HXD=0; Delay(2000); HXD=1; //温湿度都超标时,频率1报警 } } else if((RHH||RHL)||(HT&<)) { for(i=0;i<5;i++) { HXD=0; Delay(1000); HXD=1; Delay(1000); HXD=0; Delay(1000); HXD=1; // 只有湿度超标时,频率2报警 } } else if((RHH&&RHL)||(HT||LT)) { for(i=0;i<5;i++) { HXD=0; Delay(500); HXD=1; Delay(500); HXD=0; Delay(500); HXD=1; } // 只有温度超标时,频率3报警 } // 蜂鸣器报警 } void display() //数码管显示函数 { uint j=0; P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[10];Segce=1; Segce=0; P0=Dig_Tab[4];Digce=1;Digce=0;for(j=0;j<500;j++); P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[11]; Segce=1;Segce=0; P0=Dig_Tab[0];Digce=1;Digce=0;for(j=0;j<500;j++); P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[12];Segce=1;Segce=0; P0=Dig_Tab[1];Digce=1;Digce=0;for(j=0;j<500;j++); P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[d4];Segce=1;Segce=0; P0=Dig_Tab[2];Digce=1;Digce=0;for(j=0;j<500;j++); P0=Seg_Tab[d3];Segce=1;Segce=0; P0=Dig_Tab[3];Digce=1;Digce=0;for(j=0;j<500;j++); P0=Seg_Tab[13];Segce=1;Segce=0; P0=Dig_Tab[5];Digce=1;Digce=0;for(j=0;j<500;j++); P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[d2];Segce=1;Segce=0; P0=Dig_Tab[6];Digce=1;Digce=0;for(j=0;j<500;j++); P0=0XFF;Digce=1;Digce=0; P0=Seg_Tab[d1];Segce=1;Segce=0; P0=Dig_Tab[7];Digce=1;Digce=0;for(j=0;j<500;j++); } //**************LCD液晶屏函数部分************* void LCD_write_command(uchar dat) //写指令 { LCD_DB=dat; LCD_RS=0;//指令 LCD_RW=0;//写入 LCD_E=1;//允许 delay_n40us(1); LCD_E=0; delay_n40us(1); } void LCD_write_data(uchar dat) //写数据 { LCD_DB=dat; LCD_RS=1;//数据 LCD_RW=0;//写入 LCD_E=1;//允许 delay_n40us(1); LCD_E=0; delay_n40us(1); } void LCD_disp_char(uchar x,uchar y,uchar dat) //字符显示 { uchar address; if(y==1) address=0x80+x; else address=0xc0+x; LCD_write_command(address); LCD_write_data(dat); } void LCD_init(void) //液晶屏初始化 { LCD_write_command(0x38);//设置 8 位格式,2 行,5x7 LCD_write_command(0x0c);//整体显示,关光标,不闪烁 LCD_write_command(0x06);//设定输入方式,增量不移位 LCD_write_command(0x03);//清除屏幕显示 delay_n40us(100); } void LCD_display() //LCD液晶屏显示 {- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 51 单片机 温湿度 测量仪 课程设计
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【精****】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【精****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文