您好,欢迎来到年旅网。
搜索
您的当前位置:首页多功能数据采集系统的设计

多功能数据采集系统的设计

来源:年旅网
中北大学2012届毕业设计说明书

1 引言

数据采集,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等。采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。采集的数据大多是瞬时值,也可是某段时间内的一个特征值。准确的数据量测是数据采集的基础。数据量测方法有接触式和非接触式,检测元件多种多样。不论哪种方法和元件,均以不影响被测对象状态和测量环境为前提,以保证数据的正确性。

在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,数据采集领域已经发生了重要的变化。国内外各种数据采集器先后问世,将数据采集带入了一个全新的时代。 数据采集系统根据不同的应用需求有不同的定义,这就使得多功能数据采集系统的发展显得尤为重要。

多功能数据采集系统的任务就是根据不同的需要对信号进行采集,如实现采集初始时刻的任意性,采集频率的多样性。然后转换成单片机能够识别的数字信号,送入单片机进行相应的计算和处理,得出所需数据,并将其进行显示或加以通信,以便实现对某些量的实时控制和处理。在生产生活的各个方面,数据采集系统几乎无处不在,凡是有自动监控系统的地方都有数据采集系统的出现,随着工业生产生活的需要,对数据采集系统的要求也越来越高,尤其是根据不同的需要实现以不同的方式采集数据。因此,对本课题的研究有及其广阔发展前景和巨大的经济价值。

第 1 页 共 35 页

中北大学2012届毕业设计说明书

2 多功能数据采集系统总述

2.1 系统简介

数据采集系统起始于20世纪50年代,由于数据采集系统具有高速性和一定的灵活性,可以满足众多传统方法不能完成的数据采集和通信任务,因而得到初步的认可。由于集成电路制造技术的不断提高,数据采集技术已经在军事、航空电子设备及宇航技术、工业等领域被广泛应用。

本系统主要包括数据采集模块、数据存储模块、CPU模块、人机交互模块、通信模块。系统电路原理图见附录A,PCB图见附录B。其中数据采集模块采用8255A芯片扩口接AD1380转换器主要实现对不同形式信号的实时采集;CPU模块负责对采集到的信号进行分析、变换等操作;人机交互模块是实现采集频率控制及显示数据等功能。针对目前数据采集系统在工业控制中的实际使用情况,本系统相比一些其它的数据采集系统,在满足基本要求的同时,成本更低、操作也简单。

本系统解决的一个关键问题是,在数据采集的过程中,保证了通过实现从任意时刻开始采集数据和以不同的频率采集数据来满足不同的工作需要。 2.2 系统总体框图

本设计拟采用单片机作为程序的主控芯片,利用A/D转换技术,实现数据的实时转换,利用键盘控制采样频率的改变,通过外加存储器扩展存储空间,通过显示器显示数据并进行通信。系统总体框图如图所示:

数据采集模块 CPU 模 块 人机交互模块 通信模块 图2.1 系统总体框图 数据存储模块

第 2 页 共 35 页

中北大学2012届毕业设计说明书

3 CPU模块

3.1 C51单片机的基本组成

本设计采用C51作为系统的主控芯片,芯片结构框图如下: 外部时钟源 外部事件计数 振荡器和时序OSC 程序存储器4KB ROM 数据存储器256B RAM/SFR 2x16位定时器/计数器 C51 CPU 内中断 图3.1 C51单片机结构框图 KB总线扩展控制器 可编程I/O口 可编程全双工串行口 C51单片机包含:

(1)一个8位的80C51微处理器

(2)片内256字节数据存储器RAM/SFR,用以存放可以读写的数据,如运算的中间结果,最终结果以及欲显示的数据等

(3)片内4KB程序存储器FLASH ROM,用以存放程序、一些原始数据和表格 (4)4个8位并行I/O端口P0-P3,每个端口既可用作输入也可用作输出 (5)两个16位的定时器/计数器,每个定时器/计数器都可设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式

(6)具有5个中断源、两个中断优先级和中断控制系统

(7)一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与PC机之间的串行通信

(8)片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接,最高允

第 3 页 共 35 页

中北大学2012届毕业设计说明书

许振荡频率为24MHz

(9)C51单片机与8051相比,具有节电工作方式,即休闲方式及掉电方式[1]

3.2 管脚及说明

图3.2 C51单片机引脚图

VCC:供电电压。 GND:接地。

P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

第 4 页 共 35 页

中北大学2012届毕业设计说明书

P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。

P3口也可作为ATC51的一些特殊功能口,如下表所示:

表3.1 P3口特殊功能

P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 RXD(串行输入口) TXD(串行输出口) /INT0(外部中断0) /INT1(外部中断1) T0(记时器0外部输入) T1(记时器1外部输入) /WR(外部数据存储器写选通) /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。

RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。

ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部

第 5 页 共 35 页

中北大学2012届毕业设计说明书

数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。

/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。

/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器

(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。

XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出[1,2]。 3.3 主要特性

.与MCS-51 兼容

.4K字节可编程闪烁存储器,寿命:1000写/擦循环,数据保留时间:10年

.全静态工作:0Hz-24MHz .三级程序存储器锁定 .128*8位内部RAM .32可编程I/O线

.两个16位定时器/计数器 .5个中断源 .可编程串行通道

.低功耗的闲置和掉电模式 .片内振荡器和时钟电路[1,3]

第 6 页 共 35 页

中北大学2012届毕业设计说明书

4 人机交互模块

4.1 键盘 4.1.1 键盘简介 1.键盘输入的特点 键盘:一组按键开关的集合。 2.按键的确认 检测行线电平,便可确认按键按下与否。高电平:断开;低电平:闭合。 3.如何消除按键的抖动 常用软件来消除按键抖动。基本思想:检测到有键按下,键对应的行线为低,软件延时10ms后,行线如仍为低,则确认该行有键按下。 当键松开时,行线变高,软件延时10ms后,行线仍为高,说明按键已松开。采取以上措施,躲开了两个抖动期的影响。 4.1.2 键盘接口的工作原理

本设计采用行列式(矩阵式)键盘接口,矩阵式键盘用于按键数目较多的场合,由行线和列线组成,按键位于行、列的交叉点上。如图所示:

图4.1 矩阵式键盘结构

按键数目较多的场合,行列式键盘与式键盘相比,要节省很多的I/O口线。 (1)行列式键盘工作原理 如果没有键按下,该行线为高电平,当有键按下时,行线电平有列线的电平来决定。 第 7 页 共 35 页

中北大学2012届毕业设计说明书

由于行、列线为多键共用,各按键彼此将相互发生影响,必须将行、列线信号配合起来并作适当的处理,才能确定闭合键的位置。 (2)按键的识别方法 a.扫描法 图4-1(b)中3号键被按下为例,来说明此键时如何被识别出来的。识别键盘有无键被按下的方法,分两步进行: 第1步:识别键盘有无键按下; 第2步:如有键被按下,识别出具体的按键。 把所有列线置0,检查各行线电平是否有变化,如有变化,说明有键按下,如无变化,则无键按下。 上述方法称为扫描法,即先把某一列置低电平,其余各列为高电平,检查各行线电平的变化,如果某行线电平为低,可确定此行列交叉点处的按键被按下。 b.线反转法 只需两步便能获得此按键所在的行列值。 第1步:列线输出为全低电平,则行线中电平由高变低的所在行为按键所在行。 第2步:行线输出为全低电平,则列线中电平由高变低所在列为按键所在列。 结合上述两步,可确定按键所在行和列。 (3)键盘的编码 根据实际需要灵活编码[4,5]。 4.2 LED数码显示 4.2.17段LED数码管简介

7段LED数码管,是在一定形状的绝缘材料上,利用单只LED组合排列成“8”字型的数码管,分别引出它们的电极,点亮相应的点划来显示出0-f的数字。

LED数码管根据LED的接法不同分为共阴和共阳两类,了解LED的这些特性,对编程是很重要的,因为不同类型的数码管,除了它们的硬件电路有差异外,编程方法也是不同的。下图是共阴和共阳极数码管的内部电路,它们的发光原理是一样的,只是它们的电源极性不同而已。

将多只LED的阴极连在一起即为共阴式,而将多只LED的阳极连在一起即为共阳式。以共阴式为例,如把阴极接地,在相应段的阳极接上正电源,该段即会发光。

第 8 页 共 35 页

中北大学2012届毕业设计说明书

当然,LED的电流通常较小,一般均需在回路中接上限流电阻。假如我们将\"b\"和\"c\"段接上正电源,其它端接地或悬空,那么\"b\"和\"c\"段发光,此时,数码管显示将显示数字“1”。而将\"a\"、\"b\"、\"d\"、\"e\"和\"g\"段都接上正电源,其它引脚悬空,此时数码管将显示“2”。其它字符的显示原理类同[6]。

图4.2 数码管共阴极、共阳极接法

两种接法显示译码如下表:

表4.1 数码显示译码表

显示字符 0 1 2 3 4 5 6 7 共阴极段码 3FH 06H 5BH 4FH 66H 6DH 7DH 07H 共阳极段码 C0H F9H A4H B0H 99H 92H 82H F8H 显示字符 8 9 A b c d E F 共阴极段码 7FH 6FH 77H 7CH 39H 5EH 79H 71H 共阳极段码 80H 90H 88H 83H C6H A1H 86H 8EH 4.2.2LED显示器工作原理

N个LED显示块有N位位选线和8×N根段码线。 段码线控制显示的字型,位选线控制该显示位的亮或暗。静态显示和动态显示两种显示方式。 1.静态显示方式 各位的公共端连接在一起(接地或+5V)。 每位的段码线分别与一个8位的锁存器输出相连。显示字符一确定,相应锁存器的段码输出将维持不变,直到送入另一个段码为止。显示的亮度高。下图: 4位静态LED显示器电路。该电路各位可独

第 9 页 共 35 页

中北大学2012届毕业设计说明书

立显示。

图4.3 4位静态LED显示器电路

2.动态显示方式 所有位的段码线相应段并在一起,由一个8位I/O口控制,形成段码线的多路复用,各位的公共端分别由相应的I/O线控制,形成各位的分时选通。 下图:4位8段LED动态显示电路。其中段码线占用一个8位I/O口,而位选线占用一个4位I/O口[7]。

图4.4 4位动态LED显示电路

本设计中采用动态显示模式。 4.3 人机接口模块电路

本设计中由于采用c51单片机,I/O口不够用,所以扩展了一片8255A,来连接键盘和显示器。编程时,先片选到本片8255A,设置其以方式0工作,A、B输出,C输入,数码显示为共阴极接法,PA口接数码管的段选线,共阴极

第 10 页 共 35 页

中北大学2012届毕业设计说明书

公共端由PB0、PB1分别控制。键盘的行线接PB口的高四位,列线接PC口低四位,接口电路如下:

图4.5 键盘显示器接口电路

第 11 页 共 35 页

中北大学2012届毕业设计说明书

5 数据采集模块

5.1 数据采集主要芯片A/D转换器

本系统采用AD1380作为数据采集模块的主要芯片。AD1380是一种完整的低功耗16位逐次逼近型A/D转换器,为美国模拟器件公司(Analog Devices)产品。该产品采用表面镀铜技32脚双列直插式标准陶瓷封装,将D/A转换电路,参考电压,时钟脉冲,比较器,逐次逼近寄存器及采样/保持放大器集成在一个芯片上,可并行或串行输出,所有数字输入和输出与TTL或5V CMOS兼容,转换时间最大为14uS,非线性误差小于0.003%FSR,电源供给为15V和5V。

由于AD1380的数据输出不是三态控制输出,因此在硬件接口设计时必须外界数据缓冲寄存器[8,9]。

一、AD1380的引脚功能和应用特性

AD1380的主要特性总结如下: 分辨率:16位二进制 转换时间:14uS

非线性度:0.006%FSR(AD1380JD); 0.003%FSR(AD1380KD)。 无误码:AD1380JD为13位(0C~+70C); AD1380KD为14位(0C~+70C)。 最大功耗:900mW

输出形式:16位负逻辑并行或串行输出(单极性输入时数据输出是互补二进制码,双极性输入时数据输出是互补偏移二进制码)

模拟输入电压:-2.5V~+2.5V,-5V~+5V,-10V~+10V,0V~+5V,0V~+10V 工作电源电压:模拟电源电压为15V(0.5V) 数字电源电压为5V(0.25V) AD1380的引脚如图所示:

第 12 页 共 35 页

中北大学2012届毕业设计说明书

图5.1 AD1380引脚图

引脚功能如下: 1脚:-15V模拟电源供电 2脚:+15V模拟电源供电 3脚GA:增益调节引脚

4脚BIP:双极性调节,与7脚和32脚的不同链接可适应不同的模拟电压输入范围,关系如下表:

表5.1 AD1380模拟输入范围引脚编程表

输入信号范围 输出代码 连4脚到 5 5 5 AGND AGND 连7脚到 32 开断 5 5 开断 连输入信号到 连32脚到 31 31 31 31 31 7 6 6 6 6 10V 5V 2.5V 0V~+5V 0V~+10V COB COB COB CSB CSB 5脚COMP:比较器输入

6脚10VSP:10V量程模拟电压控制 7脚20VSP:20V量程模拟电压控制

8脚AGND:模拟地,整个系统AGND与DGND最后只能有一点相连 9~24脚B16~B1:并行16位数字输出,B1为最高位(MSB)

第 13 页 共 35 页

中北大学2012届毕业设计说明书

25脚SO:串行数据输出,每位保持一个时钟周期 26脚CLKO:时钟输出

27脚BUSY:转换状态引脚,当START变为低电平,启动A/D转换开始时,BUSY变为高 电平。当转换结束后,BUSY变为低电平,可用于判断转换是否结束,也可用 作中断请求信号。

28脚START:转换启动信号引脚,其下降沿复位所有内部逻辑,并将B1置为低电平,其余位置为高电平,BUSY为高电平,启动A/D转换

29引脚:+5V逻辑电源引脚 30脚DGND:数字地

31脚SHI:采样/保持器输入,接模拟电压信号输入 32脚SHO:采样/保持器输出[10] 二、AD1380的工作时序:

图5.2 AD1380的工作时序

三、AD1380的地线布置和去耦

AD1380有两个内部互不相连的地线,即模拟地(8脚)和数字地(30脚),这两个地又必须在芯片上就近一点相连,由于电流流过的地线上的回路电阻及干扰的影响,在系统接地点和AD1380芯片地之间可能会有几百毫伏的电压,由于电源电流

第 14 页 共 35 页

中北大学2012届毕业设计说明书

和逻辑门电流不安同一路径进入回路,因此将使模拟信号的转换处理出现测量误差。

为克服这类由于地线及回路引起的测量误差,一个大容量的电容(1uF)并联一个0.1uF的电容是非常有效的。电容并联在逻辑电源和数字地之间及正负模拟电源与模拟地之间,电源端的去耦电容应尽可能靠近芯片布置。由于芯片的金属表面已在内部接地,注意不要在外部再将金属表面接地[11]。 5.2 AD1380与C51单片机接口电路

由于AD1380的转换速度较快,而微处理器的时钟较慢,这时用CPU控制AD1380的A/D转换就有可能丢失数据。另外,要实现CPU对数据采集频率的预置,且AD1380的数据输出没有三态缓冲数据输出,所以在与C51单片机接口时,较好的方法是将16位的A/D转换结果先缓冲锁存在寄存器里,然后再进行数据读入或其他处理。

本设计中AD1380采用查询方式完成A/D转换,缓冲锁存寄存器采用可编程并行接口芯片8255A,利用其方式1即选通I/O方式的锁存功能实现对A/D转换数据输出的单向锁存。本片8255A的片选信号/CS由74LS138的Y2端提供,口地址选择线A0和A1由C51的P0.0和P0.1提供。A口和B口分别为A/D转换后数据的高8位和低8位数据输入口,PC4控制A口选通输入操作,PC2口控制B口选通输入操作。当PC4或PC2 为低电平时,A口或B口数据线上的数据打入端口锁存器,将数据锁存,直到CPU读取A口或B口数据时,端口锁存器空,才允许将下一个数据通过PC4或PC2的下降沿锁存、读取。接口电路如下:

第 15 页 共 35 页

中北大学2012届毕业设计说明书

图5.3 AD1380与C51单片机接口电路

第 16 页 共 35 页

中北大学2012届毕业设计说明书

6 数据存储模块

6.1 EEPROM简介

电可擦除可编程序的ROM (Electronic Erasible Programmable ROM),保留信息长达20年,不存在EPROM在日光下信息缓慢丢失的问题。电可擦除可编程序的 ROM 也称为 EEPROM 即 E2PROM 。它的工作原理与 EPROM 类似,当浮动栅上没有电荷时,管子的漏极和源极之间不导电,若设法使浮动栅带上电荷,则管子就导通。

在 EPROM 中,使浮动栅带上电荷和消去电荷的方法与 EPROM 中是不同的。在 E2PROM 中,漏极上面增加了一个隧道二极管,它在第二栅与漏极之间的电压 VG 的作用下,可以使电荷通过它流向浮动栅(即起编程作用);若 VG 的极性相反也可以使电荷从浮动栅流向漏极(起擦除作用),而编程与擦除所用的电流是极小的,可用极普通的电源就可供给 VG 。

E2PROM 的另一个优点是:擦除可以按字节分别进行(不像 EPROM ,擦除时把整个芯片的内容全变成“ 1 ”)。由于字节的编程和擦除都只需要 10ms ,并且不需特殊装置,因此可以进行在线的编程写入。常用的典型芯片有 2816/2817/28 等。在芯片的引脚设计上,2KB的E2PROM 2816与相同容量的EPROM 2716和静态RAM 6116兼容,8KB的E2PROM 28A与同容量的EPROM 27和静态RAM 62也是兼容的。本设计采用的是28A[12]。

28A是电擦除可编程的只读存储器芯片。单一+5V供电,最大工作电流为160mA,维持电流为60mA。读出时间最大为250ns,写入时间约为16ms,由此可见28A的读写速度是较慢的。由于片内设有编程所需高压脉冲电路,因而无需外加编程电压与写入脉冲即可工作。28A的容量为8K×8位,因此该芯片有8根数据线与13根地址线。

28A的读操作与普通EPROM的读出相同,所不同的是可以在线进行字节的写入。28A在写一个字节的指令或数据之前,自动将要写入单元进行擦除,因而无需专门的擦除操作。可见使用28A就如同使用RAM一样方便[13]。 6.2 C51扩展E2PROM的方法

C51外扩28A接口电路见下图。先片选中28A,线选法决定了28A对应的地址空间, 8K字节的28A作为数据存储器使用,掉电后数据不丢失。 第 17 页 共 35 页

2

中北大学2012届毕业设计说明书

(1)数据线的连接

C51的P0.0~P0.7与28A的IO0~IO7直接连接。 (2)地址线的连接

C51的P0.0~P0.7经过74LS373锁存器与28A地址线的低8位A0~A7连接。C51的P2.0~P2.4与28A地址线的高5位A8~A12直接连接。

(3)控制线的连接

28A的片选信号/CE与74LS138的Y0连接,读信号/OE由C51的/RD连接,写信号/WE由C51的/WR连接。

扩展电路图为:

图6.1 28A与C51接口电路

第 18 页 共 35 页

中北大学2012届毕业设计说明书

7 通信模块

7.1 MAX232简介

MAX232芯片是MAXIM公司生产的包含两路接收器和驱动器的IC芯片,适用于各种EIA-232C和V.28/V.24的通信接口。其内部有一个电源电压变换器,可以把输入的+5V电源电压变换成RS-232C输出电平所需的±10V电压。MAX232芯片引脚结构如图所示:

图7.1 MAX232引脚图

内部结构基本可分三个部分:

第一部分是电荷泵电路。由1、2、3、4、5、6脚和4只电容构成。功能是产生+12v和-12v两个电源,提供给RS-232串口电平的需要。 第二部分是数据转换通道。由7、8、9、10、11、12、13、14脚构成两个数据通道。 其中13脚(R1IN)、12脚(R1OUT)、11脚(T1IN)、14脚(T1OUT)为第一数据通道。 8脚(R2IN)、9脚(R2OUT)、10脚(T2IN)、7脚(T2OUT)为第二数据通道。 TTL/CMOS数据从T1IN、T2IN输入转换成RS-232数据从T1OUT、T2OUT送到电脑DB9插头;DB9插头的RS-232数据从R1IN、R2IN输入转换成TTL/CMOS数据后从R1OUT、R2OUT输出。 第三部分是供电。15脚GND、16脚VCC(+5v)[14]。 7.2 通信模块电路

本系统采用异步串行通信,约定双方的通信协议如下: 波特率:1200b/s;

信息格式:8位数据,1位停止位,无奇偶校验位

第 19 页 共 35 页

中北大学2012届毕业设计说明书

传送方式:PC机采用查询方式接收数据,C51采用查询方式发送数据 校验方式:累加和校验

握手信号:软件握手。发送方在发送之前先发一联络信号“?”,收到后“.”应答,然后发字节数,数据,校验和。相同回“0”,不同回“F”[1,15]。 通信模块电路如下:

图7.2 串行通信电路图

第 20 页 共 35 页

中北大学2012届毕业设计说明书

8 软件设计

8.1 流程图 调用键盘扫描子程序 初始化C51串口,初始化两片8255A 开始 N 有键按下? Y 数字键? N 键值#0BH? Y Y 调用数据采集子程序 N 键值#0CH? N 键值#0DH? Y 调用数据显示子程序 N 键值#0EH? Y N 调用数据存储子程序 Y 调用数据发送子程序 图8.1 本系统工作流程图

结束 8.2 程序 主程序:

ORG 0000H AJMP MAIN

第 21 页 共 35 页

中北大学2012届毕业设计说明书

ORG 0100H

MAIN: MOV SP,#60H

MOV SCON,#50H ; 串口初始化

MOV TMOD,#20H ; 定时器1工作于模式2 MOV TH1,#0F3H MOV TL1,#0F3H

MOV PCON,#00H ; 设置波特率 SETB TR1 CLR P2.7 SETB P2.6 CLR P2.5

MOV DPTR,#5FFFH ; 初始化8255A(U4),以方式1工作,A、B输

入,PC4,PC2为控制位

MOV A,#0BFH MOVX @DPTR,A CLR P2.7 CLR P2.6 SETB P2.5

MOV DPTR,#3FFFH ; 初始化8255A(U3),以方式0工作,A、B

输出,C输入

MOV A,#H MOVX @DPTR,A

KKK: LCALL KEY ;调用键盘扫描子程序 KEYADR:CJNE A,#0AH,KYARD1 AJMP DATA0 KYARD1:JC DATA0 AAA: CJNE A,#0BH,BBB

JMP KKK ;键值为#0BH,转键盘扫描子程序 BBB: CJNE A,#0CH,CCC

第 22 页 共 35 页

中北大学2012届毕业设计说明书

LCALL DIS ;键值为#0CH,转数据显示子程序 CCC: CJNE A,#0DH,DDD

LCALL WR1 ;键值#0DH,转数据存储子程序 DDD: CJNE A,#0EH,EEE

LCALL SEND ;键值#0EH,转数据发送子程序 EEE: END ;键值#0FH,结束

键盘扫描子程序:

KEY: MOV DPTR,#3FFDH MOV A,#0FH

MOVX @DPTR,A ; MOV R7,#0FFH

KEY1: DJNZ R7,KEY1 ; MOV DPTR,#3FFEH

MOV A,@DPTR ; CPL A

ANL A,#0FH ; JZ KEY1 ; LCALL DEL20ms ;SKEY: MOV A,#00 ; MOV R0,A ;R0 MOV R1,A ;R1 MOV R3,7FH SKEY2: MOV A,R3

MOV DPTR,#3FFDH MOVX @DPTR,A NOP NOP NOP

令键盘所有行为低电平 延时 读取键盘列值 判别有无键值按下 无键按下时退出 延时20ms去抖 进行行行扫描 作为行计数器 作为列计数器 第 23 页共 35 页

中北大学2012届毕业设计说明书

MOV DPTR,#3FFFH

MOVX A,@DPTR ;读列值 CPL A ANL A,#0FH

MOV R1,A ;存列值

S123: JNZ SKEY3 ;有键按下转SKEY3,无键按下进行下

INC R0 SETB C MOV A,R3

RRC A ;R3MOV R3,A MOV A,R0

CJNE A,#04,SKEY1 ;RET

SKEY3: MOV A,R1 JB ACC.0,SKY5 JB ACC.1,SKY6

JB ACC.2,SKY7 JB ACC.3,SKY8 AJMP EKEY

SKY5: MOV A,#00H

MOV R2,A ; AJMP DKEY SKY6: MOV A,#01H

MOV R2,A ; AJMP DKEY SKY7: MOV A,#02H

MOV R2,A ;一行扫描

带进位右移,形成下一行扫描字 行扫描结束否 存0列号 存1列号 存2列号

第 24 页 共 35 页

中北大学2012届毕业设计说明书

AJMP DKEY SKY8: MOV A,#03

MOV R2,A ;存3列号 AJMP DKEY

DKEY: MOV A,R0 ;取行号 ACALL DECODE AJMP EKEY DECODE:MOV A,R0 MOV B,#04H MUL AB

ADD A,R2 ; RET

DEL20ms:MOV R7,#20H TS1: MOV R6,#0FAH TS2: DJNZ R6,TS2 DJNZ R7,TS1 RET

数据采集子程序: DATA0: CLR P2.7 SETB P2.6 CLR P2.5

MOV R0,A

CLR A MOV 40H,A

MOV 41H,A ;CLR P1.3

SETB P1.3 ; JB P1.0$

求取键值 清零数据存放区

启动A/D转换 第 25 页 共 35 页

中北大学2012届毕业设计说明书

CLR P1.1 CLR P1.2 MOV A,R0 JZ DATA1

MOV R0,A ;将读取的键值作为循环次数 TS3: MOV R2,#H ;100ms延时 ;锁存数据使A、B口满

TS4: MOV R1,#0FAH TS5: DJNZ R1,TS5 DJNZ R2,TS4 DJNZ R0,TS3 DATA1: SETB P1.1

SETB P1.2 ; MOV DPTR,#5FFCH ; MOV A,@DPTR MOV 40H,A

MOV DPTR,#5FFDH ; MOVX A,@DPTR MOV 41H,A LJMP KKK RET

数据显示子程序: DIS: CLR P2.7 CLR P2.6 SETB P2.5

MOV R0,40H

DIS1: MOV R2,#0FDH MOV A,R2 MOV DPTR,#3FFDH

保证CPU读数后不再锁存 读高8位PA口 读低8位PB口 第 26 页 共 35 页

中北大学2012届毕业设计说明书

MOVX @DPTR,A MOV A,R0

ANL A,#0FH ;先显示低4位 MOV DPTR,#TAB

MOVC A,@A+DPTR ;取显示数据 MOV DPTR,#3FFCH MOVX @DPTR,A LCALL DEL20ms MOV R2,#0FEH MOV A,R2 MOV DPTR,#3FFDH MOVX @DPTR,A MOV A,R0

SWAP A ; ANL A,#0FH ; MOV DPTR,#TAB MOVC A,@A+DPTR MOV DPTR ,#3FFCH MOVX @DPTR,A LCALL DEL20ms DIS2; MOV R0,41H LCALL DIS1 LJMP KKK RET

TAB: DB 3FH,06H,5BH,4FH,66H,60H DB 7DH,07H,7FH,6FH,77H,7CH DB 39H,5EH,79H,71H

数据存储子程序:

半字节交换 显示高四位 第 27 页 共 35 页

中北大学2012届毕业设计说明书

WR1: CLR P2.7 CLR P2.6 CLR P2.5

MOV DPTR,#0000H

MOV A,40H MOVX @DPTR,A INC DPTR MOV A,41H MOVX @DPTR,A LJMP KKK RET

数据发送子程序:

SEND: MOV A,#3FH MOV SBUF,A JNB TI,$

CLR TI ; JNB RI$ CLR RI MOV A,SBUF

CJNE A,#2EH,SEND ; MOV R7,#02H MOV A,R7

MOV R3,A ; MOV SBUF,A JNB TI,$ CLR TI MOV R6,#00H MOV DPTR,#0000H

发问号,即3FH 应答信号是“.”即2EH则发送暂存发送字节数 第 28 页 共 35 页

中北大学2012届毕业设计说明书

SEND1: MOVX A,@DPTR

MOV SBUF,A ;发送一个字符 JNB TI,$ ;发送完后TI被置1 CLR TI

ADD A,R6 ;计算校验和 MOV R6,A INC DPTR

DJNZ R7,SEND1 MOV A,R6 MOV SBUF,A JNB TI, CLR TI SEND2: MOV DPTR,#0000H MOV R6,#00H MOV A,R3 MOV R7,A

JNB RI,$ CLR RI MOV A,SBUF

CJNE A,#46H,SEND2 LJMP KKK RET

AJMP SEND1

0则转SEND1 ; 发送校验和

;如不同则重发数据第 29 页 共 35 页;计数器不为

中北大学2012届毕业设计说明书

9 结论

本次毕业设计,我拿到题目后首先是分析理解题意,对于题目中的“多功能”的含义,开始我理解的是可以对多种物理量进行采集,后来指导老师说,这里多功能的含义是要求频率可预置,也就是可以以不同的采集频率对同种物理量进行采集。

整个过程,我花了一个多月的时间查找资料,了解了数据采集系统的基本结构,确立了整个系统的结构框图,并分模块进行资料的收集与整理,接着花了一个多月进行整体设计,包括选择合适的器件类型,分模块进行电路设计,分模块进行软件编程,学习protel和keil软件,然后画出整个系统的电路原理图(见附录A),生成PCB图(见附录B)。编写主程序,并通过keil编译,改错。最后花了将近一个月的时间撰写论文,修改格式,并装订。

整个过程,虽然没有做出实物,但是我对C51单片机的引脚功能,指令系统,更为熟悉,对protel,keil等软件的运用也更加熟练。

我深深的感觉到只有自己动脑去设计了,遇到问题,然后解决问题,才对知识有更为深刻的理解,才能把别人的东西变成自己的并熟练运用。

第 30 页 共 35 页

中北大学2012届毕业设计说明书

附录A 系统电路原理图

第 31 页 共 35 页

中北大学2012届毕业设计说明书

附录B 系统PCB图

第 32 页 共 35 页

中北大学2012届毕业设计说明书

参考文献

[1] 李朝青.单片机原理及接口技术(简明修订版).北京:北京航空航天大学出版社,1999

[2] 何立民.单片机应用系统设计.北京: 北京航空航天大学出版社,1990 [3] 张迎新,等.单片机初级教程.北京:北京航空航天大学出版社,1999 [4] 李维祥.单片机原理与应用.天津:天津大学出版社,2001 [5] 钱逸秋.单片机原理与应用.北京:电子工业出版社,2002

[6] 林国汉,李晓秀.基于单片机的数据采集与处理系统的设计.湖南工程学院报(自然科学版),2009,19(2)

[7] 姜志玲.用凌阳单片机实现多路数据采集与传输系统.西华大学学报(自然科学版),2005,24(2)

[8] 何志明.基于单片机数据采集及传输系统的研究.重庆职业技术学院学报,2008,17(3)

[9] 谢中华,张振军,王永泉.一种用于多种地学信号观测的信号采集系统研究.测绘通报,2006,(10)

[10] 卢文华,景旭.多路多功能采集系统设计.盐城工学院学报,2001,14(3) [11] 宋恒力,董浩斌.利用SOC单片机的多功能数据采集卡.电子设计应用,2004,(3)

[12] 刘宝栋,刘汉峰.基于ATmega128单片机的多功能数据采集系统.电子产品世界,2006,(3)

[13] 刘小强,粟梅.基于CAN总线的数据采集处理系统的设计.仪表技术与传感器,2006,(9)

[14] 林苹华.基于ATC51嵌入式多功能数据采集器的设计与应用.机电技术,2007,30(2)

[15] 韩世进,张乐年.基于RS-485的多路数据采集系统.现代电子技术,2003,(11) [16] 祝常红. 数据采集与处理技术[J]. 2000(3):30-33

[17] 任家富,庹先国,陶永莉. 数据采集与接口技术[M] . 北京:北京航空航天出版社,1998.10-12

[18] 任静华.最新版Visual Basic与RS-232串行通信控制MSComm[M]. 北京:北

第 33 页 共 35 页

中北大学2012届毕业设计说明书

京航空航天大学出版社, 2005.12

[19] Microchip﹒MPLAB-ICD User’s Guide.1999

[20] 李育. 快学易用 Protel99[M]. 北京 :北京邮电大学出版社. 2004.5 [21] 李庆. Keil C51 使用详解 V3.0[M]. 北京:北京理工大学出版社. 2007.1 [22] Microchip﹒PIC16F87XDataSheet.1999

[23] 张友德,赵志英,涂时亮.单片微型机原理、应用与实验[M]. 上海:复旦大学出版社,2000:12-19

[24] 王涌. 单片机与嵌入式系统应用[J]. 2002(3):58-61

[25] 李佳. C51系列处理器应用技术完全手册[M]. 上海:人民邮电出版社.1998.11

[26] 宋杰. 微机原理与接口技术[J]. 1998,24(3):68-70

[27] Microchip Technical library﹒Microchip The Embedded Conrtol Solution Company.1999

[28] Philips.Assigned I2C-bus Adresses Table General.1997

[29] D'Azzo, John J, and Constantine Houpis. Linear Control System Analysis and Design.Fourth Edition, McGrawg-Hill , New York , 1995

第 34 页 共 35 页

中北大学2012届毕业设计说明书

致谢

本设计及论文是在我的指导老师沈国伟副教授的亲切关怀和悉心指导下完成的。他严肃的科学态度,严谨的治学精神,精益求精的工作作风,深深地感染和激励着我。从课题的选择到设计的最终完成,沈老师都始终给予我认真的指导和不懈的支持。整个过程中,沈老师不仅在学业上给我以精心指导,同时还在思想上给我以深刻的教诲,在此谨向沈老师致以诚挚的谢意和崇高的敬意。

在此,我还要感谢在一起做毕业设计的同学,尤其是付江云、李俊杰、薛之宪等,正是由于你们的帮助和支持,耐心的讲解,我才能克服一个一个的困难和疑惑,直至本文的顺利完成。

在论文即将完成之际,我的心情无法平静,从开始进入课题到论文的顺利完成,有多少可敬的师长、同学、朋友给了我无言的帮助,在这里请接受我诚挚的谢意!

最后我还要感谢培养我长大和在背后默默支持我的父母、姐姐,谢谢你们给我信心和力量!我今后将更加努力!

第 35 页 共 35 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- oldu.cn 版权所有 浙ICP备2024123271号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务