Protues在单片机系统设计中的应用

控制/MCU

1835人已加入

描述

由于微电子技术的迅猛发展,单片机在汽车、通信、办公自动化、工业控制、高级玩具、家用电器等方面都得到了广泛的应用。单片机作为嵌入式系统的核心器件,其系统设计包括硬件电路设计和程序设计2个方面,调试过程一般分为软件调试、硬件测试、系统调试3个过程。软件调试一般比较容易进行,但如果要进行硬件电路测试和系统调试则比较麻烦,因为要进行这2个过程必须在电路板制作完成、元器件焊接完毕之后进行,而且电路板的制作、元器件的安装、焊接费时费力。如果采用作为单片机系统仿真软件Proteus,则不用制作具体的电路板也能够完成以上工作。毫无疑问,在使用Proteus进行系统虚拟开发成功之后再进行实际制作,必然可以提高开发效率、降低开发成本、提高开发速度,而这些因素对于企业来讲是非常重要的。

  1 Proteus简介

  Proteus是基于SPICE3F5仿真引擎的混合电路仿真软件,不仅能够仿真模拟、数字电路以及模数混合电路,更具特色的是它能够仿真基于单片机的电子系统。Proteus不但完全支持MCS-51及其派生系列单片机的设计系统,另外也能仿真基于AVR和PIC系列的单片机系统。Proteus的仿真资源Proteus软件可提供的模拟、数字、交(直)流等元器件达30多个元件库,共计数千种。此外,对于元件库中没有的器件,使用者也可依照需要自己创建。软件调试方面,其自身只带汇编编译器,不支持C语言。但可以将它与Keil C51集成开发环境连接,将用汇编和C语言编写的程序编译好之后,可以立即进行软、硬件结合的系统仿真,像使用仿真器一样来调试程序。

  2 硬件方案设计

  本设计中以DS18B20为传感器、AT89C51单片机为控制核心组成的多点温度测试系统,如图1所示。

单片机系统

  DS18B20是美国Dallas公司继DS1820之后推出的增强型单总线数字温度传感器,在测温精度、转换时间、传输距离、分辨率等方面较DS1820有很大的改进,而且使用方便。采用DS18B20数字温度传感器组成的多点温度测量系统,克服了传统温度测量系统测量精度低、外围硬件电路复杂、可靠性较低等缺点,具有测温系统简单、测温精度高、连接方便、占用口线少等许多优点,为多点温度的测量带来了极大的方便。

  2.1 测温部分

  本部分采用将DS18B20的I/O数据线与89C51单片机P3.3,P3.4,P3.5,P3.6口线相连,用4只DS18B20同时测量4路温度(视实际需要还可扩展通道数),实现多点温度检测。DS18B20只有3个引脚,其中两根是电源线VDD和GND(本设计中采用外部电源供电方式),另外一根用作总线DQ,其输出和输入均是数字信号且与TTL电平兼容,因此可以与微处理器直接进行接口。主CPU经过单线接口访问DS18B20的工作流程为:对DS18B20进行初始化→ROM操作命令→存储器操作命令→数据处理。主CPU对ROM操作完毕后即发出控制操作命令,使DS18B20完成温度测量并将测量结果存入高速暂存器中,然后读出此结果。

单片机系统

  2.2 键盘与显示部分

  本设计采用独立式键盘和液晶显示。键盘用来设置上限于下限的温度报警;字符液晶用来显示通道号、该通道的温度和所设置的上下限温度。使用液晶显示更加形象,而且抗干扰能力强,便于以后扩展。

2.3 串口通信

  系统通过串口与上位及通信。可以实时的向上位机传送温度值。实物中通过RS 232总线与计算机连接。接受数据界面由VB编写。

  图3为虚拟终端接受到的数据窗口仿真。

单片机系统

  3 软件电路设计

  单片机编程,开机之初先进行初始化,然后采集温度4路温度信号。通过键盘选择要显示的通道温度并在液晶屏上显示。再判断是否向上位机发送数据,有请求是则发送数据,无请求时则判断数据是否正常,不正常则报警(蜂鸣器鸣叫)。软件通过C语言编程,先在Keil C51集成开发环境下将编好的程序进行编译,调试。调试通过后,用生成的HEX文件在Proteus进行仿真。

  4 结 语

  利用Proteus对数字式温度传感器DS18B20构成通用多点温度测量系统进行仿真,仿真结果表明该系统具有测温系统简单、测温精度高、连接方便、性能稳定等优点,能有效地降低成本,缩短开发周期,具有良好的应用前景。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
评论(0)
发评论
JGH547497 2012-03-07
0 回复 举报
不错,挺好的,呵呵 收起回复

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分