历史上的今天
今天是:2025年08月11日(星期一)
2021年08月11日 | ARM嵌入式实验 熟悉PROTEUS电子仿真软件的使用(LPC2138)
2021-08-11 来源:eefocus
一、实验目的
掌握RPROTEUS电子仿真软件的安装过程;
掌握RPROTEUS电子仿真软件的使用方法;
掌握创建电子仿真原理图的过程;
掌握为ARM芯片添加程序并仿真调试的过程。
二、实验内容
实现流水灯仿真实验。安装RPROTEUS电子仿真软件,根据实验原理图创建一个PROTEUS原理图,并添加相应的元件和导线;使用RealView MDK集成开发环境建立并生成实现流水灯的代码,为ARM芯片添加代码,最后查看仿真运行结果。
三、实验要求
了解RPROTEUS电子仿真软件的安装过程;
能够使用RPROTEUS电子仿真软件建立原理图并添加元件和导线;
能够设置元件及芯片的参数,并为ARM芯片添加代码;
能够检查并修改原理图的错误,并进行仿真运行;
实验报告内容包括实现流程水实验的过程。
四、示例原理图及程序

#include void delay(int m) { unsigned int i,j; for(i=m;i>0;i–) for(j=10000;j>0;j–) ; } main() { PINSEL0 &= ~0xFFFF0000; IO0DIR |= 0x000000FF; IO0CLR |= 0x000000FF; while(1) { delay(100); IO0SET |= 0x000000FF; delay(100); IO0CLR |= 0x000000FF; } } 五、实验过程及结果 1、首先添加需要用到的元件,按照老师所给流水灯原理图 点击如下p按钮,在弹出窗口输入要添加的元件名称(LPC2138、BUTTON、CAP、CAP-ELEC、CRYSTAL、LED-RED、RES) 2、点击元件添加到画布,按照老师所给原理图完成绘制组装,同时根据要求更改电阻值、电容值,完成图如下: 3、双击lpc2138添加.hex代码文件 4、点击Design->Configure Power Rails,更改电源设置(新建VCC3.3,更改值,并完成添加,如下两图) 5、点击运行,遇到如下问题: Cannot open ‘C:UserslyhAppDataL ocalT empLISA9584.SDF’ Simulation FAILED due to fatal simulator errors. 6、网上查找到解决方法,更改环境变量,在“用户变量”栏里,找到TEMP与TMP,分别双击,将变量值都改为%SystemRoot%TEMP。下面的“系统变量”栏里,同样的修改方法。 7、再次点击运行成功(每个灯都能按照.hex代码文件中设定的亮起):






史海拾趣
|
0 引 言 可编程片上系统(SOPC)是一种特殊的嵌入式系统,因为SOPC是片上系统(SoC),即由单个芯片完成整个系统的主要逻辑功能;SOPC是可编程系统,具有灵活的设计方式,可裁减,可扩充,可升级,并具备软硬件在系统可编程的功能;SOPC结合了SoC ...… 查看全部问答> |
|
PREINT = (CLK_Apb_PclkFreq()>>15) -1 ;// 设置基准时钟分频器 CLK_Apb_PclkFreq() / 32768 -1 PREFRAC = (UINT32)CLK_Apb_PclkFreq() & 0x7fff;//CLK_Apb_PclkFreq() - (CLK_Apb_PclkFreq() / 32768) * 32768; printf(\"PCLK:%d\",CLK_Apb_Pclk ...… 查看全部问答> |
|
我在做一个16*64的点阵显示屏,我参考别人的电路图,里面是用到74HC595,查资料说是8位输出输入移位寄存器,但是不清楚在这个点阵显示屏中的真正作用,各位高手教教我,谢谢.… 查看全部问答> |
|
wince6.0的nk.bin文件通过eboot下载到开发板上之后终端出现这样的信息,系统无法启动,请教各位了! 信息如下: SACCST(0x00000300) SACCEN(0x00000000) SACCDIS(0x00000000) STMSK addr(0x00460048) SRMSK addr(0x0046004c) SACCST addr(0x00460050) SACCEN addr(0x00460054) SACCDIS addr(0x00460058) +CodecInit +CodecConfigure coun ...… 查看全部问答> |
|
以前使用volatile时,只是为了不让变量被优化每次都重新取值。昨天试了下这个函数,发现使用volatile和不使用volatile差别非常的大,如下: 使用volatile void delay(volatile u32 nCount) { for (; nCount != 0; nCount--); ...… 查看全部问答> |




