基于Proteus的单片机应用于嵌入式系统设计方案

发布者:快乐之源最新更新时间:2014-11-20 来源: 21ic关键字:Proteus  单片机  嵌入式系统 手机看文章 扫描二维码
随时随地手机看文章

1 概述

随着半导体技术的飞速发展,以及移动通信、网络技术、多媒体技术在嵌入式系统设计中的应用,单片机从4位、8位、16位到32位,其发展历程一直受到广大电子爱好者的极大关注。单片机功能越来越强大,价格却不断下降的优势无疑成为嵌入式系统方案设计的首选,同时单片机应用领域的扩大也使得更多人加入到基于单片机系统的开发行列中,推动着单片机技术的创新进步。

然而传统的单片机系统开发除了需要购置诸如仿真器、编程器、示波器等价格不菲的电子设备外,开发过程也较繁琐。如图1所示,用户程序需要在硬件完成的情况下才能进行联调,如果在调试过程中发现需修改硬件,则要重新制板。因此无论从硬件成本还是开发周期来看,其高风险、低效率的特性显露无遗。来自英国Labcenter Electronics公司的Proteus软件很好地诠释了利用现代EDA工具方便快捷开发单片机系统的优势。它包括PROTEUS VSM(Virtual System Modelling)、PROTEUS PCB DESIGN两大组成部分,在PC机上就能实现原理图电路设计、电路分析与仿真、单片机代码级调试与仿真、系统测试与功能验证以及形成PCB文件的完整嵌入式系统设计与研发过程。本文讲述PROTEUS VSM单片机系统的PROTEUS设计与仿真功能,图2为基于PROTEUS仿真软件的单片机系统设计流程,它极大地简化了设计工作,得到众多设计师的青睐。


图1 传统的单片机系统设计流程  图2 基于Proteus的单片机系统设计流程

2 基于Proteus的单片机系统设计与仿真

Proteus支持51、PIC、AVR、ARM7等多个系列的单片机芯片,集编辑、编译、仿真调试于一体。它的界面简洁友好,可利用该软件提供的数千种数字/模拟仿真元器件以及丰富的仿真设备,使得在程序调试、系统仿真时不仅能观察到程序执行过程中单片机寄存器和存储器等内容变化,还可从工程的角度直观地看到外围电路工作情况,非常接近工程应用。另外Proteus还能与第三方集成开发环境(如Keil的μVision)进行联合仿真调试,给予开发人员莫大便利。本设计以51单片机构成的99秒马表为例描述基于Proteus的硬件设计、基于Keil C的软件设计以及它们的联合仿真调试过程。

2.1 硬件设计

2个七段数码管显示马表时间,用51单片机的P1口驱动;按键SP挂在外部中断0的I/O口上,第1次按下表示开始运行,第2次按下为计时停止,第3次按下重新归零;扩展程序存储器27256、数据存储器62256主要是缘于嵌入式操作系统μC/OSII下的应用程序设计,片内存储空间有限,同时也方便扩展。

根据以上分析,选取的元器件有:AT89C51、4位7段译码显示器、74LS373、27256、62256、按键及电阻电容等。Proteus绘制原理图和Protel软件相似,先从元件库中取出所需的元件并在绘图区布局好,设置元器件属性,接着进行连线,添加必要的网络标示等,最后完成电气检测。图3为马表电路原理图。

2.2 软件设计

随着嵌入式系统应用不断扩大,功能不断增强,为了对整个系统及其所操作的部件、装置等资源进行统一协调、指挥和有效控制,使开发人员只专注于应用程序设计,在嵌入式系统中引入操作系统是非常必要的。μC/OSII是源码公开的实时多任务操作系统,具备足够的稳定性和安全性,特别适合用于中小型嵌入式系统中。μC/OSII的具体介绍和移植过程请见参考文献[1]。[page]

Keil公司的Keil μVision3,是目前使用最为广泛的开发环境之一。这里介绍在Keil μVision3环境下基于μC/OSII嵌入式操作系统的用户程序设计。根据马表系统功能,设计两个任务: 任务1为数码管显示,调用系统延时函数实现马表的运行;任务2为按键判断,属于中断级任务,通过按键启动/停止/重置马表。数码管显示和按键判断任务之间用信号量实现通信;其中按键任务发出信号量,数码管显示任务负责接收信号量。程序流程如图4所示。部分程序清单如下:

主程序

任务1

任务2

2.3 系统联调

在Proteus硬件电路图和Keil C程序设计完成之后,接着进行联合仿真。此时需要对Proteus和Keil两个软件进行简单的配置,具体配置过程见参考文献[2]。同时打开电路仿真图和C工程文件,在Keil中启动调试“DebugStart/Stop Debug Session”,并运行DebugGo,此时Proteus仿真被Keil启动,在Keil和Proteus中都可以观察运行状态。程序运行后,可看到数码管显示情况,当按下按键,数码管显示作相应切换。

结语

基于Proteus电路设计、Keil程序设计以及它们联合仿真调试的方法,建立了单片机系统硬件设计、软件设计以及调试的全虚拟环境,使得全部的设计工作基于PC就能完成,显著提高了设计开发效率,降低开发风险,这对嵌入式方案设计无疑是一个很好的思路。

关键字:Proteus  单片机  嵌入式系统 引用地址:基于Proteus的单片机应用于嵌入式系统设计方案

上一篇:采用Jupiter双以太网处理器的嵌入式网关平台
下一篇:嵌入式系统的远程调试方法介绍

推荐阅读最新更新时间:2024-03-16 13:46

基于89C52单片机的具有通讯口的智能温控表
引 言      温控表已广泛应用于工业控制等诸多领域,本文介绍的具有计算机通讯功能的智能温控表是一种新颖的自动化仪表,它以单片机AT89C52为核心,采用电压/频率转换技术和RS-485通信接口芯片MAX487,具有测量精度高、可靠性好、抗干扰性能强、可实现计算机网络控制等优点,可广泛应用于冶金、纺织、化工、医疗等行业。它具有-200~+500%26;#176;C范围的温度测量和自动控制,是老式温控表的替代产品,市场前景广阔。 2 系统硬件设计   系统硬件框图如图1所示。      系统接通220V交流电源后,通过稳压电路(7805、7905)产生%26;#177;5V直流工作电源,以满足本系统中集成电路工作需要,系
[应用]
单片机笔记】keil c51编译环境不能跳转函数的解决办法
keil c51 不能使用:Go to Definition of....的解决方法 最近使用keil c51 开发usb固件,当向vc一样使用Go to Definition of....时,出现警告对话框: no browse information available in'工程目录' check- then rebuild the target! 查了一些资料,原因大概有二: 1、代码中嵌有汇编,汇编代码去掉后能查看。 2、选中target1,然后点击右键,选择 option for target 'target1' ,在弹出的对话框中选择output选项卡,看Browse
[单片机]
单片机串口编程问题
我现在正搞双机通信,不过遇到一个问题,问题是这样的: 这样就可以 while(TI==0); TI=0; …… …… 这样就不行,我用以下方法不能检测到TI=1,为何呀? for(i=0;(i 10)&&(TI==0);i++); TI=0; if(i 10) //正确处理 else //错误处理 没有必要使用第二种方法 串口发送数据时需要一定时间。假设波特率为9600bps,则每位需要一百多us,如果数据位为8位,一位校验位,则发送一字节数据需要一个多ms。第二种方法的错误之处在于认为发送不需要时间或时间很短。作者的本意可能是对TI做10次判断,如果10次判断都发现TI为0,即发送未完成,则认为发生错误;否则若在10次判断之内发现
[单片机]
单片机的在线编程技术
  通常进行单片机的实验或开发时,编程器是必不可少的。仿真、调试完的程序需要借助编程器烧到单片机内部或外接的程序存储器中。普通的编程器价格从几百元到几千元不等,对于一般的单片机爱好者来说还是一笔不小的开支。另外,在开发过程中,程序每改动一次就要拔下电路板上的芯片编程后再插上,也比较麻烦。   随着单片机技术的发展,出现了可以在线编程的单片机。这种在线编程目前有两种实现方法:在系统编程(ISP)和在应用编程(IAP)。ISP一般是通过单片机专用的串行编程接口对单片机内部的Flash存储器进行编程,而IAP技术是从结构上将Flash存储器映射为两个存储体,当运行一个存储体上的用户程序时,可对另一个存储体重新编程,之后将控制从一个存储体
[单片机]
PIC单片机 C编程技巧
1、PICC和MPLAB集成 PICC和MPLAB集成: PICC有自己的文本编辑器,不过是DOS风格的,看来PICC的工程师 要专业冷到酷底了... 大家大可不必用它,如果你没什么癖好的话,你不会不用UltraEdit 吧? 1:建立你的工作目录: 建 议在C盘根目录下建立一个以A开头的文件夹做为工作目录.因为你会发现它总是在你查找文件时候第 一个跳入你眼中. 2:MPLAB调用 PICC.(以MPLAB5.7版本为例子) 启动MPLAB.在Project-- Install Language Tool: Language Suite----- hi-tech picc Tool Name ---- PICC Compiler E
[单片机]
制作单片机的几点心得体会
  1.在电源的输入端正向串联或反向并联一个二极管,当不小心接反电源的时候,二极管可以保护单片机不受反向电压的袭击,如下左图、下右图所示。   2.在电源的输入端并接一个指示灯,以指示是否有电接入电路,如下图所示。   3.一般在正负之间接一个电容,以消除来自电源的高频噪声。典型值是0.1μF,如下图所示。   4.如果需要串行通信,晶振选择11.0592MHz较好,因为这样可以得到比较稳定的传输波特率。   5.在使用51单片机时,若不用外部程序存槠器,记得将EA引脚接上电源正极(即VCC),否则单片机将不会执行内部程序存槠器的程序,即自己烧进去的程序没有用。   6.51系列单片机的I/O口输出能力较弱(
[单片机]
制作<font color='red'>单片机</font>的几点心得体会
单片机控制板设计原则及一些细节问题
1.元器件布局 在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它们靠近些。对于那些易产生噪声的器件、小电流电路、大电流电路开关电路等,应尽量使其远离单片机的逻辑控制电路和存储电路(ROM、RAM),如果可能的话,可以将这些电路另外制成电路板,这样有利于抗干扰,提高电路工作的可靠性。 2.去耦电容 尽量在关键元件,如ROM、RAM等芯片旁边安装去耦电容。实际上,PCB板走线、引脚连线和接线等都可能含有较大的电感效应。大的电感可能会在Vcc 走线上引起严重的开关噪声尖峰。防止Vcc走线上开关噪声尖峰的唯一方法,是在VCC与电源地之间安放一个0.1
[单片机]
80C51单片机对压力测量控制系统的设计
1 引言 目前我国发展煤炭生产机械化发展迅速。综采设备的应用,是提高效率、改善安全状况的措施。 影响开机率的一个主要因素是支架对工作面的顶板控制的好坏,因此,对综采工作面进行矿压监测与控制是很有必要的。要做到这一点,首先需要对井下工作面的液压支架的实际工作状况进行监测,通过对检测数据处理、分析,评定其效果,并采取相应措施,以提高开机率、提高产量。本文以监测综采液压支架的压力为研究内容,开发了一套基于单片机的压力测量控制系统。 2 压力测量控制系统功能设计 压力测量控制系统用于监测支架压力, 每台测量控制系统配有四只传感器, 可分别通过高压油管连接支架的立柱、平衡千斤顶, 前探梁千斤顶的油压腔。压力测量控制系统接收到通讯测量
[单片机]
80C51<font color='red'>单片机</font>对压力测量控制系统的设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved