目 录
摘 要 .................................................... 3 第一章 方案论证 .......................................... 4 1.1设计思路 .......................................... 4 1.1.1 A/D模数转换的选择 ............................ 4 1.1.2单片机的选择 .................................. 4 1.1.3显示部分...................................... 4 1.2设计方案 .......................................... 5 第二章 硬件部分 .......................................... 6 2.1硬件设计的基本原则 ................................. 6 2.2单片机 ............................................ 6 2.1.1单片机的概述 .................................. 6 2.1.2简介ATC51 .................................. 7 2.2 ADC0808 .......................................... 10 2.2.1ADC0808概述 .................................. 10 2.2.2简介ADC0808 ................................. 10 2.3 电路设计 ......................................... 13 2.3.1主电路设计 ................................... 13 2.3.2复位电路设计 ................................. 13 2.3.3时钟电路设计 ................................. 14 2.3.4显示电路的设计 ............................... 15 第三章 软件部分 ......................................... 17
1
数据采集系统设计
3.1软件设计的基本原则 ................................ 17 3.2软件模块的划分 .................................... 17 3.3主要程序 ......................................... 18 第四章 调试仿真 ......................................... 20 4.1结果演示 ......................................... 20 4.2结果分析 ......................................... 21 总 结 .................................................. 23 参考文献 ................................................ 24
2
数据采集系统设计
摘 要
当用计算机来构成数据采集或过程控制等系统时,所要采集的外部信号或被控制对象的参数,往往是温度、压力、流量、声音和位移等连续变化的模拟量。但是计算机只能处理不连续的的数字量,及离散的有限值。因此,必须用模数转换器即A/D转换器,将模拟信号变成数字信号后,才能送入计算进行处理。
本次设计硬件部分是以ATC51单片机为核心,包括A/D模数转换模块ADC0808的一个数据采集系统,显示部分采用的是LED数码管,完成每个数据的显示。而软件部分采用模块化设计,结构清晰,修改简单,可读性强,整个软件有显示模块,数据采集模块和主程序模块等。
3
数据采集系统设计
第一章 方案论证
1.1设计思路
1.1.1 A/D模数转换的选择
A/D转换器的种类很多,就位数来说,可以分为8位、10位、12位和16位等。位数越高其分辨率就越高,价格也就越贵。A/D转换器型号很多,而其转换时间和转换误差也各不相同。
(1)逐渐逼近式A/D转换器:它是一种速度快、精度较高、成本较低的直接式转换器,其转换时间在几微秒到几百微秒之间。
(2)双积分A/D转换器:它是一种间接式的A/D转换器,优点是抗干扰能力强,精度比较高,缺点是数度很慢,适用于对转换数度要求不高的系统。
(3)并行式A/D转换器:它又被称为flash(快速)型,它的转换数度很高,但她采用了很多个比较器,而n位的转换就需要2n-1个比较器,因此电路规模也极大,价格也很贵,只适用于视频A/D转换器等数度特别高的领域。
鉴于上面三种方案,在价格、转换速度等多种标准考量下,在本设计选用的是逐渐逼近式A/D转换器——ADC0808。 1.1.2单片机的选择
单片机是一种面向大规模的集成电路芯片,是微型计算机中的一个重要的分支。此系统是由CPU、随即存取数据存储器、只读程序存储器、输入输出电路(I/O口),还有可能包括定时/计数器、串行通信口、显示驱动电路(LCD和LED驱动电路)、脉宽调制电路、模拟多路转换器及A/D转换器等电路集成到一个单块芯片上,构成了一个最小但完善的计算机任务。单片机要使用特定的组译和编译软件编译程序,在用keiluvision3把程序下载到单片机内。 而本设计选用的是ATC51。 1.1.3显示部分
此次显示部分采用LED数码管。LED数码显示管是一种由LED发光二极管组合显示字符的显示器件。它使用了4个LED显示管,对LED数码显示器的控制可以采用按时间向它提供具有一定驱动能力的位选和段选信号。LED数码显示有动态扫描显示法和静态显示。在单片机中,为了节省硬件资源,多采用动态扫描显
4
数据采集系统设计
示法。
LED的优点:1.体积小2.耗电量低3.使用寿命长4.高亮度、低热量5.环保 6.坚固耐用 1.2设计方案
此次试验采用ADC0808进行A/D转换,首先ADC0808采集到的模拟量转换为一个8位二进制数,然后再通过I/口送入单片机内部进行处理,单片机经过一系列的运算和校准后,通过LED数码管将数值显示出来。
5
数据采集系统设计
第二章 硬件部分
2.1硬件设计的基本原则 (1) 经济合理
系统硬件设计中,一定要注意在满足件能指标的前提下,尽可能地降低价格,以便得到高的性能价格比,这是硬件设计中优先考虑的一个主要因素,也是一个产品争取市场的主要因素之一。 (2) 安全可靠
选购设备要考虑环境的温度、湿度、压力、振动、粉尘等要求,以保认在规定的下作环境下,系统性能稳定、工作可靠。要有超量程和过载保护,保证输入、输出通道正常工作。要注意对交流市电以及电火花等的隔离。要保证连接件的接触可靠。
(3) 足够的抗干扰能力
有完善的抗干扰措施,是保证系统精度、工作正常和不产生错误的必要条件。 2.2单片机 2.1.1单片机的概述
单片机是一种集成的电路芯块采用了超大规模技术把具有运算能力(如算术运算、逻辑运算、数据传送、中断处理)的微处理器(CPU),随机存取数据存储器(RAM),只读程序存储器(ROM),输入输出电路(I/O口),可能还包括定时计数器,串行通信口(SCI),显示驱动电路(LCD或LED驱动电路),脉宽调制电路(PWM),模拟多路转换及A/D转换器等电路集成到一块单片机上,构成一个最小然而很完善的计算机系统。这些电路能在软件的控制下准确快速的完成程序设计者事先规定的任务。总的而言单片机的特点可以归纳为以下几个方面:集成度高、存储容量大、外部扩展能力强、控制功能强、低电压、低功耗、性能价格比高、可靠性高这几个方面。
单片机按内部数据通道的宽度,可分为4位、8位、16位及32位单片机。它们被应用在不同领域里,8位单片机由于功能强大,被广泛的应用在工业控制、智能接口、仪表仪器等各个领域。8位单片机在中、小规模应用场合仍占主流地位,代表了单片机的发展方向,在单片机应用领域发挥越来越大的作用。随着移动通讯、网络技术、多媒体技术等高科技产品进入家庭,32位单片机应用得到
6
数据采集系统设计
了长足发展。纵观单片机的发展过程,可以预示单片机的发展趋势:
1、微型单片化 2、低功耗CMOS 3、与多品种共存
4、可靠性和应用水平越来越高
单片机有着微处理器所不具备的功能,它可以地完成现代工业控制所要求的智能化控制功能这就是单片机的最大特点。然而单片机又不同于单板机,芯片在没有开发前,它只是具备功能极强的超大规模集成电路,如果赋予它特定的程序,它便是一个最小的、完整的微机控制系统。它与单板机或个人电脑有着本质的区别,单片机属于芯片级应用,需要用户了解单片机芯片的结构和指令系统以及其它集成电路应用技术和系统设计所需要的理论和技术,用这样特定的芯片设计应用程序,从而使芯片具备特定的智能 2.1.2简介ATC51
描述
ATC51是一个低电压,高性能CMOS8位单片机带有4K字节的可反复擦写的程序存储器(PENROM)。和128字节的存取数据存储器(RAM),这种器件采用ATMEL公司的高密度、不容易丢失存储技术生产,并且能够与MCS-51系列的单片机兼容。片内含有8位处理器和闪烁存储单元,有较强的功能的ATC51单片机能够被应用到控制领域中。
功能特性
ATC51提供以下的功能标准: ·与MCS-51 兼容 ·4K字节可编程闪烁存储器 ·寿命:1000写/擦循环 ·数据保留时间:10年 ·全静态工作:0Hz-24MHz ·三级程序存储器锁定 ·128×8位内部RAM ·32可编程I/O线
7
数据采集系统设计
·两个16位定时器/计数器 ·5个中断源 ·可编程串行通道 ·低功耗的闲置和掉电模式 ·片内振荡器和时钟电路
另外,ATC51还可以进行0HZ的静态逻辑操作,并支持两种软件的节电模式。闲散方式停止处理器的工作,能够允许随机存取数据存储器、定时/计数器、串行通信口及中断系统继续工作。掉电方式保存随机存取数据存储器中的内容,但震荡器停止工作并禁止其它所有部件的工作直到下一个复位。
引脚图
图1 ATC51的引脚图
管脚说明: VCC:供电电压。 GND:接地。
P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当
8
数据采集系统设计
P1口的管脚第一次写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口将输出电流(ILL)这是由于上拉的缘故。
P3口也可作为ATC51的一些特殊功能口,如下列所示: 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脚两个机器周期的高电平时间。
9
数据采集系统设计
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:来自反向振荡器的输出。
振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。
芯片擦除:整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms 来完成。在芯片擦操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。 2.2 ADC0808 2.2.1ADC0808概述
ADC0808是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。 2.2.2简介ADC0808
10
数据采集系统设计
ADC0808的内部逻辑结构
由下图可知,ADC0808由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。
图2 ADC0808的内部逻辑结构
ADC0808引脚结构
ADC0808各脚功能如下: D7-D0:8位数字量输出引脚。 IN0-IN7:8位模拟量输入引脚。
C、B和A:通道号选择输入端。 VCC:+5V工作电压。 GND:地。
REF(+):参考电压正端。 REF(-):参考电压负端。 START:A/D转换启动信号输入端。 ALE:地址锁存允许信号输入端。 (以上两种信号用于启动A/D转换).
EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。
OE:输出允许控制端,用以打开三态数据输出锁存器。
11
数据采集系统设计
CLK:时钟信号输入端(一般为500KHz)。
图3 ADC0808引脚图
ADC0808对输入模拟量要求:信号单极性,电压范围是0-5V,若信号太小,必须进行放大;输入的模拟量在转换过程中应该保持不变,如若模拟量变化太快,则需在输入前增加采样保持电路。
地址输入和控制线:4条
ALE为地址锁存允许输入线,高电平有效。当ALE线为高电平时,地址锁存与译码器将A,B,C三条地址线的地址信号进行锁存,经译码后被选中的通道的模拟量进转换器进行转换。A、B和C位地址输入线,用于通道IN0~IN7上的一路模拟输入量,通道选择如图
图4
12
数据采集系统设计
ST为转换启动信号。当ST上跳沿时,所有内部寄存器清零;下跳沿时,开始进行A/D转换;在转换期间,ST应保持低电平。EOC为转换结束信号。当EOC为高电平时,表明转换结束;否则,表明正在进行A/D转换。OE为输出允许信号,用于控制三条输出锁存器向单片机输出转换得到的数据。OE=1,输出转换得到的数据;OE=0,输出数据线呈高阻状态。D7-D0为数字量输出线。 2.3 电路设计 2.3.1主电路设计
设计方案即各个之间的连接顺序,利用Proteus软件做出如图所示主电路
图5 主电路设计原理图
2.3.2复位电路设计
计算机在启动运行时都需要复位,使处理器CPU和系统中的其他部件都
13
数据采集系统设计
处于一个确定的初始状态,并从这个状态开始工作。
这里单片机采用的复位方式是自动复位方式。对于ATC51 单片机来说只要接一个电容至VCC即可如图6.再加电瞬间。电容通过电阻充电,就在RST端出现一定时间的高电平,只要高电平时间足够长,就可以使单片机有效的复位RST端在加电时应保持的高电平时间包括VCC的上升时间和振荡器起振的时间和频率有关。
图6
2.3.3时钟电路设计
单片机中CPU每执行一条命令,都必须在统一的时钟脉冲的控制下严格按时间节拍进行,而这个时钟脉冲是单片控制中的时序电路发出的。CPU执行一条指令的各个微操作所对应的时间顺序称为时序。ATC51单片机内部有一个高增益反向放大器,用于构成振荡器,XTAL1和XTAL2分别为放大器的输入输出端,但形成时钟电路还要附加其他电路如图7。
14
数据采集系统设计
图7
在XTAL1和XTAL2上跨接一个石英晶体和一个电容构成一个自激振荡器,晶体可在1.2MHz~12 MHz之间选择,典型为6 MHz和12MHz。电容C1和C2可以在5~60pF之间选择,这两个电容大小对振荡频率有微小的印象,可起频率微调的作用。
2.3.4显示电路的设计 显示采用LED数码管如图8
图8
LED的段端口A~G分别接ATC51的P1.0~P1.7口,位选端2~4分别接至P2.1 、P2.2、P2.3,如图9示
15
数据采集系统设计
图9
硬件电路已经设计完成,就可以选取相应的芯片和元器件,利用Proteus软件绘制出硬件的原理,并仔细地检查修改,直至形成完善的硬件原理图。此电路的工作原理是:+5V模拟电压信号通过变阻器RV1分压后由ADC08008的IN3通道进入(由于使用的IN0通道,所以ADDA,ADDB,ADDC接低电平,高电平,高电平),经过模/数转换后,产生相应的数字量经过其输出通道传送给ATC51芯片的P1口,ATC51负责把接收到的数字量经过数据处理,产生正确的7段数码管的显示段码传送给4位LED。
16
数据采集系统设计
第三章 软件部分
3.1软件设计的基本原则 (1) 结构合理
程序应该采用结构模块化设计。这不仅有利于程序的进一步扩充,而且也有利于程序的修改和维护。在程序编序时,要尽量使得程序的层次分明,易于阅读和理解,同时还可以简化程序,减少程序对于内存的使用量。当程序中有经常需要加以修改或变化的参数时,应该设计成的参数传递群序,避免程序的频繁修改。
(2) 操作性能好
操作件能好是指使用方便。这点对数据采集系统来说是很重要的。在开发程序时,应该考虑如何降低对操作人员专业知识的要求。
(3) 系统应设计一定的检测程序,例如状态检测利诊断程序,以便系统发生故障时容易确定故障部位,对于重要的参数要定时存储,以防止因掉电而丢失数据。 (4) 提高程序的执行速度。 (5) 给出必要的程序说明 3.2软件模块的划分
系统中应用软件是根据系统功能要求设计的,一般来说可分为两大类:一为监控软件,用来协调各模块和操作者之间的关系,充当组织调度角色,是最基本的调试工具。另一类是执行软件,用来完成各种具体的功能,如测量、计算、显示和输出控制等。
根据模块的划分原则,将该程序划分初始化模块,A/D转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序,如图所示。
A/D转换子程序用来控制对输入的模块电压信号的采集测量,并将对应的数值存入相应的内存单元,其转换流程图如图所示。
17
数据采集系统设计
开始 启动转换 初始化 A/D转换 调用A/D转换子程序 输出结果转换 调用显示子程序 数值转换 显示 结束 结束
主程序框图 图10 A/D转换框图图11 3.3主要程序
主要程序如下:#include 、 x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f }; sbit OE = P1^0; sbit EOC = P1^1; sbit ST = P1^2; sbit CLK = P1^3; 18 数据采集系统设计 void DelayMS(uint ms) { uchar i; while(ms--) { for(i=0;i<120;i++); } } void Display_Result(uint d) { d=d*100; d=d/51.000; P2 = 0xf7; P0 = LEDData[d%10]; DelayMS(5); P2 = 0xfb; P0 = LEDData[d%100/10]; DelayMS(5); P2 = 0xfd; P0 = LEDData[d/100]+0x80; DelayMS(5); } void main() { TMOD = 0x02; TH0 = 0x14; TL0 = 0x00; IE = 0x82; 19 数据采集系统设计 TR0 = 1; P1 = 0x3f; while(1) { ST = 0; ST = 1; ST = 0; while(EOC == 0); OE = 1; Display_Result(P3); OE = 0; } } void Timer0_INT() interrupt 1 { CLK = !CLK; } 第四章 调试仿真 4.1结果演示 通过使用keil仿真 Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(UVISION)将这些组合在一起。 Keil有以下几个特点: 1、 全功能的源代码编辑器; 2、 器件库用来配置开发工具设置; 3、 项目管理器用来创建和维护用户的项目; 4、 集成的MAKE工具可以汇编、编译和连接用户嵌入式应用; 5、 所有开发工具的设置都是对话框形式的; 20 数据采集系统设计 6、 真正的源代码级的对CPU和外围器件的调试器; 7、 高级GDI(AGDI)接口用来在目标硬件上进行软件调试以及和Monitor-51进行通信 。 可得到仿真结果如图 图12 4.2结果分析 当输入为0时,采集到的电压为0V, 如图13 图13 21 数据采集系统设计 当输入为最大时,采集到的电压信号为5V,如图14 图14 当调节变阻器使它在0到最大之间变化是可以采集到其电压信号在0~5V 之间变化,如图15 22 数据采集系统设计 总 结 经过一段时间的努力,课程设计——ADC0808数模转换与显示基本完成。但设计中的不足之处仍然存在。这次设计是我第一次用Proteus实现了仿真。在这过程中,我对电路设计,单片机的使用等都有了新的认识。通过这次设计学会了Proteus和Keil软件的使用方法,掌握了从系统的需要、方案的设计、功能模块的划分、原理图的设计和电路图的仿真的设计流程,积累了不少经验。 基于单片机的数字电压表使用性强、结构简单、成本低、外接元件少。在实际应用工作应能好,测量电压准确,精度高。系统功能、指标达到了课题的预期要求、系统在硬件设计上充分考虑了可扩展性,经过一定的改造,可以增加功能。本文设计主要实现了简易数字电压表测量一路电压的功能,详细说明了从原理图的设计、电路图的仿真再到软件的调试。 通过本次设计,我对单片机这门课有了进一步的了解。无论是在硬件连接方面还是在软件编程方面。本次设计采用了ATC51单片机芯片,与以往的单片机相比增加了许多新的功能,使其功能更为完善,应用领域也更为广泛。设计中还用到了模/数转换芯片ADC0808,以前在学单片机课程时只是对其理论知识有了初步的理解。通过这次设计,对它的工作原理有了更深的理解。在调试过程中遇到很多问题,硬件上的理论知识学得不够扎实,对电路的仿真方面也不够熟练。 总之这次电路的设计和仿真,基本上达到了设计的功能要求。在以后的实践中,我将继续努力学习电路设计方面的理论知识,并理论联系实际,争取在电路设计方面能有所提升。 23 数据采集系统设计 参考文献 1、单片机原理与接口技术,萍 郭文川,学工业出版社,2006 2、基于C51单片机的数字电压表设计[J],凤娟 孙军 李国忠,业控制计算机,2007年 3、数字电路逻辑设计,王毓银,等教育出版社,2005年 4、微型计算机技术及应用,戴梅萼,史嘉权清华大学出版社,2003年 5、微型计算机系统原理及应用(第四版),周明德,清华大学出版社,2002年 6、80x86微型计算机组成、原理及接口,顾滨,机械工业出版社,2001年 7、16/32位微机原理、汇编语言及接口技术(第2版),钱小捷,机械工业出版社,2005年 8、微型计算机原理及应用(第三版),郑学坚,清华大学,2001年 9、微型计算机原理与接口技术(第五版),周荷琴 冯焕清,中国科技大学出版社,2013年 24 因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- igbc.cn 版权所有 湘ICP备2023023988号-5
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务