渠丽岩
(天津理工大学 中环信息学院,天津 300380)
PROTEUS软件是LabCenter Electronics公司开发的EDA工具软件,它集成了高级原理图设计、混合模式SPICE电路仿真及PCB设计[1],最具特色的是它能够仿真基于单片机的电子系统。PROTEUS不但支持MCS-51及其派生系列单片机的设计与仿真,还可以仿真基于AVR、ARM和PIC系列的嵌入式系统。
PROTEUS软件可提供各类元器库30多个,超过27 000多种元器件。此外,对于元件库中没有的器件,用户可以依照需要自己创建。在软件调试方面,其内部带有8051、AVR、PIC的汇编编译器,支持单片机汇编语言的编辑、编译和源代码级仿真,也可以与第三方集成编译环境(如IAR、Keil和Hitech)结合,进行高级语言的源代码级仿真和调试。PROTUES不仅可将许多单片机实例功能形象化,也可将许多单片机实例运行过程形象化,这是实物演示难以达到的效果[2]。
在计算机广泛应用的今天,日益突显数据采集的重要性,它是计算机与外部世界连接的桥梁。数据采集系统主要是将传感器采集来的模拟信号经A/D转换后形成数字信号,并通过接口电路送给处理器,然后再进行分析、传输、显示和存储等处理。
数据采集装置在工业现场和科学研究中应用广泛。在生产过程中,应用这一装置可以对生产现场的各种参数进行采集、监控和记录,为提高产品质量、降低成本、增加生产效率提供信息和手段;在科学研究中,数据采集装置可获得大量的动态信息,是各种研究领域的有力工具,也是破解科学奥秘的重要手段之一[3]。
本系统的核心部分电路采用ATMEL公司生产的AT89C51单片机。AT89C51单片机是一款低电压、高性能的CMOS型8位微处理器,与工业标准的MCS-51单片机完全兼容。
AT89C51具有以下标准功能:4k字节FLASH闪速存储器,128字节内部 RAM,32个 I/O口线,2个 16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0 Hz静态逻辑操作,并支持2种软件可选择节电模式。空闲模式下,CPU停止工作,但允许RAM、定时器/计数器、串口、中断系统继续工作;掉电保护方式下,RAM内容被保存,振荡器停止工作并禁止其他所有部件工作,直到下一个硬件复位。AT89S51为很多嵌入式控制系统提供了一种灵活高效且价廉的方案,因此在众多嵌入式控制应用系统中得到广泛应用[4]。
本系统核心部分电路可与传感器配合实现对电压、电流、温度、湿度、压力等多种信号的采集与处理,可以处理8路信号;若需要采集的信号较多时,可配合使用可编程并行输入/输出接口芯片。采集处理后的信号可送往显示器显示并存储。图1数据采集系统结构框图。
图1 数据采集系统的结构框图Fig.1 The structure diagram of data acquisition system
这里主要介绍A/D转换程序设计。本系统的ACD采用的是ADC0808。ADC0808是采样分辨率为8位的逐次逼近型模/数转换器。其内部有一个8通道多路开关,它可以根据地址码锁存译码后的信号,选通8路模拟输入信号中的任意一个进行A/D转换,并将转换结果送入单片机进行处理。它作为简单的数据采集系统,在多点巡回检测、过程控制和运动控制中应用十分广泛。
使用ADC0808时,首先通过单片机的P3.4~P3.6引脚设置 ADDC、ADDB、ADDA,从而选择转换通道;然后通过 P3.2锁存地址信号,同时启动A/D转换[5]。
ADC0808内部没有时钟电路,PROTEUS软件为系统仿真提供了各种形式的时钟信号,本系统中ADC0808的时钟信号频率为500 kHz,其设置如图2所示。单片机可以通过查询或中断的方式等待A/D转换完毕,转换数据保存在ADDR寄存器中。
图2 ADC0808的时钟信号设置Fig.2 ADC0808 clock signal settings
进行多通道AD转换时,首先切换到通道0进行A/D转换,并等待转换结束,读取转换结果;然后切换到通道1进行转换,操作过程与通道0相同;依次切换转换通道,完成所有通道的转换。A/D转换程序的流程如图3所示。
在PROTEU软件上仿真基于单片机的电子系统,实质是构建基于PROTEUS和Keil的AT89S51虚拟实验平台。
Keil C51是51系列兼容单片机软件开发系统,可以编辑、编译汇编语言和C语言编写的单片机程序。Keil C51软件提供了丰富的库函数和功能强大的集成开发调试工具,它生成的后缀为“.hex”的文件,即可以直接下载到硬件设备上运行,也可以添加到PROTEU软件环境中进行仿真[6]。
基于PROTEU软件的仿真过程如下:
1)在Keil C51中编写源程序,并调试、编译源程序,生成后缀为“.hex”的文件;
2)在PROTEUS软件中设计电路原理图,并设置相关参数;将“.hex”文件导入AT89C51芯片;
3)在PROTEUS软件中运行,观察仿真结果,并检验是否与设计要求一致。
图4所示是数据采集系统的仿真结果。图中只画出了一路数据采集通道,使用的是温度传感器,调节温度传感器的滑动触头,可以观测到所采集数据的变化情况。本图中选择通道IN0采集的信号进行演示。
图3 A/D转换流程图Fig.3 A/D conversion process flow diagram
本系统在单极性参考电压0~5 V范围内,运行稳定可靠,采样精度高;调节滑动触头,可观测到输出信号的变化情况。对于参考电压 5 V,输出值在0~255之间,其对应于0~99℃之间的温度值。本系统能满足多数测控系统的要求,因此基于PROTEUS和Keil C51的单片机数据采集系统的设计是切实可行的。本系统不仅可以实现系统的A/D转换和显示任务,通过简单的扩展还可以实现串口通信、键盘监测等任务的仿真与调试。采用虚拟实验的方式,不仅能够降低开发成本,而且可以提高开发效率、提升开发速度,具有较高的推广应用价值。
图4 数据采集系统的仿真结果Fig.4 The simulation results of the data acquisition system
[1]周润景,张丽娜,丁莉.基于PROTEUS的电路及单片机设计与仿真[M].2版.北京:北京航空航天大学出版社,2010.
[2]董普松.Proteus在单片机系统设计中的应用 [J].现代电子技术,2008(14):153-154.DONG Pu-song.Applicaion ofProteusin singlechip computer system design[J].Modern Electronic Technology,2008(14):153-154.
[3]周鸿雁.ADuC845单片机和PTR2000的无线数据采集系统设计[J].单片机与嵌入式系统应用,2012(2):57-60.ZHOU Hong-yan.Wireless data acquistion system based on ADuC845 and PTR2000[J].Microcontroller&Embedded Systems,2012(2):57-60.
[4]胡汉才.单片机原理及其接口技术[M].3版.北京:清华大学出版社.
[5]康华光.电子技术基础——数字部分[M].4版.北京:高等教育出版社.
[6]李莉.基于Proteus的数据采集系统仿真设计[J].电力学报,2009,24(3):206-207.LI Li.Simulation design of data acquisition system based on proteus[J].Journal of Electric Power,2009,24(3):206-207.