中北大学计算机控制课程设计说明书 第 1 页 共 1 页 1 引言 数据采集是指将温度、压力、流量、位移等模拟量采集、转换成数字量后,再由计算机进行存储、处理、显示的过程。在生产过程中,可对生产现场的工艺参数进行采集、监视和记录,为提高产品的质量、降低成本提供信息和手段。本文设计了一套多路数据采集系统,实施采集多现场的温度参数,系统通过RS485总线将采集到的现场温度数据传输至上位机,上位机对采集到的数据进行显示、存储,从而达到现场监测与控制的目的。
2 设计目的和要求 设计一由微机控制的A/D数据采集和控制系统,该卡具有对八个通道上 0-5V的模拟电压进行采集的能力,且可以用程序选择装换通道,选择ADC0809 作为A/D转换芯片。 本设计包括确定控制任务、系统总体设计、硬件系统设计、软件程序的设计等,使学生进一步学习理解计算机控制系统的构成原理、接口电路与应用程序,巩固与综合专业基础知识和相关专业课程知识,提高学生运用理论知识解决实际问题的实践技能。
3 系统设计方案 1.八路模拟信号的产生 被测电压要求为0~5V的直流电压,可通过八个滑动变阻器调节产生。 2.模拟信号的采集 八路数据采集系统采用共享数据采集通道的结构形式,数据采集方式确定为程序控制数据采集。 3.A/D转换器的选取 八位逐次比较式A/D转换器 4.控制与显示方法的选择 用单片机作为控制系统的核心,处理来自ADC0809的数据。经处理后通过串口传送,由于系统功能简单,完成采样通道的选择,单片机通过接口芯片与LED 中北大学计算机控制课程设计说明书 第 2 页 共 2 页 数码显示器相连,驱动显示器相应同采集到的数据。
图3.1 总体设计图 4 硬件系统的设计
4.1芯片ADC0809的引脚功能和主要性能 ADC0809八位逐次逼近式A/D转换器是一种单片CMOS器件,包括8位模拟转换器、8通道转换开关和与微处理器兼容的控制逻辑。8路转换开关能直接联通8个单端模拟信号中的任意一个。 ADC0809的引脚图及51单片机引脚图:
图4.1 ADC0809管脚图及51单片机芯片管脚图
模拟输入通道1 ADC0808 单片机 LED 模拟输入通道2
模拟输入通道8 中北大学计算机控制课程设计说明书
第 3 页 共 3 页 注:由于ADC0809在protues内无法仿真,故采用与其引脚相同,功能类似的ADC0808模数转换芯片。
4.2 ADC0808模数转换器的引脚功能 IN0~IN7:8路模拟量输入。 A、B、C:2位地址输入,2个地址输入端的不同组合选择八路模拟量输入。 ALE:地址锁存启动信号,在ALE的上升沿,将A、B、C上的通道地址锁存到内部的地址锁存器。 D0~D7:八位数据输出线,A/D转换结果由这8根线传送给单片机。 OE:允许输出信号。当OE=1时,即为高电平,允许输出锁存器输出数据。 START:启动信号输入端,START为正脉冲,其上升沿清除ADC0808的内部的各寄存器,其下降沿启动A/D开始转换。 EOC:转换完成信号,当EOC上升为高电平时,表明内部A/D转换已完成。 CLK:时钟输入信号,0809的时钟频率范围在10~1200kHz,典型值为640kHz。 当ALE为高电平时,通道地址输入到地址锁存器中,下降沿将地址锁存并译码,在START上升沿时所有的内部寄存器清零,在下降沿时,开始进入A/D装换,此期间START应保持低电平。在START下降沿后10us左右,转换结束信号变为低电平,EOC为低电平时,表示正在转换,在高电平时,表示转换结束。OE为低电平时,表示正在转换,为高电平时,允许转换结果输出。
4.3 ADC0809与51单片机的接口 由于ADC0809无片内时钟,时钟信号有51单片机的ALE信号经D触发器二分频后获得。此外,由于ADC0809内部设有地址锁存器,所以通道地址由P3.4,P3.5,P3.6口的直接与ADC0809的A B C 相连。其对应关系如下表所示。
地址码 输入通
道 C B A
0 0 0 IN0 0 0 1 IN1 0 1 0 IN2 中北大学计算机控制课程设计说明书 第 4 页 共 4 页 0 1 1 IN3 1 0 0 IN4 1 0 1 IN5 1 1 0 IN6 1 1 1 IN7
表4.2 ADC0809输入通道地址 控制信号:将P3.2作为片选信号,在启动A/D转换时。由单片机控制ADC
的地址锁存和启动转换。由于ALE和START连在一起,因此ADC0809在锁存通道地址的同时也启动转换。 在读取转换结果时,用单片机的P2.1,产生正脉冲作为OE信号用一打开三态输出锁存器。ADC0809内部带有输出锁存器,可以与AT89C51单片机直接相连。初始化时,使ST为低电平。送要转换的哪一通道的地址到A,B,C端口上。在ST端给出一个至少有100ns宽的正脉冲信号。根据EOC信号来判断是否转换完毕,当EOC变为高电平时,这时给OE为高电平,转换的数据就输出给单片机了。 ADC0809与51单片机的接口电路如图所示:
图4.3 ADC0809与51单片机的接口电路 4.4 控制器、振荡源和复位电路 复位电路即使电路回复到初始状态,是单片机经常的工作状态。单片机振荡电路的振荡周期和时钟电路的时钟周期决定了CPU的时序。 中北大学计算机控制课程设计说明书 第 5 页 共 5 页 复位电路:采用上电外部复位电路。 4.5 显示电路
图4.4 电路图 中北大学计算机控制课程设计说明书
第 6 页 共 6 页 图4.5部分通道的数据 4.6 模拟信号产生电路
图4.6 模拟信号产生电路 5 软件程序设计
5.1 主程序 DIN BIT P3.0 CLK BIT P3.1 DISBUF EQU 75H ;用来存放发送的数据
ORG 0000H ;目标程序将从0000H开始 中北大学计算机控制课程设计说明书 第 7 页 共 7 页 AJMP MAIN ;写成的hex文件 ORG 0030H MAIN: MOV 20H,#0 INC 20H CLR P3.4 ;设置通道0地址 CLR P3.5 CLR P3.6 ACALL AD ;调用A/D转换程序 ACALL DELAY2S ;调用延时程序 AJMP L1 ;跳转到L1 L1: INC 20H ;设置通道1地址 SETB P3.4 CLR P3.5 CLR P3.6 ACALL AD ACALL DELAY2S AJMP L2 L2: INC 20H ;设置通道2地址 CLR P3.4 SETB P3.5 CLR P3.6 ACALL AD ;调用A/D转换程序 ACALL DELAY2S ;调用延时程序 AJMP L3 L3: INC 20H ;设置通道3地址 SETB P3.4 SETB P3.5 CLR P3.6 ACALL AD 中北大学计算机控制课程设计说明书 第 8 页 共 8 页 ACALL DELAY2S AJMP L4 L4: INC 20H ;设置通道4地址 CLR P3.4 CLR P3.5 SETB P3.6 ACALL AD ;调用A/D转换程序 ACALL DELAY2S ;调用延时程序 AJMP L5 L5: INC 20H ;设置通道5地址 SETB P3.4 CLR P3.5 SETB P3.6 ACALL AD ;调用A/D转换程序 ACALL DELAY2S ;调用延时程序 AJMP L6 L6: INC 20H ;设置通道6地址 CLR P3.4 SETB P3.5 SETB P3.6 ACALL AD ;调用A/D转换程序 ACALL DELAY2S ;调用延时程序 AJMP L7 L7: INC 20H ;设置通道7地址 SETB P3.4 SETB P3.5 SETB P3.6 ACALL AD ACALL DELAY2S 中北大学计算机控制课程设计说明书 第 9 页 共 9 页 AJMP MAIN 5.2 延时2S子程序 DELAY2S:MOV R7,#7FH DL1: MOV R6,#0EBH DL0: MOV R5,#20H DJNZ R5,$ DJNZ R6,DL0 DJNZ R7,DL1 NOP RET
5.3 AD转换子程序 AD: CLR P3.2 ;清空3.2 SETB p3.2 CLR p3.2 ;启动转换 JNB p2.0,$ ;等待转换结束 SETB p2.1 ;允许输出 MOV 35H,P1 ;暂存转换结果 CLR p2.1 ;关闭输出 MOV R0,#35H ;存放AD转换值的首地址 CLR C
MOV A,@R0 ;取要转化的AD转换值 MOV B,#14H MUL AB MOV R3,A ;积低位存入TEMPLOW单元