单片机设计(论文)基于单片机的温湿度检测及显示.doc

上传人:文库蛋蛋多 文档编号:4147471 上传时间:2023-04-07 格式:DOC 页数:31 大小:640.50KB
返回 下载 相关 举报
单片机设计(论文)基于单片机的温湿度检测及显示.doc_第1页
第1页 / 共31页
单片机设计(论文)基于单片机的温湿度检测及显示.doc_第2页
第2页 / 共31页
单片机设计(论文)基于单片机的温湿度检测及显示.doc_第3页
第3页 / 共31页
单片机设计(论文)基于单片机的温湿度检测及显示.doc_第4页
第4页 / 共31页
单片机设计(论文)基于单片机的温湿度检测及显示.doc_第5页
第5页 / 共31页
点击查看更多>>
资源描述

《单片机设计(论文)基于单片机的温湿度检测及显示.doc》由会员分享,可在线阅读,更多相关《单片机设计(论文)基于单片机的温湿度检测及显示.doc(31页珍藏版)》请在三一办公上搜索。

1、1设计的意义最近几年来,随着科技的飞速发展,单片机领域正在不断的走向社会各个角落,还带动传统控制检测日新月异更新。在实时运作和自动控制的单片机应用到系统中,单片机如今是作为一个核心部件来使用,仅掌握单片机方面知识是不够的,还应根据其具体硬件结构,以及针对具体应用对象特点的软件结合,加以完善。“单片机原理及应用课程设计”是电子类专业的学科基础科,它是继“汇编语言程序设计”,“接口技术”等课程之后开出的实践环节课程。与此同时,现代社会越来越多的场所会涉及到温度与湿度并将其显示。由于温度与湿度不管是从物理量本身还是在实际人们的生活中都有着密切的关系,例如:冬天温度为18至25,湿度为30%至80%;

2、夏天温度为23至28,湿度为30%至60%。在此范围内感到舒适的人占95%以上。在装有空调的室内,室温为19至24,湿度为40%至50%时,人会感到最舒适。如果考虑到温、湿度对人思维活动的影响,最适宜的室温度应是工作效率高。18,湿度应是40%至60%,此时,人的精神状态好,思维最敏捷。所以,本课程设计就是通过单片机驱动LCD1602,液晶显示温湿度,通过此设计,可以发现本设计有一定的扩展性,而且可以作为其他有关设计的基础。2设计原理2.1设计目标2.1.1基本功能检测温度、湿度显示温度、湿度过限报警2.1.2主要技术参数 温度检测范围: -30至+55测量精度: 2湿度检测范围: 20%-9

3、0%RH检测精度:5%RH显示方式: 温度:四位显示 湿度:四位显示报警方式: 三极管驱动的蜂鸣器报警2.2设计原理温湿度监测系统要满足以下条件:温湿度监测系统能完成数据采集和处理、显示、串行通信、输出控制信号等多种功能。由数据采集、数据调理、单片机、数据显示等4个大的部分组成。该测控系统具有实时采集(检测粮库内的温湿度)、实时显示(对监测到的进行显示)、实时警报(根据监测的结果,超出预设定的值的进行蜂鸣警告)的功能。传感器是实现测量首要环节,是监测系统的关键部件,如果没有传感器对原始被测信号进行准确可靠的捕捉和转换,一切准确的测量和控制都将无法实现。工业生产过程的自动化测量和控制,几乎主要依

4、靠各种传感器来检测和控制生产过程中的各种参量,使设备和系统正常运行在最佳状态,从而保证生产的高效率和高质量。一般温湿度控制系统中的温湿度测量均采用热敏电阻与湿敏电容,这种传统的模拟式温湿度传感器一般都需要设计信号调理电路并经过复杂的校准和标定过程,因此测量精度难以保证,且在线性度、重复性、互换性等方面也存在一定问题。这种传感器只适合那些测量点数较少,对精度要求不高的场合。因此设计出一款精度高、稳定性好、成本低的温湿度检测控制系统将具有一定的市场。2.2.1温湿度传感器的选择DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确

5、保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。2.2.2信号采集通道的选择 信号调理电路信号调理电

6、路信号调理电路多路切换器采样/保持器A/D转换器接口CPU图1 多路分时的模拟量输入通道在本设计系统中,温度输入信号为4路的模拟信号,这就需要多通道结构采用多路分时的模拟量输入通道。这种结构的模拟量通道特点为:对ADC、S/H要求高。处理速度慢。硬件简单,成本低。软件比较复杂。如图1所示:2.2.3 系统的总体框图系统的总体设计框图如图2所示:DHT11温湿度检测多 路模 式选 择开 关单片机串行口与LCD报警电路ADC0832图2 系统总体框图本设计由信号采集、信号分析和信号处理三个部分组成的。(一) 信号采集 由DHT11温湿度传感器和多路模式选择开关组成;(二) 信号分析 由A/D转换器

7、和单片机80C51组成;(三) 信号处理 由串行口LCD显示器和报警系统等组成。3 主要芯片简介3.1 DHT11数字传感器3.1.1 主要特性DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过程中要调用这些校准系

8、数。单线制串行接口,使系统集成变得简易快捷。超小的体积、极低的功耗,信号传输距离可达20米以上,使其成为各类应用甚至最为苛刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式可根据用户需求而提供。3.1.2 应用领域该DHT11可以用于暖通空调、测试及检测设备、汽车、数据记录器、消费品、自动控制、湿度调节器及医疗等应用领域。3.1.3 引脚图 DHT11有四个引脚,3号引脚一般悬空,如图3所示。DHT11的供电电压为35.5V。传感器上电后,要等待1s以越过不稳定状态在此期间无需发送任何指令。电源引脚(VDD,GND)之间可增加一个100nF的电容,用以去耦滤波。建议连接线长

9、度短于20米时用5K上拉电阻,大于20米时根据实际情况使用合适的上拉电阻。图3 DHT11引脚图3.1.4 封装信息封装图如图4所示:图4 DHT11封装图3.2液晶显示器LCD1602在日常生活中,我们对液晶显示器并不陌生。液晶显示模块已作为很多电子产品的通过器件,如在计算器、万用表、电子表及很多家用电子产品中都可以看到,显示的主要是数字、专用符号和图形。在单片机的人机交流界面中,一般的输出方式有以下几种:发光管、LED数码管、液晶显示器。发光管和LED数码管比较常用,软硬件都比较简单,在前面章节已经介绍过,在此不作介绍,本章重点介绍字符型液晶显示器的应用。 在单片机系统中应用晶液显示器作为

10、输出器件有以下几个优点:(一)显示质量高(二)数字式接口(三)体积小、重量轻(四)功耗低3.2.1液晶显示原理液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、PDA移动通信工具等众多领域。3.2.2液晶显示器的分类液晶显示的分类方法有很多种,通常可按其显示方式分为段式、字符式、点阵式等。除了黑白显示外,液晶显示器还有多灰度有彩色显示等。如果根据驱动方式来分,可以分为静态驱动(Static)、单纯矩阵驱动(Simple M

11、atrix)和主动矩阵驱动(Active Matrix)三种。3.2.3液晶显示器各种图形的显示原理首先是液晶的线段的显示。点阵图形式液晶由MN个显示单元组成,假设LCD显示屏有64行,每行有128列,每8列对应1字节的8位,即每行由16字节,共168=128个点组成,屏上6416个显示单元与显示RAM区1024字节相对应,每一字节的内容和显示屏上相应位置的亮暗对应。例如屏的第一行的亮暗由RAM区的000H00FH的16字节的内容决定,当(000H)=FFH时,则屏幕的左上角显示一条短亮线,长度为8个点;当(3FFH)=FFH时,则屏幕的右下角显示一条短亮线;当(000H)=FFH,(001H

12、)=00H,(002H)=00H,.(00EH)=00H,(00FH)=00H时,则在屏幕的顶部显示一条由8段亮线和8条暗线组成的虚线。这就是LCD显示的基本原理。其次是液晶字符的显示。用LCD显示一个字符时比较复杂,因为一个字符由68或88点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM区的8字节,还要使每字节的不同位为“1”,其它的为“0”,为“1”的点亮,为“0”的不亮。这样一来就组成某个字符。但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在LCD上开始显示的行列号及每行的列数找出显示RAM对应的地址,设立光标,在此送上该字符对应的代码即

13、可。3.2.4 LCD1602的基本参数及引脚功能1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如下图5所示:图5 LCD1602尺寸图LCD1602的主要技术参数:1、显示容量:162个字符2、芯片工作电压:4.55.5V3、工作电流:2.0mA(5.0V)4、模块最佳工作电压:5.0V5、字符尺寸:2.954.35(WH)mm引脚功能说明LCD1602采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如图6所示:编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10

14、D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极图6引脚接口说明图6:引脚接口说明表第1脚:VSS为地电源。第2脚:VDD接5V正电源。第3脚:VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。第4脚:RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。第5脚:R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入

15、指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。第6脚:E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。第714脚:D0D7为8位双向数据线。第15脚:背光源正极。第16脚:背光源负极。3.2.5 LCD1602的指令说明及时序1602液晶模块内部的控制器共有11条控制指令,如图7所示:序号指令RSR/WD7D6D5D4D3D2D1D01清显示00000000012光标返回000000001*3置输入模式00000001I/DS4显示开/关控制0000001DCB5光标或字符移位000001S/CR/L*6置功能00001

16、DLNF*7置字符发生存贮器地址0001字符发生存贮器地址8置数据存贮器地址001显示数据存贮器地址9读忙标志或地址01BF计数器地址10写数到CGRAM或DDRAM)10要写的数据内容11从CGRAM或DDRAM读数11读出的数据内容图7控制命令表1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。(说明:1为高电平、0为低电平)指令1:清显示,指令码01H,光标复位到地址00H位置。指令2:光标复位,光标返回到地址00H。指令3:光标和显示模式设置I/D:光标移动方向,高电平右移,低电平左移S:屏幕上所有文字是否左移或者右移。高电平表示有效,低电平则无效。指令4:显示开关

17、控制。D:控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:控制光标的开与关,高电平表示有光标,低电平表示无光标B:控制光标是否闪烁,高电平闪烁,低电平不闪烁。指令5:光标或显示移位S/C:高电平时移动显示的文字,低电平时移动光标。指令6:功能设置命令DL:高电平时为4位总线,低电平时为8位总线 N:低电平时为单行显示,高电平时双行显示F: 低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。指令7:字符发生器RAM地址设置。指令8:DDRAM地址设置。指令9:读忙信号和光标地址BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。指令10:写

18、数据。指令11:读数据。3.2.6 LCD1602的RAM地址映射及标准字库表图8 LCD1602内部显示地址液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图8是1602的内部显示地址。例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。在对液晶模块的

19、初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。每次输入指令前都要判断液晶模块是否处于忙的状态。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。3.2.7 硬件原理图图9 硬件原理图1602液晶显示模块可以和单片机AT89C51直接接口,电路如图9所示:3.3 单片机89C51为了设计此系统,我

20、们采用了80C51单片机作为控制芯片。89C51是MCS-51系列单片机中CHMOS工艺的一个典型品种 ;其它厂商以8951为基核开发出的CMOS工艺单片机产品统称为89C51系列。该系列单片机是采用高性能的静态89C51设计由先进CMOS 工艺制造并带有非易失性Flash 程序存储器全部支持12时钟和6时钟操作P89C51X2和P89C52X2/54X2/58X2分别包含128字节和256字节RAM 32条I/O口线3个16位定时/计数器6输入4优先级嵌套中断结构1个串行I/O口可用于多机通信I/O扩展或全双工UART以及片内振荡器和时钟电路。此外,由于器件采用了静态设计,可提供很宽的操作频

21、率范围,频率可降至0。可实现两个由软件选择的节电模式,空闲模式和掉电模式,空闲模式冻结CPU但RAM定时器,串口和中断系统仍然工作,掉电模式保存RAM的内容,但是冻结振荡器导致所有其它的片内功能停止工作。由于设计是静态的时钟可停止而不会丢失用户数据,运行可从时钟停止处恢复。3.3.1 89C51的基本结构89C51的微处理器(CPU); 运算器;累加器ACC ;寄存器B ;程序状态字寄存器PSW;控制器;程序计数器PC ;指令寄存器IR ;定时与控制逻辑;89C51的片内存储器;内部ROM容量4K字节;内部RAM容量128字节;89C51的I/O口及功能单元;四个8位的并行口,即P0P3。它们

22、均为双向口,既可作为输入,又可作为输出。每个口各有8条I/O线; 有一个全双工的串行口(利用P3口的两个引脚P3.0和P3.1);有2个16位的定时/计数器 ;有1套完善的中断系统;89C51的特殊功能寄存器(SFR);低功耗的闲置和掉电模式;片内振荡器和时钟电路;3.3.2 89C51的引脚图89C51的引脚图如图10所示:图10 89C51引脚图89C51的制作工艺为CMOS,采用40管脚双列直插DIP封装,引脚说明如下:VCC:供电电压。 GND:接地。 P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部

23、程序数据存储器,它可以被定义为数据/地址的第八位。在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口的管

24、脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下所示: P3.0

25、RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 /INT0(外部中断0);P3.3 /INT1(外部中断1);P3.4 T0(记时器0外部输入);P3.5 T1(记时器1外部输入);P3.6 /WR(外部数据存储器写选通);P3.7 /RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振

26、荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时,ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式

27、1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。3.3.3 89C51的存储器配置图11 89C51存储器配置89C51的存储器配置如图11所示:对于程序存储器,与ROM密切相关的两个引脚是地址锁存允许信号端和外部程序存储器允许输出信号端。当ROM容量不够时,尽量选择高容量存储器空间的单片机,如89C52,89C54,89C58等,应避免外扩程序存储器,因为会增加硬件负担,通过16位PC寻址,最大可寻址6

28、4kB地址空间。数据存储器用于存放运算中间的结果、数据暂存、缓冲、标志位、待测程序等功能。片内的128B的RAM地址为00H7FH,供用户做RAM用,但是在这中间的前32单元,00H1FH即引用地址寻址做用户RAM用,常常做工作寄存器区,分做四组,每组由8个单元组成通用寄存器R0R7,任何时候都由其中一组作为当前工作寄存器,通过RS0,RS1的内容来决定选择哪一个工作寄存器。低128字节中的20H2FH共16字节可用位寻址方式访问各位,共128个位地址,30H7FH共80个单元为用户RAM区,作堆栈或数据缓冲用,片内RAM不够用时,须扩展片外数据存储器。此时单片机通过P2口和P0口选出6位地址

29、,使用ALE作低8位的锁存信号,再由P0口写入或读出数据。写时用,读时用做外部数据存储器的选通信号。3.3.4 89C51的工作模式89C51有四种工作模式:模式0,模式1,模式2,模式3。模式0:选择定时器的高8位和低5位组成一个13位定时器/计数器。TL低5位溢出时向TH进位,TH溢出时向中断标志位TF进位,并申请中断。定时时间t=(213-初值)振荡周期12;计数长度位213=8192个外部脉冲。模式1:与模式0的唯一差别是寄存器TH和TL以全部16位参与操作。定时时间t=(216-初值)振荡周期12;计数长度位216=65536个外部脉冲。模式2:把TL0和TL1配置成一个自动重装载的

30、8位定时器/计数器。TL用作8位计数器,TH用以保存初值。TL计数溢出时不仅使TF0置1,而且还自动将TH中的内容重新装载到TL中。定时时间t=(28-初值)振荡周期12;计数长度位28=256个外部脉冲。模式3:对T0和T1不大相同。若设T0位模式3,TL0和TH0被分为两个相互独立的8位计数器。TL0为8位计数器,功能与模式0和模式1相同,可定时可计数。TH0仅用作简单的内部定时功能,它占用了定时器T1的控制位TR1和中断标志位TF1,启动和关闭仅受TR1控制。定时器T1无工作模式3,但T0在工作模式3时T1仍可设置为02。3.3.5 89C51的系统时钟设计时钟电路是用来产生89C51单

31、片机工作时所必须的时钟信号,89C51本身就是一个复杂的同步时序电路,为保证工作方式的实现,89C51在唯一的时钟信号的控制下严格的按时序执行指令进行工作,时钟的频率影响单片机的速度和稳定性。通常时钟由于两种形式:内部时钟和外部时钟。我们系统采用内部时钟方式来为系统提供时钟信号。89C51内部有一个用于构成振荡器的高增益反向放大器,该放大器的输入输出引脚为XTAL1和XTAL2,它们跨接在晶体振荡器和用于微调的电容,便构成了一个自激励振荡器。电路中的C1、C2的选择在30PF左右,但电容太小会影响振荡的频率、稳定性和快速性。晶振频率为在1.2MHZ12MHZ之间,频率越高单片机的速度就越快,但

32、对存储器速度要求就高。为了提高稳定性我们采用温度稳定性好的NPO电容,采用的晶振频率为12MHZ。时钟电路如图12所示:图12 系统时钟电路4硬件与软件4.1硬件设计4.1.1硬件要求根据设计要求确定了系统的总体方案,整个系统由单片机、温湿度传感器、显示模块和报警器等几部分组成。温湿度传感器监测值传输给单片机,并液晶显示。当单片机监测到的数值超出所设定阈值时,驱动蜂鸣器报警。4.1.2具体硬件设计单片机是整个系统的控制中枢,它指挥外围器件协调工作,从而完成特定的功能。硬件实现上采用模块化设计,每一模块只实现一个特定功能,最后再将各个模块搭接在一起。这种设计方法可以降低系统设计的复杂性。系统电路

33、原理图如图13所示。本系统主要硬件设计包括电源电路、蜂鸣器电路、晶振电路、复位电路、LCD 显示电路以及温湿度传感器电路。控制电路的核心器件AT89C52单片机,属于MCS-51系列。AT89C52是一种低功耗、高性能的CMOS8位微控制器,具有8K在系统可编程Flash存储器,采用的工艺是Atmel公司的高密度非易失存储器技术;片上Flash允许程序存储器在系统可编程,亦适于常规编程器;在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案;价格低廉、性能可靠、抗干扰能力强。因此广泛应用于工业控制和嵌入式系统中。图13

34、 系统电路原理图系统的蜂鸣器电路、振荡电路、复位电路如图14、图15、图16所示。图14 蜂鸣器电路图15 振荡电路图16 复位电路蜂鸣器额定电流IB30mA,而对于AT89C52单片机,P1口的灌电流为16mA,拉电流为60A,由此可见,仅靠单片机的P1口电流是不能驱动蜂鸣器的,必须使用集晶体管放大电路,为了使单片机消耗的功率更小,所以使用 PNP型晶体管9012。AT89C52采用的晶振电路采用12MHz的无源晶振,微调电容大小取30pF。显示模块选用1602字符型液晶模块,是目前工控系统中使用最为广泛的液晶屏之一,电路图如图17所示。1602字符型液晶模块是点阵型液晶,驱动方便,经编码后

35、显示内容多样化。系统的输入模块采用中断扫描的44矩阵键盘,相比定时扫描方式,提高了MCU的使用效率。图17 LCD1602电路图4.2软件设计系统软件程序基于Keil开发平台,采用C语言编写。本程序采用模块化程序方法,主要分为一下两个模块:u LCD初始化显示模块u DHT11数据采集模块LCD初始化显示流程图和DHT11数据采集流程图分别如图18、图19所示:图18 LCD初始化显示流程图图19 DHT11数据采集流程图5设计总结课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单

36、片机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握单片机的开发技术是十分重要的。回顾起此次单片机课程设计,我仍感慨颇多。在接近一星期的日子里,可以说是苦多于甜,虽然如此,却学到很多很多的的东西,同时还巩固了以前所学过的知识,并学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合的重要性,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正让自己有所了解,有所体会,从而提高自己的实际动手能力和独立思考的能力。当然,在设计的过程中遇到了很多问题,但是通过这些问题,我又能发现自己的

37、不足之处。虽然问题重重,但在老师和同学的帮助下,问题都得以解决,所以,非常感谢那些帮助过我的老师和同学。总之,通过这次课程设计,我知道了很多,了解了很多,学到了很多。参考文献1 何立民.单片机高级教程-应用与设计M.北京航空航天大学出版社,2002.2 徐爱钧.单片机高级语言C51 Windows环境编程与应用M.电子工业出版社,2001.3白雪冰,张延林,等.单片机原理及应用M.哈尔滨东北林业大学出版社,2006.4张佳薇,孙丽萍,等.传感器原理与应用M.哈尔滨东北林业大学出版社,2003.附录源程序:#include #define uint unsigned int #define uc

38、har unsigned chartypedef bit BOOL ; sbit io = P10 ;sbit rs = P25; sbit rw = 26 ;sbit ep = P27 ;uchar data_byte;uchar RH,RL,TH,TL;void delay(uchar ms) / 延时子程序 uchar i ; while(ms-) for(i = 0 ; i18msio=1;delay1();/20-40usdelay1();delay1();delay1();delay1();uchar receive_byte()/接收一个字节uchar i,temp,count;

39、for(i=0;i8;i+)count=2;while(!io)&count+)/等待50us低电平结束temp=0;delay1();delay1();delay1();delay1();if(io=1)temp=1;count=2;while(io)&count+);if(count=1)break;data_byte=1;data_byte|=temp;return data_byte;void receive()/接收数据uchar T_H,T_L,R_H,R_L,check,num_check;uchar count;start();/开始信号io=1;if(!io)/读取DHT11

40、响应信号count=2;while(!io)&count+);/DHT11高电平80us是否结束count=2;while(io)&count+);R_H=receive_byte();R_L=receive_byte();T_H=receive_byte();T_L=receive_byte();check=receive_byte();io=0;/拉低延时50usdelay1();delay1();delay1();delay1();delay1();io=1;num_check=R_H+R_L+T_H+T_L;if(num_check=check)RH=R_H;RL=R_L;TH=T_H;TL=T_L;check=num_check;void main()lcd_init();delay

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号