首页

> 期刊投稿知识库

首页 期刊投稿知识库 问题

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

发布时间:

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

我给你一个题目,如果你写出来了,我保你论文得优秀。因为当年我就是选这个题目得的优秀。刚才我在网上搜了一下,网上还是没有与这个系统相关的论文。 《高考最低录取分数线查询系统》基本思想很简单,现在的高考分数线查询是很繁琐的,需要先把分数查出来,然后根据录取指南再找你的分数能被录取的学校,高考过的都知道,高考报考指南是一本多么厚的书。所以,这个系统的思想就是:你用所有高校近十年的录取分数线建立一个数据库,然后开发一个系统,当你输入查询命令的时候(查询命令可以用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

基于单片机的温度检测设计论文

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

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

热电致冷器件特别适合于小热量和受空间限制的温控领域。改变加在器件上的直流电的极性即可变致冷为加热,而吸热或放热率则正比于所加直流电流的大小。Pe1tier 温控器的设定温度可以在一个较宽的范围内任意选择,可选择低于或高于环境温度。在本系统中我们选用了天津蓝天高科电源有限公司生产的半导体致冷器件 TES1-12739,其最大温差电压 14.7V,最大温差电流3.9A最大致冷功率33.7W。1.5 其它部分系统采用Samsung(三星)公司生产的真空荧光数码显示屏 VFD用来实时显示当前温度,以观察控制效果。键盘和串行通信接口用来设定控制温度和调整PID参数。系统电路原理图如图3所示。2 系统软件设计系统开始工作时,首先由单片机控制软件发出温度读取指令,通过数字温度传感器 DS18B20 采样被控对象的当前温度值T1并送显示屏实时显示。然后,将该温度测量值与设定值T比较,其差值送 PID控制器。PID 控制器处理后输出一定数值的控制量,经DA 转换为模拟电压量,该电压信号再经大电流驱动电路,提高电流驱动能力后加载到半导体致冷器件上,对温控对象进行加热或制冷。加热或制冷取决于致冷器上所加电压的正负,若温控对象当前温度测量值与设定值差值为正,则输出负电压信号,致冷器上加载负电压温控对象温度降低;反之,致冷器上加载正向电压,温控对象温度升高。上述过程:温度采样-计算温差-PID调节-信号放大输出周而复始,最后将温控对象的温度控制在设定值附近上下波动,随着循环次数的增加,波动幅度会逐渐减小到某一很小的量,直至达到控制要求。为了加快控制,在进入PID控制前加入了一段温差判断程序。当温度差值大于设定阈值Δt时,系统进行全功率加热或制冷,直到温差小于Δt才进入PID控制环节。图4为系统工作主程序的软件流程图.3 结论本文设计的基于单片机数字PID控制的精密温度控制系统,在实际应用中取得了良好的控制效果,温度控制精度达到±0.1℃。经48小时连续运行考验,系统工作稳定,有效地降低了辐亮度标准探测器的温度系数,使辐亮度标准探测器在温度变化较大的环境中也能保持其高精度,为实现基于探测器的高精度辐射定标的广泛应用奠定了基础。本文作者创新点:在原来基于PC的PID温控系统的基础上,设计了由单片机、数字式温传感器DS18B20和半导体致冷器组成的精密温度控制系统。该温控系统的应用为高精度光辐射测量仪器-辐亮度标准探测器的小型化、智能化提供了有利条件。

用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

基于单片机的水ph值检测论文

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

一·基于MSP430 单片机的电源监控管理系统(单片机论文)引言大功率直流开关电源由PFC 和DC-DC 变换器组成,为了提高可靠性,并能够对其进行脱机或远程监控管理,在开关电源模块内设置监控管理系统。该系统对电源故障类进行监控,对电源输出的电压电流进行自动设定和调节,通过串行通信接口,与远程中心监控站进行远程监控和管理,这一功能在通信系统基站供电系统中尤为重要。本文提出了一种基于MSP430单片机的电源监控管理系统的设计和实现。1 系统结构和硬件电路设计系统的整体设计结构如图1所示。本系统采用的核心芯片为TI公司推出16位系列单片机MSP430。MSP430具有集成度高,外围设备丰富,超低功耗等优点。单片集成了多通道12bit的A/D转换、片内精密比较器、多个具有PWM功能的定时器、片内USART、看门狗定时器、片内数控振荡器(DCO)、大量的I/O端口以及大容量的片内存储器,采用串行在线编程方法,单片可以满足绝大多数的应用需要。 MSP430的这种高集成度使应用人员不必在接口、外接I/O及存储器上花太多的精力,而可以方便的设计真正意义上的单片系统,在许多领域得到了广泛的应用。下面介绍该系统可以实现的功能和基于MSP430F149的电控系统的设计。1.1 系统功能:a.开机控制。上电后,单片机开始工作,按下电源键,点亮指示灯后,将电网220V接入PFC,开关电源启动工作,然后接于负载。b.电压设定和调节。用单片机A/D口采集开关电源的输出电压值,并显示于液晶屏上,通过单片机控制数字电位计调节输出电压值,实现自动调节;或者通过键盘的左右键选出电压调节页面,用上下键进行手动调节;也可以通过通信接口实现远程调节。c.电流调节。多台开关电源并联使用时,要求各台电源的负载电压相等。单片机A/D口采集转换成电压值的负载电流值,通过通信口得到各台电流值,取电流平均值,控制数字电位计调节输出电压,使输出负载电流达到平均值;或者通过键盘的左右键选出电流调节页面,用上下键进行手动调节。d.故障报警。单片机通过光电耦合器检测到各项输入输出故障时,扬声器产生蜂鸣,相应的报警灯闪烁,并在液晶屏上显示故障类型及处理方法。e.监测。单片机A/D口对电网电压,输出电压,输出电流进行采集测量,当出现超限时进行报警。f.通信。包括单片机与各台开关电源间的通信和单片机与中心监控站的通信。1.2 电压调节电路电压调节电路由单片机、数字电位计X9313和可调分流基准芯片TL431组成,其电路原理图如图2所示。Xicor9313是固态非易失性电位器,可用作数字控制的微调电位器。TL431是TI生产的一个有良好的热稳定性能的三端可调分流基准源,它的输出电压用两个电阻就可以任意地设置到从VREF(2.5V)到36V范围内的任何值。工作时,单片机的一个IO控制INC计数输入脚,为其提供计数脉冲,此输入端为下降沿触发。另一个IO控制U/D升降输入端,当U/D为高电平时,X9313内部计数器进行加法计数,VW端的输出电压上升,由于VW接地,使VH端电压降低,而TL431的REF输出端电压为恒定的2.5V,从而使Vcc处输出电压升高;同理当U/D为低电平时,Vcc处输出电压降低,这样就实现了电压输出调节。1.3 模拟数据采集MSP430F149内嵌入一个高精度的,具有采样与保持功能的12位ADC转换模块,内部提供各种采样与保持时钟源。MSP430有8个外部输入通道可选, 最高采样速度可达200KHZ,并且还内置温度传感器,可以测量芯片内的温度,如果测量温度高于或低于预设的温度是,可以通过外接部件显示告警信息,同时具有6种可编程选择的内部参考电压。该转换模块为一些需要模拟量采集的场合提供了便利。我们选择的参考电压是0~2.5V,这样MSP430F149的AD分辨率就是2.5/4096 = 0.61V左右。由于输入的模拟电压量较高,不能直接与单片机的ADC采样端口相连,因此用串联一个滑动变阻器的方法进行了降压处理,成功解决了上述问题。1.4 人机对话设计系统的人机操作界面由液晶显示屏、指示灯和键盘组成。液晶选用的是基于T6963C 的液晶模块YM12864。键盘采用的是3×3 的阵列接法,系统采用了图形用户界面,操作简单易行,显示实用美观。工作时,液晶屏可以实时显示采集到的电网电压、输出电压、输出电流及各种报警信息,操作相应键盘可以进行显示页面的切换,对输出电压,输出电流进行自动、手动及远程控制调节。当有报警信息产生时,相应得指示灯会闪烁警示,同时与单片机连接的扬声器会产生报警蜂鸣声,以提醒操作人员做出相应的处理。2 系统软件设计430 支持汇编语言和C 语言两种语言编程,因此可以在一个工程文件中同时用两种语言,使用汇编语言,便于在调试时寻找逻辑和指令的联系及地址的定位正确与否。使用C 语言进行编程大大减少了工作量,编好后的程序可读性好,易于修改和维护。开发工具使用IARSystems 公司的IAR Embedded Workbench,它集成了编辑、编译、链接、下载与在线调试(Debug)等多种功能,使用方便,并具备高效的C 语言编译能力。考虑到软件开发效率及可维护性,系统软件设计遵循模块化的编程思想,将系统功能划分为几个相对独立的功能模块。它们包括:液晶显示模块、AD 转换模块、按键监测响应模块、报警监测响应模块、电压电流调节模块、数据处理模块、通信模块。每个模块都要进行独立的测试,最后结合到一起。整个系统的软件流程图如图3 所示。按键监测模块是其中的重要组成部分,它控制着AD转换的启动,显示页面的切换,及电压电流的自动调节,手动调节,远程调节的启动和切换。报警监测模块对开关电源的保护起着至关重要的作用,它实时的监测着开关电源是否出现故障,当发生输入电压过压,输入电压欠压,PFC故障时应切断总电源,当发生输出电压过压,输出电压欠压,模块过热,及IPM保护故障时应关断DC-DC变换器。在对各模块进行整合时,要注意各中断之间的冲突。由于在MSP430 的中断优先级中,ADC12 采样转换中断优先级高于TIMERA 中断,因此当在响应TIMERA 中断的过程中会执行ADC12 采样转换中断,或者TIMERA 的中断响应被迫延迟,这样就会影响在TIMERA中断中执行的报警监测响应程序,不能达到对开关电源故障类的实时检测。在本系统中,利用按键控制ADC12 采样转换中断的启动和关闭,从而解决中断冲突。3 结论本文在基于MSP430F149电源监控管理系统的设计和实现的基础上对MSP430的系统设计做了讨论,提出并解决了在设计中出现的问题。本文作者的创新点:利用MSP430的系统结构简单,外围电路少,效率高的特点,设计实现了简洁直观、使用方便、操作全程汉字提示、监控能力强、运行稳定、安全可靠的电源监控管理系统,大大降低了成本,取得了相当可观的经济效益,满足实际需求。二·C语言论文:嵌入式以门槛高,入门难的方式拦截了无数的学者。然而单片机作为嵌入式的入门课,如何以一种正确的方法学习单片机将关系到是否能学习好嵌入式。纵所周知,学习嵌入式先玩ptotel,再做单片机。Protel简单的来说就是一个做PCB板的纯英文的软件。学习ptotel前必需具备一定的电路基础和英语能力,电路基础我想大部分同学都是有的,而英语这一块却是许多人所头疼的。这对英语基础差的同学是一种打击,再者如果毅力不强,我想你是自学不下去的。毅力是学任何东西所必需的一种能力、素质,是一种遇挫折而不言败的决心。不管学的是protel还是单片机,首先要找一个能够指导你的人。何谓指导,指导并不是说他要一步一步地教你去做,而是一个在关键时刻能够为你指出一条道路的人。我认为学习嵌入式方法最重要,在学protel和单片机之前应该想办法了解关于学习它们的方法。比如说protel吧,许多人理科的学生都是以一种纯理解的角度去学的,画一个导线、元件问一下为什么要这样画,生成网络表也追根溯源地问个网络表的由来。其实许多东西只是懂用就行,理论的东西懂得再多不懂用也是枉然的。所以学习protel有地方不懂你就问你的指导员,有许多的东西是规定死了的,不是你想半天一夜就可以为你而改变的。这不同于软件设计,软件设计在你的苦思之下也许可以找到另一种更好的方法。 单片机嘛,不得不承认中国没一本单片机好书。我学习单片机的时候看过的单片机书有七本,大多数都是不尽人意的。在这里我冒昧地说:中国人写书确实缺乏一点“读者至上”的原则。我所看过的单片机书我想有很多都是以他的角度去写的,没有几个人是站稳在读者的角度上写的。书上的章节注释极不清楚,许多重要的地方都是没有说明的,说句不好听的话,作者似乎以为读者的水平也像他一样高。而外国人的书呢,同样的书,同样的知识点,有同样的中国人的书的两三倍那么厚,这是为什么。这是因为外国人的书点点滴滴都是面向着读者的。注释、说明、总结应有尽有。所以,我在这里发表一个也许同胞会扔鸡蛋到我身上的观点,那就是:不管学什么,优先选择外文翻译书,或是纯英文书。得到一本好书对我们的影响极为巨大。这一部分我用一句话来总结就是:中国人的书适合教学,而外国人的书不仅适合教学还适合自学。 中国人的单片机书往往都是先介绍单片机的内部结构、中断,定时器,然后再到I/O口。一开始就让我们学习单片机内部结构,中断、定时器的内部结构和原理,把我们弄得一塌糊涂的时候再和我们讲例子,怎样去操作实验板。如果自学的话我想许多同学是学不下去的,干嘛要把非得把单片机的内部结构像解剖学一样弄个彻底才实践去应用它呢?即使你把单片机全解剖清楚了还是不会用你手中的这块实验板的。我觉得如果在学单片机之前没有学过汇编语言就直接用C语言学的话,即使学完了单片机,对单片机的内部结构和单片机的工作原理也是不清楚的。学了汇编之后再学单片机的话效果将会好得多,所以不要心急,有些东西是急不来的。所以我认为学习单片机要在实践中学习,先实践再去了解它的结构和原理,如果你实在不能了解它的结构和原理那也无所谓的,只要你懂得用就可以了!(没学过汇编的只能这么说了)我们可以先从 I/O口学习,看一些例子烧录些程序,再看一下现象,之后再尝试了解一下所要用到的单片机的内部结构,最后在这个现象的知识基础上,编一个自己想要的程序、现象出来。这样学习的话既不无聊,成就感也有了。为什么有些人可以把学习当一种快乐,而许多人在唉声叹气,我想有一部分是出自这个原因。不同的实验板有不同的PCB图,所以I/O的操作也是有所不同的。不过操作的原理都是一样的,有些同学可能会抱怨教程里的实验板和自己手中的实验板不同,这是大可不必多虑的。I/O这一步在调试中看现象的理念很重要,比如改变一个语句会产生何种现象,为什么会产生,这些都是要在调试中掌握的。中断的学习方法也是类似的,先实践发现有陌生的地方就去查看相应的寄存器,等实现了自己想要的现实再慢慢地解剖一下单片机的寄存器,这样学起来会更有意义,记得更牢。中断也没复杂的东西的,只不过学几个中断函数,优先级之类的。有一定C语言基础的同学在优先级这一块可以联系C语言中运算符的优先级,我相信有了C语言基础定义一两个中断函数也不是什么问题了的。我学过的单片机的内容在我文档的实例之中,实例的数量不多,但这些都是直接点击单片机知识点的。随着我的学习渐渐地深入后我再把我实现过的东西写入实例之中吧。希望对你有所帮助,祝成功!

单片机是经历长期开发与应用的嵌入式系统电子设备,与计算机相比,它具有许多显著的特点。这是我为大家整理的单片机科技论文,仅供参考!

单片机在现代科技中的应用与前景

[摘 要]单片机是经历长期开发与应用的嵌入式系统电子设备,与计算机相比,它具有许多显著的特点。当前,单片机在现代科技应用的领域越来越广泛,并在家用电器、工业控制领域、医疗器械、仪器仪表等方面取得了良好的应用效果。在未来,单片机的更新换代仍然不会停止,它会向更加智能化,自动化,抗干扰能力强,集成度高,实用性好等方面的发展。

[关键词]单片机;现代科技;应用与前景

中图分类号:TP368.12 文献标识码:A 文章编号:1009-914X(2014)20-0054-02

随着现代科技的不断发展,嵌入式技术的开发及其应用在现代科技中的应用显得越来越重要。在嵌入式技术发展的趋势下,单片微型计算机(简称“单片机”)应运而生,并随着时代要求的发展不断地更新换代。到20世纪70年代前半期,单片机己经发展为嵌入式系统最为突出的典型代表之一,英特尔公司更将其命名为“嵌入式微控制器”。 单片机的产生极大程度上推动着整个现代科技应用及其功能的发展,并在许多实际应用领域都取得了显著的成效,受到社会各界的关广泛关注,其应用技术发展的越来越成熟,具体实践应用到各个领域,开发技术也越来越智能化。本文以单片机的发展及其特点为逻辑起点,对单片机的应用性及其前景进行说明与分析。

一、单片机的发展及其特点

单片机又称“单片微型计算机”,是典型的嵌入式微控制器(Microcontroller Unit),“它并不是落实某一个具体的逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上,其功能类似于一台最小系统的微型的计算机。具体来说,单片机由运算器、控制器、存储器、输入输出设备构成”[1]。

单片机产生于20世纪70年代,经历了三个发展阶段(SCM、MCU、SOC)。初期的SCM单片机基本上都是4、8位的。其中,INTEL的8051是初期单片机最具典型意义的。此后在INTEL 8051的基础上开发并应用了MCS51系列MCU系统。 由于MCS51系列MCU系统的单片机系统直到现在还在广泛使用,单片机伴随这科学技术的发展逐步开发出16位系统。但由于16位单片机的性价比不够理想,因此并未得到很广泛的应用。90年代后,随着电子产品市场的进一步繁荣发展,单片机的开发与应用得到了显著的提升。特别是INTEL i960系列与ARM系列在社会上的实践应用,32位单片机逐步地取代16位单片机的在嵌入式技术中的领先地位,并且在市场上取得了两好的效益。

与计算机相比,单片机的特点主要表现在如下几个方面:首先,单片机使用简单便捷,可实现体系布局的模块化;其次,单片机耐用时间长,有较高的耐用性;再次,单片机的处理能力强,运行速度较快;此外,单片机还具备低电压、低功耗、控制功能与环境适应能力强的特点;最后,单片机体系完备,集成了计数器、串行口、并行口、CPU、RAM与ROM等应用组件。

二、单片机在现代科技中的应用

单片机具备许多优良的特点,广泛的应在诸多领域,例如家用电器、工业控制领域、医疗器械、仪器仪表等方面,当前单片机己经得到广泛的使用,并产生了良好的应用效果。具体来说,单片机在现代科技中的应用主要体现在以下几个方面:

(一)在家用电器领域中的应用?

随着时代的发展,追求更高、更好的生活品质,对家用电器的功能需求也逐年提高,这就迫使家用电器的不断升级与改造。单片机可以满足这种需求,通过安装单片机,实现整个家用电器的智能化控制,识别相关的信息,选择合适的用户满意信息,使得家用电器在引入单片机后很好的提高了性能,更新换代的速度也得到了提升,提高了企业的竞争力,单片机应用的前景越来越广泛。例如在电视机上采用单片机技术可以使得足不出户的进行大型智能游戏的控制,选择频道方式更加便捷;微波炉可以实现食物的自动选择加热时间以及温度;洗衣机自动根据衣服材质、赃物程度,自动选择洗涤剂的用量、强度、时间等。

(二)在工业控制领域的应用

在工业领域,随着自动化的发展,尤其是在特殊环境下的,例如核工业、粉尘工业、电力高压行业等方面,对人的危害性比较大,危险性高的行业,大部分采用的是自动化操作。在此领域,单片机从此兴起,并随着应用的更加广泛在工业化控制管理,通过单片机的数据采集与过程控制手段,实现了工业化有效的智能控制管理工作,例如报警系统、流水线作业系统、自动喷漆系统等,都得到了很好的应用,随着时代的发展,其应用领域会更加广泛。

(三)在医疗器械领域的应用

现代社会,医疗条件与技术不断提升,自身的身体健康越来越受到关注然而在现有的条件下,消毒条件、住院条件,检测手段、医疗手段等都存在着诸多问题,直接影响着看病的好坏,影响着每个人的身体健康。随之而来的是现在单片机的应用在医疗器械领域,由于自身的特点与有时,可以进行多种疾病的分析,提高设备检测的准确性与可靠性,提高了诊断下药的准确性,保证了身体健康,医疗设备结构更加合理化、智能化、自动化,例如在超声波检测、呼吸系统、分析仪器等。

(四)在仪器仪表领域的应用

现在仪器仪表的生产的好坏,直接代表着一个国家的制造水平。在仪器仪表领域不断的向着智能化方向发展,单片机的作用在此领域尤其体现到其优点,具有重要的意义单片机集成度高,可靠性高、小巧,应用在仪器仪表上使得整个行业得到了很大的改变,随着单片机的集成到仪器仪表中,使得自身的设备向着数字化,智能化发展,其各方面包括处理功能测试功能,控制功能等都得到了很大的提升。例如在航空的仪器仪表中采用单片机技术,保证了仪器的可靠性、准确性,集成性高,事故率降低,提升了航天航空电子系统的智能化与自动化树皮,信息传递有效的进行。

三、单片机在现代科技中的发展前景

随着科学技术的日新月异,单片机推陈出新的速度也愈来愈快。伴随着新的CPU的加入,多位的单片机共同开发与发展是整个发展的方向。很长一段时间,单片集成电路技术在8位机发展的主要方向,随着网络通信技术的发展,16位机、32位机、64位机成为未来的发展方向。单片机的运行也会愈来愈快,防磨损能力也随之提升,具有很好的低噪声、可靠性高的优点。现在单片机为了提高抗干扰性采用EFT技术,使得单片机受外界的干扰性小,系统的时钟信号得到了很好的保证,可靠性得到了提高;布线及其驱动技术应用在单片机上降低了噪声,不至于对单片机内部的电路信号进行干扰。单片机还应用OPT技能,较之掩膜技术有着生产周期短,风险小特点,采用裸片技术或者贴面技术,实现了OPT芯片的接触不良的问题,使得得到了广泛的应用。

随着电子信息技术的发展与应用领域的逐步广泛,单片机向更加智能化,自动化,抗干扰能力强,集成度高,实用性好等方面的发展。同时,芯片的设计也愈发复杂,单片机的功能更加齐全,保有良好的耐用性、可延伸性,单片机的设计与开发、应用的前景十分广泛,领域更加宽广,智能化程度更高。

单片机在目前的发展形势下,还表现出以下趋势:首先,可靠性及应用越来越水平高和互联网连接已是一种明显的走向。 其次,所集成的部件越来越多。最后,功耗越来越低和模拟电路结合越来越多。

结语

总之,在第二十一世纪,计算机技术、智能电子技术的发展,在现代社会中发挥着举足轻重的作用,嵌入式系统是电子技术的重要组成部分,其中单片机又是嵌入式系统最具典型的代表,具有强大的发展潜力。单片机技术提高了控制领域的效率以及可靠性,实现了工业的自动化,智能化,未来的工业化发展中将随着科技的不断进步而发展。

[1] 李璞,郭敏. 单片机的应用与发展[J]. 中国校外教育 2010年S1期

单片机应用技术探究

摘要:近几年单片机得到了飞速的发展,单片机最明显的优势就是可以嵌入到各种仪器、设备中。目前大量的嵌入式系统均采用单片机,本文分析了单片机的形成及发展过程以及当前的技术进展,同时分析了影响单片机系统可靠性的原因,并论述提高单片机可靠性的措施。

关键词:单片机;可靠性技术;发展趋势

中图分类号: C35 文献标识码: A

引言

单片机,亦称单片微电脑或单片微型计算机。它是把中央处理器(CPU)、随机存取存储器(RAM)、只读存储器(ROM)、输入/输出端口(I/0)等主要计算机功能部件都集成在一块集成电路芯片上的微型计算机。现在可以说单片机是百花齐放的时期,世界上各大芯片制造公司都推出了自己的单片机,从8位、16位到32位,数不胜数,应有尽有,它们各具特色,互成互补,为单片机的应用提供广阔的天地。纵观单片机的发展过程,可以预示单片机的发展趋势 。

一 、单片机的应用场合

1.1智能仪器仪表。单片机用于各种仪器仪表,一方面提高了仪器仪表的使用功能和精度,使仪器仪表智能化,同时还简化了仪器仪表的硬件结构,从而可以方便地完成仪器仪表产品的升级换代。如各种智能电气测量仪表、智能传感器等。

1.2机电一体化产品。机电一体化产品是集机械技术、微电子技术、自动化技术和计算机技术于一体,具有智能化特征的各种机电产品。单片机在机电一体化产品的开发中可以发挥巨大的作用。典型产品如机器人、数控机床、自动包装机、点钞机、医疗设备、打印机、传真机、复印机等。

1.3实时工业控制。单片机还可以用于各种物理量的采集与控制。电流、电压、温度、液位、流量等物理参数的采集和控制均可以利用单片机方便地实现。在这类系统中,利用单片机作为系统控制器,可以根据被控对象的不同特征采用不同的智能算法,实现期望的控制指标,从而提高生产效率和产品质量。典型应用如电机转速控制、温度控制、自动生产线等。

1.4家用电器。家用电器是单片机的又一重要应用领域,前景十分广阔。如空调器、电冰箱、洗衣机、电饭煲、高档洗浴设备、高档玩具等。另外,在交通领域中,汽车、火车、飞机、航天器等均有单片机的广泛应用。如汽车自动驾驶系统、航天测控系统、黑匣子还有分布式系统的前端模块等等。

二、分析单片机可靠性限制原因及应对措施

目前,大量的嵌入式系统均采用了单片机,并且这样的应用正在更进一步扩展;但是多年以来人们一直为单片机系统的可靠性问题所困惑。在一些要求高可靠性的控制系统中,这往往成为限制其应用的主要原因。

1.单片机系统的失效分析

一个单片机系统的可靠性是其自身软硬件与其所处工作环境综合作用的结果,因此系统的可靠性也应从这两个方面去分析与设计。对于系统自身而言,能不能在保证系统各项功能实现的同时,对系统自身运行过程中出现的各种干扰信号及直接来自于系统外部的干扰信号进行有效的抑制,是决定系统可靠性的关键。有缺陷的系统往往只从逻辑上去保证系统功能的实现,而对于系统运行过程中可能出现的潜在的问题考虑欠缺,采取的措施不足,在干扰信号真正袭来的时候,系统就可能会陷入困境。

2. 提高可靠性的措施

2.1减少引起系统不可靠或影响系统可靠的外界因素:

1) EFT (Electrical Fast Transient)技术。EFT技术是一种抗干扰技术,它是指在振荡电路的正弦信号受到外界干扰时,其波形上会迭加各种毛刺信号,如果使用施密特电路对其整形,则毛刺会成为触发信号干扰正常的时钟,在交替使用施密特电路和RC滤波电路时, 就可以消除这些毛否则令其作用失效,从而保证系统的时钟信号正常工作。

2) 低噪声布线技术及驱动技术。在传统的单片机中,电源及地线是在集成电路外壳的对称引脚上,一般是在左上、右下或右上、左下的两对对称点上。这样,就使电源噪声穿过整块芯片,对单片机的内部电路造成干扰。现在,很多单片机都把地和电源引脚安排在两条相邻的引脚上。这样,不仅降低了穿过整个芯片的电流,而且在印制电路板上容易布置去耦电容,从而降低系统的噪声。现在为了适应各种应用的需要,很多单片机采用"跳变沿软化技术",从而消除大电流瞬变时产生的噪声。

3) 采用低频时钟。高频外时钟是噪声源之一,不仅能对单片机应用系统产生干扰,而且还会对外界电路产生干扰,令电磁兼容性不能满足要求。对于要求可靠性较高的系统,低频外时钟有利于降低系统的噪声。在一些单片机中采用内部锁相环技术,则在外部时钟较低时,也能产生较高的内部总线速度,从而保证了速度又降低了噪声。

三、单片机的发展趋势

1单片机技术的发展前景及趋势

由于通用型IC的仿冒现象比较严重,因此定制化IC将是未来单片机发展的主要方向。此外,尽管16位、32位单片机市场有所增加,但8位在未来三五年内仍将占主流,只是成长幅度会趋缓。从应用角度讲,盛扬看好消费类电子和家电产品,尤其是中小型家电产品,它属于比较成熟的单片机应用领域;其次是高端领域的车用产品。目前,盛扬已针对汽车周边领域推出系列产品,主要用于汽车防盗、车载电子、信息娱乐、胎压监测、里程表的面板等。

单片机拥有良好的应用前景,但厂商之间的竞争愈演愈烈。因此,对本土企业而言,要想脱颖而出,质量一定要好,同时还要注重产品的环保和可靠性,因为家电和汽车等产品对安全性的要求越来越高;其次,充分发挥本土厂商在特定应用领域的性价比优势。不过,这种性价比必须建立在性能过关、可靠度过关的基础上。

制作工艺CMO化。更小的光刻工艺提高了集成度,从而使芯片更小、成本更低、工作电压更低、功耗更低。CPU的改进。同时,采用双CPU结构,增加数据总线的宽度,提高数据处理的速度和能力;采用流水线结构,提高处理和运算速度,以适应实时控制和处理的需要。增大存储容量,片内EPROM的E2PROM化,程序的保密化,提高并行口驱动能力,以减少外围驱动芯片,增加外围?I/O?口的逻辑功能和控制的灵活性。最后,以串行方式为主的外围扩展;外围电路的内装化;和互联网连接已是一种明显的走向,可靠性及应用水平越来越高。

2微型单片化

现在常规的单片机普遍都是将中央处理器(CPU)、随机存取数据存储(RAM)、只读程序存储器(ROM)、并行和串行通信接口,中断系统、定时电路、时钟电路集成在一块单一的芯片上,增强型的单片机集成了如A/D转换器、PMW(脉宽调制电路)、WDT(看门狗)、有些单片机将LCD(液晶)驱动电路都集成在单一的芯片上,这样单片机包含的单元电路就更多,功能就越强大。甚至单片机厂商还可以根据用户的要求量身定做,制造出具有自己特色的单片机芯片。 此外,现在的产品普遍要求体积小、重量轻,这就要求单片机除了功能强和功耗低外,还要求其体积要小。现在的许多单片机都具有多种封装形式,其中SMD(表面封装)越来越受欢迎,使得由单片机构成的系统正朝微型化方向发展。

3串行扩展技术

在很长一段时间里,通用型单片机通过三总线结构扩展外围器件成为单片机应用的主流结构。随着低价位OTP(One-Time Password)及各种特殊类型片内程序存储器的发展,加之处围接口不断进入片内,推动了单片机“单片”应用结构的发展。特别是I2C、SPI 等串行总线的引入,可以使单片机的引脚设计得更少,单片机系统结构更加简化及规范化。

4、结语

单片机改变了我们生活,纵观我们现在生活的各个领域,从导弹的导航装置,到飞机上各种仪表的控制,从计算机的网络通讯与数据传输,到工业自动化过程的实时控制和数据处理,以及我们生活中广泛使用的各种智能IC卡、电子宠物等,这些都离不开单片机, 单片机有着广阔的应用前景。

参考文献

[1] 张志良; 单片机原理与控制技术; 北京,机械工业出版社,2008

[2] 李广第,朱月秀,王秀山.单片机基础.北京:北京航空航天大学出版社,2002.

[3] 胡汉才.单片机原理及系统设计.北京:清华大学出版社,2002.

温度相关的毕业设计 ·基于单片机的数字温度计的设计·基于MCS-51数字温度表的设计·单片机的数字温度计设计·基于单片机的空调温度控制器设计·基于数字温度计的多点温度检测系统·设施环境中温度测量电路设计·DS18B20数字温度计的设计·多点温度采集系统与控制器设计·基于PLC和组态王的温度控制系统设计·温度监控系统的设计·用单片机进行温度的控制及LCD显示系统的设计·单片机电加热炉温度控制系统·全氢罩式退火炉温度控制系统·数字温度计的设计·基于单片机AT89C51的语音温度计的设计·基于单片机的多点温度检测系统·基于51单片机的多路温度采集控制系统·基于单片机的数字显示温度系统毕业设计论文·基于MCS51单片机温度控制毕业设计论文·西门子S7-300在温度控制中的应用·燃气锅炉温度的PLC控制系统·焦炉立火道温度软测量模型设计·温度检测控制仪器·智能温度巡检仪的研制·电阻炉温度控制系统·数字温度测控仪的设计·温度测控仪设计·多路温度采集系统设计·多点数字温度巡测仪设计·LCD数字式温度湿度测量计·64点温度监测与控制系统·温度报警器的电路设计与制作·基于单片机的数字温度计的电路设计·全氢煤气罩式炉的温度控制系统的研究与改造·温度检测与控制系统·红外快速检测人体温度装置的设计与研制·具有红外保护的温度自动控制系统的设计·基于单片机的温度测量系统的设计·数字温度计设计·DS18B20温度检测控制·PN结(二极管)温度传感器性能的实验研究·多功能智能化温度测量仪设计·软胶囊的单片机温度控制(硬件设计)·空调温度控制单元的设计·大容量电机的温度保护——软件设计·大容量电机的温度保护 ——硬件电路的设计·基于DS18B20温度传感器的数字温度计设计·热轧带钢卷取温度反馈控制器的设计·基于单片机的温度采集系统设计·多点温度数据采集系统的设计·基于单片机的数字式温度计设计·18B20多路温度采集接口模块·基于单片机的户式中央空调器温度测控系统设计·单片机电阻炉温度控制系统设计·基于单片机的电阻炉温度控制系统设计·基于ARM的嵌入式温度控制系统的设计·基于DS18B20的多点温度巡回检测系统的设计·基于单片机的多点无线温度监控系统·基于MSC1211的温度智能温度传感器·用集成温度传感器组成测温控制系统·室内温度控制报警器·自动温度控制系统·烤箱温度控制系统·基于单片机的电加热炉温度控制系统设计·基于PLC的温度监控系统设计·基于无线传输技术的室温控制系统设计——温度控制器软件设计·温度箱模拟控制系统·基于无线传输技术的室温控制系统设计——温度控制器硬件设计·数字式温度计的设计·温度监控系统设计·基于单片机的电阻炉温度控制系统·基于plc的温度湿度检测和显示系统设计·基于单片机的3KW电炉温度控制系统的设计·腔型肿瘤热疗仪温度控制系统设计·基于AT89S51单片机的数字温度计设计·吹塑薄膜挤出机温度控制与检测系统设计·电加热炉PLC温度自适应控制系统的研究·高压母线温度自动监测装置的设计·高压母线温度自动检测装置·小型热水锅炉单片机温度控制系统·消毒柜单片机温度控制·嵌入式系统在多点温度控制中的应用·单片机温度控制系统·上下限温度报警器的设计·基于单片机的饮水机温度控制系统设计·基于单片机的温度测量系统设计

基于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的学科竞赛管理系统

基于单片机的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;}}}

相关百科

热门百科

首页
发表服务