多参数实时采集与处理系统正文

更新时间:2024-07-04 22:20:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

中北大学信息与通信工程学院计算机控制技术课程设计说明书

引言

在现代工业控制系统中,多参数实时采集对监控设备正常运行有着十分重要的作用。多参数信号采集是将监控现场的物理量、化学量或生物量通过相应的传感器和调理电路把模拟量转换为易于采集、处理的电压信号,经过单片机的处理,一方面反馈给控制部件对监控对象进行控制调整,另一方面送给显示单元,实时显示采集的信号数据。本设计主要要求:下位机以AT89C52单片机为控制单元,8路A/D转换芯片ADC0809采集两路电压信号:通道0每隔1s采样一次,共采集100次;通道l每隔5s采样一次,共采集20次。采集的数据通过串行通信方式发送到上位机实现实时显示。

设计过程在硬件与软件方面进行同步设计。硬件方面从功能考虑,首先选择内部存储资源丰富的AT89C52单片机和ADC0809。软件方面从分析多路数据采集过程分析、流程图设计,再到程序的编写进行系统设计。编程语言方面从程序总体设计以及高效性和功能性对C语言和汇编语言进行比较分析,针对多路数据采集与处理功能的实现,最终选用全球编译效率最高的KEIL公司的μVision3软件,采用汇编语言进行编程,并PROTEUS画出电路图并仿真。

关键词:单片机 MAX232 串行接口 ADC0809 AT89C5芯片 LED显示

第 1 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

1. 设计任务和要求

1.1 设计任务

本课题设计的应达到如下指标:

1)设计一个可以采集两路参数、参数分辨率为8位的实时数据采集与处理系统。 2)假定两路参数对应的直流电压在0-5V内变化,要求对通道0每隔1S采样一次,共采集100次;对通道1每隔5S采样一次,共采集20次;

3)并要求将不同通道采集的数据进行相应处理后以电压值的形式分别显示在屏幕的不同区域。

1.2任务要求

本课题应完成以下设计内容: 1)硬件设计

包括ADC0809接口电路设计。 2)软件设计

(1)主程序模块; (2)中断服务程序模块; 3)课程设计说明书

2. 设计方案

2.1 设计思路

下位机以AT89C52单片机为控制单元,8路A/D转换芯片ADC0809采集两路电压信号:通道0每隔1s采样一次,共采集100次;通道l每隔5s采样一次,共采集20次。采集的数据通过串行通信方式发送到上位机实现实时显示。如下图:

第 2 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

软件实现:根据功能需求与电路结构编写程序,然后将该程序编译与链接,以生成*.HEX文件。通过程序编译器写入单片机,调试运行。

2.2 AT89C52介绍

AT89C52是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复

擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。

AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,但不可以在线编程(S系列的才支持在线编程)。其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。 1.

主要特性:

· 兼容MCS51指令系统 · 8k可反复擦写(>1000次)Flash ROM · 32个双向I/O口 · 256x8bit内部RAM

· 3个16位可编程定时/计数器中断 · 时钟频率0-24MHz · 2个串行中断 · 可编程UART串行通道 · 2个外部中断源 · 共8个中断源 · 2个读写中断口线 · 3级加密位

· 低功耗空闲和掉电模式 · 软件设置睡眠和唤醒功能 2.3 ADC0809介绍

ADC0809是M美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片 1.主要特性

1)8路输入通道,8位A/D转换器,即分辨率为8位。 2)具有转换起停控制端。

3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)

第 3 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

4)单个+5V电源供电

5)模拟输入电压范围0~+5V,不需零点和满刻度校准。 6)工作温度范围为-40~+85摄氏度 7)低功耗,约15mW。 2.内部结构

ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图13.22所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近

3.外部特性(引脚功能)

ADC0809芯片有28条引脚,采用双列直插式封装,如图13.23所示。下面说明各引脚功能。

IN0~IN7:8路模拟量输入端。 2-1~2-8:8位数字量输出端。

ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 ALE:地址锁存允许信号,输入,高电平有效。

START: A/D转换启动脉冲输入端,输入一个正脉冲(至少100ns宽)使其启动(脉冲上升沿使0809复位,下降沿启动A/D转换)。

EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。

OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。

CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF(+)、REF(-):基准电压。 Vcc:电源,单一+5V。 GND:地。 ADC0809的工作过程

首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。

转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种方式。 (1)定时传送方式

第 4 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128μs,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 (2)查询方式

A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。 (3)中断方式

把表明转换完成的状态信号(EOC)作为中断请求信号,以中断方式进行数据传送。

不管使用上述那种方式,只要一旦确定转换完成,即可通过指令进行数据传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。内部结构及引脚图如下:

2.4 MAX232介绍

MAX232芯片是美信公司专门为电脑的RS-232标准串口设计的单电源电平转换芯片,使用+5v单电源供电。 引脚介绍:

第一部分是电荷泵电路。由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)为第一数

第 5 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

据通道。

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)。 主要特点:

1、符合所有的RS-232C技术标准 2、只需要单一 +5V电源供电

3、片载电荷泵具有升压、电压极性反转能力,能够产生+10V和-10V电压V+、V-

4、功耗低,典型供电电流5mA

3. 硬件设计

多通道数据采集及处理硬件设计主要包括:ADC0809接口设计,显示电路以及其他辅助电路。下面分别进行设计。

3.1 A/D转换接口设计

模数转换采用常用芯片ADC0809,其内部有一个8通道多路开关,由于内部进行转换的转换器只有一个,所以只能对8路模拟量信号进行分时转换,根据锁存地址线译码后的信号,某一时刻只选通8路模拟输入信号中的一路,以逐次逼近原理进行模一数转换,转换时间为100μs,转换精度为8位。

启动ADC0809进行A/D转换,首先输入3位地址信号,并使ALE为高电平,将地址存入地址锁存器中,经译码器译码选通8路模拟输入之一到比较器;START上升沿将逐次逼近寄存器复位,下降沿启动A/D转换,EOC输出信号变低,指示转换正在进行。直到EOC变为高电平,表示A/D转换结束,转换结果存入锁存器。当OE输入高电平时,输出三态门打开,转换结果的数字量输出到数据总线上。接口设计如图:

第 6 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

3.2 时钟电路设计

MCS-51单片机芯片内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。

当使用内部振荡电路时,XTAL1.XTAL2引脚外接石英晶体和微调电容,如图3-3所示,图中C2.C3大小一般为30PF。还加了复位/备用电源引脚的接线方法,任何单片机在工作之前都要进行复位,以便CPU以及其他功能部件都处于一个确定的初始化状态,并从这个状态开始工作,也就是程序开始执行之前,单片机做好准备工作。如何进行复位呢?只用在单片机的RST引脚上保持两个机器周期(24个时钟周期)的高电平即可对单片机实现复位操作。

当主电源Vcc发生掉电或者是电压降低到电平规定值时,VPD上外接的备用电源自动启用,为单片机内部RAM提供电源,以保护片内RAM中的信息不丢失,使系统在恢复上电后能正常运行。这里采用自动上电复位

时钟电路设计图 ADC0809接口设计图

第 7 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

和手动复位两种方式。

3.3 串行接口电路设计

由于单片机和PC机使用不同的逻辑电平,在设计串行接口电路时,必须考虑电平的匹配、驱动能力的匹配、元器件的选择以及其它电气特性。PC机通常有两个标准的RS232串行口,为了提高抗干扰能力,这种接口采用EIA电平逻辑。

为实现单片机与PC机电平兼容,单片机与PC机通讯时,必须经过电平转换。通常使用MCl488租MCl489芯片实现电平转换,但这两种转换芯片组成电路结构复杂,电源需±12V电源供电,工作不稳定,易烧坏芯片。本设计使用MAX232集成电路芯片,仅用+5V供电,其内部有两组电压转换电路,外围电路配上4个升压电容,实现在EIA电平和TTL电平之间互相转换,具有电路结构简单、元器件数量少、电源单一、功耗低等特点,MAX232芯片组成的串行接口电路如图所示

第 8 页 共 16 页

串行接口电路设计图 中北大学信息与通信工程学院计算机控制技术课程设计说明书

3.4 原理图

多参数实时采集与处理系统原理图

4.软件设计

4.1 程序流程图

第 9 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

开始 系统初始化 开始采集? N Y 送端口0地址 调用采集子程序 串行发送数据 调用延时1秒 N 100次采集完成? Y 送端口0地址 调用采集子程序 串行发送数据 调用延时5秒 20次采集完N 成? Y 完成 A/D采集子程序 端口地址送DPTR 启动A/D转换 软件延迟,等待转换完成 读取转换结果 数据转换,送显示缓存 第 10 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

4.2 源程序清单

主程序:

ORG 0100H

MAIN:MOV SP,#60H;给堆栈指针赋初值 MOV SCON,#50H;设置串口方式1控制字 MOV TMOD,#21H;设置波特率为9600 MOV TH1,#0FDH

MOV TL1,#0FDH;给定时器赋初值 SETB TR1;启动定时器 CLR P1.7;清空P1.7口 SETB P1.6;置1P1.6

LOOP:MOV R0,#0FFH; 在寄存器R0中写入FF MOV R4,#00H; 清空寄存器R4

LOOP1:MOV A, R4;将寄存器R4的值送入累加器A SWAP A;交换A中的值

ANL A, R4;将A与R4中的值相与

MOV R2, A;将A的值放入寄存器R2,发送指令内容 MOV TDH,R4

LCALL FAS ;调用发送子程序 LCALL SJCL

MOV R7,#064H XH: LCALL DISPLAY

DJNZ R7,XH ;调用显示子程序 INC R0

INC R4

CJNE R4,#08H,LOOP1 AJMP LOOP 发送子程序: FAS:SETB P1.7

MOV A, R2

MOV SBUF,A;发送数据 LCALL DSIM CLR P1.7 CLR TR0

MOV TH0,#3CH

MOV TL0,#0B0H

SETB TR0;启动定时器0 S1:JB R1,S2

CLR TI;等待接受 JNB TF0,S1 CLR TF0 CLR TR0

第 11 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

MOV TH0,#3CH

MOV TL0,#BOH;给定时器0设初值 SETB TR0

S0:DJNZ CUOWU,FAS

MOV CUOWU ,#04H

LCALL BAOJING;跳到报警程序 S2:MOV A, SBUF MOV ZCI,A CLR RI CLR TR0 CLR TF0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0 S3:JB RI ,S4

JNB TF0, S3 CLR TF0 CLR TR0 MOV TH0,#3CH MOV TL0,#0B0H SETB TR0

DJNZ CUOWU,FAS

MOV CUOWU,#04H

LCALL BAOJING ;跳到报警程序 S4:MOV A,SBUF

MOV ZC2,A

CLR RI

CJNE A,ZC1,S0 MOV @R0,ZC1

SETB P1.6

AJMP FANHUI;返回程序 BAOJING:CLR P1.6 FANHUI:RET

ORG 0000H

MOV R1,#20H

MOV R2,#08H;设定8个通道 MOV TL0,#00H

MOV TH,#0B8H

MOV TMOD,#01H;给计数器设定初值并初始化 CLR ET0;

SETB TR0;启动计数器

MOV SCON,#40H

MOV DPTR,#78FFH;置DPTR,使模拟通道对应的入口地址为78FFH LOOP:MOV A,R2

第 12 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

SUBB A,R1

JNZ LOOP2;跳转至LOOP2 MOV R1,#00H

MOV DPTR ,#78FFH LOOP1:JNB TF0,LOOP1 CLR TF0

MOV TL0,#00H

MOV TH0,#0B8H;重新给计数器设初值

LOOP2:MOVX @DPTR,A;重启A/D LOOP3:JP P1.0,LOOP3

LOOP4:JNP P1.0,LOOP4;由P1.0查询ADC0809的EOC信号,确定转换是否完成 MOVX A,@DPTR;查询结果 MOV @R1,A;保存结果 INC DPH;查询下一模拟通道 INC R1;同时将下一通道的值保存 LJMP LOOP END

5. 调试与仿真

5.1程序调试与仿真

下面用Keil C51与Proteus仿真软件介绍数字计算器的仿真与调试。Proteus软件具有强大的多窗口、多文件的编辑器、微控制器的集成开发环境、一系列的集成开发工具、图形界面调试器、混合模式的模拟及数字电路仿真器、代码质量检查器等。硬件和应用软件能进行并发仿真。最主要的一点是它能以单片机为核心仿真出包括模拟元器件在内的一些动态外设(按键、LED、液晶显示器等),具有图形显示和波形显示的功能。因此,Proteus不仅仅是一个微处理器的仿真软件,它所支持的大量常用芯片模型为单片机和其他芯片协同仿真复杂的完整系统提供了极大的方便。Proteus在完整的系统仿真方面是其他单片机仿真软件所不能独立完成的。这时,Proteus为我们提供的不仅仅是一个单片机的仿真环境,称其为一个虚拟的单片机实验室是完全合适的,只要我们能充分的利用Proteus提供的实验器件就可以完成一个具有相当集成性的单片机系统。单片机89C51是这个系统的核心,下载的程序是由Keil软件事先编译好的HEX文件,设定好参数后,点击运行按钮,即可运行实时动态仿真,用户可以通过点击鼠标的方式操作键盘,液晶的显示也会同步更新。

第 13 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

采用KEIL及Proteus软件调试程序功能步骤:

(1)在uVision 集成开发环境中创建新项目(Project),扩展文件名为.UV2,并为该项目选定合适的单片机CPU器件(本设计采用ATMEL 公司下的AT89C51)

(2) 用uVision 的文本编辑器编写源文件,选择汇编文件(.ASM)文件。 (3)通过uVision 2 的相关选择项,配置编译环境、连接定位器以及Debug调试器的功能。

(4)对项目中的源文件进行编译连接,生成绝对目标代码和可选的HEX文件,如果出现编译连接错误则返回到第2步,修改源文件中的错误后重构整个项目,直至完全正确。

(5)在Proteus ISIS中,选中AT89C52并单击鼠标左键,打开“Edit Component”对话窗口,设置单片机晶体振荡频率为12MHZ,在此窗口中的“Program File”栏中,选择先前用Keil生成的.HEX文件。在Proteus ISIS的菜单栏中选择“File”——“Save Desian”选项,保存设计。在Proteus ISIS的菜单栏中,打开“Debug”下拉菜单,在菜单中选中“Use Remote Debug Monitor”选项,以支持与Keil的联合调试。

(6)在Keil的菜单栏中选择“Debug”——“StartStop Debug Session”选项,或者直接单击工具栏中的“Debug Start Stop Debug Session”图标,进入程序调试环境。按“F5”键,顺序运行程序。调出“Proteus ISIS”界面,按下不同的按键,观察LED显示。

6.设计体会及总结

课程设计是培养学生综合运用所学知识,发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程。随着科学技术发展的日新日异,单片机已经成为当今计算机应用中空前活跃的领域, 在生活中可以说得是无处不在。因此作为电子信息工程专业的学生来说掌握单片机的开发技术是十分重要的。

在这次宝贵的设计活动中,经验才是对于我们最大的收获,而且还增强了自身对未知问题以及对知识的深化认识的能力,但是,仅仅是完成了作品还是不可以自我满足的,我们要认真的思考设计过程中遇到的问题,多查资料,将理论与实际相结合思考,并在

第 14 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

以后的学习中更要加倍注意犯过的错误。

对于我们这些实践中的新手来说,这是一次考验。怎么才能找到课堂所学与实际应用的最佳结合点?怎样让自己的业余更接近专业?怎样让自己的计划更具有序性,而不会忙无一用?这都是我们所要考虑和努力的。这次课程设计我学到很多很多的东西,学会了怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识,掌握了一种系统的研究方法,可以进行一些简单的编程。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,对单片机汇编语言掌握得不够好。

在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于迎刃而解,在此我表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!

最后,对我们的樊永生老师和王忠庆老师,表示感谢!谢谢他们两周来对我的帮助。同时,对帮助我的所有同学和各位指导老师表示衷心的感谢!

第 15 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

参考文献

【1】 付家才. 电工电子实践教程. 化学工业出版社.2003 【2】 李朝青. 单片机原理及接口技术

【3】 阎石. 数字电子技术基础(第四版).高等教育出版社.2004

【4】 杨忠煌,黄博俊,李文昌.单芯片8051实务与应用.北京:中国水利水电出版社,

2001

【5】 李顺增.微机原理与接口技术.北京:机械工业出版社出版社,2005 【6】 顾德英.计算机控制技术.北京:北京邮电大学出版社,2007

第 16 页 共 16 页

中北大学信息与通信工程学院计算机控制技术课程设计说明书

参考文献

【1】 付家才. 电工电子实践教程. 化学工业出版社.2003 【2】 李朝青. 单片机原理及接口技术

【3】 阎石. 数字电子技术基础(第四版).高等教育出版社.2004

【4】 杨忠煌,黄博俊,李文昌.单芯片8051实务与应用.北京:中国水利水电出版社,

2001

【5】 李顺增.微机原理与接口技术.北京:机械工业出版社出版社,2005 【6】 顾德英.计算机控制技术.北京:北京邮电大学出版社,2007

第 16 页 共 16 页

本文来源:https://www.bwwdw.com/article/fzq.html

Top