搜档网
当前位置:搜档网 › 基于51单片机系统的温度检测与无线收发设计概要

基于51单片机系统的温度检测与无线收发设计概要

基于51单片机系统的温度检测与无线收发设计概要
基于51单片机系统的温度检测与无线收发设计概要

现代测控技术 课程设计

武汉工程大学 制

2018年10月30日

项目名称: 无线温度检测系统设计 学生姓名: 李俊达 学生学号: 0904010209 学生专业: 测控技术与仪器 学生班级: 02 指导老师: 李国平 学生成绩:

目录

摘要 (3)

Abstract (4)

第一章绪论 (5)

1.1 设计背景与意义 (5)

1.2 设计目的及应用 (5)

1.3 设计内容及要求 (5)

第二章系统方案论证与选择 (6)

2.1 系统总体方案描述 (6)

2.2 系统总体框图 (6)

2.3 系统硬件构成 (6)

第三章系统硬件主要单元设计 (7)

3.1 主控制模块 (7)

3.2 数据显示模块 (9)

3.3 信号采集模块 (9)

3.4 无线收发模块 (10)

第四章系统软件设计 (11)

4.1 程序设计思路 (11)

4.2 程序设计框图 (12)

第五章系统硬件调试结果图 .........................,,,,,,,,. (15)

5.1 系统仿真 (15)

5.2 系统硬件调试 (15)

5.3 调试结果 (16)

第六章心得体会及总结 (16)

参考文献 (17)

附录一:原理图 (17)

附录:源程序代码 (18)

摘要

随着时代的进步和发展,单片机和传感器技术已经普及到我们生活,工作等各个领域。新型DS18B20温度传感器摆脱了传统的以热敏电阻为传感器的温度测量方法,而改为一种全新的,以数字温度传感器作感温元件的数字式温度计,解决了传统的温度检测可靠性差,测量温度准确率低的缺点,它以单总线的连接方式,使电路大大的简化。DS18B20传感器利用单片机进行控制,简单而且易于智能化控制。设计中还加入了nRF905无线收发模块,可以实现一定距离的温度数据传输,使得设计模块可以进行远距离的检测和控制。

此次设计根据具体实验制作,给出了系统实现的硬件原理图及软件流程图。该设计模块测量精度高、扩展方便,具有一定的参考价值。设计布线简单,结构紧凑,体积小,扩展方便,可在一定距离进行无线检测,在大型仓库,工厂,智能化建筑等领域的温度检测中有广阔的应用前景。

关键词:DS18B20 STC89C52 nRF905无线收发模块

Abstract

With the progress of The Times and development, SCM and sensor technology has spread to we live, work, and other fields. New temperature sensor DS18B20 from the traditional to thermal resistor sensor for temperature measurement, and instead of a completely new kind of to digital temperature sensors for temperature of components of the digital thermometer, solve the traditional temperature detection poor reliability, low temperature measurement accuracy of weakness, it with single bus connections, the circuit greatly simplified. The sensor DS18B20 using single chip computer control, simple and easy to intelligent control. Design also joined the nRF905 wireless transceiver module, can achieve certain distance of the temperature data transmission, make design module can be for long in the detection and control.

This design according to the specific experimental production, gives the principle diagram of the system hardware and software flow chart. This design module measurement precision, expansion easier, to have the certain reference value. Design wiring simple, compact structure, small volume, convenient expansion in a certain distance wireless detection, in a large warehouse, factory, intelligent building and other areas of temperature in detecting have broad application prospects.

Keywords: DS18B20 STC89C52 nRF905 wireless transceiver module

第一章绪论

1.1研究背景与意义

随着社会的发展、科技的进步以及人们生活水平的逐步提高,现如今自动化、信息化程度越来越高,单片机和传感器的应用领域越来越广。各种方便于生活的自动控制系统进入了人们的生活。单片机和传感器在自动控制中的应用越来越广泛,它实用性强,使用方便,技术先进,它们的广泛应用是科技进步的标志。

现实中温度控制不适当导致的发霉,腐烂问题是仓库日常工作急需解决的问题,是衡量仓库管理质量的重要指标。它直接影响到储备物资的使用寿命和工作可靠性。为保持日常工作的顺利进行,首要任务是加强仓库的温度检测。同时专门的安排人员去定期去仓库测量温度也非常麻烦,因此设计一种自动检测和显示温度,并且能够进行较远距离的无限传输的温度控制设备很有必要。

1.2 研究目的及应用

温度的检测与控制是工业生产过程中应用比较广泛的课题,随着传感器在生产和生活中更加广泛的应用,利用新型单总线式数字温度传感器实现对温度的单点和多点的测试与控制得到很快开发。但就目前情况看,很少有人对仓库进行自动化检测和管理,大多数的仓库在管理过程中依然是使用传统的工作方法,利用温度计等简单检测工具人工检测仓库温湿度。这种方法不仅费时、费力,而且效率低下。市场需要普及一种简单、实用、易操作并且可以进行无线传输的温度检测设备。

1.3 设计内容及要求

本文着重阐述以单片机控制,温度传感器DS18B20对温度的数据采集和处理,NRF905无线发送和接收模块的应用,4位共阳极数码管对温度传感器处理后的温度进行显示,实现一定距离上的定点温度自动检测和发送接收。

第二章系统方案论证与选择

2.1 系统总体方案描述

系统设计分为2个部分,第一个部分实现温度的检测、显示和发送,第二个部分为数据的接收和显示。第一个设计模块中,利用单片机STC89C52控制温度传感器DS18B20定点检测和处理温度数据,单片机将采集的温度数据发送给单片机,再通过单片机控制,对接收到的温度数据进行一定的转换和处理,然后存放在寄存器中,等待下一步处理,再经过无线发送模块nRF905将显示的数据打包发送给第二个模块。第二个设计模块中,同样利用STC89C52单片机作为控制主体,先控制nRF905无线接收模块接收第一个模块发送的数据,然后控制4位共阳极数码管显示接收到的数据。则完成整个设计流程。

2.2 系统总体框图

系统的设计框图如图1所示:

第一模块

温度采集 温度显示 发送温度数据

接收温度数据 第二模块

显示温度数据

图1 系统框图

2.3 系统硬件构成

系统硬件方面主要由单片机最小系统,温度传感器DS18B20,4位共阳极数码管,还有nRF905无线收发模块组成,目的在于实现温度的准确检测和无线收发所检测的温度数据。

第三章 系统硬件电路设计

3.1 单片机最小系统设计

DS18B20 温度传感器 共阳极 数码管 nRF905 无线发送模块 nRF905 无线接收模块 控 制

控 制

控 制

控 制 共阳极 数码管 控 制

单片机

STC89C52

单片机 STC 89C52

单片机最小系统的设计主要有五个部分组成,电源电路,复位电路,晶振电路,串口电路和控制主体的STC89C52单片机。

电源电路由一个六脚的按键开关,一个1K的电阻,一个10uF的极性电容和一个显示电路供电状态的发光二极管组成。开关为了适应各种情况下能够方便供电,开关外接有一个USB接口和一个DC-5V的标准电源接口作为供电设备使用。除此之外还设计了一个外接电源接口。电源电路如图2所示。

图2 电源电路

复位电路组成很简单,仅仅有4个小器件构成,一个是作为复位控制的四脚按键,一个10uF的极性电容,还有两个电阻,阻值分别为1K和10K。电路与单片机的RST端口连接,电路上电后,按下按键控制系统复位。具体电路如图3所示:

图3 复位电路

晶振电路更为简单,只有3个器件,一个11.0592Hz的晶振外加二个30PF的普通电容组成,晶振两端分别与单片机的XTAL1和XTAL2口相接。电路如图4所示:

图4 晶振电路

串口电路主要利用MAX232来实现,MAX232是美信公司设计的一款单电源电平转换芯片,在本次设计中的使用的方法是在MAX232的1和3管脚之间,4和5管脚之间,2和16管脚之间,6和15管脚之间,还有16和16管脚之间全部加上一个0.1uF的电容,7和8管脚作为串口输入端,外接一个标准9孔串口母头,9和10管脚作为输出,分别与单片机的P3.0和P3.1连接。这样就构成了与单片机连接,可以进行串口通信的串口电路。具体电路图5所示:

图5 串口电路

单片机最小系统的主体部分使用的是STC89C52单片机,它是美国ATMEL公司生产的低电压,高性能的CMOS 8位单片机,片内寄存器可反复擦洗,含有32个可编程双向I/O口,3个16位定时/计数器,共8个中断源。需要指出且注意的是,单片机在系统设计时,管脚EA要始终接高电平。因为EA接高电平时,单片机读取内部程序存储器。当扩展有外部ROM时,读取完内部ROM后自动读取外部ROM,EA接低电平时,单片机直接读取外部ROM。而设计中使用的STC89C52是有内部ROM的,所以此引脚始终接高电平。一般在设计单片机最小系统时,大多会加上流水灯和独立键盘的设计,但是在我的毕业设计中把这些部分作了改进。考虑到流水灯和独立键盘这些设计如果完整的加入就会造成一定的浪费,而且由于学校实验室的条件有限,PCB板的刻录存在很多问题,因此这些设备会大大增加硬件调试过程的难度,费时费力。同时,在设计单片机最小系统时,考虑到不加入这些设备的话,以后又有可能需要用到。所以中和上面各种因素,在最小系统的设计部分最后只是增加了二个独立键盘和二个LED发光二极管作为调试或需要时使用,同时,考虑到以后可能还会外接其它设备的介入,为了方便,特意留有两排20脚的单排插针外接端口,这样,设计的最小系统模块在需要时也可以控制其它外接装置。使得设计模块更加灵活多用,不仅仅局限在本次毕业设计中使用,还可以留作以后的开发板学习。

最小系统的主体STC89C52如图6所示:

图6 STC89C52管脚接线图

3.2 数据显示模块设计

数据显示电路使用的是SMA410364型号的4位共阳极数码管,其内部结构图如下面

图7所示:

图7 数码管内部结构图

该数码管共有12个管脚,其中11,7,4,2,1,10,5,3管脚分别对应数码管的A,B,C,D,E,F,G,DP段选位,与单片机的P0口连接,对应单片机的P0.0-P0.7口,用来控制数码管显示数值大小,6,8,9,12管脚控制数码管的位选,分别与单片机的P2.0-P2.4口连接,通过单片机指令选择需要显示数据的数码管位。

我们知道,在单片机的端口上电后会一直存在高电平,而数码管的位选正好是高电平有效,所以会导致在不需要使用数码管的时候,数码管依然会保持打开状态。通常情况下会在单片机最小系统中使用锁存器与数码管连接,但是在这次设计中没有使用锁存器,而是改用在数码管与单片机端口连接之间加一个PNP三极管的方法,让三极管发射极接电源,基集与单片机端口连接,集电极与数码管连接,这样的设计就会导致单片机端口给低电平时才会选通数码管,不仅方便控制,而且电路设计简单。

设计原理图如图8所示:

图8 数码管电路

3.3 信号采集模块设计

信号采集部分主要由温度传感器DS18B20进行

1.DS1820温度传感器外观图和引脚图如图9所示,三个管脚定义如下:[10]

①引脚1接地;

②引脚2数字信号输入/输出;

③引脚3接高电平5V高电平。

2.DS18B20温度采集模块设计[10]

此模块的设计中STC89C52单片机作为控制主体,温度传感器DS18B20采集温度,

温度传感器DS18B20是一种单线接口传感器,所

以连接电路很简单,只要将其管脚DQ接单片机的一个端口进行温度采集,VDD接高电平,GND接地即可。设计中的DQ端被设计成连接单片机的P1.3端口。

根据DS18B20的工作原理、内部结构图、时序图,还有DS18B20的ROM指令操作码,编写DS18B20的操作代码,采集温度样本,将采集的样本数据存放在寄存器中等待下一步处理。

3.4无线收发模块设计

无线收发模块的功能实现主要是用nRF905无线收发模块实现的

1.nRF905接口电路和管脚说明[9]

图11 nRF905管脚图

(1)VCC为电源接入端,一般接入的电压在3.3V-3.6V之间,不能超过3.6V,不然很容易将模块烧坏,建议使用3.3V

(2)TX_EN为数字输入端口,当TX_EN置1时为TX输入模式,当TX_EN置0时为RX输入模式

(3)TRX_CE也是数字输入端,它控制使能芯片的发射和接收

(4)PWR_UP是给芯片上电的数字输入端口

(5)uCLK为时钟输出端口,此管脚在使用过程中一般废弃不用

(6)CD数字输出端进行载波检测

(7)AM数字输出端进行地址匹配

(8)DR数字输出端,接收和发送数据完成

(9)MISO和MOSI分别为SPI输出输入端口

(10)SCK和CSN分别为SPI的时钟和使能端口

(11)13和14管脚为相同的二个接地端口.

2.nRF905无线收发模块设计

该模块的设计中使用到了AMS1117芯片,目的是将上电端口输入的5V电压转换成适合nRF905模块使用的3.3V工作电压,转换电路中由于使用的是AMS1117芯片,所以设计简单许多,只需要在芯片的输入端和接地端之间,输出端和接地端之间分别并联上一个普通电容和一个极性电容即可,电路设计如图12所示:

图12 AMS1117变压电路

芯片AMS1117输出的电压与无线收发模块的VCC口连接,PWR_UP,TX_EN,TRX_CE,MISO,MOSI,SCK,CSN分别对应单片机的P1.0,P1.1,P1.2,P1.4,P1.5,P1.6,P1.7端口,AM,DR,CD分别对应单片机的P3.2,P3.3,P3.4端口,uCLK端口废弃不用,最后的两个GND端口全部接地,这样就组成了nRF905的无线控制模块。可以进行程序的调控使用了。

nRF905模块的无线发射接收电路主要利用nRF905与外围器件构成的电路组成,设计中使用的是购买的成品模块,其内部电路结构没有详细研究,其主要部分是天线。他利用特定的形状可以将电流转化为射频能量并以电波形式发射出去.或将无线电波接收进来。

第四章系统软件设计

4.1 程序设计思路

程序设计使用的软件是是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统Keil C51。与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。

程序设计过程中,首要的是会熟练使用各种数码管,即要了解数码管的构造,也要了解其工作原理,并且能够编写各种数码管的显示程序,当能够做到这一步,然后还要了解温度传感器的内部结构和工作原理,还有寄存器的工作方式和读写时序图,然后根据它的ROM和RAM指令编写工作代码,通过单片机读取后控制数码管显示。

编写DS18B20的操作代码时,先初始化传感器,然后分别读它的位和比特,然后是写比特,然后开始主要的转换过程程序设计,转换时要判断正负,如果为负值,则取其值的反码后加1,得到正值,然后在前面显示“-”号,最后设计单片机控制读取DS18B20的寄存器数据,通过数码管显示。

设计了温度显示程序后开始设计无线发送程序,同样的需要了解nRF905的结构,工作原理寄存器和时序图,还有SPI口的设置。设计程序时,一般先给寄存器配置参数,通过SPI口想配置寄存器读写配置信息。然后编写它的写操作和读操作代码,主机通过SPI接口向配置寄存器写入信息,最后是它的发送指令代码。

在编写接收代码程序时,和发送的代码过程相似,参考后面的程序附录。

4.2 程序流程图

温度采集模块的程序设计要特别注意温度传感器DS18B20的代码编写,在充分了解很清楚DS18B20的基础上根据其指令码,寄存器等编写其读写指令,以及温度处理转换代码,然后编写数码管的显示程序,然后合并,构成总的程序流程。Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。其中uVision 与Ishell 分别是C51为Windows 和Dos 的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。使用简单方便。

设计的数据采集模块具体流程图15所示:

负值

正值

图15 数据采集流程图

温度采集时是,首先将DS18B20进行初始化设置,然后才能进行后面的操作。这也是使用各种传感器设备的最基本步骤,然后是根据先前编写的温度传感器代码读取传感器采集的温度数据,存储在其寄存器中,然后进行控制转换程序。如果采集的温度是正值,那么就控制单片机直接读取经NRF905发送。如果温度数据是负值,那么要进行取反加一后变成正值数据再通过无线设备发送出去。

无线发送流程图如图16所示:

初始化

读取温度值

结束

进行数据转判断正负

取反加一

跳过ROM

发送存储器命令

N

N

N

图16 无线发送流程图

初始化nRF905,将接收点的地址和要发送的有效数据将通过SPI 接口传送给nRF905。将TRX-CE 和TX-EN 全部置为高电平来激活nRF905的ShockBurst 的发送模式。通过nRF905的ShockBurst 可使射频寄存器自动开启,并完成数据包的发送,DR 置高。

然后判断TRX-CE 电平,如果置低将返回初始不进行后面的操作,如果置高,那么将AUTO-RETRAN 也设置为高电平,从而使nRF905将连续不断地重复发送数据包,直到TRX-CE 被设置为低电平为止;而当TRX-CE 被设置为低电平时,DR=0,nRF905则结束数据传输,并将自己设置为空闲模式。

在ShockBurst 模式下,只要开始发送数据,TRX-CE 和TX-EN 的引脚无论是高电平还是低电平,发送过程都会被保证处理完毕。

无线接收流程图如图17所示:

开始

TRX_CE , TXEN 全部置高 结束

射频寄存器开启,数据打包发送,DR=1

TRX-CE=1?

AUTO-RET=1 前导码完成后置DR=0

N

N

N

图17 无线接收流程图 首先,将TRX-CE 置为高,TX-EN 置为低,nRF905进入接收模式,然后不断监测有无信号,等待接收;当nRF905检测到有和接收频率相同的载波时,其载波检测引脚CD 置为高电平;此后,当nRF905接收到相匹配的地址时,地址匹配引脚AM 置为高电平;在这之后,当nRF905接收完毕一个有效的数据包(CRC 校验正确)时,nRF905将去掉前导码、地址和CRC 位,同时将数据准备就绪引脚DR 置为高电平,并用单片机将TRX-CN 引脚设置为低电平,以进入空闲模式,从而使单片机能够通过SPI 接口读出有效的数据;当所有的数据读出后,nRF905将AM 和DR 设置为低电平,以便使nRF905准备进入其它工作模式。

开始

TRX_CE=1,TXEN=0

接收部分检测载波,CD 置高

ADDR 正确?

AM 置高 移去字头地址CRC ?

DR 置高

TRX-CE=0? 进入空闲状态

结束

AM 为低 DR 和AM 置低

从SPI 接收数据

第五章系统仿真与硬件调试

5.1系统仿真

系统的仿真过程是使用proteus仿真软件进行,由于在proteus软件中找不到NRF905的仿真模块,所以仿真过程中没有实现无线收发的仿真电路,只是进行了温度检测和显示过程的仿真操作。仿真图如图18所示:

图18 温度采集仿真图

5.2 系统硬件调试

系统硬件的制作过程全部在学校实验室完成,在制作条件上受到一定的限制。在制作PCB电路板的过程中,由于打孔机上的打孔针只有一种直径的,所以导致过孔和焊接点的孔径大小一样,焊接时要特别注意分清。因为制作的过孔之间是没有伏铜,连接过孔的两层导线是不相通的,需要手工进行焊接,千万不可漏焊。所以在硬件的调试过程要注意过孔的问题。另外,在制作电路电路板时,使用的是腐蚀刻线,很容易出现断线现象,所以在焊接器件之前最好将断线全部焊接好,避免断线导致调试过程的不正常现象,因为焊接后电路板上的断线不容易补焊。

在电路板的设计过程中要尽量在底层布线,同样是因为孔内没有加铜的原因,如果是顶层走线,就需要在顶层焊接,而顶层焊接时遇到像数码管之类的器件的管脚很难在正面焊接,即使焊接也很容易出现虚焊现象,导致接触不良。

在调试过程中,我的电路板出现了正面布线焊接时出现短路和断路现象,导致串口无法使用,模块供电不正常等现象,最后经过使用万用表仔细的检测后才找出原因,过程繁琐异常。

调试过程主要就是一个检测过程,一定要有耐心,够仔细,不然很难找出问题的根

本原因。所以在电路PCB板的设计过程中,腐蚀刻线过程中,焊接电路板时都需要认真仔细对待,尽量减少因为硬件导致模块功能不正常的问题出现,但同时,电路板出现问题的调试过程也是一个很好学习和经验积累过程,一定要认真对待,自己找原因,不要总是让别人代劳。

5.3 调试结果

经过不断认真的调试过程,且电路的设计也没有任何问题,最后电路板终于能够完全实现预先设计的所有功能。

第六章心得与体会

经过一个星期的现代检测技术课程设计,我们小组成功地完成了无线温度检测系统的设计。虽然整个设计中我们遇到了很多问题,但通过我们自己九个人的分工,查找资料,调试、仿真,不断地调整设计思路,最终成功地完成了设计目标。这次课程设计让我自己对于学习现代检测技术有了更深一步地了解,通过实际地操作,发现书上的理论知识与在实际运用中的还是有一定的出入的。经过自己不断地摸索,改进,从中学到了很多实际知识。

整个设计制作中也培养了我的实际操作能力和团队合作能力,不仅加强了自己独立工作地能力,而且还充分地体会到了设计创作地艰辛,看到制作完成时也体会到了成功地喜悦,收获了不少课外知识。还有要感谢李老师以及杨老师在我们遇到困难时,给予我们的建议与鼓励。

设计过程中感受最深的就是编写程序后的调试过程,确实是一个漫长而痛苦的过程。我们根据显示的结果不断寻找错误点,各个击破。虽然很累(每天都熬夜),但是当程序跳出来之后,心中的喜悦是不言而喻的,不管之前多么的痛苦都是值得的!

通过此次课程设计,我总结了几点:

①每一个系统的生成,都是经过层层周密的思考与测试而得到的,这需要团队的合作以及个人优秀的素质。

②写程序过程中,切记戒骄戒躁,踏踏实实,一步一个脚印。学会模块化编程,会让你少走很多弯路。

③当程序很多很复杂时,应该写一个模块就调试一个,这样下来会轻松的解决各个问题,而不像你一次性全写完,错了之后再来调就很复杂了。

硬件电路的调试,也是需要极大的耐性,以及拥有良好的电子基础,这个需要多加练习。

再次感谢我们的李老师.,老师严谨细致、一丝不苟的作风一直是我工作、学习中的榜样;老师循循善诱的教导和不拘一格的思路给予我无尽的启迪;这次课程设计中离不

开老师您的细心指导。而您开朗的个性和宽容的态度,帮助我能够很顺利的完成了这次课程设计。

同时感谢对我帮助过的同学们,谢谢你们对我的帮助和支持,让我感受到同学的友谊。

参考文献

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

[2] 郭天祥. 51单片机C语言教程[M]. 北京:电子工业出版社,2009.

[3] 陈杰,黄鸿. 传感器与检测技术[M]. 北京:高等教育出版社,2010.

[4] 李华. 51系列单片机实用接口技术[M]. 北京:北京航空航天大学出版社,2002.

[5] 谭浩强.C程序设计(第四版)[M].北京:清华大学出版社,2012.

[6] nRF905无线收发模块开发指南(V3.2)[CD]. 杭州飞拓电子科技有线公司.

[7]温度传感器DS18B20资料.

附录一:原理图

上位机Labview数据显示程序

前面板

后面板labview程序

附录二:源程序代码

//*************此程序为nRF905的发送程序

***********

#include

#include

#define uchar unsigned char #define uint unsigned int //*******************定义命令字**********************

#define WC 0x00 // Write configuration register command

#define RC 0x10 // Read configuration register

command

#define WTP 0x20 // Write TX Payload command

#define RTP 0x21 // Read TXPayload command

#define WTA 0x22 // Write TX Address command

#define RTA 0x23

//*******************管脚配置*********

sbit TXEN=P1^0;

sbit TRX_CE=P1^1;

sbit PWR=P1^2;

sbit MISO=P1^4;

sbit MOSI=P1^5;

sbit SCK=P1^6;

sbit CSN=P1^7;

/////////////////////////////////////////////////////

sbit AM=P3^3;

sbit DR=P3^4;

sbit CD=P3^2;

sbit DQ=P1^3;

//uchar Txbuf[4];

uchar display[5]={0x00,0x00,0x00,0x00,0x00}; //前面4字节是要发送的内容

//从前往后是温度数据低位到高位

// 温度小数部分查表

uchar code ditab[16]=

{0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04,0x05 ,0x06,0x06,0x07,0x08,0x08,0x09,0x09};

uint h;

uchar flag;

//rf905控制信息

uchar

Rfconfig[10]={0x4c,0x0c,0x44,0x04,0x04,0xe7,0 xe7,0xe7,0xe7,0x58};

uchar data temp_data[2]={0x00,0x00};

void delay(uint x)

{

uint i;

for(i=0;i

{

_nop_();

}

}

//18b20相关函数

/***********18B20复位函数**********/

void ow_reset(void)

{

char presence=1;

while(presence)

{

while(presence)

{

DQ=1;_nop_();_nop_();

DQ=0; //

delay(50); // 550us

DQ=1; //

delay(6); // 66us

presence=DQ; // presence=0继续下一步

}

delay(45); //延时500us

presence = ~DQ;

}

DQ=1;

}

/**********18B20写命令函数*********/

//向1-WIRE 总线上写一个字节

void write_byte(uchar val)

{

uchar i;

for (i=8; i>0; i--) //

{

DQ=1;_nop_();_nop_();

DQ = 0;_nop_();_nop_();_nop_();_nop_();_nop_();//5us DQ = val&0x01; //最低位移出

delay(6); //66us

val=val/2; //右移一位

}

DQ = 1;

delay(1);

}

/*********18B20读1个字节函数********/

//从总线上读取一个字节

uchar read_byte(void)

{

uchar i;

uchar value = 0;

for (i=8;i>0;i--)

{

DQ=1;_nop_();_nop_();

value>>=1;

DQ = 0; //

_nop_();_nop_();_nop_();_nop_(); //4us

DQ = 1;_nop_();_nop_();_nop_();_nop_(); //4us if(DQ)value|=0x80;

delay(6); //66us

}

DQ=1;

return(value);

}

/***********读出温度函数**********/

void read_temp()

{

ow_reset(); //总线复位

write_byte(0xCC); // 发Skip ROM命令

write_byte(0xBE); // 发读命令

temp_data[0]=read_byte(); //温度低8位

temp_data[1]=read_byte(); //温度高8位

ow_reset();

write_byte(0xCC); // Skip ROM

write_byte(0x44); // 发转换命令

}

/***********温度数据处理函数**********/ void work_temp()

{

uchar n=0;

uchar doth,dotl;

uchar flag3=1,flag2=1; //数字显示修正标记

if((temp_data[1]&0xf8)!=0x00)

{

temp_data[1]=~(temp_data[1]);

temp_data[0]=~(temp_data[0])+1;

n=1;

flag=1;

}//负温度求补码

if(temp_data[0]>255)

{

temp_data[1]++;

}

display[4]=temp_data[0]&0x0f;

display[0]=ditab[display[4]];

doth=display[0]/10;

dotl=display[0]%10;

display[4]=((temp_data[0]&0xf0)>>4)|((temp_data [1]&0x07)<<4);

display[3]=display[4]/100;

display[2]=display[4]/10%10;

display[1]=display[4]%10;

if(!display[3])

{

display[3]=0x0a;

flag3=0;

if(!display[2])

{

display[2]=0x0a;

flag2=0;

}

}//最高位为0时都不显示

if(n)

{

display[3]=0x0b;//负温度时最高位显示"-"

flag3=0;

}

}

//905相关函数

void Spiwrite(uchar dat)

{

uchar i=8;

while(i--)

{

delay(10);

SCK=0;

MOSI=(bit)(dat&0x80);

dat<<=1;

delay(10);

SCK=1;

delay(10);

基于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 通信模块程序设计.........................错误!未定义书签。 第五章调试与小结..................................错误!未定义书签。致谢...............................................错误!未定义书签。参考文献...........................................错误!未定义书签。附录...............................................错误!未定义书签。系统电路图.......................................错误!未定义书签。系统程序.........................................错误!未定义书签。

基于-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 课程设计题目描述和要求

80c51单片机交通灯课程设计报告1.pdf

80C51单片机交通灯课程设计报告 目录 第一章引言 (3) 第二章单片机概述 (4) 第三章芯片介绍 (6) 3.1AT89S51单片机介绍 (6) 3.1.1简介 (6) 3.1.2主要管脚介绍 (6) 3.274LS164介绍 (8) 3.3共阳数码管介绍 (8) 3.3.1分类简介 (8) 图3.3LED数码管引脚定义 (9) 3.3.2驱动方式 (9) 3.3.3主要参数 (10) 3.3.4应用范围 (10) 第四章系统硬件设计 (11) 4.1硬件设计要求 (11) 4.2硬件设计所用元器件 (11) 4.3硬件设计图 (11) 4.4设计流程图 (12) 第五章系统软件设计 (13) 5.1流程图 (13)

5.2程序设计 (14) 第六章结论 (16) 参考文献 (18)

第一章引言 在今天,红绿灯安装在各个道口上,已经成为疏导交通车辆最常见和最有效的手段。但这一技术在19世纪就已出现了。 1858年,在英国伦敦主要街头安装了以燃煤气为光源的红,蓝两色的机械扳手式信号灯,用以指挥马车通行。这是世界上最早的交通信号灯。1868年,英国机械工程师纳伊特在伦敦威斯敏斯特区的议会大厦前的广场上,安装了世界上最早的煤气红绿灯。它由红绿两以旋转式方形玻璃提灯组成,红色表示“停止”,绿色表示“注意”。1869年1月2日,煤气灯爆炸,使警察受伤,遂被取消。 1914年,电气启动的红绿灯出现在美国。这种红绿灯由红绿黄三色圆形的投光器组成,安装在纽约市5号大街的一座高塔上。红灯亮表示“停止”,绿灯亮表示“通行”。 智能的交通信号灯指挥着人和各种车辆的安全运行,实现红、黄、绿灯的自动指挥是城乡交通管理现代化的重要课题.在城乡街道的十字交叉路口,为了保证交通秩序和行人安全,一般在每条道路上各有一组红、黄、绿交通信号灯,其中红灯亮,表示该条道路禁止通行;黄灯亮,表示该条道路上未过停车线的车辆停止通行,已过停车线的车辆继续通行;绿灯亮,表示该条道路允许通行.交通灯控制电路自动控制十字路口两组红、黄、绿交通灯的状态转换,指挥各种车辆和行人安全通行,实现十字路口城乡交通管理自动化。 本文为了实现交通道路的管理,力求交通管理先进性、科学化.分析应用了单片机实现智能交通灯管制的控制系统,以及该系统软、硬件设计方法,实验证明该系统实现简单、经济,能够有效地疏导交通,提高交通路口的通行能力。

(完整word版)基于51单片机的温度控制系统设计

基于51单片机的水温自动控制系统 0 引言 在现代的各种工业生产中 ,很多地方都需要用到温度控制系统。而智能化的控制系统成为一种发展的趋势。本文所阐述的就是一种基于89C51单片机的温度控制系统。本温控系统可应用于温度范围30℃到96℃。 1 设计任务、要求和技术指标 1.1任务 设计并制作一水温自动控制系统,可以在一定范围(30℃到96℃)内自动调节温度,使水温保持在一定的范围(30℃到96℃)内。 1.2要求 (1)利用模拟温度传感器检测温度,要求检测电路尽可能简单。 (2)当液位低于某一值时,停止加热。 (3)用AD转换器把采集到的模拟温度值送入单片机。 (4)无竞争-冒险,无抖动。 1.3技术指标 (1)温度显示误差不超过1℃。 (2)温度显示范围为0℃—99℃。 (3)程序部分用PID算法实现温度自动控制。 (4)检测信号为电压信号。 2 方案分析与论证 2.1主控系统分析与论证 根据设计要求和所学的专业知识,采用AT89C51为本系统的核心控制器件。AT89C51是一种带4K字节闪存可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器。其引脚图如图1所示。 2.2显示系统分析与论证 显示模块主要用于显示时间,由于显示范围为0~99℃,因此可采用两个共阴的数码管作为显示元件。在显示驱动电路中拟订了两种设计方案: 方案一:采用静态显示的方案 采用三片移位寄存器74LS164作为显示电路,其优点在于占用主控系统的I/O口少,编程简单且静态显示的内容无闪烁,但电路消耗的电流较大。 方案二:采用动态显示的方案 由单片机的I/O口直接带数码管实现动态显示,占用资源少,动态控制节省了驱动芯片的成本,节省了电 ,但编程比较复杂,亮度不如静态的好。 由于对电路的功耗要求不大,因此就在尽量节省I/O口线的前提下选用方案一的静态显示。

单片机课程设计题目

《单片机原理与应用》课程设计题目 1.基于单片机的电子秒表 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,两个按键,三位数码管显示,打开电源开关后显示8,每秒循环左移一位,即□□8—>□8□—>8□□—>□□8—>…,按A键开始计时,实时显示所经历的时间,按B键停止计时并显示从开始到当前时刻的时间,要求精确到0.1秒,量程为0~99.9秒。 要求按键输入采用中断方式,按键A接INT0,按键B接INT1。 2.智能电动百叶窗 本设计以MCS-51系列单片机为核心,采用常用电子器件设计,一个电源开关,用一台直流电机控制百叶窗叶片的旋转(正转/反转),用一个光敏电阻传感器测量室内光强度,并用两位数码管显示测量结果,设置三个按键:手动/自动切换、手动正转和手动反转,用一个发光二极管显示手动/自动状态,自动状态时二极管亮。 设置两个极限位置保护行程开关,用于保护百叶窗叶片:当正转到极限位置压下行程开关时,电机停止正转,但还可以反转;当反转到极限位置压下行程开关时,电机停止反转,但还可以正转。 按键输入采用中断方式,按键中断请求信号接INT0. 单片机根据设定光强S1和S2(S2 > S1)和实测光强P控制电机M的动作:当P<=S1时,控制M正转以增加进光量; 当P>S2时,控制M反转以减少进光量; 当S1S+1时,控制R断开电加热回路; 当S-1

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

基于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延时函数 ********************************************************/ void delay(int z) {

基于51单片机课程设计报告

单片机课程设计 课题:基于51单片机的交通灯设计 专业:机械设计制造及其自动化 学号: 指导教师:邵添 设计日期:2017/12/18 成绩: 大学城市科技学院电气学院 基于51单片机数字温度计设计报告

一、设计目的作用 本设计是一款简单实用的小型数字温度计,所采用的主要元件有传感器DS18B20,单片机AT89C52,,四位共阴极数码管一个,电容电阻若干。DS18B20支持“一线总线”接口,测量温度围-55°C~+125°C。在-10~+85°C围,精度为±0.5°C。18B20的精度较差,为±2°C 。现场温度直接以“一线总线”的数字方式传输,大大提高了系统的抗干扰性。适合于恶劣环境的现场温度测量,如:环境控制、设备或过程控制、测温类消费电子产品等。 本次数字温度计的设计共分为五部分,主控制器,LED显示部分,传感器部分,复位部分,按键设置部分,时钟电路。主控制器即单片机部分,用于存储程序和控制电路;LED显示部分是指四位共阴极数码管,用来显示温度;传感器部分,即温度传感器,用来采集温度,进行温度转换;复位部分,即复位电路,按键部分用来设置上下限报警温度。测量的总过程是,传感器采集到外部环境的温度,并进行转换后传到单片机,经过单片机处理判断后将温度传递到数码管显示。 二、设计要求 (1).利用DS18B20传感器实时检测温度并显示。 (2).利用数码管实时显示温度。 (3).当温度超过或者低于设定值时蜂鸣器报警,LED闪烁指示。 (4).能够手动设置上限和下限报警温度。 三、设计的具体实现 1、系统概述 方案一:由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,感温电路比较麻烦。 方案设计框图如下:

基于51单片机的温度控制系统的设计

基于单片机的温度控制系统设计 1.设计要求 要求设计一个温度测量系统,在超过限制值的时候能进行声光报警。具体设计要求如下: ①数码管或液晶显示屏显示室内当前的温度; ②在不超过最高温度的情况下,能够通过按键设置想要的温度并显示;设有四个按键,分别是设置键、加1键、减1键和启动/复位键; ③DS18B20温度采集; ④超过设置值的±5℃时发出超限报警,采用声光报警,上限报警用红灯指示,下限报警用黄灯指示,正常用绿灯指示。 2.方案论证 根据设计要求,本次设计是基于单片机的课程设计,由于实现功能比较简单,我们学习中接触到的51系列单片机完全可以实现上述功能,因此可以选用AT89C51单片机。温度采集直接可以用设计要求中所要求的DS18B20。报警和指示模块中,可以选用3种不同颜色的LED灯作为指示灯,报警鸣笛采用蜂鸣器。显示模块有两种方案可供选择。 方案一:使用LED数码管显示采集温度和设定温度; 方案二:使用LCD液晶显示屏来显示采集温度和设定温度。 LED数码管结构简单,使用方便,但在使用时,若用动态显示则需要不断更改位选和段选信号,且显示时数码管不断闪动,使人眼容易疲劳;若采用静态显示则又需要更多硬件支持。LCD显示屏可识别性较好,背光亮度可调,而且比LED 数码管显示更多字符,但是编程要求比LED数码管要高。综合考虑之后,我选用了LCD显示屏作为温度显示器件,由于显示字符多,在进行上下限警戒值设定时同样可以采集并显示当前温度,可以直观的看到实际温度与警戒温度的对比。LCD 显示模块可以选用RT1602C。

3.硬件设计 根据设计要求,硬件系统主要包含6个部分,即单片机时钟电路、复位电路、键盘接口模块、温度采集模块、LCD 显示模块、报警与指示模块。其相互联系如下图1所示: 图1 硬件电路设计框图 单片机时钟电路 形成单片机时钟信号的方式有内部时钟方式和外部时钟方式。本次设计采用内部时钟方式,如图2所示。 单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别为此放大器的输入端和输出端,其频率范围为~12MHz ,经由片外晶体振荡器或陶瓷振荡器与两个匹配电容一 起形成了一个自激振荡电路,为单片机提供时钟源。 复位电路 复位是单片机的初始化操作,其作用是使CPU 和系统中的其他部件都处于一个确定的初始状态,并从这个状态开始工作,以防止电源系统不稳定造成CPU 工作不正常。在系统中,有时会出现工作不正常的情况,为了从异常状态中恢复,同时也为了系统调试方便,需要设计一个复位电路。 单片机的复位电路有上电复位和按键复位两种形式,因为本次设计要求需要有启动/复位键,因此本次设计采用按键复位,如图3。复位电路主要完成系统 图2 单片机内部时钟方式电路 图3 单片机按键复位电路

51单片机热敏电阻测温程序

//本程序是通过热敏电阻测温度(30c-50c),采用六位串行数码管显示,前三位显示ds18b20测得数据,后三位是热敏电阻测得数据 #include #include #include #define uchar unsigned char #define uint unsigned int uchar smg[]={0x88,0xeb,0x4c,0x49,0x2b,0x19,0x18,0xcb,0x08,0x09}; uchar b,d; uint shuju; int a,temp; sbit start=P2^7; sbit ale=P2^7; sbit addc=P2^6; sbit addb=P2^5; sbit adda=P2^4; sbit eoc=P2^3; sbit oe=P2^2; sbit clk=P3^2;//0809时钟脚 sbit dat=P3^0; //串行数码管数据端 sbit clock=P3^1; //串行数码管时钟端 sbit DQ=P2^0; /******************delay**************************/ void delay(uint x) { while(x--); } void delay1(uint x) { uint i,j; for(i=0;i

基于51单片机的心率体温测试系统

摘要 本文介绍了一种基于51单片机的心率体温采集系统。首先介绍了51系列单片机的内部相关配置、工作原理以及编程方法,其次介绍了温度传感器PT100的相关测温方法以及通过红外光电传感器TCRT5000对射的方法来抓取人体脉搏信号。此次设计的电路部分主要包括:传感测量电路、放大电路、滤波整形电路、AD转换电路、计数显示电路、控制电路、电源供电电路等。通过按键开始测试,将PT100及TCRT5000输入的微弱信号进行放大整形,最后AD采集转换传送给单片机,在LCD1602上显示相关体温及心率信息。 本次硬件设计基于比较稳定可行、低成本的设计思想,软件设计采用模块化的设计方法,并且详细分析了红外传感器TCRT5000应用于心率测量上以及PT100应用于温度测量上的原理及优点,阐述了其他各配合电路的组成与工作特点,并且通过仿真进行电路的可行性验证,最后完成实物电路的设计,使得本次课题的预期结果得以实现。 关键词:51单片机;传感器;仿真;AD转换 -I

Abstract This paper introduced a heart rate and body temperature acquisition system that based on 51 single chip microcomputer. First the internal configurations of 51 single chip microcomputer are introduced. And the paper also tell how 51 single chip microcomputer works and how can we program on it. Then the method of using temperature sensor PT100 to get body temperature is introduced, and we use infrared photoelectric sensor TCRT5000 to get the pulse signal of human body.The design of the circuit mainly comprises sensing circuit , amplifying circuit, filtering and shaping circuit, AD converting circuit, counting and displaying circuit, controlling circuit, power supplying circuit and so on. When the keyboard is pressed, the system starts to get signal. The small signal from PT100 and TCRT5000 will be amplified and shaped. Then ad converter will change the analog signal into digital signal and send to 51 single chip microcomputer . At last LCD1602 will display the information of body temperature and heart rate. Keywords: Piezoelectric sensors;control circuit;counters;Multisim2001 simulation software control circuit. -II

51单片机课程设计源程序

TIME0_DOWN EQU F0 ;将F0设置为定时器0定时到标志 FINISH_ID EQU 30H ;学号发送标志 KEY_FLAG BIT 00H ;有键按下标志 KEY_LONG BIT 01H ;键长按 KEY_D EQU 31H ;键值存放地址 ADC0809_AD EQU 8000H ;设置ADC0809地址 DAC0832_AD EQU 0000H ;设置DAC0832地址 ADC_FLAG BIT 02H ;设置ADC0809读数据标志 ADC_DATE EQU 32H ;设置ADC0809数据地址 ADC_0 EQU 33H ;ADC0809转化为BCD码后个位存放地址 ADC_1 EQU 34H ;十分位存放地址 ADC_2 EQU 35H ;百分位存放地址 ADC_3 EQU 36H ;千分位存放地址 ORG 0000H ;程序开始,跳转至主程序 0000 020030 LJMP MAIN ORG 0003H ;外部中断0入口0003 020141 LJMP INT0_IN ORG 000BH ;设置定时器0中断入口地址 000B 020132 LJMP TIME0 ORG 0013H ;外部中断1入口0013 020151 LJMP INT1_IN ORG 0030H ;主程序开始地址 0030 758169 MAIN: MOV SP,#69H ;初始化堆栈指针 0033 C292 CLR P1.2 ;显示器清零 0035 D292 SETB P1.2 0037 753000 MOV FINISH_ID,#0 ;将标志位清零 003A C2D5 C LR TIME0_DOWN 003C C200 CLR KEY_FLAG 003E C201 CLR KEY_LONG 0040 753100 MOV KEY_D,#0 0043 C202 CLR ADC_FLAG 0045 753200 MOV ADC_DATE,#0 0048 753300 MOV ADC_0,#0 004B 753400 MOV ADC_1,#0 004E 753500 MOV ADC_2,#0 0051 753600 MOV ADC_3,#0 0054 C291 CLR P1.1 ;初始化键盘,行线置零,有键按下触发中断 0056 C293 CLR P1.3

(完整word版)51单片机课程设计实验报告

51单片机课程设计报告 学院: 专业班级: 姓名: 指导教师: 设计时间:

51单片机课程设计 一、设计任务与要求 1.任务:制作并调试51单片机学习板 2.要求: (1)了解并能识别学习板上的各种元器件,会读元器件标示; (2)会看电路原理图; (3)制作51单片机学习板; (4)学会使用Keil C软件下载调试程序; 用调试程序将51单片机学习板调试成功。 二、总原理图及元器件清单 1.总原理图 2.元件清单 三、模块电路分析 1. 最小系统: 单片机最小系统电路分为振荡电路和复位电路, 振荡电路选用12MHz 高精度晶振, 振荡电容选用22p和30p 独石电容;

图 1 图 2 复位电路使用RC 电路,使用普通的电解电容与金属膜电阻即可; 图 3 当单片机上电瞬间由于电容电压不能突变会使电容两边的电位相同,此时RST 为高电平,之后随着时间推移电源负极通过电阻对电容放电,放完电时RST 为低电平。正常工作为低电平,高电平复位。 2. 显示模块: 分析发光二极管显示电路: 图 4 发光二极管显示电路分析:它是半导体二极管的一种,可以把电能转化成光能,常简写为

LED。发光二极管与普通二极管一样是由一个PN结组成,也具有单向导电性。当给发光二极管加上正向电压后,产生自发辐射的荧光。图中一共有五个发光二极管其中一个为电源指示灯,当学习板通电时会发光以指示状态。其余四个为功能状态指示灯,实际作用与学习板有关 分析数码管显示电路 图 5 数码管显示电路分析:数码管按段数分为七段数码管和八段数码管,图中所用为八段数码管(比七段管多了一个小数点显示位),按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管.共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。数码管主要用来显示经电路板处理后的程序的运行结果。图中使用了八个八段数码管,可以显示八个0-15的数字。使用数码管可以直观的得到程序运行所显示的结果.也可以显示预置在学习板上的程序,主要通过16个开关来控制。 四、硬件调试 1、是否短路 用万用表检查P2两端是短路。电阻为0,则短路,电阻为一适值,电路正常。 2、焊接顺序 焊接的顺序很重要,按功能划分的器件进行焊接,顺序是功能部件的焊接--调试--另一功能部件的焊接,这样容易找到问题的所在。 3、器件功能 1)检查原理图连接是否正确 2)检查原理图与PCB图是否一致 3)检查原理图与器件的DATASHEET上引脚是否一致 4)用万用表检查是否有虚焊,引脚短路现象 5)查询器件的DATASHEET,分析一下时序是否一致,同时分析一下命令字是否正确 6)通过示波器对芯片各个引脚进行检查,检查地址线是否有信号的 7)飞线。用别的的口线进行控制,看看能不能对其进行正常操作,多试验,才能找到问题出现在什么地方。 1、详细描述硬件安装过程中出现的故障现象,并作故障分析,及解决方法。 六、软件调试

基于51单片机温湿度检测+电子万年历的毕业设计论文

毕业设计论文 基于51单片机温湿度检测+电子万年历的设计

[摘要]:温湿度检测是生活生产中的重要的参数。本设计为基于51单片机的温湿度检测与控制系统,采用模块化、层次化设计。用新型的智能温湿度传感器SHT10主要实现对温度、湿度的检测,将温度湿度信号通过传感器进行信号的采集并转换成数字信号,再运用单片机STC89C52RC进行数据的分析和处理,为显示提供信号,显示部分采用LCD1602液晶显示所测温湿度值。系统电路简单、集成度高、工作稳定、调试方便、检测精度高,具有一定的实用价值。 [关键字]:STC89C52RC SHT10 LCD1602 按键指示灯蜂鸣器电子万年历Based on 51 single chip microcomputer temperature and humidity detection + electronic calendar design Abstract:Temperature and humidity detection is important parameters in the production of life. This design is based on 51 single chip microcomputer temperature and humidity detection and control system, adopting modular, hierarchical design. With new type of intelligent temperature and humidity sensor SHT10 main realization about the detection of temperature, humidity, temperature humidity signal acquisition is converted into digital signals through the sensor signal, using SCM STC89C52RC for data analysis and processing, provides the signal for display, display part adopts LCD1602 LCD display the measured temperature and humidity values. Simple circuit, high integration, work stability, convenient debugging, high detection precision, has certain practical value. Key words:STC89C52RC SHT10 LCD1602 key indicator light buzzer The electronic calendar

89C51单片机课程设计之秒表设计实验报告.

这里可以加学校LOGAL 单片机课程设计报告 院系:12级物信系 班别:光信息科学与技术7班 课程名称:秒表设计 姓名:龚俊才欧一景 学号:1210407033 1210407041 指导老师:张涛 2011.12.23

目录 1课程设计的目的和任务 1.1 单片机秒表课程设计的概述 1.2课程设计思路及描述 1.3 课程设计任务和要求 2硬件与软件的设计流程 2.1系统硬件方案设计 2.2软件方案设计 3 程序编写流程及课程设计效果3.1源程序及注释 3.2原理图分析 3.3课程设计效果 4 心得体会 5 相关查阅资料

1. 课程设计的目的和任务 1.1单片机秒表课程设计的概述 一、课程设计题目 秒表系统设计——用STC89C52RC设计一个4位LED数码显示“秒表”,显示时间为 00.00~99.99秒,每10毫秒自动加一,每1000毫秒自动加一秒。 二、增加功能 增加一个“复位”按键(即清零),一个“暂停”和“开始”按键。 三、课程设计的难点 单片机电子秒表需要解决三个主要问题,一是有关单片机定时器的使用;二是如何实现LED 的动态扫描显示;三是如何对键盘输入进行编程。 四、课程设计内容提要 本课程利用单片机的定时器/计数器定时和记数的原理,结合集成电路芯片8051、LED数码管以及课程箱上的按键来设计计时器。将软、硬件有机地结合起来,使得系统能够正确地进行计时,数码管能够正确地显示时间。其中本课程设计有两个开关按键:其中key1按键按下去时开始计时,即秒表开始键(同时也用作暂停键),key2按键按下去时数码管清零,复位为“00.00”. 五、课程设计的意义 1)通过本次课程设计加深对单片机课程的全面认识复习和掌握,对单片机课程的应用进一步 的了解。 2)掌握定时器、外部中断的设置和编程原理。 3)通过此次课程设计能够将单片机软硬件结合起来,对程序进行编辑,校验。 4)该课程通过单片机的定时器/计数器定时和计数原理,设计简单的计时器系统,拥有正确的 计时、暂停、清零,并同时可以用数码管显示,在现实生活中应用广泛,具有现实意义 六、课程设计仪器 a) 集成电路芯片8051,七段数码管,89C51单片机开发板 b) MCS-51系列单片机微机仿真课程系统中的软件(Keil uvision2)。

51单片机电子时钟课程设计报告报告

目录 第一部分设计任务和要求 1.1单片机课程设计内 容 (2) 1.2单片机课程设计要求………………………………………………… 2 1.3系统运行流程………………………………………………………… 2 第二部分设计方案 2.1 总体设计方案说明 (2) 2.2 系统方框图 (3) 2.3 系统流程图 (3) 第三部分主要器材及基本简介 3.1 主要器材 (4) 3.2 主要器材简介 (4) 第四部分系统硬件设计 4.1 最小系统 (6) 4.2 LCD显示电路 (6) 4.3 键盘输入电路 (7) 4.4 蜂鸣器和LED灯电路 (7)

第五部分仿真电路图与仿真结果 (8) 第六部分课程设计总结 (8) 第七部分参考文献 (9) 附录A 实物图 附录B 系统源程序 第一部分设计任务和要求 1.1 单片机课程设计内容 利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。 1.2 单片机课程设计要求 1.能实现年、月、日、星期、时、分、秒的显示; 2.能实现调时功能; 3.能实现12/24小时制切换; 4.能实现8:00—22:00整点报时功能。 1.3 系统运行流程 程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。若没到则循环执行。计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。调时闪烁中断服务程序

用于被调单元的闪烁显示。调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。实现了对时间的设置和修改、LCD显示数值等主要功能。相关的调整是靠对功能键的判断来实现的。第二部分设计方案 2.1 总体设计方案说明 1.程序设计及调试 根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。 2.硬件焊接及调试 根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。3.后期处理 对设计过程进行总结,完成设计报告。 2.2 单片机系统方框图

基于51单片机的温度检测系统程序及仿真

//**************************************** //**用DS18B20进行测量,lcd1602显示** //**************************************** #include "reg51.h" #include "intrins.h" #define uchar unsigned char #define uint unsigned int uchar code table1 []={"ID: "}; //欢迎显示,包括空格在内<=16 uchar code table2 []={"Name: "};//欢迎显示,包括空格在内<=16 uchar code str1 []={" Temperature "}; uchar code str2 []={" "}; //************管脚定义************************ sbit lcd_rs = P3^0; //液晶数据命令选择端 sbit lcd_en = P3^1; //液晶使能 sbit DQ = P3^6; //液晶使能 //************参数定义************************ uint tvalue;//温度值 uchar tflag;//温度正负标志 uchar data disdata[5]; //************子函数定义************************

void delay(uchar z); //delay延时子程序 void init_lcd(); //LCD1602初始化函数 void write_com(uchar com); //LCD1602写指令函数 void write_data(uchar date); //LCD1602写数据函数 void lcd1602_display(uchar *q,uchar *p);//LCD1602显示函数 void welcome(); //LCD1602显示欢迎函数 void delay_DS18B20(uint i); //delay_DS18B20函数 void Init_DS18B20_display(); //DS18B20初始化显示 void Init_DS18B20(); //DS18B20初始化 uchar ReadOneByte(); //DS18B20读一字节 void WriteOneByte(uchar dat); //DS18B20写一字节 Read_Temperature(); //DS18B20读取温度值并转换 void DS18B20_display(); //DS18B20温度显示 //************主函数************************ void main() { welcome(); delay(2000); Init_DS18B20_display(); while(1) { Read_Temperature(); DS18B20_display(); } } //************delay延时子程序************************ void delay(uchar z) { uchar x,y; for(x=0;x

51单片机电子时钟课程设计报告

第一部分设计任务和要求 1.1 单片机课程设计内容 利用STC89C51单片机和LCD1602电子显示屏实现电子时钟,可由按键进行调时和12/24小时切换。 1.2 单片机课程设计要求 1.能实现年、月、日、星期、时、分、秒的显示; 2.能实现调时功能; 3.能实现12/24小时制切换; 4.能实现8:00—22:00整点报时功能。 1.3 系统运行流程 程序首先进行初始化,在主程序的循环程序中首先调用数据处理程序,然后调用显示程序,在判断是否有按键按下。若有按键按下则转到相应的功能程序执行,没有按键按下则调用时间程序。若没到则循环执行。计时中断服务程序完成秒的计时及向分钟、小时的进位和星期、年、月、日的进位。调时闪烁中断服务程序用于被调单元的闪烁显示。调时程序用于调整分钟、小时、星期、日、月、年,主要由主函数组成通过对相关子程序的调用,如图所示。实现了对时间的设置和修改、LCD显示数值等主要功能。相关的调整是靠对功能键的判断来实现的。 第二部分设计方案 2.1 总体设计方案说明 1.程序设计及调试 根据单片机课程设计内容和要求,完成Protues仿真电路的设计和用Keil软件编写程序,并进行仿真模拟调试。 2.硬件焊接及调试 根据仿真电路图完成电路板的焊接,并进行软、硬件的调试,只到达到预期目的。

3.后期处理 对设计过程进行总结,完成设计报告。 2.2 单片机系统方框图 2.2 单片机系统流程图 主流程图键盘扫描流程图

时钟流程图 第三部分主要器件及简介 3.1 主要器件 1. STC89C51单片机; 2.LCD1602液晶显示屏; 3.2 主要器件简介 1.STC89C51单片机简介 STC89C51是采用8051核的ISP(In System Programming)在系统可编程芯片,最高工作时钟频率 为80MHz,片内含8K Bytes的可反复擦写1000次的 Flash只读程序存储器,器件兼容标准MCS-51指令系 统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISP Flash存储单元,具有在系统可编程(ISP)特性,配合PC端的控制程序即可将用户的程序代码下载进单片机内部,省去了购买通用编程器,而且速度更快。 2.LCD1602液晶显示屏简介

相关主题