基于51单片机的温湿度传感器的设计与制作

基于51单片机的温湿度传感器的设计与制作
基于51单片机的温湿度传感器的设计与制作

摘要:温湿度使我们生产生活中很重要的参数,本设计为基于51单片机的温湿度检测与控制系统,采用模块化、层次化设计。如今采纳新技术,使用新式智能的温湿度传感器DHT11来实现对温度、湿度的监测,运用DHT11来完成湿度信号的收集并将其转换为数字式信号,接着使用单片机AT89C52分析、处置数据,提供信号给报警及显示电路,从而完成对温湿度的检测与监控。依据设定的报警高低限值来体现报警体系的报警功效,采纳LCD1602液晶显示所测得的温湿度值。优点是系统的电路简单、集成度高、运行稳定、调试方便、检测精度很高,有一定的实用价值。

关键词:单片机;DHT11温湿度传感器;LCD1602显示

Abstract:Temperature and humidity that we are important parameters in production and living, this design is based on 51 single chip microcomputer temperature and humidity detection and control system, adopts the modular, hierarchical design. Now adopt new technology, the use of new intelligent temperature and humidity sensor DHT11 to realize the monitoring of temperature, humidity, using DHT11 to humidity signal collection and convert them into digital signals, then using microcontroller AT89C52 analysis and treatment of data, provides the signal to alarm and display circuit, so as to complete the detection and monitoring of temperature and humidity. According to set the alarm of high and low limit to reflect the alarm function of the alarm system, adopt LCD1602 LCD display the measured temperature and humidity values. Advantage is simple circuit, high integration, stable running, convenient debugging and testing precision is high, has certain practical value.

Key words:Single chip microcomputer; DHT11 temperature and humidity; LCD1602 display

目录

第一章引言 (4)

1.1课题的研究背景 (4)

1.2课题的研究内容及目标 (4)

1.3本文的组织结构 (4)

第二章设计要求及目的 (4)

1.1 设计目的 (4)

1.2 设计要求 (4)

第三章系统方案设计及论证 (4)

3.1总体方案设计 (5)

3.2方案比较与论证 (5)

3.2.1温湿度检测 (5)

3.2.2主从机通信 (6)

3.2.3显示部分 (6)

第四章系统的硬件设计与实现 (6)

4.1 单片机介绍 (6)

4.1.1 单片机主要性能 (6)

4.1.2 单片机各引脚功能介绍 (7)

4.1.3 单片机特殊功能寄存器介绍 (7)

4.2 DHT11数字温湿度传感器介绍 (11)

4.2.1 DHT11产品概述 (7)

4.2.2 串行接口 (7)

4.3 红外发射电路 (11)

4.4红外接收电路 (13)

第五章软件设计 (14)

5.1主机程序 (14)

5.2从机程序 (15)

总结 (17)

致谢 (18)

参考文献 (19)

附录一主机电路图 (20)

附录二从机电路图 (21)

附录三程序代码 (22)

第一章引言

1.1 课题的研究背景

温度与湿度与人们的生活息息相关。尤其是在工农业生产、气象、国防、科研等部门,必须经常、精确的对环境温度进行监测和控制。此外,在制药,造纸准及温湿度测量,食品加工和其他行业是必要的。比较传统的温度计使用水银制作显示,构造简单、价格低廉,缺憾是精确度不高,不宜读数。传统的干湿球温度计的显示方法,不仅复杂,测量精度不高。而选用单片机对温湿度实施监控和测量,不单单具有节制便利,单一灵活的特点,而且可以大大提高温度控制的灵活性的优点。用LED数码管显示温度和湿度值,看起来更直观。

测量温度和湿度最重要的就是传感器。温度和湿度的测量过去是分离的。传感器的成长历经了三个阶段:传统的分立式温度传感器、模拟集成温度传感器、智能集成温度传感器。目前,从模拟到数字温度传感器的模型的方向,从集成化向智能化,网络化的发展。温度传感器也经历过这样的阶段走向数字化、智能化。

1.2 课题的研究内容及目标

温度和湿度探测器是以AT89C52单片机为核心控制芯片,该芯片具有良好的抗干扰能力,快速响应。使用此单片机构成的温湿度检测仪能够定时、无误的监测周围的温度和相对湿度。

使用高灵敏度收集湿敏电阻阻值变化,然后经由单片机从而得到相应湿度,这就是本检测仪的硬件部份的设计;DHT11数字温度传感器对温度的实时采集和直接控制监测。另外,新增的语音报警装置,让用户自己来设定自己需要的上下限值,只要超出便会自动报警。并用LCD显示屏作为显示设备的硬件设计方案。软件部分选用模块化的方式分成几个个体,一个个进行程序设计,最后连接各部分一起协调工作,从而实现实时监测周围温湿度的目的。

1.3 本文的结构组织

本文的组织结构安排如下:

第一章引言,扼要阐明本课题的研究背景、研究目的、研究意义,以及要实现的目标。

第二章设计的要求及目的,阐述要实现的功能,以及主要的参数。

第三章系统设计方案及论证,通过分析论证,选出最合适的设计方案,详细的介绍总体方案。

第四章主要讲述整个体系硬件的设计及实现,包括单片机的选择、温湿度传感器的选择以及红外发射电路、红外接收电路、语音播报电路的设计。

第五章是软件设计,基于前面的硬件系统,设计合适的主机程序和从机程序。

第二章设计要求及目的

2.1 设计目的

温度、湿度是工业和农业生产的主要环境参数。是否能够及时、准确地测量很重要。如果单片机来对温度进行控制,利用高精度的温度,湿度控制,强湿功能,体积小,价格低,简单灵活,很好的满足工艺要求。

2.2 设计要求

1、实现温度和湿度的测量;

2、按电源键进行测量;

3、湿度的测量范围:0%~100%RH;温度的测量范围:-40~+85℃;

4、湿度测量精度:±2.0%RH;温度测量精度:±0.2℃;

5、在LCD显示屏上显示数据和结果;

6、超出或低于预设定的值,蜂鸣器自动报警。

第三章系统方案设计及论证

3.1总体方案设计

根据课题要求实现,该系统由主机系统和两个部分从系统,以AT89C52单片机为核心,设计。图1-1和1-2为主机、从机框图:

图 1-1 主机系统图 图 1-2 从机系统图

3.2方案比较与论证

3.2.1温湿度检测

方案一:使用AM2301数字温湿度传感器。该型温湿度传感器,采用3.3-6V 直流电源供电,它的各部分参数:湿度测量的范围为20%~90%RH ;温度测量的范围为0~+50℃;湿度测量精度为±5.0%RH ;温度测量精度为±2.0℃。虽然它的价格比较便宜,但测温的范围和测湿的范围太小,温度的精度和湿度的精度太低,不符合设计的要求。

方案二:使用AM2302电容式数字温湿度传感器。它的各部分参数如下:由于传感器参数:湿度0% ~ 100%相对湿度的测量范围;温度测量范围为40 ~ + 80℃;湿度的测量精度为±3.0%RH 温度的测量精度:±0.5℃。价格也比较适合,基本可以满足设计要求。

方案三:使用数字温湿度传感器DHT11。湿度测量范围: 0%~100%RH ;温度测量范围:40 ~ + 85℃;湿度测量精度:±2%相对湿度±0.2℃温度测量精度。该传感器价格很便宜。温度和湿度都达到或超过了标题的精度要求,属于低功率传感器。

经过比较,从系统技术参数要求和低功耗方面考虑,选用方案三。

3.2.2主从机通信

方案一:采用RF905SE无线发射模块。可以进行最远达1000米的远距离无线通信,工作很稳定,比较简单,但是成本较高。

方案二:采用无线蓝牙串口模块。该模块的传输距离为5 ~ 10米,可串行通讯,通讯便捷,但成本高。

方案三:用自制的红外通信电路,可以实现超过5米距离的通信,低功耗,低成本,并能满足题目要求发挥的一部分。

通过对比,方案三的红外通信电路的机能完全能够符合题目的各个部分和发挥部分的设计,故选用方案三。

3.2.3 显示部分

方案一:采用LED数码管,其操作简单,显示直观。不仅程序的设计简易,而且对周围的环境要求很低,方便维护。但是数码管只可以显示阿拉伯数字,不能显示汉字。而且硬件设计也相当繁复。不适用于本设计。

方案二:使用LCD液晶,它具有体积小、低功耗、显示丰富等优点。电路连接简单,价格也便宜。

总的来说,LCD液晶显示更多的内容,所以本设计选用LCD液晶显示程序。

第四章系统的硬件设计与实现

4.1 单片机介绍

4.1.1 单片机主要性能

AT89C52是由ATMEL公司生产的51单片机的一个型号。它具有高性能CMOS8位、低电压的优点,使用了该公司的高密度、非易失性存储技术生产,完美兼容MCS-51指令系统,包括8位中央处理器和Flash存储单元,AT89C52功能强大、试用范围非常广。

主要功能特性:

●引脚完全兼容MCS-51产品

●具有8K字节的可重擦写Flash闪存

●1000次擦写周期

●2个读写中断口线

●全静态操作:0Hz-24MHz

●三级加密程序存储器

●256*8字节内部RAM

●32可编程双向I/O线

●3个16位定时器/计数器

●2个外部中断源,共6个中断源

●可编程串行UART通道

●低功耗的空间和掉电模式

●软件设置睡眠和唤醒功能

4.1.2 单片机各引脚功能介绍

AT89C52由40 脚双列直插包装的8 位通用微处理器组成,使用常用的C51内核,它主要用于会聚调整功能的控制。功能主要有对会聚主IC 内部寄存器、数据RAM及外部接口等部件的初始化,会聚调整控制,会聚测试图控制,红外遥控信号IR的接收解码及与主板CPU通信等。

·P0 口:P0 口是8 位的漏极开路型双向的I/O 口,即为地址/数据总线复用口。如果被当作输出口,每位可以吸收电流的形式驱动8 个TTL逻辑门电路,对端口P0 写“1”时,起作用变为高阻抗输入。当需要访问外部数据存储器或程序存储器时,这组口线分时转换地址(低8 位)和数据总线复用,期间可以激活内部上拉电阻。在Flash 编程时,P0 口负责接受指令字节,但是在程序校验的时候,需要输出指令字节,校验时需要外接上拉电阻。

·P1 口:P1 是一个带在内部上拉电阻的8 位的双向I/O 口, P1 的输出缓冲级可驱动(吸取或输出电流)4 个TTL 逻辑门电路。对端口写“1”,经过里面的上拉电阻把端口拉至高电平,就可作输入口使用。作输入口用时,因为里面存在上拉电阻,某引脚被外部的信号拉低时会输出一个电流(IIL)。与AT89C51 不

同之处是,P1.0 和P1.1 还有作为定时/计数器2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX)的功能,Flash 编程和程序校验的时候,P1 接收低8 位地址。

·P2 口:P2 是一个带有上拉电阻的8 位双向的I/O 口,P2 的输出缓冲级能够驱动(吸收或输出电流)4 个TTL 逻辑门电路。将端口P2写“1”,通过内部的上拉电阻来港的高水平,此时,可作为输入,作为输入使用时,因为内部上拉电阻,如果某个引脚被外部信号拉低的时候就会输出一个电流(IIL)。当访问外部程序存储器或16 位地址的外部数据存储器时,P2 口送出高8 位的地址数据。当访问8 位地址的外部数据存储器时,P2 口输出P2 锁存器的内容。编程或检查,P2也获得了很高的地址和控制信号。

·P3 口:P3 口是一组带有内部上拉电阻的8 位双向I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个TTL 逻辑门电路。对P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的I/O 口线外,此外,它的第二功能P3 口还接收一些可以用于Flash 闪速存储器编程与程序校验的控制信号才是最重要的。

4.1.3 单片机特殊功能寄存器介绍

·数据存储器:AT89C52 有256 个字节内部RAM,80H-FFH 高128 个字节与特殊功能寄存器(SFR)地址是重复的,虽然物理上分开,但是高128字节的RAM 与特殊功能寄存器的地址相同。当一条指令访问7FH 以上地址单元的时候,指令中使用不同的寻址方式,即为究竟是访问高128 字节RAM 还是访问特殊功能寄存器是由寻址方式决定的。直接寻址方式对应的是访问特殊功能寄存器。

·定时器0和定时器1:AT89C52的定时器0和定时器1 的工作方式与AT89C51 相同。

·2定时器:定时器2是一个16位定时器/计数器。不仅仅可以当定时器用,而且可用作外部事件计数器,特殊功能的寄存器T2CON的C/T2 位负责选择它的工作方式。定时器2一共有三种工作方式:捕获方式,向上或向下计数方式以及波特率发生器方式,T2CON 的控制位来决定其工作方式。

4.2 DHT11数字温湿度传感器介绍

4.2.1 DHT11产品概述

DHT11数字温湿度传感器是一种复合传感器,它包含已校准数字信号输出。通过特殊的数字模块采集技术和温湿度传感技术,以确保产品拥有相当高的可靠性和卓越的长期稳定性。传感器由一个电阻式感湿元件与一个NTC测温元件组成,跟一个高性能的8位单片机相连接。因此,产品品质优良,响应速度快,抗干扰能力强,性价比很高。而且它的每次校准都在及其标准的温湿度实验室中进行。将所测的校准系数用程序存储在OTP内存中,当需要处理检测到的信号时,传感器会自动调用这些标准系数。单线串行接口,很容易和快速的系统集成。它的优点是体积小、低功耗、最高20米以上的远距离信号传递,使它能够在最为严格的场合使用。

4.2.2 串行接口

微处理器与 DHT11之间的联系与同步通过DATA来实现,它选用单总线的数据格式,一次通话时间大约在4ms左右,数据包括小数部分和整数部分,具体格式会

在下文中详细介绍, 如果有扩张的小数部分,我们读作零。操作流程如下: 一次完整的数据传输为40bit,高位先出。

数据格式: bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bit校验和

数据传递精确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据

+8bi温度整数数据+8bit温度小数数据”其结果末8位。

当用户MCU传送一次开始的信号后,DHT11就会自动从低功耗模式变换成高速模式,然后等待主机开始信号结束后,DHT11就会传送响应信号,送出40bit的数据, 触发信号的采集,用户可以选择读数据。在从模式下,当DHT11接收到开始信号就会自动触发一次温湿度收集,当接收到主机发送开始信号的时候,他就不会主动

进行温湿度的收集.完成收集数据后会自动转换到低速模式。

1.通讯过程如图2-1所示:

图2-1 通讯过程图

总线空闲时候的状态为高电平,主机会把总线降低然后等着DHT11响应,主机把总线拉低要大于18毫秒,以确保DHT11可以检测到起始的信号。当DHT11收到主机的开始的信号后,就会等待主机的开始信号结束,然后发送80us低电平响应信号.主机发送开始信号结束后,延时等待20-40us后, 读取DHT11的响应信号,主机发送开始信号后,可以切换至输入模式,或者是输出高电平, 总线由上拉电阻拉高。

总线如果为低电平,说明DHT11发送响应信号,DHT11发送响应信号后,再把总线拉高80us,准备发送数据,每一bit数据都会以50us低电平时隙开始,高电平的长短定了数据位是0还是1.格式如图2-2所示.收到高电平响应信号,则DHT11不会响应,检查一下电路连接是否正常.当最后一bit数据传送结束后,DHT11拉低总线50us,然后总线由上拉电阻拉高转为空闲状态。

图2-2

0数字信号表示,如图2-3所示:

图2-3

方法1数字信号表示。如图2-4所示:

图2-4

4.3红外发射电路

经常使用的红外遥控器的输出,几乎全部是由编码后串行数据对38~40kHz 的方波进行脉冲幅度调制而成的。每次按下发射器,就会发出遥控码,不同的按键则对应不同的遥控码。远程控制代码具有以下特点:

采用脉宽调制的串行码:

以脉宽为0.565ms、间隔0.56ms、周期为1.125ms的组合表示二进制的“0”;

以脉宽0.565ms、间隔1.685ms、周期为2.25ms的组合表示二进制的“1”。

38kHz的载频对上述“0”和“1”组成的32位二进制码进行二次调制,最后由红外发射二极管产生红外线向空间发射。红外遥控器编码的格式为连续的32位二进制码组,前16位为用户识别码,能区分不一样的红外遥控设备,防止不同机种之间遥控码会互相干扰。16到8位的操作码和8位操作完成后,用于检查数据接收的准确性。

根据红外编码格式,需要发送9ms的起始码和4.5ms的结果代码才能发送数据。

遥控串行数据编码波形如图3-1所示:

图3-1串行数据波形编码

红外发射电路,通过单片机控制三极管的导通和最终实现红外发射管的数据传输,红外发射电路图如图3-2所示:

图3-2红外发射电路

4.4红外接收电路

接收方运用TL0038一体化的红外线接收器来接收解码,每次TL0038收到38kHz红外信号,输出端就会输出低电平,否则输出高电平。因此,红外信号发射电路发射,参照以上远程串行数据编码波形,在低水平送38KHZ的红外信号,高电平不发送红外信号。

红外接收电路,从外部接收到的信号发送给接受管,然后用P口送给单片机,红外接收电路图如图3-3所示:

图3-3

第五章软件设计

5.1主机程序

主机程序包括主程序和中断服务程序。图4-1显示主程序流程,实现了温湿度数据的显示与接收,并通过LCD液晶显示屏显示所测的的温湿度。

图4-1 主机主程序流程图

5.2从机程序

从机程序主要是一个主程序。主程序的流程图如图4-2所示。目的是实现数据的接发以及温湿度数据的采集。

图4-2从机主程序流程图

通过不懈的努力,终于完成了我的毕业设计。在我开始做毕业设计之前,我一直片面的觉得毕业设计只是对大学这几年来所学的专业知识的简单的

总结,但是在实践的过程中我发现我错了,因为毕业设计不仅是对前面所学知识的一种检验,而且也是对自己能力的以一种提高。

通过毕业设计使我明白了我学到的知识只是知识宝库中的冰山一角,还有许多要学习的地方。原来我总是感觉到已经把所有的东西都学到手了,什么都明白了,有些眼高手低。通过我在毕业设计的实践过程,我懂得了活到老学到老这句名言的真正意义,学习是一个循序渐进的过程,不可能一蹴而就,不管是在以后的工作中、或者生活中都不能停止学习,不断的用知识武装自己,让自己全面发展,更能适应这个科技文化高速发展的世界。

毕业设计的过程,让我养成了独立思考的习惯,培养了我实在实际操作中动手的能力,我领悟到了在实践过程中摸索的困难与最终成功时的喜悦,这些对于我的信心或者是工作能力来说都是极大的鼓励与肯定,相信这些会对未来的工作和生活中有非常重要的影响。虽然我的毕业设计是有些缺陷的,但我觉得在此过程中我收获了很多,最大的收获就是在毕业设计的设计过程中所学到的财富,他会是我终身受益。

在毕业设计实践的过程中,我还深深体会到交流和相互讨论的重要性。向老师请教,就能够时刻确保在大的方向上我是朝对的方向走;与同学讨论,可以集思广益、可以迸发灵感,收获新方法。思想和信息的传递,确保了我的毕业设计得以顺利完成。另外,我还总结出一个结论:知识要想实现其价值,必须由实践来完成!

本论文是在我的导师霍文晓老师精心指导下完成的,在我的毕业设计和撰写论文的工作中倾注了霍老师的汗水和心血。在我遇到困难的时候,我的导师给我了无私的帮助。霍老师治学的态度非常的严谨,拥有渊博的专业知识,她

无私的奉献精神一直感动着我、支撑着我从困难中爬起来,给了我很大的信心。从我最尊敬的霍老师身上,学到的不仅仅是全面的专业知识,最重要的是做人的道理,让即将走向社会的我懂得如何处理各种人际关系。在此向霍老师表达我最诚挚的敬意和感谢!同时还要感谢在百忙之中抽出宝贵的时间给我提供帮助的各位老师、同学以及朋友们!

感谢在百忙之中参与评阅论文和参加我们毕业生答辩的各位领导和老师,这是我第一次做温湿度传感器,一定会有些地方有错误或者不当。麻烦各位老师给我指出来让我明白自己的不足,我一定努力改正,让我的毕业设计更完美。

最后感谢家人给予我学业上和生活上的支持与照顾,感谢母校给与本人深造的机会。

参考文献

[1] 谢光忠、蒋亚东等. 温湿度智能数据采集控制系统的研制:传感器技术 20004.

[2] 丁元杰.单片微机原理及应用.北京:机械工业出版社.1993.

[3] 喻评,郭文川.单片机原理与接口技术.北京:化学工业出版社,2006.

[4] 李刚.51系列单片机系统设计与应用技巧.北京:北京航空航天大学出版社.2004.

[5] 余永权.MCS-51系列单片机应用技术.北京:北京航空航天出版社.2002.

[6]刘勇.数字电路.北京电:子工业出版社.2004.

[7]王法能.单片机原理及应用(简明修订版). 北京:科学出版社.2001.

[8]赵伟军.PROTEL 99 SE 教程.北京:人民邮电出版社.2004.

[9]黄强.模拟电子技术》北京:科学出版社.2003.

[10]徐正惠,胡海影.单片机原理与应用实训教程.北京:京科学出版社.2004.

[11]陈晓文.电子电路课程设计.北京:北京电子工业出版社. 2004.

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

基于51单片机及DS18B20温度传感器的数字温度计程序(详细注释)

电路实物图如下图所示: C 语言程序如下所示: /******************************************************************** zicreate ----------------------------- Copyright (C) https://www.360docs.net/doc/621085281.html, -------------------------- * 程序名; 基于DS18B20的测温系统 * 功 能: 实时测量温度,超过上下限报警,报警温度可手动调整。K1是用来 * 进入上下限调节模式的,当按一下K1进入上限调节模式,再按一下进入下限 * 调节模式。在正常模式下,按一下K2进入查看上限温度模式,显示1s 左右自动 * 退出;按一下K3进入查看下限温度模式,显示1s 左右自动退出;按一下K4消除 * 按键音,再按一下启动按键音。在调节上下限温度模式下,K2是实现加1功能, * K1是实现减1功能,K3是用来设定上下限温度正负的。 * 编程者:Jason * 编程时间:2009/10/2 *********************************************************************/ #include //将AT89X52.h 头文件包含到主程序 #include //将intrins.h 头文件包含到主程序(调用其中的_nop_()空操作函数延时) #define uint unsigned int //变量类型宏定义,用uint 表示无符号整形(16位) #define uchar unsigned char //变量类型宏定义,用uchar 表示无符号字符型(8位) uchar max=0x00,min=0x00; //max 是上限报警温度,min 是下限报警温度 bit s=0; //s 是调整上下限温度时温度闪烁的标志位,s=0不显示200ms ,s=1显示1s 左右 bit s1=0; //s1标志位用于上下限查看时的显示 void display1(uint z); //声明display1()函数 #include"ds18b20.h" //将ds18b20.h 头文件包含到主程序 #include"keyscan.h" //将keyscan.h 头文件包含到主程序 #include"display.h" //将display.h 头文件包含到主程序

基于-89C51单片机的秒表课程设计汇本

《单片机技术》 课程设计报告 题目:基于MCU-51单片机的秒表设计班级: 学号: 姓名: 同组人员: 指导教师:王瑞瑛、汪淳 2014年6月17日

目录 1课程设计的目的 (3) 2 课程设计题目描述和要求 (3) 2.1实验题目 (4) 2.2设计指标 (4) 2.3设计要求 (4) 2.4增加功能 (4) 2.5课程设计的难点 (4) 2.6课程设计容提要 (4) 3 课程设计报告容 (5) 3.1设计思路 (5) 3.2设计过程 (6) 3.3 程序流程及实验效果 (7) 3.4 实验效果 (16) 4 心得体会 (17)

基于MCS-51单片机的秒表设计 摘要:单片机控制秒表是集于单片机技术、模拟电子技术、数字技术为一体的机电一体化高科技产品,具有功耗低,安全性高,使用方便等优点。本次设计容为以8051 单片机为核心的秒表,它采用键盘输入,单片机技术控制。设计容以硬件电路设计,软件设计和PCB 板制作三部分来设计。利用单片机的定时器/计数器定时和计数的原理,用集成电路芯片、LED 数码管以及按键来设计计时器。将软、硬件有机地结合起来,使他拥有正确的计时、暂停、清零、并同时可以用数码管显示,在现实生中应用广泛。 关键词:秒表;8051;定时器;计数器 1 课程设计的目的 《单片机应用基础》课程设计是学好本门课程的又一重要实践性教学环节,课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练,启发创新思维,使之具有独立单片机产品和科研的基本技能,是以培养学生综合运用所学知识的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 2 课程设计题目描述和要求

基于51单片机课程设计

基于51单片机课程设计报告 院系:电子通信工程 团组:电子设计大赛1组 姓名: 指导老师:

目录 一、摘要 (3) 二、系统方案的设计 (3) 三、硬件资源 (5) 四、硬件总体电路搭建 (13) 五、程序流程图 (14) 六、设计感想 (14) 七、参考文献 (16) 附录 (17) 附录 1 程序代码 (17)

一、摘要 本设计以STC89C51单片机为核心的温度控制系统的工作原理和设计方法。温度信号由温度芯片DS18B20采集,并以数字信号的方式传送给单片机。文中介绍了该控制系统的硬件部分,包括:温度检测电路、温度控制电路。单片机通过对信号进行相应处理,从而实现温度控制的目的。文中还着重介绍了软件设计部分,在这里采用模块化结构,主要模块有:数码管显示程序、键盘扫描及按键处理程序、温度信号处理程序、led控制程序、超温报警程序。 关键词:STC89C51单片机 DS18B20温度芯片温度控制 ,LED报警提示. 二、系统方案的设计 1、设计要求 基本功能: 不加热时实时显示时间,并可手动设置时间; 设定加热水温功能。人工设定热水器烧水的温度,范围在20~70度之间,打开开关后,根据设定温度与水温确定是否加热,及何时停止加热,可实时显示温度; 设定加热时间功能。限定烧水时间,加热时间内超过温度上限或低于温度下限报警,并可实时显示温度。 2、系统设计的框架

本课题设计的是一种以STC89C51单片机为主控制单元,以DS18B20为温度传感器的温度控制系统。该控制系统可以实时存储相关的温度数据并记录当前的时间。其主要包括:电源模块、温度测量及调理电路、键盘、数码管显示、指示灯、报警、继电器及单片机最小系统。 图1 系统设计框架 3 工作原理 温度传感器 DS18B20 从设备环境的不同位置采集温度,单片机STC8951获取采集的温度值,经处理后得到当前环境中一个比较稳定的温度值,再根据当前设定的温度上下限值,通过加热和降温对当前温度进行调整。当采集的温度经处理后超过设定温度的上限时,单片机通过三极管驱动继电器开启降温设备(压缩制冷器) ,当采集的温度经处理后低于设定温度的下时 , 单片机通过三极管驱动继电器开启升温设备 (加热器) ,这里采用通过LED1和LED2取代!!! 当由于环境温度变化太剧烈或由于加热或降温设备出现故障,或者温度传感头出现故障导致在一段时间内不能将环境温度调整到规定的温度限内的时候,单片机通过三极管驱动扬声器发出警笛声,这里采用HLLED提示。

基于51单片机的DHT11温湿度传感器

基于51单片机的DHT11温湿度传感器 #include #include #define uchar unsigned char #define uint unsigned int sbit dth=P1^0; sbit dula=P2^6; sbit wela=P2^7; uchar s8h,s8h_temp,s8l,s8l_temp,w8h,w8h_temp,w8l,w8l_temp,check8,check8_temp,flag=0; float sd,wd; uchar code table[]={ 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f, 0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef}; void delayms(uint z) { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } void Delay_10us() //进入函数3us { uchar i; //每条语句1us i--; i--; i--; i--; i--; i--; } void display(uchar th,uchar tl) { uchar ih=0,il=0,jh=0,jl=0,kh=0,kl=0; ih=th/100; jh=th%100/10; kh=th%10; il=tl/100; jl=tl%100/10; kl=tl%10; P0=0xfe;

wela=0; P0=table[ih]; dula=1; dula=0; delayms(2); P0=0xfd; wela=1; wela=0; P0=table[jh]; dula=1; dula=0; delayms(2); P0=0xfb; wela=1; wela=0; P0=table[kh+10]; dula=1; dula=0; delayms(2); P0=0xf7; wela=1; wela=0; P0=table[il]; dula=1; dula=0; delayms(2); P0=0xef; wela=1; wela=0; P0=table[jl]; dula=1; dula=0; delayms(2); P0=0xdf; wela=1; wela=0; P0=table[kl]; dula=1;

基于AT89C51单片机的温度传感器

基于AT89C51单片机的温度传感器 目录 摘要.............................................................. I ABSTRACT........................................................... I I 第一章绪论 (1) 1.1 课题背景 (1) 1.2本课题研究意义 (2) 1.3本课题的任务 (2) 1.4系统整体目标 (2) 第二章方案论证比较与选择 (3) 2.1引言 (3) 2.2方案设计 (3) 2.2.1 设计方案一 (3) 2.2.2 设计方案二 (3) 2.2.3 设计方案三 (3) 2.3方案的比较与选择 (4) 2.4方案的阐述与论证 (4) 第三章硬件设计 (6) 3.1 温度传感器 (6) 3.1.1 温度传感器选用细则 (6) 3.1.2 温度传感器DS18B20 (7) 3.2.单片机系统设计 (13)

3.3显示电路设计.................................错误!未定义书签。 3.4键盘电路设计................................错误!未定义书签。 3.5报警电路设计.................................错误!未定义书签。 3.6通信模块设计.................................错误!未定义书签。 3.6.1 RS-232接口简介..............................错误!未定义书签。 3.6.2 MAX232芯片简介.............................错误!未定义书签。 3.6.3 PC机与单片机的串行通信接口电路.............错误!未定义书签。 第四章软件设计..................................错误!未定义书签。 4.1 软件开发工具的选择..........................错误!未定义书签。 4.2系统软件设计的一般原则.......................错误!未定义书签。 4..3系统软件设计的一般步骤......................错误!未定义书签。 4.4软件实现....................................错误!未定义书签。 4.4.1系统主程序流程图.........................错误!未定义书签。 4.4.2 传感器程序设计...........................错误!未定义书签。 4.4.3 显示程序设计.............................错误!未定义书签。 4.4.4 键盘程序设计.............................错误!未定义书签。 4.4.5 报警程序设计.............................错误!未定义书签。 4.4.6 通信模块程序设计.........................错误!未定义书签。 第五章调试与小结..................................错误!未定义书签。致谢...............................................错误!未定义书签。参考文献...........................................错误!未定义书签。附录...............................................错误!未定义书签。系统电路图.......................................错误!未定义书签。系统程序.........................................错误!未定义书签。

基于51单片机简易电子琴的课程设计

基于51单片机简易电子琴 1 课题背景 单片微型计算机室大规模集成电路技术发展的产物,属于第四代电子计算机它具有高性能、高速度、体积小、价格低廉、稳定可靠、应用广泛的特点。他的应用必定导致传统的控制技术从根本上发生变革。因此,单片机的开发应用已成为高科技和工程领域的一项重大课题。 电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。它在现代音乐扮演重要的角色,单片机具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。本文的主要内容是用AT89S52单片机为核心控制元件,设计一个电子琴。以单片机作为主控核心,与键盘扬声器等模块组成核心主控制模块,在主控模块上设有8个按键,和一个复位按键。 主要对使用单片机设计简易电子琴进行了分析,并介绍了基于单片机电子琴硬件的组成。利用单片机产生不同频率来获得我们要求的音阶,最终可随意弹奏要表达的音符。并且分别从原理图,主要芯片,个模块原理及各莫奎的程序的调试来详细阐述。 一首音乐是许多不同的音阶组成的,而每个音阶对应着不同的频率,这样我们就可以利用不同的频率的组合,构成我们想演奏的那首曲目。当然对于单片机来产生不同的频率非常方便,我们可以利用单片机的定时/计数器T0来产生这样的方波频率信号,因此,我们只要把一首歌曲的音阶对应频率关系编写正确就可以达到我们想要的曲目。 2 任务要求与总体设计方案 2.1 设计任务与要求 利用所给键盘的1,2,3,4,5,6,7,8八个键,能够发出7个不同的音调,而且有一个按键可以自动播放歌曲,要求按键按下时发声,松开延时一小段时间,中间再按别的键则发另外一音调的声音,当系统扫描到键盘按下,则快速检测出是哪一个按键被按下,然后单片机的定时器启动,发出一定频率的脉冲,该频率的脉冲经喇叭驱动电路放大滤波后,就会发出相应的音调。如果在前一个按下的键发声的同时有另一个按键被按下,则启动中断系统。前面的发音停止,转到后按的键的发音程序。发出后按的键的音调。 2.2 设计方案 2.2.1 播放模块 播放模块是由喇叭构成,它几乎不存在噪声,音响效果较好,而且由于所需驱动功率较小,且价格低廉,所以,被广泛应用。 2.2.2 按键控制模块

基于单片机的温度传感器的设计说明

基于单片机的温度传感器 的设计 目录 第一章绪论-------------------------------------------------------- ---2 1.1 课题简介 ----------------------------------------------------------------- 2 1.2 设计目的 ----------------------------------------------------------------- 3 1.3 设计任务 ----------------------------------------------------------------- 3 第二章设计容与所用器件 --------------------------------------------- 4第三章硬件系统设计 -------------------------------------------------- 4 3.1单片机的选择------------------------------------------------------------- 4 3.2温度传感器介绍 ---------------------------------------------------------- 5 3.3温度传感器与单片机的连接---------------------------------------------- 8 3.4单片机与报警电路-------------------------------------------------------- 9 3.5电源电路----------------------------------------------------------------- 10 3.6显示电路----------------------------------------------------------------- 10 3.7复位电路----------------------------------------------------------------- 11 第四章软件设计 ----------------------------------------------------- 12 4.1 读取数据流程图--------------------------------------------------------- 12 4.2 温度数据处理程序的流程图 -------------------------------------------- 13 4.3程序源代码 -------------------------------------------------------------- 14

基于51单片机DS18B20温度传感器的C语言程序和电路

基于51单片机DS18B20温度传感器的C语言程序和电路 DS18B20在外形上和三极管很像,有三只脚。电压范围为3.0 V至5.5 V 无需备用电源测量温度位温度转换为12位数字格式最大值为750毫秒用户可定义的非易失性温度报警设置应用范围包敏感系统。 下面是DS18B20的子程序,本人用过完全可行的: #include #include #define uchar unsigned char #define uint unsigned int sbit DQ=P2^0; void reset(); //DS18B20 void write_byte(uchar val); //DS18B20写命令函数 uchar read_byte(void); //DS18B20读1字节函数 void read_temp(); //温度读取函数 void work_temp(); //温度数据处理函数 uchar data temp_data[2]={0x00,0x00}; uchar data display[5]={0x00,0x00,0x00,0x00,0x00}; //对于温度显示值值 uchar code ditab[16]={0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05,0x06,0x06,0x07,0x0数部分查表 main() { while(1) { 自己添加; } } void delay1(uint t) { for(;t>0;t--); } ///////温度控制子函数 void reset() { uchar presence=1; while(presence) { while(presence) {

基于51单片机的电子琴设计课程设计

目录 前言 (2) 第1章基于51单片机的电子琴设计 (3) 1.1 电子琴的设计要求 (3) 1.2 电子琴设计所用设备及软件 (3) 1.3 总体设计方案 (3) 第2章系统硬件设计 (5) 2.1 琴键控制电路 (5) 2.2 音频功放电路 (6) 2.3 时钟-复位电路 (6) 2.4 LED显示电路 (6) 2.5 整体电路 (6) 第3章电子琴系统软件设计 (7) 3.1 系统硬件接口定义 (7) 3.2 主函数 (8) 3.2.1 主函数程序 (8) 3.3 按键扫描及LED显示函数 (9) 3.3.1 键盘去抖及LED显示子程序 (10) 3.4 中断函数 (11) 3.4.1 中断程序 (12) 第4章电子琴和调试 (12) 4.1 调试工具 (12) 4.2 调试结果 (13) 4.3 电子琴设计中的问题及解决方法 (14) 第5章电子琴设计总结 (15) 参考文献 (16) 附录 (17)

前言 音乐教育是学校美育的主要途径和最重要内容,它在陶冶情操、提高素养、开发智力,特别是在培养学生创新精神和实践能力方面发挥着独特的作用。近年来,我国音乐教育在理论与实践上都取得了有目共睹的成绩,探索并形成了具有中国特色的、较为完整的音乐教育教学体系。但我国音乐教育的改革力度离素质教育发展的要求还存在一定距离。如今,电子琴作为电子时代的新产物以其独特的功能和巨大的兼容性被人们广泛的接受和推崇。而在课堂教学方面,它拥有其它乐器无法比拟的两个瞬间:瞬间多元素思维的特殊的弹奏方法;瞬间多声部(包括多音色)展示的乐队音响效果的特点。结合电子琴自身强大的功能及独特的优点来进行音乐教育的实施,这样就应该大力推广电子琴进入音乐教室,让电子琴教学在音乐教育中发挥巨大的作用。现代乐器中,电子琴是高新科技在音乐领域的一个代表,体现了人类电子技术和艺术的完美结合。电子琴自动伴奏的稳定性、准确性,以及鲜明的强弱规律、随人设置的速度要求,都更便于人们由易到难、深入浅出的准确掌握歌曲节奏和乐曲风格,对其节奏的稳定性和准确性训练能起到非常大的作用。电子琴所包含的巨量的音乐信息和强大的音乐表现力可以帮助音乐教学更好地贯彻和落实素质教育,更有效地提高人们的音乐素质和能力。目前,市场上的电子琴可谓琳琅满目,功能也是越来越完备。以单片机作为主控核心,设计并制作的电子琴系统运行稳定,其优点是硬件电路简单、软件功能完善、控制系统可靠、性价比较高等,具有一定的实用与参考价值。这就为电子琴的普及提供了方便。 二、电子琴设计要求本设计主要是用AT89C51单片机为核心控制元件,设计一台电子琴。以单片机作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有7个按键和1个复位按键。本系统主要是完成2大功能:音乐自动播放、电子琴弹奏。关于声音的处理,使用单片机C语言,利用定时器来控制频率,而每个音符的符号只是存在自定义的表中。

基于51单片机的数字温度报警器

摘要:随着传感器在生产生活中更加广泛的应用,一种新型的数字式温度传感器实现对温度的测试与控制得到了更快的开发。本文设计了一种基于单片机AT89C52的温度检测及报警系统。该系统将温度传感器DS18B20接到单片机的一个端口上,单片机对温度传感器进行循环采集。将采集到的温度值与设定的上下限进行比较,当超出设定范围的上下限时,通过单片机控制的报警电路就会发出报警信号,从而实现了本次课程设计的要求。该系统设计和布线简单、结构紧凑、体积小、重量轻、抗干扰能力较强、性价比高、扩展方便,在工农业等领域的温度检测中有广阔的应用前景。本次课程设计的测量范围为0℃--99℃,测量误差为±2℃。 关键字:温度传感器、单片机、报警、数码管显示 一、概述 本次设计可以应用到许多我们用过的软件设计,将前面所学的知识融汇在一起实现温度监测及其报警的功能,来提醒农民当前大棚内温度是否适合农作物的生长。 电子技术是在十九世纪末、二十世纪初开始发展起来的新兴技术,在二十世纪发展最迅速,应用最广泛,成为近代科学技术发展的一个重要标志。 随着电子技术的飞速发展,电子技术在日常生活中得到了广泛的应用,各类转换电路的不断推出以及电子产品的快速更新,电子技术已成为世界发展和人们生活中必不可少的工具。 本次课设应用Protues软件设计一个温度检测报警系统,用温度传感器DS18B20采集大棚内的温度,当大棚内的温度高于30℃。或低于15℃。时,电路发出报警信号并显示当前温度,达到提醒农民的效果。 本次课设要求设计一个温度监测报警显示电路,要求温度范围:0℃--99℃;测量误差为±2℃;报警下限温度为:15℃;报警上限温度为:30℃。 二、方案论证 设计一个用于温室大棚温度监测系统。大棚农作物生长时,其温度不能太低,也不能太高,太低或太高均不适合农作物生长。该系统可实时测量、显示大棚的温度,当大棚温度超过农作物生长的温度范围时,报警提醒农民。 方案一: 方案一原理框图如图1所示。 图1 大棚温度检测系统的原理框图 方案二: 方案二原理框图如图2所示。

51单片机红绿灯课程设计

1 电源提供方案 为使模块稳定工作,须有可靠电源。因此考虑了两种电源方案:方案一:采用独立的稳压电源。此方案的优点是稳定可靠,且有各种成熟电路可供选用;缺点是各模块都采用独立电源,会使系统复杂,且可能影响电路电平。 方案二:采用单片机控制模块提供电源。改方案的优点是系统简明扼要,节约成本;缺点是输出功率不高。综上所述,选择方案二。 2 显示界面方案 该系统要求完成倒计时功能。基于上述原因,我考虑了二种方案:方案一:采用数码管显示。这种方案只显示有限的符号和数码字符,简单,方便。方案二:采用点阵式LED 显示。这种方案虽然功能强大,并可方便的显示各种英文字符,汉字,图形等,但实现复杂,成本较高。 综上所述,选择方案一。 3 输入方案: 设计要求系统能调节灯亮时间,并可处理紧急情况,我研究了两种方案:方案一:采用8155扩展I/O 口及键盘,显示等。 该方案的优点是:使用灵活可编程,并且有RAM,及计数器。若用该方案,可提供较多I/O 口,但操作起来稍显复杂。 方案二:直接在I/O口线上接上按键开关。 由于该系统对于交通灯及数码管的控制,只用单片机本身的I/O 口就可实现,且本身的计数器及RAM已经够用。

综上所述,选择方案二。 3.1单片机交通控制系统的通行方案设计 设在十字路口,分为东西向和南北向,在任一时刻只有一个方向通行,另一方向禁行,持续一定时间,经过短暂的过渡时间,将通行禁行方向对换。其具体状态如下图所示。说明:黑色表示亮,白色表示灭。交通状态从状态1开始变换,直至状态6然后循环至状态1,周而复始,即如图2.1所示: 图1 交通状态 本系统采用MSC-51系列单片机AT89C51作为中心器件来设计交通灯控制器。实现以下功能:

单片机课程设计——基于51单片机的温度监控系统设计

单片机课程设计报告 题目:温度监控系统设计 学院:能源与动力工程学院 专业:测控技术与仪器专业 班级: 2班 成员:魏振杰 二〇一五年十二月

一、引言 温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。对于不同场所、不同工艺、所需温度高低范围不同、精度不同,则采用的测温元件、测方法以及对温度的控制方法也将不同;产品工艺不同、控制温度的精度不同、时效不同,则对数据采集的精度和采用的控制算法也不同,因而,对温度的测控方法多种多样。 随着电子技术和微型计算机的迅速发展,微机测量和控制技术也得到了迅速的发展和广泛的应用。利用微机对温度进行测控的技术,也便随之而生,并得到日益发展和完善,越来越显示出其优越性。 作为获取信息的手段——传感器技术得到了显著的进步,其应用领域较广泛。传感器技术已成为衡量一个国家科学技术发展水平的重要标志之一。因此,了解并掌握各类传感器的基本结构、工作原理及特性是非常重要的。 为了提高对传感器的认识和了解,尤其是对温度传感器的深入研究以及其用法与用途,基于实用、广泛和典型的原则而设计了本系统。本系统利用传感器与单片机相结合,应用性比较强,本系统可以作为仓库温度监控系统,如果稍微改装可以做热水器温度调节系统、实验室温度监控系统,以及构成智能电饭煲等等。课题主要任务是完成环境温度监测,利用单片机实现温度监测并通过报警信号提示温度异常。本设计具有操作方便,控制灵活等优点。 本设计系统包括单片机,温度采集模块,显示模块,按键控制模块,报警和指示模块五个部分。文中对每个部分功能、实现过程作了详细介绍。整个系统的核心是进行温度监控,完成了课题所有要求。 二、实验目的和要求 2.1学习DS18B20温度传感芯片的结构和工作原理。 2.2掌握LED数码管显示的原理及编程方法。 2.3掌握独立式键盘的原理及使用方法。 2.4掌握51系列单片机数据采集及处理的方法。 三、方案设计

51单片机课程设计

课程设计说明书
课程设计名称






学生姓名
指导教师
单片机原理及应用课程设计 电子信息工程 140405 20141329 李延琦 胡黄水
2016 年 12 月 26 日

课程设计任务书
课程设计 题目
酒精测试仪
起止日期
2016 年 12 月 26 日— 2017 年 1 月 6 日
设计地点
计算机科学与工程学 院单片机实验室 3409
设计任务及日程安排: 设计任务:分两部分: (一)、设计实现类:进行软、硬件设计,并上机编程、联线、调试、 实现; 1.电子钟的设计 2.交通灯的设计 3.温度计的设计 4.点阵显示 5.电机调速 6.电子音乐发声(自己选曲) 7.键盘液晶显示系统 (二)、应用系统设计类:不须上机,查资料完成软、硬件设计画图。 查资料选定题目。 说明:第 1--7 题任选其二即可。(二)里题目自拟。 日程安排: 本次设计共二周时间,日程安排如下: 第 1 天:查阅资料,确定题目。 第 2--4 天:进实验室做实验,连接硬件并编写程序作相关的模块实验。 第 5--7 天:编写程序,并调试通过。观察及总结硬件实验现象和结果。 第 8--9 天:整理资料,撰写课程设计报告,准备答辩。 第 10 天:上交课程设计报告,答辩。 设计报告要求:
1. 设计报告里有两个内容,自选题目内容+附录(实验内容),每 位同学独立完成。 2. 自选题目不须上机实现,要求能正确完成硬件电路和软件程序 设计。内容包括: 1) 设计题目、任务与要求 2)硬件框图与电路图 3) 软件及流程图 (a)主要模块流程图 (b)源程序清单与注释 4) 总结 5) 参考资料 6)附录 实验上机调试内容
注:此任务书由指导教师在课程设计前填写,发给学生做为本门课程设计 的依据。

单片机课程设计——基于C51简易计算器

单片机双字节十六进制减法实验设计 摘要 本设计是基于51系列的单片机进行的双字节十六进制减法设计,可以完成计 算器的键盘输入,进行加、减、3位无符号数字的简单运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用5个键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus 仿真。 引言 十六进制减法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阴极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单.................................. 一、设计任务和要求

基于51单片机SHT11温湿度传感器检测程序

基于51单片机SHT11温湿度传感器检测程序(含电路图) 下面是原理图: 下面是SHT11与MCU连接的典型电路: 下面是源代码:

#include #include /******************************************************** 宏定义 ********************************************************/ #define uint unsigned int #define uchar unsigned char #define noACK 0 #define ACK 1 #define STATUS_REG_W 0x06 #define STATUS_REG_R 0x07 #define MEASURE_TEMP 0x03 #define MEASURE_HUMI 0x05 #define RESET 0x1e enum {TEMP,HUMI}; typedef union //定义共用同类型 { unsigned int i; float f; } value; /******************************************************** 位定义 ********************************************************/ sbit lcdrs=P2^0; sbit lcdrw=P2^1; sbit lcden=P2^2; sbit SCK = P1^0; sbit DATA = P1^1; /******************************************************** 变量定义 ********************************************************/ uchar table2[]="SHT11 温湿度检测"; uchar table3[]="温度为:℃"; uchar table4[]="湿度为:"; uchar table5[]="."; uchar wendu[6]; uchar shidu[6]; /******************************************************** 1ms延时函数

51单片机课程设计 AD转换

课程设计报告 华中师范大学武汉传媒学院 传媒技术学院 电子信息工程2011 仅发布百度文库,版权所有.

AD转换 要求: A.使用单片机实现AD转换 B.可以实现一位AD转换,并显示(保留4位数字)设计框图:

方案设计: AD转换时单片机设计比较重要的实验。模数转换芯片种类多,可以满足不同用途和不同精度功耗等。 外部模拟量选择的是简单的电位器,通过控制电位器来改变模拟电压。显示电压值采用一般的四位七段数码管。而AD转换芯片采用使用最广的ADC0809 ADC0809芯片有28条引脚,采用双列直插式封装,如图所示。 下面说明各引脚功能: ?IN0~IN7:8路模拟量输入端。 ?2-1~2-8:8位数字量输出端。 ?ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路。?ALE:地址锁存允许信号,输入端,高电平有效。 ?START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。 ?EOC: A/D转换结束信号,输出端,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。 ?OE:数据输出允许信号,输入端,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 ?CLK:时钟脉冲输入端。要求时钟频率不高于640KHz。

?REF(+)、REF(-):基准电压。 ?Vcc:电源,单一+5V。 ?GND:地 工作原理: 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC 变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。 本次实验采用中断方式 把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据传送。 首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。 采用中断可以减轻单片机负担。并可以使程序有更多的空间作二次开发。

(完整版)基于51单片机的4人抢答器课程设计

基于51单片机的4人抢答器设计 设计要求: 以单片机为核心,设计一个4位竞赛抢答器:同时供4名选手或4个代表队比赛,分别用4个按钮S0~S3表示。 设置一个系统清除和抢答控制开关S,开关由主持人控制。 抢答器具有锁存与显示功能。即选手按按钮,锁存相应的编号,并在优先抢答选手的编号一直保持到主持人将系统清除为止。 抢答器具有定时抢答功能,且一次抢答的时间由主持人设定(如30秒)。 当主持人启动“开始”键后,定时器进行减计时,同时扬声器发出短暂的声响,声响持续的时间为0.5s左右。 参赛选手在设定的时间内进行抢答,抢答有效,定时器停止工作,显示器上显示选手的编号和抢答的时间,并保持到主持人将系统清除为止。 如果定时时间已到,无人抢答,本次抢答无效,系统报警并禁止抢答,定时显示器上显示00。 工作原理: 通过键盘改变抢答的时间,原理与闹钟时间的设定相同,将定时时间的变量置为全局变量后,通过键盘扫描程序使每按下一次按键,时间加1(超过30时置0)。同时单片机不断进行按键扫描,当参赛选手的按键按下时,用于产生时钟信号的定时计数器停止计数,同时将选手编号(按键号)和抢答时间分别显示在LED上。

#include #define uchar unsigned char #define uint unsigned int uchar num; //定义中断变量,num计满20表示1秒时间到uchar num1; //十秒倒计时显示初始值 uchar flag1,flag2; //清零键及开始键按下标志位 uchar flag3,flag4=0; //定义键盘按下标志位 uchar code table[]={ 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f}; //数码管编码

单片机课程设计——基于C51简易计算器

单片机十进制加法计算器设计 摘要 本设计是基于51系列的单片机进行的十进制计算器系统设计,可以完成计 算器的键盘输入,进行加、减、乘、除3位无符号数字的简单四则运算,并在LED上相应的显示结果。 设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C51单片机,输入采用4×4矩阵键盘。显示采用3位7段共阴极LED动态显示。软件方面从分析计算器功能、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C 语言和汇编语言进行比较分析,针对计算器四则运算算法特别是乘法和除法运算的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并用proteus仿真。 引言 十进制加法计算器的原理与设计是单片机课程设计课题中的一个。在完成理论学习和必要的实验后,我们掌握了单片机的基本原理以及编程和各种基本功能的应用,但对单片机的硬件实际应用设计和单片机完整的用户程序设计还不清楚,实际动手能力不够,因此对该课程进行一次课程设计是有必要的。 单片机课程设计既要让学生巩固课本学到的理论,还要让学生学习单片机硬件电路设计和用户程序设计,使所学的知识更深一层的理解,十进制加法计算器原理与硬软件的课程设计主要是通过学生独立设计方案并自己动手用计算机电路设计软件,编写和调试,最后仿真用户程序,来加深对单片机的认识,充分发挥学生的个人创新能力,并提高学生对单片机的兴趣,同时学习查阅资料、参考资料的方法。 关键词:单片机、计算器、AT89C51芯片、汇编语言、数码管、加减乘除

目录 摘要 (01) 引言 (01) 一、设计任务和要求............................. 1、1 设计要求 1、2 性能指标 1、3 设计方案的确定 二、单片机简要原理............................. 2、1 AT89C51的介绍 2、2 单片机最小系统 2、3 七段共阳极数码管 三、硬件设计................................... 3、1 键盘电路的设计 3、2 显示电路的设计 四、软件设计................................... 4、1 系统设计 4、2 显示电路的设计 五、调试与仿真................................. 5、1 Keil C51单片机软件开发系统 5、2 proteus的操作 六、心得体会.................................... 参考文献......................................... 附录1 系统硬件电路图............................ 附录2 程序清单..................................

相关文档
最新文档