目前,使用较多的电路仿真软件为proteus,因此学习这款电路仿真软件的朋友也通常较多。本文中,将基于protues电路仿真软件,对proteus在ARM开发中的应用加以解析,一起来了解下吧。

现在,人们生活中的每个角落都有嵌入式设备的存在,比如DVD、移动电话、MP3及掌上电脑等等。这些嵌入式设备多采用32位RISC嵌入式处理器作为核心部件。其中基于ARM核的嵌入式处理器独占鳌头,在32位RISC处理器中占据超过75%的市场份额。因而越来越多的电子爱好者都加入了学习ARM的队伍中。通过和一般单片机系统开发过程的比较不难发现,嵌入式系统的设计包括硬件设计和软件设计两个方面,其调试过程包括软件调试、硬件测试、系统调试3个过程。软件调试一般比较容易进行,但是硬件测试和系统调试则比较麻烦,因为要进行这两个过程必须在 PCB制作、元器件焊接完毕之后才能进行;而PCB的制作、元器件的焊接是非常费时费力的,如果能采用仿真工具Proteus,则不用制作具体的电路板也能够完成以上工作。毫无疑问,这样可给广大arm学习者带来很大的方便。

1 Proteus简介

Proteus软件是英国Labcenter electronics公司的EDA工具软件,是一个电子设计的教学平台、实验平台和创新平台,涵盖了电工电子实验室、电子技术实验室、单片机应用实验室等的全部功能。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。该软件的特点是:

①实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。

②支持主流单片机系统的仿真。目前支持的单片机类型有:68000系列、8051系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及Phil-lips公司的arm(LPC系列)等。

③提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil、ADS等软件。

④具有强大的原理图绘制功能。能够进行SCH(原理图)和PCB(印刷板)电路的设计。

2 Proteus环境下的原理图设计

Proteus和Protel、EWB等软件相似,绘制原理图都要先从器件库里取出所需的元器件符号并在绘图区布局好,同时编辑好元件的参数,接着进行连线,添加必要的网络标号等步骤。下面通过一个简单的实例说明如何使用Proteus软件实现arm(以LPC2106为例)系统的设计与仿真。实例以 LPC2106控制器为核心,使用硬件SPI接口与74HC595进行连接,添加必要的外围电路,控制74HC595驱动LED数码管显示。电路原理如图 1所示。LPC2106的P0.4(/SCK/CAP0.1)、P0.6(/MOSI/CAP0.2)和P0.8(/TxD1/PWM4)分别与 74HC595的SH_CP、DS和ST_CP相连来控制74HC595,74HC595的输出Q0~Q6分别与数码管和LED相连,控制它们的实时显示。

3 程序代码的编写

程序代码的编写主要分4个部分进行:

①LPC2106的初始化代码;

②LPC2106异常向量入口及异常向量与C语言代码的接口,包括初始化堆栈的代码;

③LPC2106目标板特殊的代码,包括异常处理程序和目标板初始化程序;

④根据实例要求并结合原理图,编写实现预期功能的代码,即通常的执行代码,代码文件保存为“main.C”。

通常为了节省开发的时间,一般用设计好的工程模板,这里使用LPC2100系列工程模板。模板中包含LPC2100系列ARM7微控制器的启动文件,包括 STACK.S、HEAP.S、STARTUP.S和TARGET.C;模板还包含LPC2100系列arm7微控制器的头文件,分散加载描述文件(如 mem_a.scf、mem_b.scf和mem_c.scf)等等。这样在以后的程序代码编写时就可以直接使用这些工程模板,而不用再编写初始、启动等程序代码了,只需根据不同的要求编写“main.C”就行了,因而节省了大量时间,大大提高了工作效率。

这里主要说明“main.C”的编写,要实现的功能是使用硬件SPI接口输出0~F的数据,通过74HC595控制LED数码管显示0~F字符,同时控制4个LED显示对应的十六进制数。程序源代码如下:

4 仿 真

用ADS集成开发环境进行程序的编译连接设置,ADS集成开发环境是ARM公司推出的ARM核微控制器集成开发工具,英文全称为ARM Developer Suite,成熟版本为ADS1.2。ADS1.2支持ARM10以前的所有arm系列微控制器,支持软件调试,支持汇编、C和C++源程序,具有编译效率高、系统库功能强等特点。打开ADS1.2集成开发环境CodeWarrior IDE,使用事先加入的工程模板建立一个新的工程spi.mcp,把以上编好的代码文件main.c添加进工程。进行相关设置后,选择 Projeet→Make命令,编译并连接工程,生成spi.hex文件。

在原理图中双击微控制器LPC2106,出现一属性设置窗口Edit Component,如图2所示。在其中的ProgramFile中添加上面生成的spi.hex文件的路径,单击OK完成设置。

点击原理图左下角的运行按钮即开始仿真运行。数码管显示SPI发送的O~F的数据,LED显示的是相对应的十六进制值。仿真结果完全符合设计要求。

cmake 版本 arm_学习电路仿真:proteus电路仿真软件在ARM中的应用解析相关推荐

  1. stk在计算机仿真中的应用_学习电路仿真:proteus电路仿真软件在ARM中的应用解析...

    目前,使用较多的电路仿真软件为proteus,因此学习这款电路仿真软件的朋友也通常较多.本文中,将基于protues电路仿真软件,对proteus在ARM开发中的应用加以解析,一起来了解下吧. 现在, ...

  2. 基于proteus的功率_学习电路仿真:基于proteus电路仿真软件的步进电机仿真

    本文是电路仿真软件的进阶篇,对于电路仿真软件的基础篇,大家可翻阅往期文章哦.本文中,将基于proteus电路仿真软件的步进电机仿真,一起来了解下吧. 步进电机广泛应用在生产实践的各个领域.它最大的应用 ...

  3. 电路仿真软件详谈(九),proteus电路仿真软件及版本问题

    电路仿真软件用途广泛,可哪款电路仿真软件功能最为强大呢?对于这个问题,想必诸多朋友第一反应想到proteus电路仿真软件.众所周知,proteus是电路仿真软件界的实力佼佼者.但proteus电路仿真 ...

  4. proteus如何添加stm32_电路仿真软件详谈(六),Proteus电路仿真软件的超级应用

    一款优秀的电路仿真软件,可帮助用户更好实现相应功能,而Proteus电路仿真软件便是这样一款利器.本文中,将讲解基于Proteus电路仿真软件的SPI接口的设计与实现.通过本文,希望大家对Proteu ...

  5. 电路仿真软件详谈(28),如何在印刷电路板中应用proteus电路仿真软件

    电路仿真软件必不可少,电路仿真软件的使用让电路设计变得更为便捷.为增进大家对电路仿真软件的了解,本文将对proteus电路仿真软件予以介绍,主要内容为介绍该电路仿真软件在印刷电路板设计里的应用.如果你 ...

  6. 电路仿真软件详谈(二十),基于proteus电路仿真软件的步进电机仿真

    电路仿真软件必不可少,很多朋友早已精通各种电路仿真软件,但也存在很多朋友对电路仿真软件不太了解.本文是电路仿真软件的进阶篇,对于电路仿真软件的基础篇,大家可翻阅往期文章哦.本文中,将基于proteus ...

  7. 电路仿真软件详谈(22),proteus电路仿真软件与ICCAVR调试方法

    电路仿真软件很多,但好用的电路仿真软件却寥寥无几.对于电路仿真软件,可能大家各有偏爱.就个人而言,小编更倾向于proteus电路仿真软件.再本文中,小编将介绍这款电路仿真软件与ICCAVR的调试方法. ...

  8. 单片机怎么通过按键控制计时器的开始和停止_学习电路仿真:基于proteus电路仿真软件的交通灯控制电路设计...

    电路仿真软件是当代重要软件之一,缺乏电路仿真软件,模拟运行环境将无法搭建.对于电路仿真软件,虽然市面上类别众多,但知名电路仿真软件为proteus.本文对于电路仿真软件的介绍,为基于proteus的交 ...

  9. 电路仿真软件详谈(29),在单片机开发环境中引入proteus电路仿真软件

    电路仿真软件使用频率很高,许多朋友对电路仿真软件均有所耳闻,甚至在学校期间早已接触过电路仿真软件.为增进大家对电路仿真软件的了解,本文将介绍如何基于protues电路仿真软件搭建单片机开发环境.如果你 ...

最新文章

  1. 教你如何利用DroidCam将手机摄像头用作电脑摄像头|瞬间提升画质!
  2. rtsp中的rtp发送和head理解
  3. python网络爬虫权威指南 百度云-Python网络爬虫权威指南(第2版)
  4. 基于django的视频点播网站开发-step2-搭建环境
  5. openresty开发系列15--lua基础语法4表table和运算符
  6. Android向本地写入一个XML文件和解析XML文件
  7. 输入输出(Input and Output)
  8. css垂直居中技巧总结
  9. Oracle查看锁表
  10. 前端学习(2662):vue3.0的todolist制作演示
  11. javascript小游戏_个人网站集成js小游戏《圈小猫》教程及源码
  12. jsonp react 获取返回值_Django+React全栈开发:文章列表
  13. Vue.js之使用vue-cli初始化项目
  14. bzoj 1634: [Usaco2007 Jan]Protecting the Flowers 护花(贪心排序)
  15. css border 圆角气泡案例
  16. SAP接口编程之 JCo3.0 系列(03) : 表参数
  17. Robocup 仿真2D 学习笔记(一) ubuntu16.04 搭建 robocup 仿真2D环境
  18. excel随机数_Excel生成随机数、不重复随机数技巧,试验检测办公必备
  19. wechaty-微信聊天机器人-调研分析
  20. 注册快手提示服务器繁忙,快手登录失败怎么回事

热门文章

  1. Linux 虚拟机和物理机实现文本复制粘贴
  2. 2022年低压电工考试题模拟考试题库及答案
  3. 计算机错误代码0X000000be,Win7系统出现蓝屏代码0x000000BE的解决方法
  4. iPadOS 13.1连接鼠标键盘扩展坞用法说明
  5. java 字节批量拷贝_Java基础回顾 : 利用字节流实现文件的拷贝
  6. Python turtle.onclick()用法及代码示例
  7. php 变量类型 typeof,typeof返回的数据类型有哪些
  8. GNSS常用组合观测值方程详细推导
  9. 湖南师范大学2021年4月1日愚人赛解题报告与标程
  10. 扫地机器人划伤地板_扫地机器人会对木地板造成损害吗?