




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
湖南冶金职业技术学院电气工程系毕业设计PAGE第38页共44页摘要单片机具有体积小、功能强、成本低、应用面广等优点,可以说,智能控制与自动控制的核心就是单片机。目前,一个学习与应用单片机的高潮在全社会大规模地兴起。学习单片机的最有效方法就是理论与实践并重,本文用80C51单片机自制了一个温度控制系统,重点介绍了该系统的硬件结构及编程方法。关键词:单片机、温度传感器、模/数转换器
ABSTRACTSingle-chipmicrocomputerwithasmall,powerful,lowcost,wideapplication,etc.,itcanbesaid,intelligentcontrolandautomationisthecoreofsinglechip.Atpresent,asingle-chiplearningandapplicationoftheclimaxofthewholesocietyintheemergenceofalargescale.Single-chiplearningisthemosteffectivewayofboththeoryandpractice,89S51Inthispaper,aself-madesingle-chiptemperaturecontrolsystem,focusesonthestructureofthesystemhardwareandprogramming.Keywords:Single-chip,temperaturesensor,analog/digitalconverter前言随着当代生活节奏的紧奏化,人们无规律的生活使自身感到疲劳让身体处于卸放状态,为此缓解人日夜的疲劳,于是汗蒸房的出现使人调整过来,汗蒸房在通电后,安装在其中的加热板所含的锗碳元素和电气石元素受电能转换激发到一定温度时,产生一种具有不同波长的能源,其波长范围和强度范围恰好与人体自身释放的电磁波相吻合,并由人体纵深器官选择性吸收!从而促进人体死亡细胞病变二聚体等的解体,增强人体的自身调节机制及免疫能力,通过加温和保温,使电气石的能量可以快速、强烈地以远红外线、负离子及微电流的形式释放出来,它们共同构成的能量场可间接地通过空气向人体提供能量,使人体细胞由休眠状态转化为运动状态,加快人体的血液循环及新陈代谢,排出体内毒素,平衡人体酸碱度,补充新的营养物质,从而起到保健和治疗的作用。此次毕业设计主要设计汗蒸房的温度和湿度控制系统,实现课题的要求。目录第一章绪论11.1单片机概况51.2设计可行性分析5第二章总体设计方案72.1工作原理82.2工作框图82.3产品使用说明书9第三章硬件设计103.1电路接线图103.2模块介绍及应用113.2.1温度、湿度探测113.3主要原器件的介绍133.3.1AT89S51133.3.2DS1302213.3.3SHT11273.3.4827933第四章软件设计384.1流程图384.2内存分布图39第五章总结与展望40第六章致谢42第七章参考文献43第一章绪论1.1单片机概况单片机(SingleChipMicrocomputer),国际上又称为微控制器,它是一种集成电路芯片。它采用超大规模技术将具有数据处理能力的微处理器(CPU)、存储器(含程序存储器ROM和数据存储器RAM)、输入、输出接口电路(I/O接口)集成在同一块芯片上,构成一个即小巧又很完善的计算机硬件系统,在单片机程序的控制下能准确、迅速、高效地完成程序设计者事先规定的任务。所以说,一片单片机芯片就具有了组成计算机的全部功能。随着SCM在技术上、体系上的不断进步,使其控制功能不断扩展,它的主要作用已经不是计算,而是控制了。正是由于单片机的这种结构及它所采取的半导体工艺,使其具有很多显著的优点和特点,其主要特点如下工:(1)控制功能强。为了满足工业控制的要求,一般单片机的指令系统中均有极丰富的转移指令、I/O口的逻辑操作以及位处理功能。(2)集中度高、体积小、有很高有可靠性。单片机把各功能部件集中在一块芯片上,内部采用总线结构,减少了芯片内部之间的;连线,大大提高了单片机的可靠性与抗干扰能力。另外,其体积小,对于强磁环境晚于采取屏蔽措施,适合于在恶劣与此环境下工作。(3)有优异的性能价格比。(4)低功耗、低电压、,便于生产便携式产品。(5)增加了I2C(6)单片机的系统扩展、系统配置较典型、规范,容易构成各种规模的应用系统。1.2设计可行性分析社会加步的前进,与之给人们带来的压力也随之增大,长时间的疲累会使人的细胞从运动状态沉溺于安眠状态,使人无法集中精力工作,甚至能使人的免疫也与之下降,而汗蒸房的出现,可以调解使人的细胞从安眠状态活跃到运动状态,它能使加快人体的血液循环及新陈代谢,排出体内毒素,平衡人体酸碱度,补充新的营养物质,从而起到保健和治疗作用。使人高度集中精神,而汗蒸时间的长短会影响汗蒸的效果,如何使效果更加,为此,此次单片机设计,能自能化显示汗蒸时间及房内温度与湿度的控制,所以,这种设计是完善汗蒸房的不足,此设计非常有必要,以达到汗蒸效果更加的目的!第二章总体设计方案2.1工作原理工作原理分为信号采集和LED显示部分,由SHT11、DS1302、AT89S51、8279及LED组成,用SHT11芯片探测汗蒸房内的温度和湿度,通过数据线端将其传送到AT89S51,AT98S51接收到传来的温度和湿度后,并将其处理转换,然后在LED上分别显示出来,用DS1302来供给时间频率,并将年月日时间也在LED上显示出来,且年月日时间可以通过芯片按键8279调整,汗蒸房内的人数及每人汗蒸的时间和房内的温度与湿度都可以再LED上显示出来。2.2框图SKIPIF1<0硬件的总体设计
本系统由温度采集电路、时间电路、单片机、按键、显示、数据存储等部分组成,成对温度信号的采集、处理、存储,控制系统的工作的功能。原理框图如图1所示。SKIPIF1<0图1系统硬件原理框图2.3产品使用说明书当芯片复电后,SHT11、AT89S51、8279复位,而DS1302一直提给一个时钟频率,按键一共又5个!其中,p0.0为修改按键,p0.1为确认按键,p0.2为修改键加按键,p0.3为修改键减按键,p0.4为房内人数的按键!第三章硬件设计3.1电路接线图3.2模块介绍及应用3.2.1温度、湿度探测温度与湿度的测量由SHT11芯片完成,它有四个触头,高度集成,将温度感测、湿度感测、信号变换、A/D转换等功能。集成到一个芯片上,提供二线数字串行接口SCK和DATA接口简单,支持CRC传输校验,传输可靠性高,测量精确度高,由于同时集成温湿度传感器,可以提供温度补偿和湿度测量和高质量的露点计算,可靠性高,精确性高,能更好的测量汗蒸房内的温度和湿度并快速传出来!3.2.2时钟电路 DS1302是一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。能提供一个稳定的时钟并在LED上显示出来!3.2.3信号处理 中央处理器是单片机的最核心的部分,主要完成运算和中指功能,这一点与通用微处理器基本相同,只是它的控制功能更强。它是一个字长为8位的中央处理单元,对诗句的处理是按字节为单位进行的。数据存储器用于存放变化的数据,89s51中数据存储器的地址空间为256个RAM单元,但其中能作为数据存储器供用户使用的仅有前面128个,后128个被专用寄存器占用。4个8位的I/O口,并行I/O口主要是用于实现与外部设备中数据的并行输入/输出,有些I/O口还具有其他多重功能。
3.3主要元器件的介绍3.3.1AT98S51AT89S51是一个低功耗,高性能CMOS8位单片机,片内含4kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S51可为许多嵌入式控制应用系统提供高性价比的解决方案。
AT89S51具有如下特点:40个引脚,4kBytesFlash片内程序存储器,128bytes的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5个中断优先级2层中断嵌套中断,2个16位可编程定时计数器,2个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器。
此外,AT89S51设计和配置了振荡频率可为0Hz并可通过软件设置省电模式。空闲模式下,CPU暂停工作,而RAM定时计数器,串行口,外中断系统可继续工作,掉电模式冻结振荡器而保存RAM的数据,停止芯片其它功能直至外中断激活或硬件复位。同时该芯片还具有PDIP、TQFP和PLCC等三种封装形式,以适应不同产品的需求。
1.主要特性:
•8031CPU与MCS-51兼容
•4K字节可编程FLASH存储器(寿命:1000写/擦循环)
•全静态工作:0Hz-24KHz
•三级程序存储器保密锁定
•128*8位内部RAM
•32条可编程I/O线
•两个16位定时器/计数器
•6个中断源
•可编程串行通道
•低功耗的闲置和掉电模式
•片内振荡器和时钟电路
2.管脚说明:
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。
P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。
P3.0RXD(串行输入口)
P3.1TXD(串行输出口)
P3.2/INT0(外部中断0)
P3.3/INT1(外部中断1)
P3.4T0(记时器0外部输入)
P3.5T1(记时器1外部输入)
P3.6/WR(外部数据存储器写选通)
P3.7/RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
I/O口作为输入口时有两种工作方式即所谓的读端口与读引脚读端口时实际上并不从外部读入数据而是把端口锁存器的内容读入到内部总线经过某种运算或变换后再写回到端口锁存器只有读端口时才真正地把外部的数据读入到内部总线上面图中的两个三角形表示的就是输入缓冲器CPU将根据不同的指令分别发出读端口或读引脚信号以完成不同的操作这是由硬件自动完成的不需要我们操心1然后再实行读引脚操作否则就可能读入出错为什么看上面的图如果不对端口置1端口锁存器原来的状态有可能为0Q端为0Q^为1加到场效应管栅极的信号为1该场效应管就导通对地呈现低阻抗,此时即使引脚上输入的信号为1也会因端口的低阻抗而使信号变低使得外加的1信号读入后不一定是1若先执行置1操作则可以使场效应管截止引脚信号直接加到三态缓冲器中实现正确的读入由于在输入操作时还必须附加一个准备动作所以这类I/O口被称为准双向口89C51的P0/P1/P2/P3口作为输入时都是准双向口接下来让我们再看另一个问题从图中可以看出这四个端口还有一个差别除了P1口外P0P2P3口都还有其他的功能
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。
/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。
/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。
XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。
XTAL2:来自反向振荡器的输出。
第二节DS13022.2.1DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路,它可以对年、月、日、周日、时、分、秒进行计时,具有闰年补偿功能,工作电压为2.5V~5.5V。采用三线接口与CPU进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个31×8的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源/后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。DS1302的引脚排列,其中Vcc1为后备电源,VCC2为主电源。在主电源关闭的情况下,也能保持时钟的连续运行。DS1302由Vcc1或Vcc2两者中的较大者供电。当Vcc2大于Vcc1+0.2V时,Vcc2给DS1302供电。当Vcc2小于Vcc1时,DS1302由Vcc1供电。X1和X2是振荡源,外接32.768kHz晶振。RST是复位/片选线,通过把RST输入驱动置高电平来启动所有的数据传送。RST输入有两种功能:首先,RST接通控制逻辑,允许地址/命令序列送入移位寄存器;其次,RST提供终止单字节或多字节数据的传送手段。当RST为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中RST置为低电平,则会终止此次数据传送,I/O引脚变为高阻态。上电运行时,在Vcc≥2.5V之前,RST必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。I/O为串行数据输入输出端(双向),后面有详细说明。SCLK始终是输入端。下图为DS1302的引脚功能图SKIPIF1<0
图2-9DS1302引脚功能图2.2.DS1302的控制字如图2所示。控制字节的最高有效位(位7)必须是逻辑1,如果它为0,则不能把数据写入DS1302中,位6如果为0,则表示存取日历时钟数据,为1表示存取RAM数据;位5至位1指示操作单元的地址;最低有效位(位0)如为0表示要进行写操作,为1表示进行读操作,控制字节总是从最低位开始输出。1.2.在控制指令字输入后的下一个SCLK时钟的上升沿时,数据被写入DS1302,数据输入从低位即位0开始。同样,在紧跟8位的控制指令字后的下一个SCLK脉冲的下降沿读出DS1302的数据,读出数据时从低位0位到高位7。
2.2.4DS1302的寄存器
DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式DS1302实时显示时间的软硬件DS1302与CPU的连接需要三条线,即SCLK(7)、I/O(6)、RST(5)。图2示出DS1302与89C2051的连接图,其中,时钟的显示用LCD。图2-10DS1302与AT89S51的连接图
2.2.DS1302调试中问题说明
DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。
在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。
DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;再一类为突发方式下的RAM寄存器,在此方式下可一次性读、写所有的RAM的31个字节。
要特别说明的是备用电源B1,可以用电池或者超级电容器(0.1F以上)。虽然DS1302在主电源掉电后的耗电很小,但是,如果要长时间保证时钟正常,最好选用小型充电电池。可以用老式电脑主板上的3.6V充电电池。如果断电时间较短(几小时或几天)时,就可以用漏电较小的普通电解电容器代替。100μF就可以保证1小时的正常走时。DS1302在第一次加电后,必须进行初始化操作。初始化后就可以按正常方法调整时间。
DS1302的寄存器DS1302有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式,其日历、时间寄存器及其控制字见表1。
此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。DS1302与RAM相关的寄存器分为两类:一类是单个RAM单元,共31个,每个单元组态为一个8位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM寄存器,此方式下可一次性读写所有的RAM的31个字节,。实际上,在调试程序时可以不加电容器,只加一个32.768kHz的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU一个口线即可。LCD还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10位多功能8段液晶显示模块LCM101,内含看门狗(WDT)/时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4线串行接口,可与任何单片机、IC接口。功耗低,显示状态时电流为2μA(典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。
DS1302实时时间流程DS1302与微处理器进行数据交换时,首先由微处理器向电路发送命令字节,命令字节最高位MSB(D7)必须为逻辑1,如果D7=0,则禁止写DS1302,即写保护;D6=0,指定时钟数据,D6=1,指定RAM数据;D5~D1指定输入或输出的特定寄存器;最低位LSB(D0)为逻辑0,指定写操作(输入),D0=1,指定读操作(输出)。
在DS1302的时钟日历或RAM进行数据传送时,DS1302必须首先发送命令字节。若进行单字节传送,8位命令字节传送结束之后,在下2个SCLK周期的上升沿输入数据字节,或在下8个SCLK周期的下降沿输出数据字节。
第三节SHT112.3.1SHT11简介SHT11是瑞士Scnsirion公司推出的一款数字温湿度传感器芯片。该芯片广泛应用于暖通空调、汽车、消费电子、自动控制等领域。共主要特点如下:
◆高度集成,将温度感测、湿度感测、信号变换、A/D转换和加热器等功能成到一个芯片上;
◆提供二线数字串行接口SCK和DATA,接口简单,支持CRC传输校验,传输可靠性高;
◆测量精度可编程调节,内置A/D转换器(分辨率为8~12位,能通过对芯片内部寄存器编程米选择);
◆测量精确度高,由于同时集成温湿度传感器,能提供温度补偿的湿度测量值和高质量的露点计算功能;
◆封装尺寸超小(7.62mm×5.08mm×2.5mm),测量和通信结束后,自动转入低功耗模式;
◆高可靠性,采用CMOSens工艺,测量时可将感测头完全浸于水中。
SHT11的引脚功能
SHT11温湿度传感器采用SMD(LCC)表面贴片封装形式,接口非常简单,引脚名称及排列顺序如图1所示。
SKIPIF1<0图2-11SHT11引脚功能图各引脚的功能如下:
脚1和4--信号地和电源,其工作电压范围是2.4~5.5V;
脚2和脚3--二线串行数字接口,其中DA-TA为数据线,SCK为时钟线;
脚5~8--未连接。
2.3.3SHT11的内部结构和工作原理
温湿度传感器SHT11将温度感测、湿度感测、信号变换、A/D转换和加热器等功能集成到一个芯片上,其内部结构如图1-12所示。该芯片包括一个电容性聚合体湿度敏感元件和一个用能隙材料制成的温度敏感元件。这两个敏感元件分别将湿度和温度转换成电信号,该电信号首先进入微弱信号放大器进行放大;然后进入一个14位的A/D转换器;最后经过二线串行数字接口输出数字信号。SHT11在出厂前,都会在恒湿或恒温环境巾进行校准,校准系数存储在校准寄存器中;在测量过程中,校准系数会自动校准来自传感器的信号。此外,SHT11内部还集成一个加热元件,加热元件接通后能将SHT11的温度升高5℃左右,同时功耗也会有所增加。此功能主要为了比较加热前后的温度和湿度值,能综合验证两个传感器元件的性能。在高湿(>95%RH)环境中,加热传感器可预防传感器结露,同时缩短响应时间,提高精度。加热后SHT11温度升高、相对湿度降低,较加热前,测量值会略有差异。图2-12SHT11内部结构图
微处理器是通过二线串行数字接口和SHT11进行通信的。通信协议和通用的I2C总线协议是不兼容的,因此需要用通用微处理器I/O口模拟该通信时序。微处理器对SHT11的控制是通过5个5位命令代码来实现的,命令代码的含义如表1所列。SHT11应用设计
微处理器采用二线串行数字接口和温湿度传感器芯片SHT11进行通信,所以硬件接门设计非常简单;然而,通信协议是芯片厂家自己定义的,所以在软件设计中,需要用微处理器通用I/O口模拟通信协议。2.3.5硬件设计
SHT11通过二线数字串行接口来访问,所以硬件接口电路非常简单。需要注意的地方是:DATA数据线需要外接上拉电阻,时钟线SCK用于微处理器和SHT11之间通信同步,由于接口包含了完全静态逻辑,所以对SCK最低频率没有需求;当工作电压高于4.5V时,SCK频率最高为10MHz,而当工作电压低于4.5V时,SCK最高频率则为1MHz。硬件连接如图3所示。
软件设计
微处理器和温湿度传感器通信采用串行二线接口SCK和DATA,其中SCK为时钟线,DATA为数据线。该二线串行通信协议和I2C协议是不兼容的。在程式开始,微处理器需要用一组"启动传输"时序表示数据传输的启动,如图4所示。当SCK时钟为高电平时,DATA翻转为低电平;紧接着SCK变为低电平,随后又变为高电平;在SCK时钟为高电平时,DATA再次翻转为高电平。
SHT11湿度测试时序如图5所示。其中,阴影部分为SHT11控制总线。主机发出启动命令,随后发出一个后续8位命令码,该命令码包含3个地址位(芯片设定地址为000)和5个命令位;发送完该命令码,将DATA总线设为输入状态等待SHT11的响应;SHT11接收到上述地址和命令码后,在第8个时钟下降沿,将DATA下拉为低电平作为从机的ACK;在第9个时钟下降沿之后,从机释放DATA(恢复高电平)总线;释放总线后,从机开始测量当前湿度,测量结束后,再次将DATA总线拉为低电平;主机检测到DATA总线被拉低后,得知湿度测量已结束,给出SCK时钟信号;从机在第8个时钟下降沿,先输出高字节数据;在第9个时钟下降沿,主机将DATA总线拉低作为ACK信号。然后释放总线DATA;在随后8个SCK周期下降沿,从机发出低字节数据;接下来的SCK下降沿,主机再次将DATA总线拉低作为接收数据的ACK信号;最后8个SCK下降沿从机发出CRC校验数据,主机不予应答(NACK)则表示测量结束。2.3.7温度和湿度值的计算1、湿度线性补偿和温度补偿
SHT11可通过DATA数据总线直接输出数字量湿度值。该湿度值称为"相对湿度",需要进行线性补偿和温度补偿后才能得到较为准确的湿度值。由于相对湿度数字输出特性呈一定的非线性,因此为了补偿湿度传感器的非线性,可按下式修正湿度值:(1-1)
式中:RHlinear为经过线性补偿后的湿度值,SORH为相对湿度测量值,C1、C2、C3为线性补偿系数,取值如表2所列。
由于温度对湿度的影响十分明显,而实际温度和测试参考温度25℃有所不同,所以对线性补偿后的湿度值进行温度补偿非常有必要。补偿公式如下:(1-2)
式中:RHtrue为经过线性补偿和温度补偿后的湿度值,T为测试湿度值时的温度(℃),t1和t2为温度补偿系数,取值如表3所列。
2、温度值输出
由于SHT11是采用PTAT能隙材料制成的温度敏感元件,因而具有非常好的线性输出。实际温度值可由下式算得Temperature=d1+d2×SOT式中:d1和d2为特定系数,d1的取值和SHT11工作电压有关,d2的取值则和SHT11内部A/D转换器采用的分辨率有关,其对应关系分别如表4和表5所列。温度值输出
由于SHT11是采用PTAT能隙材料制成的温度敏感元件,因而具有很好的线性输出。实际温度值可由下式算得:Temperature=d1+d2×SOT
式中:d1和d2为特定系数,d1的取值与SHT11工作电压有关,d2的取值则与SHT11内部A/D转换器采用的分辨率有关,其对应关系分别如表4和表5所列。露点计算
露点是一个特殊的温度值,是空气保持某一定湿度必须达到的最低温度。当空气的温度低于露点时,空气容纳不了过多的水分,这些水分会变成雾、露水或霜。露点可以根据当前相对湿度值和温度值计算得出,具体的计算公式如下:LogEW=0.66077+7.5×T/(237.3+T)+log10(SORH)-2Dp=((0.66077-logEW)×237.3)/(logEW-8.16077)式中:T为当前温度值,SORH为相对湿度值,Dp为露点。3.3.4键盘ZLG8279源程序BUFM
EQU7FFFH
BUFS
EQU3FFFH
ORG0000H
AJMPMAIN
ORG0013H
AJMPPINT1
MAIN:MOVSP,#60H
;设置堆栈
CLRP3.4
;8279复位
SETBP3.4
CLRP3.4
MOVDPTR,#BUFM
;指向命令/状态口
MOVA,#0D1H
;送清除命令
MOVX@DPTR,A
WAIT:MOVXA,@DPTR
;读入8279状态字
JBACC.7,WAIT
;等待清除命令完成
MOVA,#01H
;送方式字
MOVX@DPTR,A
MOVA,#34H
;设置分频命令字12MHz
MOVX@DPTR,A
SETBEA
SETBEX1
;允许响应8279中断
SJMP$
;读取键盘子程序:
PINT1:
MOVDPTR,#BUFM
MOVA,#40H
;读8279、每次读一个单元的内容
MOVX@DPTR,A
MOVDPTR,#BUFS
MOVXA,@DPTR
;
MOVR2,A
ANLA,#38H
;计算键号
RRA
RRA
RRA
MOVB,#4
MULAB
XCHA,R2
ANLA,#7
ADDA,R2
MOV78H,A
DISLED:MOVDPTR,#BUFM
;写显示RAM命令送8279
MOVA,#80H
MOVX@DPTR,A
MOVR0,#78H
;显示数据的首地址送R0
MOVA,@R0
;取显示数据
MOVDPTR,#LEDSEG
;加偏移量
MOVCA,@A+DPTR
;查表将显示数据转换为段码
MOVDPTR,#BUFS
MOVX@DPTR,A
;写入显示RAM
RETI
LEDSEG:DB0C0H,0F9H,0A4H,0B0H;
DB99H,92H,82H,0F8H;
DB80H,90H,88H,83H;
DB0C6H,0A1H,86H,8EH
END8279应用程序键盘和LED显示程序
;*8279初始化*
;*KEYCOM为8279命令口KEYDAT为8279数据口*
KEYCOMXDATA0E601H
KEYDATXDATA0E600H
KEYCAMEQU30H;定义存放按键值RAM起始地址
ORG0000H
AJMPSTART
ORG0003H
LJMPAAA
ORG0060H
START:MOVR0,#10
MOVDPTR,#KEYCOM;命令口地址
MOVA,#10H;键盘/显示方式命令字8字符显示左入口,编码键盘,双键锁定
MOVX@DPTR,A
MOVA,#34H;程序时钟命令26分频对外部输入时钟
MOVX@DPTR,A
MOVA,#0DFH;清除显示缓冲区命令
MOVX@DPTR,A
BUSY1:MOVXA,@DPTR
JBACC.7,BUSY1
MOVIE,#81H
MOVDPTR,#KEYDAT
MOVA,#0C8H
MOVX@DPTR,A;字型送入8279
INCDPTR
MOVA,#90H
MOVX@DPTR,A;字位送入8279(显示P)
HA7S2:MOV30H,#80H
MOV31H,#40H
HA7S3:MOVDPTR,#KEYCOM
MOVXA,@DPTR
ANLA,#07H
CJNEA,#00H,HA7S4;
AJMPHA7S3
HA7S4:MOVDPTR,#KEYDAT
MOVXA,@DPTR
MOVB,A;取键值
MOVR1,#00H
MOVDPTR,#KEYTAB;数字键键值表
HA7S5:MOVA,#00H
MOVCA,@A+DPTR
CJNEA,B,HA7S6;查键值表是否相同
AJMPHA7SA;转数字键处理程序
HA7S6:INCDPTR;键值表地址加1
INCR1;查找次数加1
MOVA,R1
JBACC.4,HA7S7;是功能键吗?
AJMPHA7S5;继续查找
HA7S7:MOVR1,#00H
MOVDPTR,#KEYTAB1;功能键表地址
HA7S8:MOVA,#00H
MOVCA,@A+DPTR;取出功能键键值
CJNEA,B,HA7S9;键值相同吗?
AJMPHA7SC;转功能键处理子程序
HA7S9:INCDPTR
INCR1
MOVA,R1
JNBACC.2,HA7S8;继续查找
LJMPSTART
;;;AJMPHA7SD;无按键返回
HA7SD:LJMPSTART
HA7SA:MOVA,30H
MOVDPTR,#0FE01H
MOVX@DPTR,A;字位送入8279
MOVA,R1
MOVR0,31H
MOV@R0,A
INC31H
MOVDPTR,#CDATA
MOVCA,@A+DPTR;取字型代码
MOVDPTR,#KEYDAT
MOVX@DPTR,A;送8279显示
INC30H
MOVA,30H;字位加1
CJNEA,#88H,HA7SB;
LJMPHA7S2
HA7SB:AJMPHA7S3
HA7SC:MOVDPTR,#KJPADDR
MOVA,R1
RLA
;;ADDA,R1
ADDA,#00H
JMP@A+DPTR;
KJPADDR:LJMPLOOP0
LJMPLOOP1
LJMPLOOP2
KEYTAB:DB0C1H,0C8H,0C9H,0D0H,0D8H,0E0H,0C2H,0CAH,0D1H,0D9H
DB0DAH,0C3H,0CBH,0D2H,0D3H,0DBH
KEYTAB1:DB0E3H,0E2H,0E1H
CDATA:DB0CH,9FH,4AH,0BH,99H,29H,28H,8FH,08H,09H,88H,38H,6CH,1AH,68H,0E8H
LOOP0:MOVR5,#0CH;0
LJMPDISPC
LOOP1:MOVR5,#9FH;1
LJMPDISPC
LOOP2:MOVR5,#4aH;2
DISPC:MOVR6,#80H
DISPC1:MOVDPTR,#KEYCOM
MOVX@DPTR,A;字位送8279
MOVA,R5
MOVDPTR,#KEYDAT;字形送8279
MOVX@DPTR,A
LCALLDELAY1
;MOVA,#0FFH
;MOVX@DPTR,A;关显示
;INCR6;
;CJNER6,#88H,DISPC1
;AJMPDISPC;
LJMPHA7S2
AAA:NOP
NOP
RETI
DELAY1:MOVR1,#0FAH
DELAY2:NOP
NOP
DJNZR1,DELAY2
DJNZR0,DELAY1
RET
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年大流量罗茨鼓风机项目合作计划书
- 鄂州消防招聘政府专职消防员笔试真题2024
- 麻醉药品、精神药品全程化管理要点2025
- 2025年己二酸二甲酯项目发展计划
- 广州版综合实践活动四年级下册第一单元第2课《运动与健康同行》教案
- 2025年吉林通化梅河口市“事编助企”引进企业招聘考试笔试试题【答案】
- 2025年南宁市武鸣区特岗教师招聘考试笔试试题【答案】
- 2025年特种设备检验检测项目合作计划书
- 贷款卡业务申报办理流程说明
- 教育政策的多元化应用与实践探索
- 通用电子嘉宾礼薄
- 阴极电泳涂料涂装基础知识
- PE管道安装单元工程质量评定表 2
- 生产安全事故案例分享
- 污泥( 废水)运输服务方案(技术方案)
- 2023年黑龙江省普通高中学业水平合格性考试数学试题(无答案)
- 旅游接待业 习题及答案汇总 重大 第1-10章 题库
- 隋唐人的日常生活
- 你比划我猜搞笑题目500题
- 如何进行高效沟通课件
- 宁夏西吉县公开招考10名城市社区工作者高频考点题库模拟预测试卷(共1000练习题含答案解析)
评论
0/150
提交评论