单片机的数据采集
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章数据采集
本章主要围绕着下位单片机的工作进行展开的,即主要实现下位单片机对外界模拟信号和数字信号的采集,下面分别给予介绍,在介绍之前先对单片机AT89C51做适当的介绍。
2.1 AT89C51简介
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
主要管脚介绍如下:
VCC:供电电压。
GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P0口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。
P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。
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口也可作为AT89C51的一些特殊功能口,如下表所示:
口管脚备选功能
P3.0 RXD(串行输入口)
P3.1 TXD(串行输出口)
P3.2 /INT0(外部中断0)
P3.3 /INT1(外部中断1)
P3.4 T0(记时器0外部输入)
P3.5 T1(记时器1外部输入)
P3.6 /WR(外部数据存储器写选通)
P3.7 /RD(外部数据存储器读选通)
P3口同时为闪烁编程和编程校验接收一些控制信号。
RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。
ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个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:来自反向振荡器的输出。
最小系统介绍:
对51系列单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、电源。51单片机的最小系统电路图如图2-1所示
图2-1 单片机最小系统图
时钟电路:时钟电路是单片机的心脏,用于产生单片机工作所需要的时钟信号,单片机的时钟产生方法有内部时钟方式和外部时钟方式两种。如上图是采用的内部时钟方式。其中最主要的参数是晶振频率,通长在1.2M到12M之间选择,频率越高,系统的时钟频率就越高,运行速度就越快。
复位电路:复位的作用是初始化单片机。进行复位时,外部电路需要在复位引脚RST 端产生大于两个机器周期的高电平信号,RST引脚通过片内施密特触发器与复位电路相连,内部复位电路采样施密特触发器的输出,得到复位信号后完成复位。有上电复位和上电按钮复位两种方式,上图采用的是上电按钮复位。
2.2 模拟量的采集部分
2.2.1 模拟量产生电路
模拟量是指变量在一定范围连续变化的量也就是在一定范围(定义域)内可以取任意值。一般模拟量是指现场的水井水位、水塔水位、泵出口压力和出口流量等模拟量,需要通过多路复用芯片完成多路数据的采集和模数转换器完成模拟量和数字量的转换,再将采集的数据给CPU处理。此处为了仿真与硬件制作的方便,本课题采用变化的电压信号作为模拟量信号。电路图如图2-2所示。这里使用滑动变阻器产生变化的电压作为变化的模拟量输入,连接到AD转换芯片的输入端,通过改变滑动变阻器触点的位置,可以改变输入电压的大小,即为变化的模拟信号。
图2-2 模拟量产生电路
2.2.2 AD转换
由于模拟量是连续变化的量,而单片机只能接收数字量,所以在模拟量采集的过程中必须有模数转换电路。在这里使用ADC0809进行模数转换。
ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片。其结构图如图2-3所示。
图2-3 ADC0809结构图
ADC0809的主要特性:
1)8路输入通道,8位A/D转换器,即分辨率为8位
2)具有转换起停控制端
3)转换时间为100μs(时钟为640kHz时),130μs(时钟为500kHz时)
4)单个+5V电源供电
5)模拟输入电压范围0~+5V,不需零点和满刻度校准
6)工作温度范围为-40~+85摄氏度
7)低功耗,约15mW。
ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近