毕业设计基于89C51单片机的数字式智能多路巡检仪的设计Word文件下载.docx
- 文档编号:17216067
- 上传时间:2022-11-29
- 格式:DOCX
- 页数:24
- 大小:467.05KB
毕业设计基于89C51单片机的数字式智能多路巡检仪的设计Word文件下载.docx
《毕业设计基于89C51单片机的数字式智能多路巡检仪的设计Word文件下载.docx》由会员分享,可在线阅读,更多相关《毕业设计基于89C51单片机的数字式智能多路巡检仪的设计Word文件下载.docx(24页珍藏版)》请在冰豆网上搜索。
综上所述本次设计是从生产需要出发,低成本的多路数据采集系统的设计,配以不同的传感器完成各类数据的采集、显示、控制与数据汇总保存,单机实现
过去多台仪器仪表所具备的功能。
3系统硬件设计
3.1系统整体设计方案
本设计采用8路输入,每路输入能支持多种形式的传感器接入:
电阻式(如:
热电阻)、毫伏信号(如:
热电偶)及标准信号输入(如:
1~5VDC,4~20mA),对于不同传感器接入信号,能进行软件整定与校正;
采用4个操作按钮,6位数码管作为显示,其中4位数码管用于显示数据,2位数码管显示功能号或通道号;
对每个通道,传感器参数与工程参数都可以通过键盘设定。
通常情况下,仪表自动循环显示多路数据,也可通过键盘固定显示任一路数据。
硬件总体结构:
硬件部分是整个仪表的重要部分,其设计的好坏直接影响到整机的性能,本仪器以AT89C51单片机为核心。
整个硬件系统分为以下几个模块:
传感器模拟信号采集处理模块,A/D转换模块,键盘及显示模块,单片机系统模块及报警控制模块。
图1.系统方框图
3.2多路信号采集模块
3.2.1模拟信号放大电路
由于有些传感器的输出电流或电压不足以进行A/D处理,需要对信号进行转换和放大。
由于LM324四运算放大电路具有电源电压范围宽,静态功耗小,可单电源使用,价格低廉等优点,因此本设计采用LM324作为运算放大器。
模拟信号放大电路如下图所示。
图2.模拟信号放大电路
放大倍数为1+Rf/R=1+10=11。
通过增加或去掉电阻R6可分别接收电流与电压信号。
3.2.2多路信号采集通道的选择
在本设计中,输入信号为8路的模拟信号,这就需要多通道结构。
本系统采用多路分时的模拟量输入通道。
这种结构的模拟量通道特点为:
(1)对ADC要求高。
(2)处理速度慢。
(3)硬件简单,成本低。
(4)软件比较复杂。
图3.多路信号采集框图
3.2.3多路信号采集的实现
本设计系统为八路的温度信号采集,而ADC0804仅为一路输入,故采用CD4051组成多路分时的模拟量信号采集电路,其硬件接口如图所示
图4.多路模拟输入电路图
3.2.4多路模拟开关CD4051
多路开关,又称“多路模拟转换器”。
多路开关通常有n个模拟量输入通道和一个公共的模拟输入端,并通过地址线上不同的地址信号把n个通道中任一通道输入的模拟信号输出,实现有n线到一线的接通功能。
反之,当模拟信号有公共输出端输入时,作为信号分离器,实现了1线到n线的分离功能。
因此,多路开关通常是一种具有双向能力的器件[4]。
所以本设计选用CD4051多路开关,它是一种单片、COMS、8通道开关。
该芯片由DTL/TTL-COMS电平转换器,带有禁止端的8选1译码器输入,分别加上控制的8个COMS模拟开关TG组成。
3.2.5多路模拟开关工作原理
CD4051作为8选1功能时,若A、B、C均为逻辑“0”(INH=0),则地址码00013经译码后使输出端OUT/IN和通道0接通。
其它情况下,输出端OUT/IN输出端OUT/IN和各通道的接通关系如下:
表1.CD4051八路通道关系表
输入状态
接通
通道
INH
C
B
A
1
5
6
0
2
7
3
x
均不显示
4
3.3A/D转换模块
为了把温度、湿度等信号采集电路测出的模拟信号转换成数字信号送CPU处理,本系统选用了A/D转换器ADC0804,它精度高,速度快。
由于ADC0804芯片只有一路输入,而本系统检测的多路信号输入,故选用多路选择电子开关CD4051,可输入多路模拟量。
3.3.1ADC0804主要技术指标
(1)高阻抗状态输出
(2)分辨率:
8位(0~255)
(3)存取时间:
135ms
(4)转换时间:
100ms
(5)总误差:
-1~+1LSB
(6)工作温度:
ADC0804C为0度~70度;
ADC0804L为-40度~85度
(7)模拟输入电压范围:
0V~5V
(8)参考电压:
2.5V
(9)工作电压:
5V
(10)输出为三态结构
3.3.2ADC0804特点及工作原理
模数转换采用ADC0804,对输入模拟量要求:
信号单极性,电压范围是0-5V,若信号太小,必须进行放大;
输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路[5]。
ADC0804有20个引脚,其中11-18管脚为数字信号输出端,与单片机P1口相连;
cs为片选端,接单片机P3.5口,WR接P3.6口,RD接单片机P3.7口。
CLK为时钟输入信号线,因ADC0804的内部有时钟电路,只要在外部“CLKR”和“CLKIN”两端外接一电阻电容即可产生A/D转换所要求的时钟。
通常使用2.5V作为为参考电压输入。
INTR为中断控制信号,接单片机外部中断端口,当A/D转换完后向单片机发出中断信号,等待读走数字信号,INTR也空可置不接,因为当启动A/D后一段时间后模数转换完后,等待一段时间后单片机也可以读走数字量。
图5.多路模拟开关及A/D转换电路图
3.4单片机系统模块
3.4.1AT89C51单片机的基本功能
AT89C51具有以下标准功能:
4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其他所有部件工作指导下一个硬件复位[6]。
3.4.2AT89C51单片机基本工作电路
AT89C51单片机正常工作,必须连接基本电路。
基本电路包括晶振电路和复位电路[7]。
1.晶振电路
单片机的时钟信号通常有两种产生方式:
一是内部时钟方式,二是外部时钟方式。
内部时钟方式是利用单片机内部的振荡电路产生时钟信号。
外部时钟方式是把外部已有的时钟信号引入到单片机内。
本设计所采用的是内部时钟方式。
在单片机的XTAL1和XTAL2引脚外接石英晶体(简称晶振),作为单片机内部振荡电路的负载,构成自激振荡器,可在单片机内部产生时钟脉冲信号。
C1和C2可以稳定振荡频率,并使快速起振。
本电路选用晶振12MHz,C1=C2=30pF。
2.复位电路
复位是使单片机处于某种确定的初始状态。
单片机工作从复位开始。
在单片机RST引脚引入高电平并保持2个机器周期,单片机就执行复位操作。
复位操作有两种基本方式:
一种是上电复位,另一种是上电与按键均有效的复位。
本设计采用了后一种复位电路。
当RST获得高电平,随着电容C3的充电,RST引脚的高电平将逐渐下降。
若该高电平能保持足够2个机器周期,就可以实现复位操作。
选择C3=10µ
F,R1=10KΩ[7]。
图6.AT89C51单片机管脚及基本工作电路图
3.5键盘显示模块
本设计键盘显示模块采用4个操作按钮,6位数码管作为显示。
其中4位数码管用于显示数据,2位数码管显示功能号或通道号;
3.5.1键盘控制电路设计
键盘控制电路由按键及其接口构成,键盘是单片机最简单的输入设备。
常用键盘分为独立式键盘和矩阵式键盘[8]。
本系统的输入控制简单,采用独立式键盘及接口电路。
输入电路由4个按钮开关、4个10欧的限流电阻组成;
键扫描识别采用软件查询的方法。
图7.键盘输入控制电路
表2.四个独立键盘对应功能表
按键
键名
功能
S2模式切换键自动循环显示与固定显示切换
S3参数设定键传感器参数设定
S4参数设定键工程参数设定
S5通道切换键切换固定显示通道
3.5.2LED显示器的简介
LED显示器是由发光二极管组成,其中7个发光二极管按“8”行排列,用于显示数字,字母等符号,一个发光二级管圆点形状,右下角用于显示小数点,LED显示器共阴极和共阳极两种类型。
当发光二极管导通时,相应的一段笔画成小数点亮,对共阴极显示器,将共阴极COM接地,在a_q段加驱动信号,当驱动信号是高电平时,相应段发光;
对共阳极显示器,将共阳极COM极接高电平,在a_q段几加驱动信号,当驱动信号是低电平时,相应段发光,从而显示相应字符。
不同的显示字符其驱动代码是不一样的,发光二极管每段流过5mA的平均电流就可以有较满意的亮度,最大电流不得超过30A,由于发光二极管是电流驱动设备,一般的I/O接口驱动能力是都是有限的,在发光二极管与接口芯片间要接驱动电路,常用的CMOS或TTL驱动器有:
74LS164,CD4094等。
3.5.3LED显示电路原理
采用LED数码管显示。
在单片机应用系统中LED显示器有动态和静态两种显示方式,所谓的静态显示方式就是需要在显示的字符各段通过连续的电流,动态显示方式就是需要显示的字符断续通过电流,对于动态显示,当需要显示多个字符时轮流给每个字符通以电流,由于轮流的速度很快,发光二极管的余辉以及人的视觉暂留等因素,虽然在同一时刻只有一个显示器通电,但人们看起来都是所有的显示器都稳定的显示。
动态显示的特点是:
单片机既要控制数码管的公共端又要控制各段发光二极管。
各数码管的相应显示发光二极管的段选信号都并联起来,接单片机的同一个I/0口,单片机控制数码管公共端的信号,称为位选信号,控制数码管各显示字段的信号称为段选信号,需要在哪些数码管上显示,先输出位选信号,选中该数码管,再输出段选信号,显示一位字符,需要显示每个字符时,用扫描的方法,依次向各个数码管输出位选信号和段选信号,显然每一瞬间只有一个数码管点亮,但由于扫描频率高,所以看上去,就好象所有的数码管都同时点亮(20ms扫描一次)[9]。
3.5.4LED显示电路的设计
在本系统中,需要显示6位数字,显示数字位数较多,而且需要循环显示。
综合比较静态显示方式和动态显示方式,同时结合本设计的实际情况,选择动态显示方式。
显示模块中,单片机AT89C51的P0.0-P0.7端作为数据输出,连接到两个锁存器74HC573对应的输入端D0-D7。
6位数码管段选线并联在一起与其中一个锁存器U1的Q0-Q7端相连,6为数码管位选与另一个锁存器U2的Q0-Q5端相连。
锁存器U1的锁存端与单片机P2.6端相连,锁存器U2的锁存端与单片机P2.7端相连。
图8.LED显示电路
3.6报警控制模块
在实际应用中,为了安全生产,对于一些重要的参数或系统部位,都设有紧急状态报警系统,以便提醒操作人员注意,或采取紧急措施。
其方法就是把计算机采集的数据或记过计算机进行数据处理、数字滤波,标度变换之后,与该参数上下限给定值进行比较,如果高于上限值(或低于下限值)则进行报警,否则就作为采样的正常值,进行显示。
3.6.1报警控制电路结构
报警控制电路由单片机AT89C51的P3.3端作输出,通过一个限流电阻与三极管C945的基极相连接。
三极管C945集电极连接压电蜂鸣器(BUZZER)的一端。
压电蜂鸣器的另一端连接电源。
报警控制电路如下图所示。
图9.报警工作电路
3.6.2报警控制电路工作过程
(1)压电蜂鸣器工作原理
压电蜂鸣器以压电陶瓷制作而成。
压电陶瓷是一类有将压力与电流相互转换能力的特殊陶瓷。
当压电陶瓷在一定方向上受到一个压力使其晶体结构发生形变时,它就会在内部产生一个电流,电流的变化与压力的变化密切相关。
反之,当在压电陶瓷上加上一定频率的电压,就会在内部产生一定频率的电流,从而就会引起压电陶瓷微小形变,这一形变带动空气发生振动。
如果频率适当,就产生蜂鸣声,可以被人耳所听见[10]。
(2)报警控制电路工作过程
报警控制信号由单片机AT89C51的P3.3端输出,通过一个限流电阻加到三极管C945的基极。
当P3.3端的输出信号发生变化时,则三极管C945将交替的工作于截止、饱和状态,形成高低电平的波,从而使压电蜂鸣器发出声音。
4系统软件设计
4.1系统总体软件设计
在本程序的设计中,A/D转换是通过每次转换完成后单片机延时接收转换结果,并将转换结果送入处理器的存储器中保存;
因为在硬件结构时,就采用了独立键盘的结构,所以键盘子程序采用查询方式,以保证处理器始终都在监视键盘的动作;
显示子程序采用单独的子程序,作为主程序的调用子程序,以保证LED管的连续显示。
主程序流程图如图10。
将键盘查询子程序和显示调用子程序作为它的程序运行的循环环节;
A/D转换中断处理子程序,采用中断处理程序,保持了检测信号的不断及时更新;
显示子程序直接通过单片机的端口,不停的送出字位显示和字数的显示;
键盘处理子程序,键盘采用独立键盘,在有键按下时,首先判断那个键按下,然后根据相应的键作出相应的处理,在此程序中,键盘采用的是脉冲式按键方式,按键按下一下,处理器作出一次相应的回应,当采集信号超过报警值时,蜂鸣器发出报警。
图10.主程序流程图
4.2信号采集分析模块软件设计
4.2.1信号采集控制逻辑
将传感器输出经调整后的模拟电压输入转换器进行A/D转换,采用ADC0804其操作时序图如下
图11.ADC0804控制信号时序图
由ADC0804的时序可以知道,转换过程由一个写信号启动,转换完成后,输出INTR信号,此时可以读取数据。
之后可以进入下一个转换周期。
由ADC0804的转换时间可知,其最大采集频率为10KHZ,只要用户设置的采样频率不超过这个数值,ADC0804就可以正常的工作。
综合以上考虑,设计时要注意两点:
(1)写信号的频率要低于ADC0804的最大转换频率。
(2)在写信号之后至少要有100us的时延,才能输出读信号。
在此,提出两种方法来实现ADC0804的控制信号时序:
(1)主动模式,在这种模式下,控制电路启动A/D转换后,在INTR信号的作用下,输出读信号,同时从ADC0804的数据总线上读入数据,之后输出一个写信号,开始下一次转换。
由于这种方式是异步进行的,读写信号彼此之间交互的产生,因此,能够满足上面提出的两点要求。
采用这种方式,其难易程度与ADC0804外部电路的接法密切相关。
(2)被动模式,在这种模式下,ADC0804的读写信号完全由控制电路按照固定的时序产生,与其自身输出无关。
采用这种方式,可以不考虑ADC0804的输出,读写信号的产生只是用到了一个计数器,实现起来比较简单,而且,只要采集频率不是很高,那么,就可以很容易满足ADC0804控制信号的时序要求。
4.2.2ADC0804转换及数据的读取
ADC0804用脉冲启动信号。
AT89C51发出指令使CS和WR同为低电平时,A/D转换被启动,ADC0804开始工作。
A/D转换被启动而在WR上升沿后100μs完成数模转换,同时INTR自动变为低电平,表示本次转换已经结束。
图12.A/D转换流程图
89C51要接收ADC0804转换后的数字信号。
A/D转换结束时,A/D转换芯片输出转换结束信号。
89C51A/D转换结束后即可读取转换后数据。
89C51一般可以采用3种方式和A/D转换器进行联络来实现对转换数据的读取。
本设计采用延时方式进行89C51和ADC0804间的数据读取。
采集数据时,首先89C51执行一条传送指令,在该指令执行过程中,89C51在控制总线的同时产生CS、WR低电平信号,启动A/D转换器工作,ADC0804经100μs后将输入的模拟信号转换为数字信号存在输出锁存器中,并在INTR端产生低电平表示转换结束。
当89C51设定接收延时时间到时,立即执行输入指令,以产生CS、RD低电平信号到ADC0804相应引脚,将数据取出。
A/D转换子程序
;
ADC0804端口定义
*********************************************
cs
equ
p3.6
;
定义AD的片选信号线
wr
p2.0
定义AD的写入数据线
rd
p3.7
定义AD的读入数据线
out
p1
定义AD转换后的数字信号送P1口
=============================================
org
0000h
ajmp
main
org
004h
main:
主程序
lcall
Start
调启动转换子程序
delay1ms
延时1ms
read
调读取转换结果子程序
clr
wr
mov
p0,a
送P0口显示当前AD转换结果
A/D转换开始
Start:
选中ADC0804
nop
setb
cs
ret
读A/D转换结果
Read:
movout,#0ffh
clrcs
clrrd
mova,out;
setbrd
setbcs
延时1ms子程序
delay1ms:
movr1,#2
tt1:
movr0,#250
djnzr0,$
djnzr1,tt1
图13.信号采集子程序流程图
4.3键盘与显示模块软件设计
4.3.1键盘扫描子程序
键盘扫描子程序对按下的键进行判断,并转到按下的相应键对应的程序段,执行相应的功能。
4.3.2按键产生抖动原因及解决方案
实际中,在按下某个键时,被按按键的弹簧总会有轻微的抖动。
t1,t3分别是闭和和释放的抖动时间,抖动时间的长短与按键的机械特性有关,一般为5ms-20ms。
为确保CPU对键的一次闭和仅做一次处理,必须去抖动,这可以分别通过软件和硬件两种方法实现。
如果用硬件来实现去抖动,那就需要增加必要的元器件这样就使得电路变的复杂,而且也不经济,所以本设计选用了软件去抖动的方法
具体实现的方法就是,当CPU检测到有按键按下后通过软件延时(5ms-20ms)一段时间后再进行扫描,如果延时后检测到仍然有键按下,这时才读取键值并存入寄存器,从而达到了去抖动的效果。
4.3.3窜键的处理
用户在操作时常常因不小心同时按下了一个以上
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 基于 89 C51 单片机 数字式 智能 巡检 设计