首页

> 期刊投稿知识库

首页 期刊投稿知识库 问题

基于51单片机的液位检测论文

发布时间:

基于51单片机的液位检测论文

毕业设计(论文)题目:基于51单片机的水位检测 专业:电子测量技术与仪器 班级: 10251 学号: 12 姓名: 黄小桂 指导老师: 周俊 成都工业学院二〇一三年五月摘 要设计一种基于单片机水塔水位检测控制系统。该系统能实现水位检测、电机故障检测、处理和报警等功能,实现超高、低警戒水位报警,超高警戒水位处理。介绍电路接口原理图,给出相应的软件设计流程图和汇编程序,并用Proteus软件仿真。实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性强。水塔供水的主要问题是塔内水位应始终保持在一定范围,避免“空塔”、“溢塔”现象发生。目前,控制水塔水位方法较多,其中较为常用的是由单片机控制实现自动运行,使水塔内水位保持恒定,以保证连续正常地供水。实际供水过程中要确保水位在允许的范围内浮动,应采用电压控制水位。首先通过实时检测电压,测量水位变化,从而控制电动机,保证水位正常。因此,这里给出以intel公司的80C31单片机为核心器件的水塔水位检测控制系统仿真设计,实现水位的检测控制、电机故障检测、处理和报警等功能,并在proteus软件环境下实际仿真。实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性强。关键词:单片机 水位检测 控制系统 仿真AbstractBased on the design of a single-chip microcomputer control system of water tower water level detection.This system can realize the water level detection,motor fault detection,processing and alarm functions,and realize the high,low water level warning alarm,high warning level processing.The interface circuit schematic diagram,the corresponding software design flow chart and assembler,and simulation with Proteus software. The experimental results show that,the system has good detection and control functions,portability and scalability. The main problem is water tower water tower water should always be kept within a certain range, to avoid "empty tower", "overflow" tower phenomenon. At present, there are many control towers water level method, which is commonly used is controlled by a single chip microcomputer to realize the automatic operation, the water level in the water tower is kept constant, so as to ensure the continuous normal water supply. The actual water supply process to ensure that the water level in the allowed range of floating, should adopt voltage control level. First through the real-time detection of voltage, measure the water level changes, so as to control the motor, to ensure the normal water level. Therefore, the detection and control system simulation of water tower water level given by Intel company 80C31 microcontroller as the core device design, to achieve the level of detection and control, motor fault detection, processing and alarm functions, and in the Proteus Software Environment simulation. The experimental results show that, the system has good detection and control functions, portability and scalability. Key Words: MCU The water level detection control system simulation 目录摘 要IIAbstractIII目录IV第1章 基础知识11.1 单片机系统综述11.1.1 单片机的概念11.1.2 MCS-51 8031介绍11.2 MCS-51 8031单片机内部结构及引脚21.2.1 MCS-51 8031单片机内部结构21.2.2、MCS-51 8031单片机外部引脚41.3 锁存器74LS373简介51.3.1 74LS373真值表5第2章 设计简介72.1 设计方案的选择 7 2.1.1 简单的机械式控制方式 7 2.1.2 复杂控制器控制方式 7 2.1.3 通过水位变化上下限的控制方式 72.2设计说明82.3 系统硬件设计82.3.1水塔水位控制原理82.3.2 硬件设计92.4 软件设计122.4.1设计思路描述122.4.2 设计程序流程图132.4.3 主程序132.5.2软件的功能特点152.6 对四种不同状态的仿真如下17第3章 设计结论与前景223.1 设计结论223.2 设计前景22参考文献23第1章 基础知识1.1 单片机系统综述1.1.1 单片机的概念电子计算机的发展经历了从电子管、晶体管、集成电路到大(超大)规模集成电路共四个阶段,即通常所说的第一代、第二代、第三代和第四代计算机。现在广泛使用的微型计算机是大规模集成电路技术发展的产物,因此它属于第四代计算机,而单片机则是微型计算机的一个分支。从1971年微型计算机问世以来,由于实际应用的需要,微型计算机向着两个不同的方向发展:一个是向高速度、大容量、高性能的高档微机方向发展;而另一个则是向稳定可靠、体积小和价格廉的单片机方向发展。但两者在原理和技术上是紧密联系的。1.1.2 MCS-51 8031介绍80C31单片机,它是8位高性能单片机。属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。 80C31内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。但80C31片内并无程序存储器,需外接ROM。 此外,80C31还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。80C31有PDIP(40pin)和PLCC(44pin)两种封装形式。1.2 MCS-51 8031单片机内部结构及引脚1.2.1 MCS-51 8031单片机内部结构①中央处理单元(8位) 数据处理、测试位,置位,复位 位操作 ②只读存储器(4KB或8KB) 永久性存储应用程序,掩模ROM、EPROM、EEPROM ③随机存取内存(128B、128B SFR) 在程序运行时存储工作变量和资料 ④并行输入/输出口(I / O)(32条) 作系统总线、扩展外存、I / O接口芯片 ⑤串行输入/输出口(2条) 串行通信、扩展I / O接口芯片 ⑥定时/计数器(16位、加1计数) 计满溢出、中断标志置位、向CPU提出中断请求,与CPU之间独立工作 ⑦时钟电路 内振、外振⑧中断系统 五源中断、2级优先结构特点: MCS-51系列单片机为哈佛结构(而非普林斯顿结构) 1)内ROM:4KB 2)内RAM:128B 3)外ROM:64KB 4)外RAM:64KB 5)I / O线: 32根(4埠,每埠8根) 6)定时/计数器:2个16位可编程定时/计数器 7)串行口:全双工,2 根 8)寄存器区:工作寄存器区、在内128B RAM中,分4个区,9)中断源:5源中断,2级优先 10)堆栈:最深128B 11)布尔处理机:位处理机,某位单独处理 12)指令系统:五大类,111条1.2.2、MCS-51 8031单片机外部引脚1)、主电源引脚 Vss 、 Vcc 2)、外接晶振引脚 XTAL1 、 XTAL2 3)、控制或复位引脚 RST / VPD 两个机器周期高电平,单片机复位。 P0 ~ P3 口:输出高电平 SP: 07H SFR、PC:清0 不影响内RAM状态,机器从0地址开始执行。 ALE / PROG:地址锁存控制端 提供1/6 fosc振荡频率,输入编程脉冲EPROM PSEN:外部程序内存的读选通信号端。 EA / VPP:EA = 1 ,访问内部程序内存 当PC值超过内ROM范围(0FFFH)时,自动转执行外部内存的程序 EA = 0 , 只访问外部程序内存。 对8751机,可施加21V编程电源(Vpp) 4)、输入/输出引脚 P0 ~ P3:四个I / O口,每口8线,共同32线。1.3 锁存器74LS373简介74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片.本文将介绍74ls373的工作原理,引脚图(管脚图),内结构图、主要参数及在单片机系统中的典型应用电路。 1.3.1 74LS373真值表由于8051单片机的P0口是分时复用的,因此在进行程序存储器扩展时,需要使用地址锁存器将地址信号从地址/数据总线中分离出来。单片机系统中常用的地址锁存器芯片74LS373以及coms的74hc373。是带三态缓冲输出的8D触发器。第2章 设计简介2.1 设计方案的选择 对于水位进行控制的设计方式有很多,而应用较多的主要有3种,三种方式的实现如下: 2.1.1 简单的机械式控制方式 其常用形式有浮标式、电极式等,这种控制形式的优点是结构简单,成本低廉。存在的问题是精度不高,不能进行数值显示,另外很容易引起误动作,且只能单独控制,与计算机进行通信较难实现。 2.1.2 复杂控制器控制方式 这种控制方式是通过安装在水泵出口管道上的压力传感器,把出口压力变成标准工业电信号的模拟信号,经过前置放大、多路切换、A/D变换成数字信号传送到单片机,经单片机运算和给定参量的比较,进行PID运算,得出调节参量;经由D/A变换给调压/变频调速装置输入给定端,控制其输出电压变化,来调节电机转速,以达到控制水塔水位的目的。 2.1.3 通过水位变化上下限的控制方式 这种控制方式通过在水塔的不同高度固定的不动的3根金属棒ABC,以感知水位的变化情况。其中,A棒处于下限水位,C棒处于上限水位,B棒处于上、下限水位之间。A棒接+5v电源,B棒、C棒各通过一个电阻与地相连。 针对上述3中控制方式,以及设计需达到的性能要求,这里选择第三种控制方式。最终形成的方案是,利用单片机为核心,设计一个对供水箱水位进行监控的系统。当水塔水位下降至下限水位时,启动水泵;水塔水位上升至上限水位时,关闭水泵;水塔水位在上、下限水位之间时,水泵保持原状态;供水系统出现故障时,自动报警;故障解除时,水泵恢复正常工作。2.2设计说明本设计为一个实际应用系统的水塔水位控制部分。在此水塔水位控制系统中,检测信号来自插入水中的3个金属棒,以感知水位变化情况。工作正常情况下,应保持水位在某一范围内,当水位变化发生故障的时候,及时关断电机电源,发出声、光报警信号。(1)完成单片机硬件的设计,包括:CPU、存储器(外扩ROM、RAM)、输入/输出接口(外扩并行I/O口)以及总线连接部分(附控制电路原理图)。(2)完成控制软件的设计(附控制软件清单)。2.3 系统硬件设计2.3.1水塔水位控制原理单片机水塔水位控制原理图1所示,图中的A、B表示允许水位变化的上、下限位置。由于题目中所要求的金属导体在长时间置于水和空气中会被氧化,因此导电性会下降,这样会影响系统的正常工作,所以本设计需要改动部分控制硬件,上部两个导体分别用浮子开关代替,第三个不需要置于水中,而将它直接接地然后串入电阻接入电路中。在正常情况下,水位应控制在上下限的范围之内。为此,在水塔内的不同高度处,安装固定不变的两个浮子开关A、B,利用杠杆原理, A浮子控制开关A,B浮子控制开关B,受到浮力时开关打开,A靠近水塔上部,B靠近水池底部,A、B之间足够距离,要保证有足够大的流水量。水塔由电机带动水泵供水,单片机控制电机转动,随着供水,水位不断上升,当水位上升到上限水位时,由于水的浮力作用,使浮子开关A,B均断开。因此b、c两端的电压都为+5 V即为“1”状态.此时应停止电机和水泵工作,不再向水塔注水;当水位处于上、下限之间时,B开关断开和A开关闭合, b端为“1”状态,c端为“0”状态。此时电机保持原来的运行状态,使水位上升或下降,当水位处于下限位置以下时,A,B开关都断开,b、c均为“0”状态,此时应启动电机转动,带动水泵给水塔注水。当开关A断开B闭合(这种状态在正常情况下不会出现,因此必有一浮子出现故障)停止电机运转,报警器打开。图1所示水塔浮子的控制原理。图1 水塔水位浮子开关控制原理图2.3.2 硬件设计 (1)电路设计水塔水位控制系统主要由CPU(80C31)、水位检测接口电路、报警接口电路、存储器扩展接口电路、复位电路、时钟振荡等部分组成,图2为系统硬件电路。图2 系统硬件电路(2) 选用的设备列表如表1所示: 表1 元件列表单片机8031芯片 一片锁存器74LS373,27327406,74LS04各一件电动机 一台浮子开关 两件发光二极管,二极管1N914 各一个电容5p和20p,晶振电容 各一件直流电源 5V,电机电源电压电阻 三个导线 若干(3)水位检测接口电路为了便于实现水位检测功能,用一个两位的浮子开关A,B模拟P1.1和P1.0端的状态(0、1),浮子开关另一端接地,每个负电极分别通过4.7 k的电阻(R1,R2)接+5V电源。将单片机的P1.0端口接开关B,P1.1端口接开关A。假设被水淹没的负电极都为高电平,此时开关置1;露在水面的负电极都为低电平,开关此时置为0。单片机通过负电极重复采集检测水位,当缺水时(此时两个开关均置0),电机必须带动水泵抽水;若水位在正常范围内时,检测信号为高,低电平(此时开关B置1,开关A置0);当水位过高时,检测信号为高电平(此时开关A和B都置1),单片机检测到P1.0和P1.1为高电平后,立即停机。(4)报警接口电路 为了避免系统发生故障时,水位失去控制造成严重后果,在超出、低于警戒界水位时,报警信号直接从高、低警界水位电极获得。单片机P1.3端口为启动电机命令输出端口,P1.3=0为低电平,经过非门和驱动器7406后与电机的另一端接地导通,启动电机工作;P1.3=l为高电平,反之,电机停止工作。电机故障报警由单片机控制,电机故障报警信号由P1.3输人。当P1.3为高电平时蜂鸣器报警。水位超过高警戒水位,单片机控制系统使电机停止转动,向水塔内供水工作也停止。(5)存储器扩展接口电路 为了便于系统扩展,存放大容量应用程序,系统设计扩展一片程序存储器,用于存放源程序代码。74LS373用于锁存地址,单片机的P0.0~P0.7通过复用方式分别接锁存器74LS373的DO~D7和存储器2732的D0~D7端,地址锁存信号线ALE接锁存器的OE端,通过软件设置实现地址和数据信息的传输,锁存器的输出端Q0~Q7与存储器地址线A0~A7相连,剩余的3根地址线A8~A11接P2.0~P2.2.单片机选通引脚接存储器OE端,因只扩展一片存储器,片选端CE接地。(6) 各设备的地址分配各元件所接端口以及对应地址如表2 所示1 2 3 4P1口 P1.0 P1.1 P1.2 P1.3元件 开关B 开关A 电动机 报警等地址 90H 91H 92H 93H表22.4 软件设计2.4.1设计思路描述当水塔水位处于上、下限之间时,P1.0=l,P1.1=0,此时无论电机是在带动水泵给水塔供水使水位不断上升还是电机没有工作使水位不断下降,都应继续维持原有工作状态;当水位低于下限时,P1.0=0,P1.1=0,此时启动电机转动,带动水泵给水塔供水。水位检测信号与输出控制操作关系如表3所示: 表3 水位检测信号与输出控制操作表 P1.1 (A) P1.0 (B) 运行状态 0 0 电机运转0 1 维持电机运行状态1 1 电机停转1 0 故障报警2.6 对四种不同状态的仿真如下(1) 当A,B两开关都闭合,即水位未到达开关B时,电机运转,如图4所示:图4(2)当A开关闭合,B开关断开,即水位适中,电机维持原状,如图5所示:图5(3)当两开关都断开即水位超过了上线时,电机停转。如图6所示:图6(4)当A断开B闭合即浮子开关出现故障,电机停转且系统报警。如图7所示:图7

写过好多次了。需要的话Q我

不知道能否帮助到你 一、水位智能检测系统设计原理�实验证明,纯净水几乎是不导电的,但自然界存在的以及人们日常使用的水都会含有一定的Mg2+、Ca2+等离子,它们的存在使水导电。本控制装置就是利用水的导电性完成的。�如图1所示,虚线表示允许水位变化的上下限。在正常情况下,应保持水位在虚线范围之内。为此,在水塔的不同高度安装了3根金属棒,以感知水位变化情况。图1 水位检测原理图其中B棒处于下限水位,C棒处于上限水位,A棒接+5V电源,B棒、C棒各通过一个电阻与地相连。�水塔由电机带动水泵供水,单片机控制电机转动以达到对水位控制之目的。供水时,水位上升。当达到上限时,由于水的导电作用,B、C棒连通+5V。因此,b、c两端均为1状态,这时应停止电机和水泵工作,不再给水塔供水。当水位降到下限时,B、C棒都不能与A棒导电,因此,b、c两端均为0状态。这时应启动电机,带动水泵工作,给水塔供水。当水位处于上下限之间时,B棒与A棒导通,b端为1状态。C端为0状态。这时,无论是电机已在带动水泵给水塔加水,水位在不断上升;或者是电机没有工作,用水使水位在不断下降。都应继续维持原有的工作状态。�二、基于单片机控制的水塔水位控制系统�1�单片机控制电路�水塔水位控制的电路如图2所示。�2�前向通道设计图2 水塔水位控制电路由于所采用的信号是频率随水位变化而变的脉冲信号(开关量),因此电路设计中省去了A/D�转换部分,这不仅降低了硬件电路的成本,而且由于采用数字脉冲信号通信,提高了系统的抗干扰能力、稳定性和精度。�输入的可变脉冲信号送到8031的P10和P11脚电平,当接收到信号时,输入脉冲使其输出高电平,而无信号输入时,无触发脉冲,此时翻转为低电平。程序控制8031周期性地对P11和P10脚电平进行采样,达到控制的目的。�3.微机控制数据处理部分�在电路设计中,充分利用8031已有端口的作用,同时也考虑扩展,做到尽可能节省元件,不仅可降低成本,而且提高可靠性。(1)使用8031单片机。水塔水位控制的电路如图3—1。接受电路得到的是频率随水位变化的调频脉冲,它反映了贮水池水位的高度,对其进行信号处理,便能实现对水位的控制及故障报警等功能。要完成此一工作,最佳的选择是采用微机控制,实验中是以MCS—51系列弹片机8031作CPU。对接受的信号进行数据处理,完成相应的水位控制、故障报警等功能。8031芯片的内部结构框图见图3所示。�由图3可大致看到:它含运算器、控制器、片内存储器、4个I/O接口、串行接口定时器/计数器、中断系统、振荡器等功能部件。图中SP是堆栈指针寄存器,栈区占用了片内RAM的部分单元;未见通用寄存器(工作寄存器),因单片机片内有存储器,与访问工作寄存器一样方便,所以就把一定数量的片内RAM字节划作工作寄存器区;PSW是程序状态字寄存器,简称程序状态字,相当于其他计算机的标志寄存器;DPTR是数据指针寄存器,在访问片外ROM、片外RAM、甚至扩展I/O接口时特别有用;B寄存器又称乘法寄存器,它与累加器A协同工作,可进行乘法操作和除法操作。实验中8031时钟频率为6MHz。由于8031没有内部ROM,因此需外扩展程序存储器。本系统采用2732EPROM扩展4K程序存储器,对应地址空间为0000H~0FFFH。(2)74LS373作为地址锁存器。74LS373片内是8个输出带三态门的D锁存器,其结构示意图见图4所示。当使能端G呈高点平时锁存器中的内容可更新,而在返回低电平瞬间实现锁存。如此时芯片的输出控制端为低,也即输出三态门打开,锁存器中的地址信息便可经由三态门输出。除74LS373外,84LS273、8282、8212等芯片也可用作地址锁存器,但使用时接法稍有不同,由于接线稍繁、多用硬件和价格稍贵,故不如74LS373用的普遍。 图3 8031芯片内部结构框图(3)两个水位信号由P10和P11输入,这两个信号共有四种组合状态。如表3—1所示。其中第三种组合(b=1、c=0)正常情况下是不能发生的,但在设计中还是应该考虑到,并作为一种故障状态。�表3-1 水位信号状态表C(P11) B(P10) 操作 0 0 电机运转 0 1 维持原状 1 0 故障报警 1 1 电机停转 (4)控制信号由P12端输出,去控制电机。为了提高控制的可靠性,使用了光电耦合。4.报警电路�本系统采用发光二极管,当控制电路出现故障状态时,P13置零,发光二极管导通,发光报警。�5.软件设计�一个应用系统,要完成各项功能,首先必须有较完善的硬件作保证。同时还必须得到相应设计合理的软件的支持,尤其是微机应用高速发展的今天,许多由硬件完成的工作,都可通过软件编程而代替。甚至有些必须采用很复杂的硬件电路才能完成的工作,用软件编程有时会变得很简单,如数字滤波,信号处理等。因此充分利用其内部丰富的硬件资源和软件资源,采用MCS—51汇编语言和结构化程序设计方法进行软件编程。这个系统程序由主控程序、延时子程序组成。其中主控程序是核心。由它控制着整个系统程序的运行和跳转。流程图如图5所示。包括系统初始化,数据处理,故障报警等。�电路具体工作情况如下:�① 当水位低于B时,由于极棒A和C、A和B之间被空气绝缘,P10和P11得到低电平,全置0,单片机控制电路使P12置零,继电器吸合,启动水泵向水塔灌水;�② 当水位高于B低于C时,P10置1,P11置0,继电器常开触电自保,因此升到B以上时,继电器并不立即释放,电极仍然供水;③ 当水位达到C时,P10 、P11均置1,单片机控制电路使P12置1,继电器释放,水泵停止工作;�④ 用水过程中,水位降到C以下,P11置0,P10置1,维持原状,电机不工作,直到降到B以下,如此循环往复。�系统出现故障时,由P13置零,输出报警信号,驱动一支发光二极管进行光报警。三、结束语�现代传感技术、电子技术、计算机技术、自动控制技术、信息处理技术和新工艺、新材料的发展为智能检测系统的发展带来了前所未有的奇迹。在工业、国防、科研等许多应用领域,智能检测系统正发挥着越来越大的作用。检测设备就像神经和感官,源源不断地向人类提供宏观与微观世界的种种信息,成为人们认识自然、改造自然的有力工具。现代的广义智能检测系统应包括一切以计算机(单片机、PC机、工控机、系统机)为信息处理核心的检测设备。因此,智能检测系统包括了信息获取、信息传送、信息处理和信息输出等多个硬、软件环节。从某种程度上来说,智能检测系统的发展水平表现了一个国家的科技和设计水平。�本课题研究的内容是“智能水位控制系统”。水位控制在日常生活及工业领域中应用相当广泛,比如水塔、地下水、水电站等情况下的水位控制。而以往水位的检测是由人工完成的,值班人员全天候地对水位的变化进行监测,用有线电话及时把水位变化情况报知主控室。然后主控室再开动电机进行给排水。很显然上述重复性的工作无论从人员、时间和资金上都将造成很大的浪费。同时也容易出差错。因此急需一种能自动检测水位,并根据水位变化的情况自动调节的自动控制系统,我所研究的就是这方面的课题。�水位检测可以有多种实现方法,如机械控制、逻辑电路控制、机电控制等。本实验采用两种方法(单片机和时基集成电路)进行主控制,在水池上安装一个自动测水位装置。利用水的导电性连续地全天候地测量水位的变化,把测量到的水位变化转换成相应的电信号,主控台应用单片微机或时基集成电路对接收到的信号进行数据处理,完成相应的水位显示、控制及故障报警等功能。�参考文献�1.丁元杰 单片微机原理及应用 机械工业出版社 2000�2.腾召胜 罗隆福 智能检测系统与数据融合 机械工业出版社 20003.孙虎章 自动控制原理 中央广播电视大学出版社 1999

基于视频的人流量监测系统设计与实现 图像水印识别微信小程序设计与实现 基于重力传感器的飞机大战游戏开发 手机平台加减乘除口算训练游戏开发 基于Android平台的个人移动地图软件开发 面向多种数据源的爬虫系统的设计与实现 基于Zabbix的服务器监控系统的设计与实现 基于新浪微博的分布式爬虫以及对数据的可视化处理 基于分布式的新闻热点网络爬虫系统与设计 舆情分析可视化系统的设计与实现 基于大数据的用户画像的新闻APP设计 基于Android平台的语言翻译程序设计与实现 基于SSH的水电信息管理系统的设计与实现 基于SSM的学科竞赛管理系统

基于单片机的水位检测论文设计

我给你一个题目,如果你写出来了,我保你论文得优秀。因为当年我就是选这个题目得的优秀。刚才我在网上搜了一下,网上还是没有与这个系统相关的论文。 《高考最低录取分数线查询系统》基本思想很简单,现在的高考分数线查询是很繁琐的,需要先把分数查出来,然后根据录取指南再找你的分数能被录取的学校,高考过的都知道,高考报考指南是一本多么厚的书。所以,这个系统的思想就是:你用所有高校近十年的录取分数线建立一个数据库,然后开发一个系统,当你输入查询命令的时候(查询命令可以用1,2,3这三个数来代替,用flog实现;输入1,查询的是符合你所输入的分数以下的所有高校信息;输入2,查询的是符合你所输入分数段之间的所有高校信息;输入3,查询大于你所给的分数线的高校信息。)当然,你可以再加上一些附加的功能。大致思想就这些。 郑州今迈网络部竭诚为你解答,希望我的答案能帮到你!

我们可以代做,2.4方案

应用太广泛了啊,你只能取其中的几个方面来说,比如说在铁路系统或者是车载电话、水位远程检测系统等等。GSM通信在水位远程检测系统中的应用摘 要:介绍一种利用单片机及GsM无线收发模块构成的水位显示及远程检测系统。在系统中,设计一种简易的水位检测方法以测得水位的状况,通过单片机显示系统在水位现场以LED的方式显示出来,并通过与之相连的GSM模块将水位信息以一种无线的方式发送给远程终端,起到检测的作用。关键词:GSM GSl00 串口通信 远程检测 S9C2051引 言 供水系统中的水塔和高位水池等设备由于所处地势高,上下极为不便,有时水即将用完也不知道,造成需用水时却无水可用的情况。此外,在向池中注入水的过程中,由于不知道水位的情况,也就无法控制注水量的多少,这会严重影响正常的工作效率。为此需要对水位进行自动显示、监测和报警。传统的水位检测系统一般通过有线方式与监控中心取得联系,这种方式不但维护起来困难,而且在很大程度上限制了其在时空上的拓展性。采用GSM模块与单片机构成的系统则能够解决以上的问题。通过单片机的并行I/0口可以很方便的实现水位的显示功能。现有的GSM网络在全国范围内实现了联网和漫游,具有网络能力强的特点,用户无需另外组网,在极大提高网络覆盖范围的同时为客户节省了昂贵的建网费用和维护费用。当采用GSM模块时,就可以通过一种无线通信的方式以实现远程终端监控和报警的功能。集群通信系统与GSM通信系统电话互联的实现 概述 系统与通信系统分别属于不同的范畴,有着不同的服务对象和用途,无法相互替代。集群通信系统服务于专网用户,已发展成为一种多用途、高效能、低投入、调度通信与电话通信相结合的先进移动通信系统。与其它移动通信系统相比,集群通信系统信道利用率高,具有更强的快速接入和处理突发事件的能力,在部队、公安、交通、水利、地震等部门得到了广泛应用。GSM通信系统主要服务于公网用户,是目前基于时分多址技术的移动通信体制中比较成熟、完善、应用最广泛的一种系统,信号覆盖范围广,用户遍及社会各部门各阶层。在由集群通信系统构建的应急移动通信系统中,在某些应用场合,如抢险救灾,因为要涉及众多的部门和人员,保证系统同外界的通信畅通有时甚至比保证系统内部的通信畅通还重要。正如集群通信系统与PSTN电话互联,使得专网通信扩展到了公网有线通信网络一样,集群通信系统与GSM通信系统电话互联,可使得专网通信扩展到公网无线通信网络,从而可充分利用GSM通信系统的技 术优势,大大增强集群通信系统的应急通信能力。 基于上述应用背景,本文对集群通信系统与GSM通信系统的电话互联进行了研究,提出了一种实用的系统电话互联方案,并阐述了具体的软硬件设计过程。GSM网络通信在车载定位系统中的应用 GSM(全球移动通信系统)是ETSI(欧洲无线电通信标准委员会)制定的欧洲蜂窝移动通信标准。GSM最重要的业务是语音通信,语音被数字编码并作为数据流,以电路交换的模式被GSM网络传输。但是它使用的电路交换信道在空气界面上允许的最大传输率为14.4kbit/s,因此GSM受到限制。GPRS是在GSM标准基础上基于分组交换技术的主要发展,它提供给无线用户高得多的传输速率以满足爆炸性的数据传输的需要。在理论上GPRS用户可以同时使用几个时隙(分组数据信道)以达到最高为170kbit/s的传输速率。由于信道仅仅在数据包被传送或接收时被分配给用户,这使得基于流量收费成为可能。大量的数据业务使得在用户间有效平衡网络资源,因为业务供应商可以使用传输时隙用于其他用户活动。通用分组无线业务(GPRS),作为移动电话标准GSM的数据延伸,正被看作是第一种真正的分组转换结构,它使得移动用户能够从高速传输数率中得益,而且可以通过他们的移动终端完成各种数据业务应用。GPRS业务被划分为类:PTP(点对点)和PTM(点对多点)业务。全球定位系统(GPS)是美国国防部经20多年的试验研究,耗资100多亿美元,于1993年12月正式全面投入运行的新一代星际无线电导航系统。它的出现和发展已带动起一个潜力巨大、竞争日趋激烈的新兴市场,据最新统计数字表明,目前GPS的全球用户逾400万,相关产品和服务市场正在迅速扩大,GPS已发展成为一个重要的产业。随着汽车工业的发展和交通管理的智能化,车辆GPS导航定位将成为全球卫星定位系统应用的最大潜力市场之一。就我国国情来说,车辆GPS导航定位在专用车辆调度监控、公交车智能管理、出租车运营管理等领域具有广阔的市场前景。通信分系统是车辆GPS导航定位的关键分系统之一。过去,通信分系统通过无线电台等相关方式来实现,存在频率资源紧张、覆盖范围小等问题。

毕业设计(论文)题目:基于51单片机的水位检测 专业:电子测量技术与仪器 班级: 10251 学号: 12 姓名: 黄小桂 指导老师: 周俊 成都工业学院二〇一三年五月摘 要设计一种基于单片机水塔水位检测控制系统。该系统能实现水位检测、电机故障检测、处理和报警等功能,实现超高、低警戒水位报警,超高警戒水位处理。介绍电路接口原理图,给出相应的软件设计流程图和汇编程序,并用Proteus软件仿真。实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性强。水塔供水的主要问题是塔内水位应始终保持在一定范围,避免“空塔”、“溢塔”现象发生。目前,控制水塔水位方法较多,其中较为常用的是由单片机控制实现自动运行,使水塔内水位保持恒定,以保证连续正常地供水。实际供水过程中要确保水位在允许的范围内浮动,应采用电压控制水位。首先通过实时检测电压,测量水位变化,从而控制电动机,保证水位正常。因此,这里给出以intel公司的80C31单片机为核心器件的水塔水位检测控制系统仿真设计,实现水位的检测控制、电机故障检测、处理和报警等功能,并在proteus软件环境下实际仿真。实验结果表明,该系统具有良好的检测控制功能,可移植性和扩展性强。关键词:单片机 水位检测 控制系统 仿真AbstractBased on the design of a single-chip microcomputer control system of water tower water level detection.This system can realize the water level detection,motor fault detection,processing and alarm functions,and realize the high,low water level warning alarm,high warning level processing.The interface circuit schematic diagram,the corresponding software design flow chart and assembler,and simulation with Proteus software. The experimental results show that,the system has good detection and control functions,portability and scalability. The main problem is water tower water tower water should always be kept within a certain range, to avoid "empty tower", "overflow" tower phenomenon. At present, there are many control towers water level method, which is commonly used is controlled by a single chip microcomputer to realize the automatic operation, the water level in the water tower is kept constant, so as to ensure the continuous normal water supply. The actual water supply process to ensure that the water level in the allowed range of floating, should adopt voltage control level. First through the real-time detection of voltage, measure the water level changes, so as to control the motor, to ensure the normal water level. Therefore, the detection and control system simulation of water tower water level given by Intel company 80C31 microcontroller as the core device design, to achieve the level of detection and control, motor fault detection, processing and alarm functions, and in the Proteus Software Environment simulation. The experimental results show that, the system has good detection and control functions, portability and scalability. Key Words: MCU The water level detection control system simulation 目录摘 要IIAbstractIII目录IV第1章 基础知识11.1 单片机系统综述11.1.1 单片机的概念11.1.2 MCS-51 8031介绍11.2 MCS-51 8031单片机内部结构及引脚21.2.1 MCS-51 8031单片机内部结构21.2.2、MCS-51 8031单片机外部引脚41.3 锁存器74LS373简介51.3.1 74LS373真值表5第2章 设计简介72.1 设计方案的选择 7 2.1.1 简单的机械式控制方式 7 2.1.2 复杂控制器控制方式 7 2.1.3 通过水位变化上下限的控制方式 72.2设计说明82.3 系统硬件设计82.3.1水塔水位控制原理82.3.2 硬件设计92.4 软件设计122.4.1设计思路描述122.4.2 设计程序流程图132.4.3 主程序132.5.2软件的功能特点152.6 对四种不同状态的仿真如下17第3章 设计结论与前景223.1 设计结论223.2 设计前景22参考文献23第1章 基础知识1.1 单片机系统综述1.1.1 单片机的概念电子计算机的发展经历了从电子管、晶体管、集成电路到大(超大)规模集成电路共四个阶段,即通常所说的第一代、第二代、第三代和第四代计算机。现在广泛使用的微型计算机是大规模集成电路技术发展的产物,因此它属于第四代计算机,而单片机则是微型计算机的一个分支。从1971年微型计算机问世以来,由于实际应用的需要,微型计算机向着两个不同的方向发展:一个是向高速度、大容量、高性能的高档微机方向发展;而另一个则是向稳定可靠、体积小和价格廉的单片机方向发展。但两者在原理和技术上是紧密联系的。1.1.2 MCS-51 8031介绍80C31单片机,它是8位高性能单片机。属于标准的MCS-51的HCMOS产品。它结合了HMOS的高速和高密度技术及CHMOS的低功耗特征,标准MCS-51单片机的体系结构和指令系统。 80C31内置中央处理单元、128字节内部数据存储器RAM、32个双向输入/输出(I/O)口、2个16位定时/计数器和5个两级中断结构,一个全双工串行通信口,片内时钟振荡电路。但80C31片内并无程序存储器,需外接ROM。 此外,80C31还可工作于低功耗模式,可通过两种软件选择空闲和掉电模式。在空闲模式下冻结CPU而RAM定时器、串行口和中断系统维持其功能。掉电模式下,保存RAM数据,时钟振荡停止,同时停止芯片内其它功能。80C31有PDIP(40pin)和PLCC(44pin)两种封装形式。1.2 MCS-51 8031单片机内部结构及引脚1.2.1 MCS-51 8031单片机内部结构①中央处理单元(8位) 数据处理、测试位,置位,复位 位操作 ②只读存储器(4KB或8KB) 永久性存储应用程序,掩模ROM、EPROM、EEPROM ③随机存取内存(128B、128B SFR) 在程序运行时存储工作变量和资料 ④并行输入/输出口(I / O)(32条) 作系统总线、扩展外存、I / O接口芯片 ⑤串行输入/输出口(2条) 串行通信、扩展I / O接口芯片 ⑥定时/计数器(16位、加1计数) 计满溢出、中断标志置位、向CPU提出中断请求,与CPU之间独立工作 ⑦时钟电路 内振、外振⑧中断系统 五源中断、2级优先结构特点: MCS-51系列单片机为哈佛结构(而非普林斯顿结构) 1)内ROM:4KB 2)内RAM:128B 3)外ROM:64KB 4)外RAM:64KB 5)I / O线: 32根(4埠,每埠8根) 6)定时/计数器:2个16位可编程定时/计数器 7)串行口:全双工,2 根 8)寄存器区:工作寄存器区、在内128B RAM中,分4个区,9)中断源:5源中断,2级优先 10)堆栈:最深128B 11)布尔处理机:位处理机,某位单独处理 12)指令系统:五大类,111条1.2.2、MCS-51 8031单片机外部引脚1)、主电源引脚 Vss 、 Vcc 2)、外接晶振引脚 XTAL1 、 XTAL2 3)、控制或复位引脚 RST / VPD 两个机器周期高电平,单片机复位。 P0 ~ P3 口:输出高电平 SP: 07H SFR、PC:清0 不影响内RAM状态,机器从0地址开始执行。 ALE / PROG:地址锁存控制端 提供1/6 fosc振荡频率,输入编程脉冲EPROM PSEN:外部程序内存的读选通信号端。 EA / VPP:EA = 1 ,访问内部程序内存 当PC值超过内ROM范围(0FFFH)时,自动转执行外部内存的程序 EA = 0 , 只访问外部程序内存。 对8751机,可施加21V编程电源(Vpp) 4)、输入/输出引脚 P0 ~ P3:四个I / O口,每口8线,共同32线。1.3 锁存器74LS373简介74ls373是常用的地址锁存器芯片,它实质是一个是带三态缓冲输出的8D触发器,在单片机系统中为了扩展外部存储器,通常需要一块74ls373芯片.本文将介绍74ls373的工作原理,引脚图(管脚图),内结构图、主要参数及在单片机系统中的典型应用电路。 1.3.1 74LS373真值表由于8051单片机的P0口是分时复用的,因此在进行程序存储器扩展时,需要使用地址锁存器将地址信号从地址/数据总线中分离出来。单片机系统中常用的地址锁存器芯片74LS373以及coms的74hc373。是带三态缓冲输出的8D触发器。第2章 设计简介2.1 设计方案的选择 对于水位进行控制的设计方式有很多,而应用较多的主要有3种,三种方式的实现如下: 2.1.1 简单的机械式控制方式 其常用形式有浮标式、电极式等,这种控制形式的优点是结构简单,成本低廉。存在的问题是精度不高,不能进行数值显示,另外很容易引起误动作,且只能单独控制,与计算机进行通信较难实现。 2.1.2 复杂控制器控制方式 这种控制方式是通过安装在水泵出口管道上的压力传感器,把出口压力变成标准工业电信号的模拟信号,经过前置放大、多路切换、A/D变换成数字信号传送到单片机,经单片机运算和给定参量的比较,进行PID运算,得出调节参量;经由D/A变换给调压/变频调速装置输入给定端,控制其输出电压变化,来调节电机转速,以达到控制水塔水位的目的。 2.1.3 通过水位变化上下限的控制方式 这种控制方式通过在水塔的不同高度固定的不动的3根金属棒ABC,以感知水位的变化情况。其中,A棒处于下限水位,C棒处于上限水位,B棒处于上、下限水位之间。A棒接+5v电源,B棒、C棒各通过一个电阻与地相连。 针对上述3中控制方式,以及设计需达到的性能要求,这里选择第三种控制方式。最终形成的方案是,利用单片机为核心,设计一个对供水箱水位进行监控的系统。当水塔水位下降至下限水位时,启动水泵;水塔水位上升至上限水位时,关闭水泵;水塔水位在上、下限水位之间时,水泵保持原状态;供水系统出现故障时,自动报警;故障解除时,水泵恢复正常工作。2.2设计说明本设计为一个实际应用系统的水塔水位控制部分。在此水塔水位控制系统中,检测信号来自插入水中的3个金属棒,以感知水位变化情况。工作正常情况下,应保持水位在某一范围内,当水位变化发生故障的时候,及时关断电机电源,发出声、光报警信号。(1)完成单片机硬件的设计,包括:CPU、存储器(外扩ROM、RAM)、输入/输出接口(外扩并行I/O口)以及总线连接部分(附控制电路原理图)。(2)完成控制软件的设计(附控制软件清单)。2.3 系统硬件设计2.3.1水塔水位控制原理单片机水塔水位控制原理图1所示,图中的A、B表示允许水位变化的上、下限位置。由于题目中所要求的金属导体在长时间置于水和空气中会被氧化,因此导电性会下降,这样会影响系统的正常工作,所以本设计需要改动部分控制硬件,上部两个导体分别用浮子开关代替,第三个不需要置于水中,而将它直接接地然后串入电阻接入电路中。在正常情况下,水位应控制在上下限的范围之内。为此,在水塔内的不同高度处,安装固定不变的两个浮子开关A、B,利用杠杆原理, A浮子控制开关A,B浮子控制开关B,受到浮力时开关打开,A靠近水塔上部,B靠近水池底部,A、B之间足够距离,要保证有足够大的流水量。水塔由电机带动水泵供水,单片机控制电机转动,随着供水,水位不断上升,当水位上升到上限水位时,由于水的浮力作用,使浮子开关A,B均断开。因此b、c两端的电压都为+5 V即为“1”状态.此时应停止电机和水泵工作,不再向水塔注水;当水位处于上、下限之间时,B开关断开和A开关闭合, b端为“1”状态,c端为“0”状态。此时电机保持原来的运行状态,使水位上升或下降,当水位处于下限位置以下时,A,B开关都断开,b、c均为“0”状态,此时应启动电机转动,带动水泵给水塔注水。当开关A断开B闭合(这种状态在正常情况下不会出现,因此必有一浮子出现故障)停止电机运转,报警器打开。图1所示水塔浮子的控制原理。图1 水塔水位浮子开关控制原理图2.3.2 硬件设计 (1)电路设计水塔水位控制系统主要由CPU(80C31)、水位检测接口电路、报警接口电路、存储器扩展接口电路、复位电路、时钟振荡等部分组成,图2为系统硬件电路。图2 系统硬件电路(2) 选用的设备列表如表1所示: 表1 元件列表单片机8031芯片 一片锁存器74LS373,27327406,74LS04各一件电动机 一台浮子开关 两件发光二极管,二极管1N914 各一个电容5p和20p,晶振电容 各一件直流电源 5V,电机电源电压电阻 三个导线 若干(3)水位检测接口电路为了便于实现水位检测功能,用一个两位的浮子开关A,B模拟P1.1和P1.0端的状态(0、1),浮子开关另一端接地,每个负电极分别通过4.7 k的电阻(R1,R2)接+5V电源。将单片机的P1.0端口接开关B,P1.1端口接开关A。假设被水淹没的负电极都为高电平,此时开关置1;露在水面的负电极都为低电平,开关此时置为0。单片机通过负电极重复采集检测水位,当缺水时(此时两个开关均置0),电机必须带动水泵抽水;若水位在正常范围内时,检测信号为高,低电平(此时开关B置1,开关A置0);当水位过高时,检测信号为高电平(此时开关A和B都置1),单片机检测到P1.0和P1.1为高电平后,立即停机。(4)报警接口电路 为了避免系统发生故障时,水位失去控制造成严重后果,在超出、低于警戒界水位时,报警信号直接从高、低警界水位电极获得。单片机P1.3端口为启动电机命令输出端口,P1.3=0为低电平,经过非门和驱动器7406后与电机的另一端接地导通,启动电机工作;P1.3=l为高电平,反之,电机停止工作。电机故障报警由单片机控制,电机故障报警信号由P1.3输人。当P1.3为高电平时蜂鸣器报警。水位超过高警戒水位,单片机控制系统使电机停止转动,向水塔内供水工作也停止。(5)存储器扩展接口电路 为了便于系统扩展,存放大容量应用程序,系统设计扩展一片程序存储器,用于存放源程序代码。74LS373用于锁存地址,单片机的P0.0~P0.7通过复用方式分别接锁存器74LS373的DO~D7和存储器2732的D0~D7端,地址锁存信号线ALE接锁存器的OE端,通过软件设置实现地址和数据信息的传输,锁存器的输出端Q0~Q7与存储器地址线A0~A7相连,剩余的3根地址线A8~A11接P2.0~P2.2.单片机选通引脚接存储器OE端,因只扩展一片存储器,片选端CE接地。(6) 各设备的地址分配各元件所接端口以及对应地址如表2 所示1 2 3 4P1口 P1.0 P1.1 P1.2 P1.3元件 开关B 开关A 电动机 报警等地址 90H 91H 92H 93H表22.4 软件设计2.4.1设计思路描述当水塔水位处于上、下限之间时,P1.0=l,P1.1=0,此时无论电机是在带动水泵给水塔供水使水位不断上升还是电机没有工作使水位不断下降,都应继续维持原有工作状态;当水位低于下限时,P1.0=0,P1.1=0,此时启动电机转动,带动水泵给水塔供水。水位检测信号与输出控制操作关系如表3所示: 表3 水位检测信号与输出控制操作表 P1.1 (A) P1.0 (B) 运行状态 0 0 电机运转0 1 维持电机运行状态1 1 电机停转1 0 故障报警2.6 对四种不同状态的仿真如下(1) 当A,B两开关都闭合,即水位未到达开关B时,电机运转,如图4所示:图4(2)当A开关闭合,B开关断开,即水位适中,电机维持原状,如图5所示:图5(3)当两开关都断开即水位超过了上线时,电机停转。如图6所示:图6(4)当A断开B闭合即浮子开关出现故障,电机停转且系统报警。如图7所示:图7

基于单片机的pm25检测论文

用DS18B20做的电子温度计,非常简单。#include #include\"AscLed.h\"#include #include //********************************************************#define Seck (500/TK) //1秒中的主程序的系数#define OffLed (Seck*5*60) //自动关机的时间5分钟!//********************************************************#if (FHz==0) #define NOP_2uS_nop_()#else #define NOP_2uS_nop_();_nop_()#endif//**************************************#define SkipK 0xcc //跳过命令#define ConvertK 0x44 //转化命令#define RdDs18b20K 0xbe //读温度命令//*******************************************extern LedOut(void);//*************************************************sbit PNP1=P3^4;sbit PNP2=P3^5;sbit BEEP=P3^2;//***********************************#defineDQ PNP2 //原来的PNP2 BEEP//***********************************static unsigned char Power=0;//************************************union{ unsigned char Temp[2]; //单字节温度 unsigned int Tt; //2字节温度}T;//***********************************************typedef struct{ unsigned char Flag; //正数标志 0;1==》负数 unsigned char WenDu; //温度整数 unsigned int WenDuDot; //温度小数放大了10000}WENDU; //***********************************************WENDU WenDu;unsigned char LedBuf[3];//----------------------------------//功能:10us 级别延时// n=1===> 6Mhz=14uS 12MHz=7uS//----------------------------------void Delay10us(unsigned char n){ do{ #if (FHz==1) NOP_2uS;NOP_2uS; #endif }while(--n);}//-----------------------------------//功能:写18B20//-----------------------------------void Write_18B20(unsigned char n){ unsigned char i; for(i=0;i<8;i++){ DQ=0; Delay10us(1);//延时13us 左右 DQ=n & 0x01; n=n>>1; Delay10us(5);//延时50us 以上 DQ=1; }}//------------------------------------//功能:读取18B20//------------------------------------unsigned char Read_18B20(void){ unsigned char i; unsigned char temp; for(i=0;i<8;i++){ temp=temp>>1; DQ=0; NOP_2uS;//延时1us DQ=1; NOP_2uS;NOP_2uS;//延时5us if(DQ==0){ temp=temp&0x7F; }else{ temp=temp|0x80; } Delay10us(5);//延时40us DQ=1; } return temp;}//-----------------------------------void Init (void){ DQ=0; Delay10us(45);//延时500us DQ=1; Delay10us(9);//延时90us if(DQ){ //0001 1111b=1f Power =0; //失败0 }else{ Power++; DQ=1; }}//----------------------------------void Skip(void){ Write_18B20(SkipK); Power++;}//----------------------------------void Convert (void){ Write_18B20(ConvertK); Power++;}//______________________________________void Get_Ds18b20L (void){ T.Temp[1]=Read_18B20(); //读低位 Power++;}//______________________________________void Get_Ds18b20H (void){ T.Temp[0]=Read_18B20(); //读高位 Power++;}//------------------------------------//规范化成浮点数// sssss111;11110000// sssss111;1111(0.5,0.25,0.125,0.0625)//------------------------------------void ReadTemp (void){ unsigned char i; unsigned intF1=0; char j=1; code int Code_F[]={6250,1250,2500,5000}; WenDu.Flag=0; if (T.Temp[0] >0x80){ //负温度 T.Tt =~T.Tt+1; //取反+1=源吗 +符号S WenDu.Flag=-1; } T.Tt <<= 4; //左移4位 WenDu.WenDu=T.Temp[0]; // 温度整数 //************************************************** T.Temp[1]>>=4; //--------------------------- for (i=0;i<4;i++){ //计算小数位 F1 +=(T.Temp[1] & 0x01)*Code_F; T.Temp[1]>>=1; } WenDu.WenDuDot=F1; //温度的小数 Power=0;}//----------------------------------void Delay1S (void){ static unsigned int i=0; if (++i==Seck) {i=0ower++;}}//----------------------------------void ReadDo (void){ Write_18B20(RdDs18b20K); Power++;}/**********************************函数指针定义***********************************/code void (code *SubTemp[])()={ Init,Skip,Convert,Delay1S,Init,Skip,ReadDo,Get_Ds18b20L, Get_Ds18b20H,ReadTemp};//**************************************void GetTemp(void){ (*SubTemp[Power])();}//---------------------------------------------------//将温度显示,小数点放大了10000.void GetBcd(void){ LedBuf[0]=WenDu.WenDu / 10; LedBuf[1]=WenDu.WenDu % 10 +DotK; LedBuf[2]=(WenDu.WenDuDot/1000)%10; if(LedBuf[0]==0)LedBuf[0]=Black; if(WenDu.Flag==0) return; if(LedBuf[0] !=Black){ LedBuf[2]=LedBuf[1]; LedBuf[1]=LedBuf[0]; LedBuf[0]=Led_Pol; //'-' }else{ LedBuf[0]=Led_Pol; //'-' }}/*//---------------------------------------------------void JbDelay (void){ static long i; if (++i>=OffLed){ P1=0xff; P2=0xff; PCON=0x02; }}*//*****************************************************主程序开始1:2002_10_1 设计,采用DS18B20测量2:采用函数数组读取DS18B20.LED数码管显示正常!3:改变FHz可以用6,12MHz工作!******************************************************/code unsigned char Stop[3] _at_ 0x3b;void main (void){ P1=0xff; WenDu.WenDu=0; while (1){ GetTemp(); GetBcd(); // JbDelay(); LedOut(); }}复制代码 20091012_8b1ef92155560c13b5807ZmoDVSacjwD[1].jpg (12 KB) 2009-10-21 23:21 上传下载次数:0

已把我毕业论文的一部分发给你了,应该是你想要的。还需要其它的说一声

我做的课程设计,用的数码管,也做了protues仿真,你有需要的话,我邮箱是。希望对你有帮助,#includesbit P11=P1^1;sbit P12=P1^2;sbit P13=P1^3;sbit P14=P1^4;/////数码管1断码控制///////////////sbit P15=P1^5;sbit P16=P1^6;sbit P17=P1^7;sbit P32=P3^2;/////数码管2段码控制////////////////sbit up=P3^7;sbit down=P3^6; ////按键操作端口//////////////////sbit P35=P3^5; ////////控制晶闸管端口/////////sbit DQ =P3^3; ///////温度传感器端口///////// #define THCO 0xee#define THLO 0x00unsigned char code duan[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0x88,}; //////////////////////////////////////////int b=0;char pwm=0;int k;char r=0,q=0;static char wendu_1;char hao=20;//////////////////////////////////////////////void delay(unsigned int i){while(i--);}//////////////////////////////////////////Init_DS18B20(void){unsigned char x=0;DQ = 1; //DQ复位delay(8); //稍做延时DQ = 0; //单片机将DQ拉低delay(80); //精确延时 大于 480usDQ = 1; //拉高总线delay(14);x=DQ; //稍做延时后 如果x=0则初始化成功 x=1则初始化失败delay(20);}////////////////////////////////////////////ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat|=0x80;delay(4);}return(dat);}////////////////////////////////////////////////WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay(5);DQ = 1;dat>>=1;}//delay(4);}/////////////////////////////////////////////////DS18B20程序读取温度ReadTemperature(void){unsigned char a=0;unsigned char b=0;unsigned int t=0;float tt=0;Init_DS18B20();WriteOneChar(0xCC); // 跳过读序号列号的操作WriteOneChar(0x44); // 启动温度转换Init_DS18B20();WriteOneChar(0xCC); //跳过读序号列号的操作WriteOneChar(0xBE); //读取温度寄存器等(共可读9个寄存器) 前两个就是温度a=ReadOneChar();b=ReadOneChar();t=b;t<<=8;t=t|a;tt=t*0.0625;return(t);}xianshi(){/////////////////当前温度显示///////////////////////////// P11=1; P0=duan[wendu_1/1000]; for(k=0;k<1000;k++); P1=0;P12=1; P0=duan[wendu_1/100%10]; for(k=0;k<1000;k++); P1=0;P13=1; P0=duan[wendu_1%100/10]; for(k=0;k<1000;k++); P1=0;P14=1; P0=duan[wendu_1%10]; for(k=0;k<1000;k++); P1=0; ///////////////////////////目标电压显示/////////////// P15=1; P2=duan[hao/1000]; for(k=0;k<1000;k++); P1=0;P16=1; P2=duan[hao/100%10]; for(k=0;k<1000;k++); P1=0;P17=1; P2=duan[hao%100/10]; for(k=0;k<1000;k++); P1=0;P32=1; P2=duan[hao%10]; for(k=0;k<1000;k++); P32=0;////////////////////////////////////////////////////////// }/////////////////////////////////////////////////////////// main(void){ P11=0; P12=0; P13=0; P14=0; P15=0; P16=0; P17=0; P32=0; P35=0; /////////////////////////////////////////////////////////// while(1){ wendu_1=ReadTemperature()/16;//读温度 xianshi(); ///显示系统数据/////////////////////////////////////操作函数//////////////////////////////////// if(down==0) {hao--;} if(up==0){hao++;} ///////////////////////////////////////////////////////////////////hao为理想温度/////wendu_1为实际环境温度/////////////////////////////////////////////////////////////////P35为高时 led灯工作///////////////////////////////////// P35=0; pwm=hao-wendu_1; if(pwm>0) {P35=1;} if(pwm<0) {P35=0;} if(pwm==0) {P35=0;}///////////////////////////////////////////////////////////////// }}

这是我自己用DS18B20做的温度检测程序,复制给你看看,我这是通过串口可以在电脑上的串口助手上显示出实时的温度:#include#include#define uint unsigned int#define uchar unsigned charsbit ds=P1^0;bit flag;uchar count_t0;float f_temp;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=122;y>0;y--);}void init() // 串口初始化{TMOD=0x21;SCON=0x50;TH0=0x4c;TL0=0x00;TH1=0xf3;TL1=0xf3;EA=1;ET0=1;TR0=1;TR1=1;}void timer0() interrupt 1{TH0=0x4c;TL0=0x00;if(++count_t0>=20){count_t0=0;flag=1;}}void dsreset(){uint i;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bit read_bit(){uint i;bit dat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return dat;}uchar read_byte(){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=read_bit();dat=(j<<7)|(dat>>1);}return dat;}void write_byte(uchar dat){uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb){ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else{ds=0;i=8;while(i>0)i--;ds=1;i++;i++;}}}void begin_change(){dsreset();delay(1);write_byte(0xcc);write_byte(0x44);}float get_temp(){uchar a,b;uint temp;float f_temp;dsreset();delay(1);write_byte(0xcc);write_byte(0xbe);a=read_byte();b=read_byte();temp=b;temp<<=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp=f_temp+0.05;return f_temp;}void main(){init();while(1){if(flag==1){flag=0;begin_change();TI=1;printf("The tempeature is %f\n",get_temp());while(!TI);TI=0;}}}

基于单片机检测pm25论文

已把我毕业论文的一部分发给你了,应该是你想要的。还需要其它的说一声

试题: A甲1025参赛试题: 点阵电子显示屏(A题)参赛学生:冯元伟 物理与微电子学院 关童 物理与微电子学院 田立志 材料学院包装工程 参赛学校:山东大学 指导老师:陈延俊 秦峰 王延伟 仪维2006年9月11日目 录第一部分 摘要 ……………………………………………………...3第二部分 1.设计任务………………………………………………..4 1.1基本要求………………………………………………………….........4 1.2发挥部分……………………………………………………………….4 1.3创新部分……………………………………………………………….4 2.方案论证与比较………………………………………5 2.1 显示部分……………………………………………………………….5 2.2 数字时钟……………………………………………………………….5 2.3 温度采集部分………………………………………………………….6 2.4 芯片选择……………………………………………………………….6 2.5 闹铃方式的选择……………………………………………………….6 2.6 止闹方式的选择……………………………………………………….6 2.7 串口通讯芯片的选择………………………………………………….6 3. 总体方案……………………………………………….7 3.1 工作原理……………………………………………………………….7 3.2 总体设计……………………………………………………………….7 4.系统硬件设计…………………………………………7 4.1 AT89S52单片机最小系统…………………………………………...8 4.2 温度测量模块………………………………………………………...8 4.3 时钟模块……………………………………………………………..8 4.4 键盘模块……………………………………………………………..9 4.5 LED点阵显示模块………………………………………………….10 4.6 电源的选择………………………………………………………….11 4.7 PC机通讯……………………………………………………………12 4.8 整体电路…………………………………………………………….12 5.系统软件设计………………………………………….7 5.1 主程序流程………………………………………………………….13 5.2 扫描子程序………………………………………………………….14 5.3 时间程序…………………………………………………………….15 5.4 PC机串口通讯程序…………………………………………………15 5.5 亮度调节程序………………………………………………………16 5.6 温度程序…………………………………………………………….17 6.测试与结果分析……………………………………...17 6.1 基本部分测试与分析……………………………………………….17 6.2 发挥部分测试与分析……………………………………………….18 6.3 创新部分测试与分析……………………………………………….18 7.设计总结……………………………………………...18 8.参考资料……………………………………………...18附录……………………………………………………………18例程…………………………………………………………......................................18摘要 LED大屏幕显示系统,以AT89S52单片机为核心,由键盘显示、录放音模块、光电开关、温度采集、定时闹铃、LED大屏幕显示等功能模块组成。基于题目基本要求,本系统对时间显示和大屏幕显示进行了重点设计。此外,扩展单片机外围接口、温度采集、非接触式止闹、滚动屏幕显示、语音报时等功能。本系统大部分功能由软件来实现,吸收了硬件软件化的思想,大部分功能通过软件来实现,使电路简单明了,系统稳定性大大提高。本系统不仅成功的实现了要求的基本功能,发挥部分也得到完全的实现,而且有一定的创新功能。 关键字:单片机 LED大屏幕 滚屏显示 Abstract This large LED display screen system ,based on chip microcomputer AT89S52,is composed by the following functional modules : keyboard displaying ,sound phonating. photoelectricity untouched switch,temperature gathering ,timing bell, According to the basic requirements of the subject ,our system stresses on the realization of time displaying and large screen displaying ,Furthermore ,we also extend the primary function ,adding new functions ,such as the single chip peripheral ports ,temperature gathering ,untouched ring-stop, scroll screen display, sound timing .and so on. Adopting the idea of hardware-to-software, most of those functions are realized by softwares, which makes the electrocircuit more concise and the system more stable ,The design achieved and even exceeded all the required basic technical indexes Key words: chip microcomputer large screen display system scroll screen display1任务设计1.1 基本要求:设计并制作LED电子显示屏和控制器。1.1.1 自制一台简易16行*32列点阵显示的LED电子显示屏; 1.1.2 自制显示屏控制器,扩展键盘和相应的接口实现多功能显示控制,显示屏显示数字和字母亮度适中,应无闪烁。 1.1.3 显示屏通过按键切换显示数字和字母;1.1.4 显示屏能显示4组特定数字或者英文字母组成的句子,通过按键切换显示内容;1.1.5 能显示4组特定汉字组成的句子,通过按键切换显示内容。1.2发挥部分:1.2.1自制一台简易16行*64列点阵显示的LED电子显示屏;1.2.2 LED显示屏亮度连续可调。1.2.3 实现信息的左右滚屏显示,预存信息的定时循环显示;1.2.4 实现实时时间的显示,显示屏数字显示: 时∶分∶秒(例如 18∶38∶59);1.2.5增大到10组(每组汉字8个或16个数字和字符)预存信息,信息具有掉电保护;1.2.6实现和PC机通讯,通过PC机串口直接对显示信息进行更新(须做PC机客户程序);1.3 创新部分 1.3.1 室温的测量 1.3.2 定时闹铃 1.3.3 整点报时 1.3.4 非接触止闹 2、方案论证2.1 显示部分: 显示部分是本次设计最核心的部分,对于LED8*8点阵显示有以下两种方案: 方案一:静态显示,将一帧图像中的每一个二极管的状态分别用0 和1 表示,若为0 ,则表示L ED 无电流,即暗状态;若为1 则表示二极管被点亮。若给每一个发光二极管一个驱动电路,一幅画面输入以后,所有L ED 的状态保持到下一幅画。对于静态显示方式方式,所需的译码驱动装置很多,引线多而复杂,成本高,且可靠性也较低。 方案二:动态显示,对一幅画面进行分割,对组成画面的各部分分别显示,是动态显示方式。动态显示方式方式,可以避免静态显示的问题。但设计上如果处理不当,易造成亮度低,闪烁问题。因此合理的设计既应保证驱动电路易实现,又要保证图像稳定,无闪烁。动态显示采用多路复用技术的动态扫描显示方式, 复用的程度不是无限增加的, 因为利用动态扫描显示使我们看到一幅稳定画面的实质是利用了人眼的暂留效应和发光二极管发光时间的长短, 发光的亮度等因素. 我们通过实验发现, 当扫描刷新频率(发光二极管的停闪频率) 为50Hz, 发光二极管导通时间≥1m s 时, 显示亮度较好, 无闪烁感.。 鉴于上述原因, 我们采用方案二 2.2.数字时钟 数字时钟是本设计的重要的部分。根据需要,可利用两种方案实现。 方案一:本方案完全用软件实现数字时钟。原理为:在单片机内部存储器设三个字节分别存放时钟的时、分、秒信息。利用定时器与软件结合实现1秒定时中断,每产生一次中断,存储器内相应的秒值加1;若秒值达到60,则将其清零,并将相应的分字节值加1;若分值达到60,则清零分字节,并将时字节值加1;若时值达到24,则将时字节清零。该方案具有硬件电路简单的特点,但当单片机不上电,程序将不执行。且由于每次执行程序时,定时器都要重新赋初值,所以该时钟精度不高。 方案二:本方案采用Dallas公司的专用时钟芯片DS1302。该芯片内部采用石英晶体振荡器,其芯片精度不大于10ms/年,且具有完备的时钟闹钟功能,因此,可直接对其以用于显示或设置,使得软件编程相对简单。为保证时钟在电网电压不足或突然掉电等突发情况下仍能正常工作,芯片内部包含锂电池。当电网电压不足或突然掉电时,系统自动转换到内部锂电池供电系统。而且即使系统不上电,程序不执行时,锂电池也能保证芯片的正常运行,以备随时提供正确的时间。 基于时钟芯片的上述优点,本设计采用方案二完成数字时钟的功能。2.3 温度采集部分 能进行温度测量是本设计的创新部分,由于现在用品追求多样化,多功能化,所以我们决定给系统加上温度测量显示模块,方便人们的生活,使该设计具有人性化。 方案一:采用热敏电阻,可满足 40 摄氏度至 90 摄氏度测量范围,但热敏电阻精度、重复性、可靠性较差,对于检测小于 1 摄氏度的信号是不适用的。 方案二:采用温度传感器DS18B20。DS18B20可以满足从-55摄氏度到+125摄氏度测量范围,且DS18B20测量精度高,增值量为0.5摄氏度,在一秒内把温度转化成数字,测得的温度值的存储在两个八位的RAM中,单片机直接从中读出数据转换成十进制就是温度,使用方便。 基于DS18b20的以上优点,我们决定选取DS18b20来测量温度。2.4 芯片的选择 方案一:采取并口输入,占用大量I/O口资源 方案二:选取串口输入,使用较少。所以我们选用串口输入。串口输入我们可以选用芯片有74HC595、74LS164、TPIC6B595。但是74HC595和74LS164两种芯片必须加驱动才能驱动LED,而TI 公司的DMOS 器件TPIC6B595 , 除具有TTL 和CMOS 器件中移位寄存器595 的逻辑功能外, 其最大的特点是驱动功率大, 可直接用作LED的驱动。 综合以上比较,我们选取TPIC6B595来驱动LED点阵。2.5 闹铃方式的选择 方案一:采用蜂鸣器闹铃,当到设定时间时,单片机向蜂鸣器送出高电平,蜂鸣器发生。采用蜂鸣器闹铃结构简单,控制方便,但是发出的闹铃声音单一。 方案二:采用录音放音芯片1420闹铃,先对录放音设备录入一段音乐,当到设定时间时,单片机控制录放音设备放音。采用录放音电路铃声可以自己预先设定一段自己喜欢的音乐,符合电器设备人性化的要求。且1420芯片可以分段录音,还具有语音报时功能。 基于录音放音芯片1420的以上优点,我们决定采用录放音设备闹铃。 2.6 止闹方式的选择 一般钟表都具有闹钟功能,到设定时间,便自动启动闹钟,发出音乐提醒人们,再由人按下止闹按钮停止闹钟工作。 一般每天只能设置一次闹钟、并要由人按下按钮止闹,使用不是很方便。 智能处理器应用可改变这种状况,一天可按自己需要设置闹钟的开关、多次闹钟设置并可用非接触方式止闹。 方案一:采取远程红外遥控止闹,遥控器发出特定红外信号时,单片机接受到信号,向发音设备发出停止信号止闹。红外遥控止闹控制距离远,但是价格昂贵,增加了制造成本。 方案二:采取光电传感器,当用一物体遮挡光电传感光电传感器向单片机接口送出一个低电平,单片机立即向发音设备发出停止信号止闹。光电传感器价格便宜,线路简单,易于控制。 基于以上比较我们决定采用光电传感器止闹。2.7 串口通讯芯片的选择 AT89S52串行口采用的是TTL电平,因此必须的有电平转换电路,可以选择1488,1489,MAX232A. 方案一:采用1488或1489芯片实现电平转换,但在使用中发现这两种芯片可靠性不高,且需要正负12V电源,使用麻烦。 方案二:采用单电源电平转换芯片MAX232A可以使电路变得简单,可靠。 基于以上分析,我们选用方案二,选用芯片MAX232A2.8 电源模块 方案一:采用干电池作为LED点阵系统的电源,由于点阵系统耗电量较大,使用干电池需经常换电池,不符合节约型社会的要求。点阵系统要悬挂在墙上,电池总量大,使用会有较大安全隐患。 方案二:采用200W/5V直流稳压电源作为系统电源,不仅功率上可以满足系统需要,不需要更换电源,并且比较轻便,使用更加安全可靠 基于以上分析,我们决定采用方案二3、总体方案3.1 工作原理: 利用单片机AT89S52单片机作为本系统的中控模块。单片机可把由DS18B20、DS1302读来的数据利用软件来进行处理,从而把数据传输到显示模块,实现温度、日历的显示。点阵LED电子显示屏显示器为主要的显示模块,把单片机传来的数据显示出来,并且可以实现滚动显示。利用光电传感器来实现非接触止闹功能。在显示电路中,主要靠按键来实现各种显示要求的选择与切换。3.2 总体设计 设计总体框图如图14、系统硬件设计(单元电路设计及分析) 4.1 AT89S52单片机最小系统: 最小系统包括晶体振荡电路、复位开关和电源部分。图2为AT89S52单片机的最小系统。4.2 温度测量模块: 温度测量传感器采用DALLAS公司DS18B20的单总线数字化温度传感器,测温范围为-55℃~125℃,可编程为9位~12位A/D转换精度,测温分辨率达到0.0625℃,采用寄生电源工作方式, CPU只需一根口线便能与DS18B20通信,占用CPU口线少,可节省大量引线和逻辑电路。接口电路如图3所示。图3 DS18B20测量电路4.3 时钟模块 时钟模块采用DS1302芯片,DS1302 是DALLAS 公司推出的涓流充电时钟芯片内含有一个实时时钟/日历和31 字节静态RAM 通过简单的串行接口与单片机进行通信实时时钟/日历电路提供秒分时日日期月年的信息每月的天数和闰年的天数可自动调整时钟操作可通过AM/PM 指示决定采用24 或12 小时格式DS1302 与单片机之间能简单地采用同步串行的方式进行通信仅需用到三个口线1 RES 复位2 I/O 数据线3 SCLK串行时钟时钟/RAM 的读/写数据以一个字节或多达31 个字节的字符组方式通信DS1302 工作时功耗很低保持数据和时钟信息时功率小于1mW,其接线电路如图4 图4 时钟电路4.4 键盘模块 键盘、状态显示模块:为了使软件编程简单,本设计利用可编程芯片8255。接法如表1所示。PA口接按键,PC口则用于控制状态显示所用LED点阵。每个按键都通过一个10K的上拉电阻接电源+Vcc,按键的另一端接地。当有键按下时,与该键相连的PA口的相应位变为低电平,单片机检测到该变化后即转到相应的键处理程序,同时在程序中点亮LED点阵。模块电路如图54.5 LED显示模块 点阵数据串行输入, 器件为 移位寄存器TPIC6B595595, 门控和扫描信号常以16 点阵为一行进行并行处理。在点阵显示中以4×8个L ED 点阵构成一个L ED 显示单元, 采用行共阳列共阴的编排方式。其驱动分为行列两部分, 分别来自于行、列移位寄存器, 行数据是扫描数据, 16 行中每次只有一行被驱动, 采用逐行扫描方式, 列数据则为汉字的点阵码。。对于字符和图形显示也可以用点阵处理, 其显示原理和方法相同.电路如图6 图6 LED显示电路4.6电源选择: 200W/5V的直流稳压电源更加安全电路图如图7图7 电源电路4.7 PC机通讯 MAX232是标准的串口通信接口,对于一般的双向通讯,只需要使用串行输入口RXD(第3脚)、串行输出TXD(第2脚)和地线(第7脚)。MAX232逻辑电平的规定如表2. 表 2 逻辑电平表逻辑值 电平幅值 (v) 0 3+~+15 1 3-~-15 图8 串口通讯4.8整体电路系统整体电路如下: 图9 整体电路5、系统软件设计5.1主程序如图105.2显示子程序流程如图 115.3 显示时间子程序流程如图12图12 时间子程序流程图5.4 与PC串口通讯程序5.5 LED亮度调节图 14 LED亮度调节5.6温度测量流程图如图15 图15 温度测量程序流程图6、测量及其结果分析6.1 基本部分测试与分析6.11 测试仪器: 秒表 、温度表、万用电表、WAVE仿真器6.12基本要求部分的测试与分析: (1)系统上电后,全屏点亮,没有暗点。接着显示时间。按“#”键后时扫描键盘,当有1~10键按下时,分别显示十段设定的数字、英文或汉字。 (2)显示时间时通过与秒表对比,测试的系统时间准确。6. 2 发挥部分测试与分析:(1) 当按下#后在按下进入亮度调节,按下“+”键时,亮度增加。按下“—”键时,亮度变弱。(2) 可以实现文字左右移动 (3) 按下“设置时间”键,观察到“钟表” 二极管点亮,此时可对时间进行设置。按下“时间设置“进入时调试,按“+”键时间加。在按下“切换”键时,进入分调整模式,按下“+”键,分增加。按下“选择”键时,分调整模式改为秒调整模式,按下“+”键秒增加。经测试该步可以很好的实现。调整时间完毕后,再按一下“闹钟设置”进入闹铃设置状态,按下“+”键设定“时”增加,在按下“选择”键进入分的设置,按下“+”键设定“分”增加。在按下“选择”键进入秒设置模式,按“+”键秒增加。(4)系统可以显示10组,每组8个汉字,完成要求 6.3 创新部分测试与分析(1)温度测量: 键盘切换现场环境温度显示:按“功能”键选择“温度”,将温度传感器和温度计放入不同的测试环境中进行测试,结果如表1所示。 表1 与标准温度计测量值比较表 温度计示值(摄氏度) 10.3 25.2 49.7 70.1 85.5 温度输出(摄氏度) 10 25 50 70 86 由测试知,数字钟的输出与温度计值基本上相等,误差不大于0.5度。(2) 当到设定时间时,开始访一段音乐,完成定时闹铃功能。(3)当用手遮挡光电传感器后,停止放音。手拿开后,不再放音,直到到设定时间。完成非接触止闹功能7、设计总结 全心准备了整整一个酷暑,9月8日我们终于拿到了试题,我们一致选择控制类题目A(LED点阵),从基本方案的制定,在到硬件电路的选择,到制作电路制作,最后进行程序调试。在此期间我们遇到很多困难,几乎没有说过一次好觉,尽管很艰苦,但是我们各自分工,相互协作,一次又一次品尝到了解决问题的喜悦,最终完成了要求的全部功能,并加入了一些创新的部分。在竞赛中我们发现了自己知识的不足,通过四天三夜的奋斗,也可以说四天三夜的学习,我们学到了很多东西,最重要的是我们学会了一种精神————永不放弃。在以后的时间里面我们会用这种精神去学习,更上一层楼。8、参考资料 [1]《基于单片机结构的智能系统设计与实现》 沈红卫 编 电子工业出版社 [2]《单片机原理与接口技术》 黄惠媛 编 海洋出版社 [3]《单片机应用技术》 周平 伍云辉 编 电子科技大学出版社 [4]《8051单片机实践与应用》 吴金戌 沈金阳 郭庭吉 编 清华大学出版社 [5]《电子设计竞赛赛题解析》 黄正谨等编 东南大学出版社 附录:例:整屏四个字一起显示的程序SER EQU P1.0 ; TPIC6B595 第3脚OE EQU P1.1;TPIC6B595 第8脚RCK EQU P1.2;TPIC6B595 第12脚MR EQU P1.3;TPIC6B595 第9脚SRCLK EQU P1.4;TPIC6B595 第13脚ORG 0000HLJMP MAINORG 0100H;**************************主程序**********************************MAIN: MOV SP,#70HSETB OE MOV 2BH,#00HMOV 27H,#00HSTART: ;初始化寄存器RAM单元MOV R0, #30HMOV R1,#64H ;30H~6FH单元清零MOV A, #00HST: MOV @R0,A INC R0 DJNZ R1,ST;2Dh------寻址偏址 ;整屏四个字一起显示LOOP:MOV DPTR,#TAB;赋查表初值MOV R3,#56PLAY: MOV 2DH,#00H MOV 2FH,#10HGG: LCALL LINE16;扫描显示一次MOV 2DH,#00HDJNZ 2FH,GGMOV A,DPLCLR CADD A, #16MOV DPL ,AMOV A, DPHADDC A ,#00HMOV DPH, ADJNZ R3,PLAYSJMP STARTLINE16: MOV 2BH,#16;扫16行,2BH放后还剩几行FF: LCALL LINE1;扫描显示一行子程序DJNZ 2BH,FF;扫描行直到16行扫完再转RETLINE1:LCALL MSTR;将显示的内容移入内存单元 LCALL SEND;发送串口子程序 LCALL XH;选通行子程序 RETMSTR: ;显示内容移入内存单元 MOV R0,#30H MOV R4,#9 MOV A,2DH;BB: MOVC A,@A+DPTR MOV @R0,A INC R0 MOV A,2DH ADD A,#16;加16移到下一行 MOV 2DH,A DJNZ R4,BB MOV A,2DH SUBB A,#143 MOV 2DH,A RET;$$$$$$$$$$$$$$$$$$$$$$$$$$$发送数据到串口子程序$$$$$$$$$$$$$$$$$$$$$$$$$SEND:MOV R0,#30H MOV R5,#8 ;一行有8个字节,如每次显示字数不同要作相应改动 SETB OE SETB MR CLR SRCLK CLR RCK SETB P1.6 SETB P1.7LQ: CLR C MOV R2,#8 MOV A,@R0 ; CPL A ;TPIC6B595应该不用这一步 LCALL DD1;调用显示一个字节的子程序 INC R0;指向下一个显示单元 DJNZ R5,LQ RETDD1: CLR SRCLK;清串行CP端 RLC A; MOV SER,C SETB SRCLK ;触发串行CP端 DJNZ R2,DD1;每个字节移8次够了向下执行 RET;选通行子程序XH: CLR RCK ;将输出CP变成低电平为上升沿做准备 NOP SETB RCK CLR P1.6 ;CLR P1.7 MOV A,27H MOV P0,A CLR OE LCALL DE25MS INC A SETB OE SETB P1.6 MOV A,27H ANL A,#0F0H SWAP A ADD A,#01H SWAP A MOV 27H,A CLR MR SETB MR RETDE25MS: MOV R5,#09H DEL2: MOV R6,#0FH DEL3: MOV R7,#01H DJNZ R7,$ DJNZ R6,DEL3 DJNZ R5,DEL2 RETTAB:字库END

这是我自己用DS18B20做的温度检测程序,复制给你看看,我这是通过串口可以在电脑上的串口助手上显示出实时的温度:#include#include#define uint unsigned int#define uchar unsigned charsbit ds=P1^0;bit flag;uchar count_t0;float f_temp;void delay(uint z){uint x,y;for(x=z;x>0;x--)for(y=122;y>0;y--);}void init() // 串口初始化{TMOD=0x21;SCON=0x50;TH0=0x4c;TL0=0x00;TH1=0xf3;TL1=0xf3;EA=1;ET0=1;TR0=1;TR1=1;}void timer0() interrupt 1{TH0=0x4c;TL0=0x00;if(++count_t0>=20){count_t0=0;flag=1;}}void dsreset(){uint i;ds=0;i=103;while(i>0)i--;ds=1;i=4;while(i>0)i--;}bit read_bit(){uint i;bit dat;ds=0;i++;ds=1;i++;i++;dat=ds;i=8;while(i>0)i--;return dat;}uchar read_byte(){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=read_bit();dat=(j<<7)|(dat>>1);}return dat;}void write_byte(uchar dat){uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb){ds=0;i++;i++;ds=1;i=8;while(i>0)i--;}else{ds=0;i=8;while(i>0)i--;ds=1;i++;i++;}}}void begin_change(){dsreset();delay(1);write_byte(0xcc);write_byte(0x44);}float get_temp(){uchar a,b;uint temp;float f_temp;dsreset();delay(1);write_byte(0xcc);write_byte(0xbe);a=read_byte();b=read_byte();temp=b;temp<<=8;temp=temp|a;f_temp=temp*0.0625;temp=f_temp*10+0.5;f_temp=f_temp+0.05;return f_temp;}void main(){init();while(1){if(flag==1){flag=0;begin_change();TI=1;printf("The tempeature is %f\n",get_temp());while(!TI);TI=0;}}}

摘要本设计的温度测量计加热控制系统以AT89S52单片机为核心部件,外加温度采集电路、键盘显示电路、加热控制电路和越限报警等电路。采用单总线型数字式的温度传感器DSI8B20,及行列式键盘和动态显示的方式,以容易控制的固态继电器作加热控制的开关器件。本作品既可以对当前温度进行实时显示又可以对温度进行控制,以使达到用户需要的温度,并使其恒定再这一温度。人性化的行列式键盘设计使设置温度简单快速,两位整数一位小数的显示方式具有更高的显示精度。建立在模糊控制理论控制上的控制算法,是控制精度完全能满足一般社会生产的要求。通过对系统软件和硬件设计的合理规划,发挥单片机自身集成众多系统及功能单元的优势,再不减少功能的前提下有效的降低了硬件的成本,系统操控更简便。实验证明该温控系统能达到0.2℃的静态误差,0.45℃的控制精度,以及只有0.83%的超调量,因本设计具有很高的可靠性和稳定性。关键词:单片机 恒温控制 模糊控制引言温度是工业控制中主要的被控参数之一,特别是在冶金、化工、建材、食品、机械、石油等工业中,具有举足重轻的作用。随着电子技术和微型计算机的迅速发展,微机测量和控制技术得到了迅速的发展和广泛的应用。 采用单片机来对温度进行控制,不仅具有控制方便、组态简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大提高产品的质量和数量。MSP430系列单片机具有处理能强、运行速度快、功耗低等优点,应用在温度测量与控制方面,控制简单方便,测量范围广,精度较高。温度传感器将温度信息变换为模拟电压信号后,将电压信号放大到单片机可以处理的范围内,经过低通滤波,滤掉干扰信号送入单片机。在单片机中对信号进行采样,为进一步提高测量精度,采样后对信号再进行数字滤波。单片机将检测到的温度信息与设定值进行比较,如果不相符,数字调节程序根据给定值与测得值的差值按PID控制算法设计控制量,触发程序根据控制量控制执行单元。如果检测值高于设定值,则启动制冷系统,降低环境温度;如果检测值低于设定值,则启动加热系统,提高环境温度,达到控制温度的目的。图形点阵式液晶可显示用户自定义的任意符号和图形,并可卷动显示,它作为便携式单片机系统人机交互界面的重要组成部分被广泛应用于实时检测和显示的仪器仪表中。支持汉字显示的图形点阵液晶在现代单片机应用系统中是一种十分常用的显示设备,汉字BP机、手机上的显示屏就是图形点阵液晶。它与行列式小键盘组成了现代单片机应用系统中最常用的人机交互界面。本文设计了一种基于MSP430单片机的温度测量和控制装置,能对环境温度进行测量,并能根据温度给定值给出调节量,控制执行机构,实现调节环境温度的目的。━、硬件设计1:MSP430系列单片机简介及选型单片机即微控制器,自其开发以来,取得了飞速的发展。单片机控制系统在工业、交通、医疗等领域的应用越来越广泛,在单片机未开发之前,电子产品只能由复杂的模拟电路来实现,不仅体积大,成本高,长期使用后元件老化,控制精度大大降低,单片机开发以后,控制系统变为智能化了,只需要在单片机外围接一点简单的接口电路,核心部分只是由人为的写入程序来完成。这样产品体积变小了,成本也降低了,长期使用也不会担心精度达不到了。特别是嵌入式技术的发展,必将为单片机的发展提供更广阔的发展空间,近年来,由于超低功耗技术的开发,又出现了低功耗单片机,如MSP430系列、ZK系列等,其中的MSP430系列单片机是美国德州仪器(TI)的一种16位超低功耗单片机,该单片机

基于单片机停车位检测毕业论文

不知道楼主解决了问题没,我这有一些这方面的论文,给你参考一下吧..单片机应用系统中掉电保护电路的设计研究中文摘要:本文介绍了单片机应用系统中掉电保护的基本原理与设计方法,给出了几种掉电保护电路的设计实例。摘自墨客论文网:基于单片机控制的数字脉冲电火花电源设计中文摘要:根据电火花沉积工艺的特点,设计了基于16位单片机80C196KC控制的脉冲电火花电源。主电路中,采用了半桥逆变电路实现功率的变送。控制电路中,通过PWM脉宽调制实现电压调节。设计采用了多种抗干扰措施,提高了电源系统工作的稳定性。摘自墨客论文网:基于单片机的液晶触摸屏控制系统中文摘要:以触摸屏控制芯片ADS7843和液晶显示控制器SED1335为例,介绍了触摸屏的结构及工作原理,并以实例说明单片机控制触摸屏的典型应用电路和软件。摘自墨客论文网:单片机技术在智能交流接触器实时调控中的应用研究中文摘要:通过对智能交流接触器零电流分断控制原理的分析,发现其零电流分断失败的原因,并在此基础上提出将单片机实时控制系统嵌入传统接触器中,实现零电流分断的智能“无弧”接触器。摘自墨客论文网:于PIC单片机的电动自行车控制系统设计中文摘要:介绍以单片机PIC16F72为核心的电动自行车用无刷直流电动机控制系统的设计。该系统采用电流与速度双闭环控制的结构,其中电流调节器用传统的PI调节器,速度调节器为改进的PI调节器。实验验证了此设计方案的可行性和优越性,即控制电路简洁,器件少,成本低,保护措施可靠,提高了系统的控制精度。该设计对无刷直流电机在其他领域的应用有一定的帮助和借鉴,具有广泛的现实意义。该系统速度环采用改进型的PI调节器控制,且通过软件运用算法测速,实现转速反馈,既简化电路又节省成本。摘自墨客论文网:

我来帮你做,不用付定金,先去我百都空间看看。

基于视频的人流量监测系统设计与实现 图像水印识别微信小程序设计与实现 基于重力传感器的飞机大战游戏开发 手机平台加减乘除口算训练游戏开发 基于Android平台的个人移动地图软件开发 面向多种数据源的爬虫系统的设计与实现 基于Zabbix的服务器监控系统的设计与实现 基于新浪微博的分布式爬虫以及对数据的可视化处理 基于分布式的新闻热点网络爬虫系统与设计 舆情分析可视化系统的设计与实现 基于大数据的用户画像的新闻APP设计 基于Android平台的语言翻译程序设计与实现 基于SSH的水电信息管理系统的设计与实现 基于SSM的学科竞赛管理系统

可以凭借Baiduhi提醒我们有机会能够处理你所遇到的工作更进一步的要求也能够提醒我们ES:\\9D035A472A36921CC035A3B11EBDE150交易提醒:预付定金有风险

相关百科

热门百科

首页
发表服务