作者:李斌
单片机构成电路具有体积小、成本低、功能强、可靠性高、功耗低、电路简洁、开发和改进容易等一系列优点,因此具有优异的性能价格比,从而使它得到了越来越广泛的应用。AT89C51系列单片机是目前我国应用最广泛的单片机系列之一,随着单片机应用技术的不断发展,引入单片机仿真虚拟实验平台,将大大缩短硬件电路的调试验证周期,有效提高硬件电路前期设计的开发效率。
1 基于Proteus的单片机系统设计仿真
Proteus是英国Labcenter公司开发的电路分析与实物仿真及印制电路板设计软件,它支持51、PIC、AVR、ARM7等多个系列的单片机芯片,集编辑、编译、仿真调试于一体。作为嵌入式系统软硬件设计仿真平台,它的特点是能够把用户编写的应用程序下载到微处理器中,并结合外界连线及模拟、数字电路对微处理器进行系统逻辑功能的控制。
Proteus单片机仿真软件的推广使用彻底改变了传统单片机的开发方式,可在没有硬件条件的基础上进行逻辑控制电路设计,大幅度缩短了开发周期,节约了开发成本,极大地提高了设计效率和设计水平。本文通过在Proteus单片机仿真平台上完成了双路电压表的软硬件设计。
2 系统硬件电路设计
系统硬件主要由模拟电压采集部分、单片机控制部分及显示单元三部分组成,系统结构如图1所示。
双路电压表系统通过采集两路模拟电压信号,由ADC0832将模拟信号转换为8位数字信号,以串行方式输出至单片机AT89C51控制部分,经过程序处理,最终将结果显示于LCD液晶显示屏。
2.1 ADC0832芯片的接口说明及控制方法
ADC0832是美国国家半导体公司生产的一种8位分辨率、双通道A/D转换芯片,其最高分辨率可达256级,可以适用一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在0~5 V之间,芯片转换时间仅为32¨s,具有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性强。独立的芯片使能输入,使多器件和处理器控制变得更加方便。通过DI数据输入端,可以轻易地实现通道功能的选择。
ADC0832具有以下特点:8位分辨率;双通道A/D转换;输入/输出电平与TTL/CMOS相兼容;5V电源供电时输入电压在0~5 V之间;工作频率为250 kHz.转换时间为32us;一般功耗仅为15 mW。图2为ADC0832芯片顶视图。
ADC0832芯片接口说明:/CS片选使能,低电平芯片使能;CHO为模拟输入通道O,CH1为模拟通道1;DI为数据信号输入,选择通道控制;DO为数据输出,转换数据输出;CLK为芯片时钟输入;VCC为电源输入及参考电压输入。
在正常情况下ADC0832与单片机的接口应为4条数据线,分别为/CS.CLK,DO,DI。但由于DO端与DI端在通信时没有同时有效并与单片机的接口是双向的,所以电路设计时可以将DO和DI并联在一根数据线上使用。在电路设计模型中,当ADC0832未工作时,其/CS输入端应为高电平,此时芯片禁用,CLK,DI,DO的电平可任意。当需要进行A/D转换时,需先将/CS使能端置于低电平并且保持低电平直到转换完全结束。此时芯片开始转换工作,同时由处理器向芯片时钟输入端CLK输入时钟脉冲,DO,DI端则使用DI端输入通道功能选择的数据信号。
2.2单片机及外部显示部分
单片机MCU选型为8位AT89C51标准芯片,具有典型的单片机体系结构,由CPU系统、ROM、RAM、I/O口以及特殊功能寄存器SFR、2个16位定时/计数器、5个中断源和一个串口组成。
显示部分采用HITACHI公司的LM016L液晶显示屏以满足温度显示的要求。当单片机驱动LCD液晶显示屏时,因AT89C51本身电流微小以及传输过程中的损耗,在实际应用驱动LCD时,常采用信号增益模块加以驱动。Proteus在仿真过程中不考虑信号损耗因素,故予以省略。
完成各部分硬件电路原理设计后,运行Proteus的ISIS.在虚拟环境中添加指定元件,单击软件菜单栏中library的Pick Devices选项,将弹出元件选择窗口,按所给元件目录找到所需要元件的类型,确定即可将虚拟元件模型放人操作界面。经过元件选型、布线、标签放置等一系列Proteus软件绘图操作,完成了虚拟硬件电路设计,如图3所示。
3系统软件设计
完成数字转速表系统仿真电路图搭建后,进行程序文件设计。本例采用C语言编写,使用模块化设计,可读性强,易于调试,具有很强的可扩展性。由于Proteus软件本身不自带编译调试环境,所以源程序需要在Keil C下编写,将代码生成HEX程序文件,然后加载入单片机模型。系统程序主要完成A/D模数转换、液晶数值显示等功能。主程序流程图如图4所示。A/D转换子程序用来控制对输入的模拟电压信号进行采集测量,并将对应的数值存入相应的内存单元,驱动液晶显示,流程图如图5所示。
4 系统模型仿真试验结果
设计双路电压表程序经过编译、调试等测试通过后,将生成文件加载人单片机模型,运行电路系统。通过调节滑动变阻器,输入模拟采集电压,观察LCD液晶显示器显示数值,试验结果表明达到预先设计要求。实际仿真试验效果如图6所示。
5结束语
本文论述了通过Proteus软件的单片机仿真功能,实现了双路电压表电路系统虚拟设计,详细介绍了针对实例硬件电路、软件功能的设计思路。实例成功开发说明利用Proteus及C语言编译软件Kile C进行单片机仿真电路设计,具有操作方便、观察直接等优点,可作为前期设计的方案验证,推广到工程应用中,提高开发效率。
6摘要:
通过双路电压表设计实例介绍了Proteus在单片机仿真开发中的实践应用。双路电压表采用高可靠性的AT89C51单片机作为核心控制芯片,采用具有8位分辨率的双通道A/D转换芯片ADC0832,通过调节RV1和RV2测量目标,将两路电压测量数值显示在LM016L液晶显示屏上。通过Proteus软件成功实现了双路电压表的设计仿真过程,经仿真表明,利用Proteus软件进行仿真设计可极大地简化单片机程序在目标硬件上的调试工作。