水位检测仪方案设计书_第1页
水位检测仪方案设计书_第2页
水位检测仪方案设计书_第3页
水位检测仪方案设计书_第4页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录摘要 .11 引言 .21.1水位检测仪器的现状和发展前景.21.2本文的结构安排 .22 水位监测仪的基本原理 . .32.1功能说明 .32.2整体架构 .33 硬件设计 .53.1水位检测与数据采集 .53.2数码管与 LED显示 .73.2.1相关芯片简介 .73.2.2显示部分工作原理 .94 系统软件设计 .124.1初始化程序 .124.1.1I/O端口方向控制寄存器.124.1.2TMR1初始化 .124.1.3TMR0初始化 .134.2定时 / 计数器 .134.2.1TMR1中断服务程序 .144.2.2TMR0中断服务程序 .154.3数据转换子程序 .17结束语.

2、19致谢 .20参考文献.21附录 .22附录 程序清单及注释 .22水位检测仪设计摘要:水位检测和显示仪表装置在工业上有着广泛的应用,本文设计了一种能实时检测并显示水位的仪器 -水位检测仪。设计主要论述对水位数据采集系统的设计与实现,其主要功能是完成数据采集、处理、显示、数据存储等。根据对数据采集系统体系结构及功能要求的分析, 以 PIC16F877 单片机为核心设计并实现的采集系统, 结合 CD4051实现对水位的检测,结构简单,实现可靠。在PIC单片机中实现了数据存储和处理,获取了当前的水位,并设计实现了数码管的驱动显示电路。该设计是基于单片机技术设计实现的低功耗水位数据采集装置,是一个

3、具有一定实用性的实时数据采集系统。最后的实验结果验证了水位监测仪的总体设计思路及硬件、软件设计方案正确,能够准确地实现了水位的自动检测。关键词: PIC 单片机;水位检测;LED显示Design of Water-level Detecting MeterAbstract: Water level detection and display devices has a wide range of applications in industry, this article design a real-time detection and display equipment - water le

4、veldetector.This design focuses on the design and implementation of data acquisition system for the water level,and its main function is to complete the data collection, processing, display, data storage and so on.According to the data acquisition system architecture and functional requirements anal

5、ysis,the article design and accomplish the acquisition system with simple structure using PIC16F877 single-chip as the core,it can detect the water level with CD4051 reliably.It implements the data storage and processing in the PIC MCU, access to the current water level, and design digital display d

6、rive control circuit.The design is a low-power water-level data acquisition device based on single-chip technology,its a practical real-time data acquisition system.Finally, the experimental results verify the water level monitor the overall design ideas and hardware, software design is correct, can

7、 be achieved accurately the water level auto-detection.Keywords:PIC Single-chip Computer; Water level detection; LED display1第1章引言1.1 水位检测仪器的现状和发展前景随着科学技术的不断发展,我国的监测仪器已具有一定研究、开发和生产能力,特别是各种仪器的数据处理系统及自动控制系统的最新研究成果,使我国仪器研制和在用仪器改造的升级,迈上了一个新的台阶。目前国产仪器在功能齐全、性能稳定等方面,与国际上较为先进的同类产品不相上下,完全能够满足水位检测的需要,且价格比国外进口

8、仪器便宜得多。虽然我国的地下水环境监测仪器,从工艺力量和工艺装备,从行业生产水平和专业化水平等方面来看,与发达国家相比有较大差距,但在某些方面,已具有一定的优势,特别是各种仪器数据处理系统及自动控制系统的最新研究成果,使我国仪器研制和在用仪器改造的升级,迈上了一个新的台阶,而就功能设置与软件编辑来说,更适合我国的国情。在水位检测仪器方面,国外具有较为先进产品,但不适合我国国情,突出表现在:仪器设备昂贵,操作步骤复杂,质控程序繁琐。我们应采取有效措施,扬长避短,将国外的先进技术引入国内消化吸收,建立既适合我国国情又尽可能与国际接轨的监测方法。在地下水监测仪器的研制中,要在多品种和提高技术水平上下

9、功夫,真正做到能准确、及时、真实的数据反映地下水状况和变化规律1 。水位检测和显示仪表装置在工业上有着广泛的应用2-9。为了适应我国自动检测的发展现状,本文设计了一种能实时检测并显示水位的仪器-水位监测仪1.2 本文的结构安排本文主要分三个章节介绍水位监测仪的开发流程:第二章介绍水位监测仪的基本原理,简单介绍水位监测仪的功能以及整体架构第三章介绍硬件设计,从数据采集和显示两个方面分别介绍第四章介绍软件设计,从TMR1中断服务程序、子程序转换程序、TMR0中断服务程序三部分进行系统分析。2第 2章水位监测仪的基本原理2.1 功能说明对偏离零点的水位进行检测,然后将带符号的水位置(低于或高于零点)

10、用数码管显示出来,并通过双色发光二极管 LED阵列对水位高度进行模拟显示。( 1)水位检测:在 0mm、 10mm, 25mm、 50mm、 80mm、 120mm、 160mm、240mm共 15 点的基础上,检测水位偏离零点的大小。( 2)水位显示:将上一步检测结果用数码管显示出来,显示值以比实际水位小的最近点为准,同时用 15 个竖直排列的双色 LED阵列直观地模拟当前水位高度,当水位没有达到某点时相应的 LED显示红色、达到或超过则显示绿色。 当水位低于 -240mm时报警灯显示绿色,高于240mm是报警灯显示红色,当水位恢复正常时报警灯熄灭。2.2 整体架构水位监测仪主要由三部分组成

11、:水位检测与数据采集电路、 PIC16F877 单片机以及数码管与 LED显示电路。整体框图如图 2.1 所示。电源水位数据采集数码管及 LED 显示电PIC16F877电路路图 2.1水位监测仪整体构架框图水位数据采集电路将采集到的数据通过采样通道输入口传输给PIC16F877单片机,PIC 单片机对数据进行处理后信号输出给显示电路,数码管及LED显示电路将水位显示出来。本设计引入一种独特的扫描思想-循环扫描,由于水位检测的数据采集及显示的实时性要求不是很高,而单片机的的运行速度相对很快,如果分时选通各个采样及显示通道,整体开来近似为同时进行的,只要不断的重复这一扫描过程,就可以完成无间隔数

12、据采集和无闪烁显示。水位检测与数据采集电路部分采用电接点水位检测方法, 在每一个预定水位检测点处,将两个电极安装在容器壁,使其一端能够与没过该点的水充分接触,另一端引出到容器外面同检测电路相连接,两个电极等高度并间隔一定距离。当水位没有达到该检定点是,两个电极间电阻为无穷大;而一旦水位上升到该点高度,则两个电极同时没入水中,由于水的导电性,两个电极导通。通过检测两个电极是否导通就可以检测水位的高度了。数码管与 LED显示电路部分主要由15 个双色发光二极管和4 个数码管组成。模拟3水位高度由 15 个双色发光二极管( LED)来完成,共分 4 组。数字水位高度显示由四个数码管来完成,分别表示正

13、负、百位、十位和各位。在某一特定时刻,每组 LED与一个数码管一起被选通( 4 组 LED对应 4 个数码管),两个 8 位的移位寄存器 74LS164级联,将单片机送出的 2 个字节串行数据转化为 16 位并行数据,分别送选通的 LED和数码管。在不同时刻,系统对 4 组 LED和数码管快速的循环扫描,就完成了面板显示的功能。4第 3章硬件设计本部分介绍多通道水位循环检测的硬件设计、利用串行芯片扩展I/O 端口的方法以及循环扫描方式实现面板显示的硬件结构。水位检测仪的电路原理图如图3.1 所示。图 3.1水位监测仪电路原理图3.1水位检测与数据采集本设计采用电接点水位检测方法,通过检测两个电

14、极是否导通就可以检测水位的高度了。对 15 个检测点相应有 15 个检测通道,本设计运用两片 8 通道的多路选择开关CD4051,对各个通道循环检测来实现数据采集。CD4051是一种双向 8 通道的多路开关,可以 8 路选通输入, 1 路输出;也可以 1 路输入, 8 路选通输出。通过 3 为数据位 A,B,C 进行通道选择。禁止输入输出端 INH 可以禁止和允许工作。其引脚定义如图 3.2 所示,真值表如表 1 所示。5VIN/OUTDD103ABC16151413121110901234567846 OUT/IN 75 INHVVEESSIN/OUTIN/OUT图 3.2 CD4051 引

15、脚图表 1CD4051真值表选通通道输入状态INHIBITCBA0000010001200103001140100501016011070111NONE1*尽管水位检测原理简单, 但应用时却不能仅仅用每路的通断来判断水位时否没过该路的点击。实际上水的电阻因水的所含成分不同有很大的差异,例如蒸馏水就不到点,就不能用这种方法来检测。另一方面,空气电阻也不是无穷大的,也跟其成分有关,例如饱和蒸汽的组织大概有1M欧左右。所以,不能通过判断单片机的数据采集引脚输入电平高低来判断水位是否到达某点,否则介于高低电平之间的电平状态就无法做出判断,而这种情况可能存在。一个可靠的方法就是对输入引脚的数据进行采样,

16、然后将结果与一个阀值电压进行比较,从而得出结论。根据这个原理设计的水位检测仪数据采集部分的电路如图3.3 所示。从图中可以看出, RD3口是地址扩展口,其与一个非门连接,结合INH 引脚,将 2 个 8 路选通开关扩展为一个 16 路选通开关。通过RD03 口进行采样通道地址译码,在不同时刻选通156个通道中的 1 个, 循环扫描 15 个通道。当水位上升到某一对电极高度时,相应通道的采样电压将会较低;若没有上升到电极高度,那么上拉电阻将会把采样值箝位到+5V。通过判断采样电压的高低, 就可以判断选通的通道是否没于水中, 进而判断水位高度, RA0 口作为 A/D 采样的通道输入口。 POLE

17、0 14 为 15 对模拟水位高度的电极。图 3.3数据采集原理图3.2数码管与 LED显示键盘和显示器是单片机系统中人机对话不可缺少的一部分。在许多智能仪表的设计中,多用 LED数码管来显示。这是因为LED数码管驱动简单,成本较低并且能适应恶劣的环境。用于数码管显示驱动的芯片有很多种,常见的有MAX7219、MAX7221、ZLG7290、ICM7218B以及 8279 等。这些专用芯片使用方便,功能较强,但价格偏高。本设计中采用循环扫描的方式,充分利用单片机快速的处理能力对各显示单元分时选通,只需普通的串行移位芯片,就可以达到显示驱动的目的。3.2.1相关芯片的介绍显示部分用到的芯片包括移

18、位寄存器74LS164、数据缓冲器 74LS244以及多路开关CD4051。下面就 74LS164和 74LS244作简单介绍。( 1) 移位寄存器 74LS164。74LS164引脚定义如图 3.4 所示,起真值表如表 2 所示,其功能是将外部输入的串行数据转化为 8 位的并行数据输出, +5V供电,串行传输的频率由外部时钟控制,其数据输出具有锁存功能。 A,B 端为穿行数据输入端, QAQH为并行数据输出端, CLK为外部时钟输入端, CLR为清零端。当清除端 CLEAR为低电平时,输出端( QAQH)均为低电平。串行数据输入端( A、 B)可控制数据,当 A、B 任意一个为低电平,则禁止

19、新数据输入,在时钟端( CLOCK)脉冲上升沿作用下 QA为低电平。当A、 B 有一个为高电平则另一个就允许数据输入,并在 CLOCK上升沿作用下决定 QA 的状态。7图 3.4 74LS164 引脚图 10表 2 74LS164 的真值表输入输出CLEARCLOCKABQAQBQHLXXXL LLHLXXQA0 QB0 QH0HHHH QQAnGnHLXL QAn QGnHXLL Q AnQGn注 : Q A0、 QB0、 QH0为在稳态输入条件建立之前QA 、 QB 和 QH相应的电平; QAn、 QGn 为在最近的时钟转换前 QA 或 QG的电平,表示移1 位。(2) 数据缓冲器 74L

20、S244。由于 74LS164在高电平输出时, 其输出最大电流为 0.4mA;低电平输出时,起输出最大电流为 8mA,不足以驱动数码管或发光二极管正常工作,所以在本设计中外加数据缓冲器以增大驱动能力,使数码管和二极管可以正常工作。74LS244 缓冲器常用作三态缓冲或总线驱动, +5V供电,其高电平时输出最大电流可达 15mA,低电平输出时最大电流可达 24mA,足以驱动数码管和 LED工作。 74LS244 共 8 个输入输出通道,通过门控端 1G和 2G来选择其通断,其引脚图如图 3.5 所示。8图 3.5 74LS244 内部结构及引脚图从图中可以看出, 当引脚 1G为低电平时,输入通道

21、 1A11A4与输出通道 1Y11Y4连通;当引脚 1G为高电平时则截止。当引脚 2G为低电平时,输入通道 2A12A4与输出通道 2Y12Y4 连通;当引脚 2G为高电平时,输入通道 2A12A4与输出通道 2Y12Y4截止。3.2.2显示部分工作原理首先介绍一下双色二极管的功能和用法。如图 3.6 所示, 1 个双色二极管有 3 个引脚,引脚 1,2 均为信号“ +”端,引脚 3 为 GND端(信号“ - ”端)。引脚电平( TTL 电平)与 LED显示颜色如表 3 所示。图 3.6双色二极管外观图表 3双色二极管的功能表引脚 1引脚 2二极管状态00熄灭01绿色10红色11混合颜色9数码

22、管及 LED显示电路如图 3.7 所示,其主要功能流程是:将单片机输出的串行数据通过 74LS164移位寄存器转化并行数据, 经 74LS244数据缓冲器驱动数码管及 LED显示。RC5口作为串行数据输出端,与 74LS164的数据输入端相连,当单片机输出的串行数据输入 74LS164; RC3口作为串行数据的同步时钟端,与 74LS164的时钟同步输入端相连。两片移位寄存器 74LS164的并行数据输出端则分别与两片数据缓冲器 74LS244的输入端相连,两片 74LS244分别驱动数码管和 LED的显示,RD7口作为数据缓冲器 74LS244 的门控信号输出端,控制 74LS244的通断。

23、图 3.7 数码管及 LED显示电路每 4 个双色二极管和 1 个数码管一组,二极管的 8 个信号“ +”端分别与第一片74LS244的 8 位数据输出端相连,数码管的 8 为数据输入端分别与第二片 74LS244的 8 为数据输出端相连,每组二极管和数码管的 GND端都与 CD4051的 1 个输入通道相连,CD4051的输出端与系统的“地”相连。 RE0 RE1口作为地址译码输出端口,用于多路开关 CD4051的 4 路通道选择,每一时刻只有一组共 4 个二极管和一个数码管被选通,其 GND端同系统的“地”构成通路,其他的二极管与数码管则不能构成通路。每向 74LS164传送完 2 个字节

24、共 16 位数据,通过 RD7口使能 74LS244,将数据送到二极管和数码管的输入口,然后通过 RE0RE1口打开一条通道,则被选通的数码管和二极管就会按照接收的数据进行相应的显示。不断的发送新数据并利用CD4051循环的扫描 4 个通道,则所有的二极管和数码管就会持续的发光显示。 利用人的视觉暂留现象,每个 LED或数码管两次被选通的时间间隔不能大于 100ms。10另外由一个双色二极管作为报警灯,RD5口与二极管引脚1 相连,作为上限报警灯;RD4口与二极管的引脚2 相连,作为上限报警灯。11第 4 章 系统软件设计本设计关键的核心是两个不循环执行的中断程序: TMR0中断用于驱动数码管

25、和 LED 显示;TMR1中断用于采集水位值并且将采集结果送缓冲寄存器供显示部分读取, 同时对采集结果进行简单的分析,判断其是否超过水位上限和下限,若超过则点亮相应的报警灯。整个软件大体可以分为初始化程序、TMR0中断服务程序、数据转换子程序、TMR1中断服务程序 4 个部分,以下分别加以描述。4.1 初始化程序初始化程序位于主程序开始部分, 主要对 3 部分进行初始化:I/O 端口、TMR1和 TMR0。各部分的初始化步骤如下描述。4.1.1 I/O端口方向控制寄存器RA0端口用于将采集到的数据输入,故将A/D 端口 RA0设置为输入方式串行数据同步端口RC3,设置为输出方式串行数据输出端口

26、RC5,设置为输入方式采样通道地址译码端口RD0RD3,设置为输出方式显示部分地址译码端口RE0RE1,设置为输出方式报警输出端口RD4RD5,设置为输出4.1.2 TMR1 初始化TMR1初始化步骤如下:将第一外设中断标志寄存器PIR1(地址为 0CH)中的 TRM1溢出中断标志位 TMR1IF( Bit0 )清零。将第一外设中断屏蔽寄存器PIE1(地址为 8CH)中的 TMR1溢出中断屏蔽位 TMR1IE( Bit0 )置位。通过 TMR1中断控制寄存器T1CON(地址为 10H)设置时钟及分频比等。即:时钟源选择位TMR1CS( Bit1 )清零,选择内部时钟源分频比选择位T1CKPS0

27、T1CKPS1(Bit5 4)置位 11,选择分频比1: 8给 TMR1计数器 TMR1H(地址为 0FH)、TMR1L(地址为 0EH)赋初值将中断控制寄存器 INTCON(地址为 0BH)中的全局中断屏蔽位 GIE(Bit7 )置位,响应所有外围设备模块产生的中断请求将中断控制寄存器INTCON(地址为 0BH)中的外设中断屏蔽位PEIE(Bit6 )置位,开放第二级别的外围中断124.1.3 TMR0 初始化TMR0初始化步骤如下:通过选项寄存器OPTION_REG(地址为 81H)设置 TMR0的分频比及时钟即:时钟选择位 T0CS(Bit5 )清零,由内部提供的指令周期信号作为时钟源

28、分频器分配为 PSA(Bit3) 清零,分频器分配给 TMR0 分频器分频比选择位 PS2 PS0(Bit2 0)置位 111,选择分频比 1:128将 INTCON寄存器(地址为 0BH)中的 TMR0中断标志位 T0IF(Bit2) 清零并将中断屏蔽位 T0IE(Bit5 )置位将中断控制寄存器 INTCON(地址为 0BH)中的全局中断屏蔽位 GIE(Bit7 )置位,响应所有外围设备模块产生的中断请求将中断控制寄存器 INTCON(地址为 0BH)中的外设中断屏蔽位 PEIE(Bit6 )置位,开放第二级别的外围中断给 TMR0计数器赋初值4.2 定时 / 计数器定时 / 计数器其功能

29、都是靠寄存器计数值的累积来实现的,PIC 单片机采用递增方式,计数值累加到上限后会产生溢出,相应的会在溢出中断标志位上反映出来。计数值的累加又是靠时钟来触发的,它可以是单片机内部时钟,也可以来自外部。定时的长短以及数值的上限都是定时/ 计数器的位宽、 分频器的分频值有关。 PIC16F87X系列单片机集成 3 个定时 / 计数器模块 TMR0、TMR1、TMR2。在结构和功能上不尽相同,其定时长短,计数上限因此也不一样,应用场合也不同11 。TMR0为 8 位宽,与 WDT共用一个可选的预分频器,用于一般的通用目的。TMR1为16 位宽,附带一个可编程的预分频器以及一个可选的低频时基振荡器,不

30、仅可以用来计数,还可与 CCP模块一起实现输入捕捉与输出比较功能。TMR2也是一个 8 位宽的定时 /计数器,附带一个可编程的预分频器,一个可编程的后分频器,一个周期寄存器和比较器,只能用于定时,不能用于计时,可与CCP模块一起实现 PWM功能(即产生脉宽调制信号)。TMR0的特点:8 位宽定时 / 计数器计数器 TMR0内容可读可写8 位软件可编程预分频器内部 / 外部时钟可选,外部时钟触发边沿可选溢出中断功能TMR1的特点:16 位宽定时 / 计数器13计数器 TMR1内容可读可写3 位软件可编程预分频器累加计数信号源可选内部时钟、外部触发信号或自带时基振荡器信号溢出中断功能TMR2的的特

31、点:8 位宽的定时器计数器 TMR2内容可读可写2 位软件可编程与预分频器,4 位软件可编程后分频器累加计数信号源可选内部时钟信号,因此只能工作在定时器模式8 位周期寄存器溢出次数经过分频后溢出中断可以由用户软件关闭退出定时本设计应用到了TRM0和 TMR14.2.1 TMR1 中断服务程序设定系统的水位刷新时间为 1S,即单片机每秒钟对采样通道进行一遍 A/D 转换、软件上则设定 TMR1定时器每秒产生一次中断,执行数据采样程序,从最高水位采样通道向下执行,并不断将每次采样结果与系统设定的门限值比较 (采样结果如果小于门限值,说明电平低,即电容两极同时没于水中,水位已经超过该电极)当检测到水

32、位超过某一对电极时,则退出采样程序。接下来判断水位是否越限,若是则点亮相应的报警灯,否则使报警灯熄灭。然后调用数据转换子程序,将水位采样结果转化为相应数码管和LED显示段码值存入显示数据缓冲寄存器。由于 PIC 单片机的中断矢量只有一个,而本设计中用到两个中断 (TMR1和 TMR0),故而在中断服务程序入口处, 需要对中断源进行判断,这是通过判断相应的中断标志寄存器来实现的。 TMR1中断服务程序流程图如图 4.1 所示。设置 TMR1定时器分频比为 1: 8,采用内部时钟源,系统采用 2M晶振。那么 TMR1 的时钟脉冲周期为 2s,由于分频比为 1:8,则每 16s 计数一次, 1s 需

33、要计数 62500 次,即从计时开始到 62500 个计数周期后, TMR1寄存器达到上限 65536 并溢出,所以TMR1寄存器初始值 65536-62500=3036,即 0BDCH。下面对流程图中的关键部分进行简单说明:( 1)关于 ADC控制寄存器 ADCON0的设置: AD转换时钟选择位 Bit7 6 置位 01,选择系统时钟,频率为 f osc/8 ,模拟输入通道选择位 Bit5 3 置位 000,选择通道 0(RA0/AN0)。( 2)关于 ADC控制器 ADCON1的设置: A/D 转换结果格式选择位( Bit7 )清零,A/D转换结果左对齐, ADRESH有效, ADRESL

34、的低六位为 0, A/D 端口控制位( Bit3 0)置14位 1110,选择 RA0口为模拟输入口( 3)采样开始部分,要先关闭 A/D 转换器( Bit0=0 ),令其退出工作状态,等待采样值稳定后在重新开启 A/D 转换器( Bit0=1 ),开始采样。并通过检测 A/D 转换状态位GO/DONE( Bit2 )是否为 0,确定采样是否结束。图 4.1TMR1中断服务程序流程图4.2.2TMR0中断服务程序TMR0中断用于数码管及LED显示,每次中断将两个字节的数据串行发送发送至以为寄存器,后经 74LS244驱动一组 LED和 1 个数码管发光。由于每个 LED或数码管两次被选通的时间

35、最大不能烧过 100ms(利用人的视觉暂留现象,否则就会出现闪烁) ,加之TMR1中断可能占用的时间,所以每次 TMR0中断溢出时间不能太长;两一方面, TMR0中断溢出时间又不能太短,必须保证串行发送正常发送完毕。综合两方面因素,将TMR0溢出时间设定为 10ms。TMR0中断服务程序流程图如图4.2 所示。设置 TMR0定时器分频比为1:128,采用内部时钟源, 系统采用 2M晶振。那么 TMR0的时钟脉冲周期为1s, 由于分频比为 1:128,则每 256s 计数一次, 10ms需要计数 3915次,即从计时开始到 39 个计数周期后, TMR0寄存器达到上限256 并产生溢出,所以 T

36、MR0寄存器初始值 256-39=217,即 0D9H。图 4.2 TMR0 中断服务程序流程图下面对流程图中的关键部分进行简单说明:( 1)发送的两个字节,根据硬件电路原理可知,先发送的字节经过移位寄存器74LS164及数据缓冲器 74LS244驱动一组 LED;后发送的字节经过移位寄存器74LS164及数据缓冲器 74LS244驱动一个数码显示管。( 2)发送字节过程中,需清74LS244使能位,暂时禁止数据输出显示,待发送完16毕后,置 74LS244使能位,允许数据输出显示。( 3)当使用 SPI 来进行数据发送时,采用软件对标志位查询的方式来完成。( 4)关于同步串口控制寄存器 SS

37、PCON的设置:同步串行口允许位 SSPEN(Bit5 )置位,允许串口工作;同步串行口工作模式选择位 SSPM3 0(Bit3 0)置位 0000,选择 SPI 主控模式,并且时钟频率为系统时钟的 1/4 。4.3数据转换子程序在进行水位检测后,会产生一个水位的高度值(设置为 HEIGHT),但它并不是一个真实的水位值,只是一个标识水位高度的通道号,其值为 0 15 中的某个数,分别表示没有水以及 15 种水位高度共 16 种情况。故而需要将其转化为 LED和数码管的实际显示段码值。表 4 列出了高度值 HEIGHT、LED段码值 LED1 LED4和数码管显示数据 SEG1SEG4的对应关

38、系,表5 则为数码管的七段码值遇显示符号的对应关系。表 4 高度值与显示段码对照表HEIGHT LED1LED2LED3LED4SEG1SEG2SEG3SEG400F0H0F0H0F0H0F0H-10E1H0F0H0F0H0F0H-24020C3H0F0H0F0H0F0H-160387H0F0H0F0H0F0H-12040FH0F0H0F0H0F0H-8050FH0E1H0F0H0F0H-5060FH0C300F0H0F0H-2570FH87H0F0H0F0H-1080FH0FH0F0H0F0H090FH0FH0E1H0F0H10100FH0FH0C3H0F0H25110FH0FH87H0F0

39、H50120FH0FH0FH0F0H80130FH0FH0FH0E1H120140FH0FH0FH0C3H160150FH0FH0FH87H24017表 5 数码管七段码显示符号共阳极七段共阴极七段显示符号共阳极七段共阴极七段码码码码00C0H3FH682H7DH10F9H06H70F8H07H20A4H5BH880H7FH30B0H4FH990H6FH499H66H-0BFH40H592H6DH全灭FFH00H有三种方法对 LED和数码管显示缓冲寄存器写入数据:第一种是采用查表的方法,将各个高度值对应的数据预先存入一块缓冲区内,通过对指令指针赋值来访问特定数据单位,返回转换后的数值;第二种是

40、采用逐个比较的方法,将采样结果与 1 15 的数逐个比较,若相等则向缓冲区赋相应值;第三种方法是根据表的特征来赋值,很显然,第二、三种方法比较费时间,第一种方法虽然程序代码最大,但执行起来速度快,本设计采用第一种方法,具体可参见查表子程序的程序代码。18结束语由于许多数据采集、显示的实时性要求不是很高,因此单片机的执行速度相对于这些过程要快得多,若分时选通各个采样或显示通道,虽然单片机对各个通道的处理是依次进行的,但是只要这一过程达到一定速度,总的看来几乎同时执行,不断重复这一过程,就产生了循环扫描的思想,它在单片机系统设计中得到了广泛的应用。本设计中的水位采样通道设计以及数码管、 LED显示都是基于这一思想。主要是通过移位的方法,用 74LS164芯片将每个通道的串行数据转化为并行方式,在通过数据缓冲器 74LS244输出,用 CD4051循环对每个通道选通,从而实现对数码管的驱动。串行通信上则利用 PIC 的 CCP模块,采用硬件 SPI 方式进行串行通信。软件上采用了两个中断程序分别进行采样和显示。19致谢本次毕业设计历时两个多月,从选题、开题答辩到设计的完成,设计的完稿。其间每一过程都得到指导教师王灵矫老师的悉心指导, 在此表达我对他的深深的敬意和由衷的感谢!同时,我要向我

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论