单片机的数据采集.docx

上传人:牧羊曲112 文档编号:3346644 上传时间:2023-03-12 格式:DOCX 页数:9 大小:41.55KB
返回 下载 相关 举报
单片机的数据采集.docx_第1页
第1页 / 共9页
单片机的数据采集.docx_第2页
第2页 / 共9页
单片机的数据采集.docx_第3页
第3页 / 共9页
单片机的数据采集.docx_第4页
第4页 / 共9页
单片机的数据采集.docx_第5页
第5页 / 共9页
亲,该文档总共9页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《单片机的数据采集.docx》由会员分享,可在线阅读,更多相关《单片机的数据采集.docx(9页珍藏版)》请在三一办公上搜索。

1、单片机的数据采集第二章 数据采集 本章主要围绕着下位单片机的工作进行展开的,即主要实现下位单片机对外界模拟信号和数字信号的采集,下面分别给予介绍,在介绍之前先对单片机AT89C51做适当的介绍。 2.1 AT89C51简介 AT89C51是一种带4K字节FLASH存储器的低电压、高性能CMOS 8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器, AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。 主要

2、管脚介绍如下: 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口作为第八位地址接收

3、。 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”后

4、,它们被内部上拉为高电平,并用作输入。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD P3.1 TXD P3.2 /INT0 P3.3 /INT1 P3.4 T0 P3.5 T1 P3.6 /WR P3.7 /RD P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6

5、。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 /PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 /EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器,不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/

6、EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 最小系统介绍: 对51系列单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、电源。51单片机的最小系统电路图如图2-1所示 图2-1 单片机最小系统图 时钟电路:时钟电路是单片机的心脏,用于产生单片机工作所需要的时钟信号,单片机的时钟产生方法有内部时钟方式和外部时钟方式两种。如上图是采用的内部时钟方式。其中最主要的参数是晶振频率,通长在1.2M到12M之间选择,频率越高,系统的时钟频率就越高,

7、运行速度就越快。 复位电路:复位的作用是初始化单片机。进行复位时,外部电路需要在复位引脚RST端产生大于两个机器周期的高电平信号,RST引脚通过片内施密特触发器与复位电路相连,内部复位电路采样施密特触发器的输出,得到复位信号后完成复位。有上电复位和上电按钮复位两种方式,上图采用的是上电按钮复位。 2.2 模拟量的采集部分 2.2.1 模拟量产生电路 模拟量是指变量在一定范围连续变化的量也就是在一定范围内可以取任意值。一般模拟量是指现场的水井水位、水塔水位、泵出口压力和出口流量等模拟量,需要通过多路复用芯片完成多路数据的采集和模数转换器完成模拟量和数字量的转换,再将采集的数据给CPU处理。此处为

8、了仿真与硬件制作的方便,本课题采用变化的电压信号作为模拟量信号。电路图如图2-2所示。这里使用滑动变阻器产生变化的电压作为变化的模拟量输入,连接到AD转换芯片的输入端,通过改变滑动变阻器触点的位置,可以改变输入电压的大小,即为变化的模拟信号。 图2-2 模拟量产生电路 2.2.2 AD转换 由于模拟量是连续变化的量,而单片机只能接收数字量,所以在模拟量采集的过程中必须有模数转换电路。在这里使用ADC0809进行模数转换。 ADC0809是美国国家半导体公司生产的CMOS工艺8通道,8位逐次逼近式A/D转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,只选通8路模拟输入信号中

9、的一个进行A/D转换。是目前国内应用最广泛的8位通用A/D芯片。其结构图如图2-3所示。 图2-3 ADC0809结构图 ADC0809的主要特性: 1)8路输入通道,8位A/D转换器,即分辨率为8位 2)具有转换起停控制端 3)转换时间为100s(时钟为640kHz时),130s 4)单个5V电源供电 5)模拟输入电压范围05V,不需零点和满刻度校准 6)工作温度范围为-4085摄氏度 7)低功耗,约15mW。 ADC0809是CMOS单片型逐次逼近式A/D转换器,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近 ADC0809的引脚功能 ADC0809芯片有2

10、8条引脚,采用双列直插式封装,下面说明各引脚功能。 IN0IN7:8路模拟量输入端。 2-12-8:8位数字量输出端。 ADDA、ADDB、ADDC:3位地址输入线,用于选通8路模拟输入中的一路 。 ALE:地址锁存允许信号,输入,高电平有效。 START: A/D转换启动脉冲输入端,输入一个正脉冲使其启动。 EOC: A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平。 OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。 CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。 REF、REF:基准电压。 Vcc:

11、电源,5V。 GND:地。 ADC0809的工作过程 首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 转换数据的传送 A/D转换后得到的数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认A/D转换的完成,因为只有确认完成后,才能进行传送。为此可采用下述三种

12、方式。 定时传送方式 对于一种A/D转换其来说,转换时间作为一项技术指标是已知的和固定的。例如ADC0809转换时间为128s,相当于6MHz的MCS-51单片机共64个机器周期。可据此设计一个延时子程序,A/D转换启动后即调用此子程序,延迟时间一到,转换肯定已经完成了,接着就可进行数据传送。 查询方式 A/D转换芯片由表明转换完成的状态信号,例如ADC0809的EOC端。因此可以用查询方式,测试EOC的状态,即可确认转换是否完成,并接着进行数据传送。 中断方式 把表明转换完成的状态信号作为中断请求信号,以中断方式进行数据传送。 不管使用上述哪种方式,只要一旦确定转换完成,即可通过指令进行数据

13、传送。首先送出口地址并以信号有效时,OE信号即有效,把转换数据送上数据总线,供单片机接受。 2.2.3 模拟量采集电路 以上介绍了模数转换芯片ADC0809的硬件资料,下来介绍如何使用ADC0809实现模拟量的采集,为了更直观的体现出模拟量的采集,在此加了数码管显示电路用来直观的显示采集到的模拟量,该电路采用连续的0-5V电压作为模拟量的输入信号连接到ADC0809的模拟量输入通道0,输出OUT1-OUT8连接到单片机的P1口, 由于单片机采用的是二进制数据,所以单片机P1口输出的数据的范围为二进制数00000000B到二进制数11111111B,转换为十进制数据为0到255.也就说当改变滑动

14、变阻器触点的位置,就可以改变ADC0809的模拟量输入信号的大小,从而改变P0口输出的数据。直观的说就是当ADC0809采集到的模拟电压信号等于0V的时候,P0口输出00000000,当ADC0809采集的模拟电压信号等于5V的时候,P0口输出11111111,对应为显示数码管显示255,因此这个采集的分辨率为0.0196V,这其实就是数字电压表的原理。采集原理图如图2-4所示。 模拟量的采集程序如下。 CLR ST 下 MOV MOV MOV MOV TMOD,#02H ;设置定时器0工作在方式1,定时方式 TH0,#245 ;置计数初值 TL0,#00H IE,#82H ;开定时器0的中断

15、 CLOCK ; 提供ADC0808时钟信号 SETB ST CLR JNB MOV CLR ST ;启动AD转换 ;等待转换结束 ;读取AD转换结果 EOC,$ ADC,P1 OE SETB OE 该电路的时钟信号由定时器的定时中断产生,连接在单片机的P2.4上面。程序如SETB TR0 ; 启动定时器 INT_T0: CPL RETI 因为本章主要讲述的是数据的采集,因此没有给出显示部分的程序。 图2-4 模拟量的采集 2.3 数字量的采集 数字量在时间上和数量上都是离散的,它们的变化在时间上是不连续的,总是发生在一系列离散的瞬间。同时,它们的数值大小和每次的增减变化都是某一个最小数量单位

16、的整数倍,而小于这个最小数量单位的数值没有任何物理意义。这一类物理量叫做数字量。因为单片机内部即为数字量,因此这里数字量的实现采用的是八位指拨开关与单片机的P0口连接,P0口接上拉电阻驱动,通过开通或关断指拨开关得到离散的数字量,连接图如图2-5所示。同样的这里为了更加直观的体现处数据采集,也加上了数码管给予显示。 图2-5 数字量的采集 数字量的采集程序如下: MOV P0, #0FFH ;置P0口为高电平 MOV A, P0 ;采集P0口数据 当P0口用做数据信号输入端时,应向P0口写“1”,使P0口中的两个FET均截止,然后方可作高阻抗输入。 即为程序的第一行。第二行语句即为数字量的采集程序,将P0口的数据读入到累加器A中。 同样的,这里没有给出显示部分的程序。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号