菜鸟的ARM学习笔记proteus仿真
- 格式:doc
- 大小:251.50 KB
- 文档页数:27
Proteus 7 Professional仿真51单片机入门教程初学单片机时,拿着一块实验板发呆,电路也不懂、程序也不懂,只好慢慢弄,等弄懂了,实验板也差不多报销了。
而proteus 正好可以解决这个问题,它功能强大,这里只讨论仿真MCU 的功能。
它可以在原理图上仿真,不用出PCB 板,不怕你“啥弄”。
下面就先认识一下proteus.上图是启动后的画面。
我们点中的“P”后,弹出下面的画面:在里输入at89c51 后:右侧出现AT89C51,双击它,左侧空白框中出现AT89C51.左键单击它,它上面框中显示出它的原理图,把鼠标移到右侧框中,鼠标变成铅笔形状,单击左键,框中出现一个AT89C51 原理图的轮廓图,可以移动。
鼠标移到合适的位置后,按下鼠标左键,原理图放好了。
好了,一个单片机的原理图放好了。
按这个方法依次把元件led-red、res 放到右侧的框中(单片机旁)。
这张图太小了,看得不清楚,要是大的就好了。
别着急,把鼠标放在LED 旁,向前滚动鼠标中键,图像放大,向后滚动鼠标,图像缩小。
如果你的鼠标没这个键,你可以试试上面工具栏上这二个图标,也是一样的。
选择左侧工具栏上的“箭头”图标,把鼠标移到右侧的原理图中,鼠标经过元件时会就成“手形”,把鼠标移到LED-RED 上,按下左键,LED-RED 高亮显示,鼠标变成“手形”并带有方向键头。
松开鼠标后,形状没变,指着LED-RED 按住鼠标左键,移动鼠标,哈哈!元件移动了。
好了,现在你应该明白它们了吧!不用我说你应该明白刚才用到的工具的作用了。
在任何情况下,右键单击元器件时,元件会亮显示并弹出菜单:非常直观,都是一些一目了然的图标。
从上到的几个菜单分别是:移动物体、编辑属性、删除物体、顺时针旋转90 度(后面几个就不用说了吧)。
单击鼠标左键操作。
当元件高亮显示时,再右键击它,会删掉它。
把原理图中的元件摆放好。
左键单击左侧工具栏上的元件图标,把鼠标移到LED-RED引脚上,引脚上高亮的小方框,单击左键,有一条绿色的线拉出来了。
Proteus软件仿真教程我的毕业论文(二):Keil软件的基本用法2007年07月02日星期一 13:11Keil μVision是Keil公司(ARM子公司)开发的一款用于MCS-51单片机开发的应用十分广泛的编译和调试软件。
该软件可以编辑、编译汇编语言、C51语言,连接定位目标文件和库文件,创建HEX文件,调试目标程序等。
Keil软件功能强大,包含很多部分,本文我们主要使用Keil μVision来开发C51项目、调试程序并生成HEX文件来用于单片机开发。
Keil μVision是一款在Windows下使用的集成开发环境,目前最新版本为V3,本文中我们为了简便选用V2.0。
下面我们就来熟悉一下Keil软件。
首先安装软件,它的安装与MedWin一样简单,我们不做过多介绍。
安装完成后,我们就可以使用软件了,打开软件,我们可以看到其界面,如下图所示:下面我们就来使用Keil软件开发我们的第一个项目。
点击“Project”(工程)菜单下面的“New Project”(新建工程),我们来新建一个工程。
软件弹出“Create New Project”(创建新工程)窗口。
如下图所示: prova mitjanes, ?per punts d'experiència. Mòdul de compressió Es de veure de deformació cohesionada terra, sorra per EO. 3, la distribució de les aigüessubterrànies: 3.1, el camp lloc tipus medi ambient classe II. Segons hidrològica geològic dos o tres capa sòl per clay llim, quatre capa de llim General subterrània enterrat, tipus d'aigua subterrània és quart porus Departament submarinisme, enquesta durant nivell estable d'aigua subterrània de llocs mesurat enterrat profundament 1.10 ~ 2.30 m, principal p er precipitació de l'atmosfera i aigües superficials de Xia infiltració subministraments, per evaporació i l'escorrentia metro per manera d'excreció principals; nivell freàtic amb temporada canvia la gamma més evident (canvis anys rang 0,50 ~ 1.50 m), ha r ecuperat Feng la temporada de l'aigua nivell pot lleugerament. 3.2, basat en laexperiència regional i resultats de prova de penetració coberta, lloc II clip llim capes de coeficients de permeabilitat franc argila per argila1x10-4cm/s, de franc interbedded amb coeficients de permeabilitat llims ? per K=6.0x10-4~1.0x10-3cm/s, permeabilitat de franc experiència negra capa valors de coeficient de 6 x 10-3 cm/s. Precipitació negre franc impacte radi és de 253.33 m, per tant, construcció ha de ser uadvantages, facing the Yangtze River Delta, Pearl River Delta, Shandong peninsula, Beijing-Tianjin-Tangshan area, targeted investment promotion several times. Industry-led unit and various town streets are developingdetailed promotion plans, the basis of what is specific to each industry, has formed a kind of scale, need to bring in the kind of projects each town street has the kind of resources, what location, focus on thedevelopment of the kind of industries. Four stroke technology and science. Determinants of technology is the County's economic development through scientific and technological innovation, improve product value-added and improve economic competitiveness, is the inevitable way to achieve leapfrog development. Talent is the city center city's first resource, is the primary industry development, and revitalization of the social protection. So, in terms of skills: to catch ... Competitive. Encouraging enterprises to actively undertake science and technology projects, strengthening research cooperation, using advanced technology to increase the added value of their products to ensure thatintroduction of transforming scientific and technological achievements during the year ... ... New research enterprises ... ... Home, creating innovative platforms ... ... Generic classifier. In: first, we must strengthen the cultivation of talent, efforts to increase vocational education and training and meet the basic demand of enterprise development. Then introduced a number of the county needed scarce education, health professionals, meet social development needs to invest more in machinery, pharmaceutical manufacturing research and development in higher education, such as the introduction of talent to meet the need. Third, we must rely on ... ... Post-doctoral workstation, ... ... Food research station platform, to the XX University to find experts我们为工程输入文件名后,点击“保存”按钮,软件将弹出“SelectDevice for Target”(选择MCU)窗口,如下图所示。
操作步骤与快捷键删除=双击右键自动摇景=shift+鼠标撞击视图边缘快速的画重复路径的连线(比如画零件到总线的连线):先画好第一根连线,这时软件会把刚才画线的路径记忆下来,画第二根线的时候只要在第二根线的起点双击即可。
(实在是方便)查找并编辑元件属性:按e弹出搜索框,输入零件序号,比如r2,按回车,就会打开r2的编辑框。
编辑元件属性:方法1:双击元件。
方法2:选中元件,按ctrl+e。
方法3:在零件上按右键再按左键。
自动拐角线与直线的绘制:当按下时,走线为自动拐角模式,简称WAR模式,参见tools菜单,效果如。
当弹起时,走线为直线模式如,当我们画总线分支线的时候,需要采用这种模式。
还有我们可以在走线的时候按住Ctrl键随时进入任意角度走线模式。
在线的中点拖动可以给两边拖出两拐角如,在线的端点拖动只能拖出一个拐角,如视图缩放快捷键F8=全部显示F7=缩小F6=放大鼠标定位+F5=手动摇景R=刷新X:鼠标形状会在正常、斜45度,全屏十字三种状态循环转换栅格的显示与隐藏:按g键切换,或者点按钮切换。
重新定位坐标原点:(作用:为了便于比较而选取的参照点)因为坐标的原点在编辑区的中间,有的地方的坐标值比较大,不利于我们进行比较。
此时可通过点击菜单命令“View” 下的“Origin” 命令,也可以点击工具栏的按钮或者按快捷键“O” 来自己定位新的坐标原点。
快捷键O的用法:先定位鼠标到指定位置,然后按O键,注意此时的状态栏显示一个粉红的坐标值0,0 若再按一次O键,坐标将会恢复到系统默认的中点位置。
同时,状态栏的坐标值会变成黑色字体。
复制零件:左键点击选中零件,点开始复制,零件编号会自动递增总线标号的命名方式:在总线上的命名形如AD[0..7]如图,若写成AD[$0..7$]则可以形成上划线效果,如同.Proteus支持将零件的引脚画成总线型,如PageUp、PageDown按钮可以在多张图纸间切换。
一些常用的零件:交流电源:Simulator Primitives →ALTERNATOR灯:Optoelectronics-> LAMP配置Set Animation Options,这样使你的仿真结果更加形象。
单片机仿真软件PROTEUS入门教程PROTEUS是一款广泛使用的电子电路仿真软件,它具有友好的用户界面和强大的仿真功能。
本篇文章将向大家介绍PROTEUS的基本操作和仿真流程。
第二步是绘制电路图。
在PROTEUS中,可以使用元件库中的元件来绘制电路图。
首先,点击左侧的“Pick from Libraries”按钮来打开元件库,然后选择合适的元件库。
接下来,点击元件库中的元件,并将其拖放到绘图区。
绘制完电路图后,可以使用线连接元件,建立电路连接。
第三步是设置元件的参数。
在PROTEUS中,可以通过双击元件来打开参数设置对话框。
在对话框中,可以设置元件的名称、型号、参数等信息。
第四步是设置仿真器。
在PROTEUS中,可以使用不同的仿真器来进行仿真。
可以选择Digital Simulation来进行数字电路仿真,或选择Mixed mode simulation来进行混合信号仿真。
第五步是运行仿真。
在PROTEUS中,可以点击“Run”按钮来运行仿真。
在仿真过程中,可以观察电路中各个元件的状态以及输出结果。
第六步是分析仿真结果。
在仿真完成后,可以点击“Debug”按钮来查看仿真结果。
在仿真结果窗口中,可以查看电路中各个元件的输入和输出波形,并进行波形分析。
第七步是进行调试。
在PROTEUS中,可以使用调试工具来排查电路中的错误。
可以使用断点功能来暂停仿真过程,并查看电路的当前状态。
同时,可以使用单步运行功能来逐步执行仿真过程。
第八步是保存仿真结果。
在PROTEUS中,可以将仿真结果保存为图像文件或数据文件。
可以将波形数据保存为.csv或.txt格式的文件,以便进行后续分析。
最后,建议在使用PROTEUS进行仿真时,可以参考相关的教程和文档,学习更多高级操作和功能。
通过不断练习和实践,掌握PROTEUS的使用方法,提高电路设计和仿真的能力。
总之,PROTEUS是一款功能强大的电子电路仿真软件,通过本文介绍的基本操作和仿真流程,读者可以快速上手PROTEUS,进行电路设计和仿真。
PROTEUS仿真教程第一步:安装PROTEUS软件第二步:创建新项目在PROTEUS软件中,您可以创建新项目来开始您的电路仿真工作。
点击菜单栏中的“File”选项,选择“New Project”来创建一个新项目。
然后输入项目的名称并选择保存路径。
第三步:添加元件在PROTEUS软件中,您可以通过“Library”选项来选择各种电子元件,包括电阻、电容、电压源等。
点击“Library”选项,选择您需要的元件并将其拖动到工作区中。
连接元件之间的引脚以搭建电路。
第四步:设置仿真参数在搭建完电路后,您需要设置仿真参数。
点击菜单栏中的“Graph”选项,选择“Set Simulator Parameters”来设置仿真参数,包括仿真时间、步长等。
您还可以设置输出波形的显示格式和范围。
第五步:运行仿真设置好仿真参数后,点击菜单栏中的“Simulate”选项,选择“Run”来运行仿真。
PROTEUS将模拟您搭建的电路,并显示仿真结果。
您可以查看电压、电流等参数,并分析电路的工作情况。
第六步:调试电路在仿真过程中,您可能会发现电路存在问题,比如输出波形不符合预期,电流过大等。
您可以通过调试电路来解决这些问题。
尝试更改元件参数、连接方式等,并重新运行仿真来检查效果。
第七步:保存和导出仿真结果在完成仿真后,您可以保存仿真结果并导出到其他格式。
点击菜单栏中的“File”选项,选择“Save As”来保存仿真文件。
您还可以导出波形图、数据表等结果,以便后续分析和报告。
总结:本教程介绍了PROTEUS的基本功能和使用方法,帮助您快速上手该软件进行电路仿真工作。
通过创建新项目、添加元件、设置仿真参数、运行仿真、调试电路和保存结果,您可以轻松完成电路仿真工作。
希望本教程对您有所帮助,祝您在PROTEUS软件中取得成功!。
多个外部中断——ARM的Proteus实验实验原理ARM开启两个中断源Eint1与Eint2,分别用一个按钮来控制。
在没有中断的时候两个LED都缓慢闪烁,当任何一个中断被出发的时候,对应的LED会急促闪烁,逐渐回复正常。
Proteus仿真电路图C语言源程序#include <LPC21XX.H>#define LED1 0x02000000/*LED1接在P0.25上*/#define LED0 0x01000000/*LED0接在P0.24上*/typedef unsigned int uint32;void Eint1_ISR(void) __attribute__ ((interrupt));/*声明某函数为中断服务子程序的方法*/void Eint0_ISR(void) __attribute__ ((interrupt));uint32 times = 40;/*循环次数默认为40*/void delay40(void) {unsigned volatile long i,j;for(i=0;i<10000;i++)for(j=0;j<times;j++);if(times > 40){times-=2;}else if(times <40){times+=2;}}void Eint0_ISR(void){times = 0;while(times!=40){IO0CLR = LED0;delay40();IO0SET = LED0;delay40();}while((EXTINT&0x01)!=0){EXTINT=0x01;/*清除EINT0中断标志*/}VICVectAddr=0x00;}void Eint1_ISR(void){times = 0;while(times!=40){IO0CLR = LED1;delay40();IO0SET = LED1;delay40();}while((EXTINT&0x02)!=0){EXTINT=0x02;/*清除EINT1中断标志*/}VICVectAddr=0;}int main(void){IO0DIR = LED1|LED0;PINSEL0 = 0x20000000;/*引脚选中EINT1功能*/PINSEL1 = 0x00000001;/*引脚选中EINT0功能*//*以下为中断控制部分*/VICIntSelect=0;/*全部中断设置为IRQ,若某位为1是FIQ*/VICIntEnable=0x0000C000;/*使能EINT1、0,EINT1为第15位,0为14位*/VICVectCntl0=0x2E;/*EINT0最高优先级*/VICVectAddr0=(int)Eint0_ISR;/*设置EINT0向量地址*/VICVectCntl1=0x2F;/*0xF,15号中断*/VICVectAddr1=(int)Eint1_ISR;/*设置中断服务子程序*/EXTINT=0x07;while (1) {/*无中断时,两灯一起缓慢闪烁*/IO0CLR = LED1|LED0;delay40();IO0SET = LED1|LED0;delay40();}}。
用PROTEUS对单片机进行仿真实例Proteus软件是英国Labcenter Electronics公司的一款电路设计与仿真软件,它包括ISIS、ARES等软件模块,ARES模块主要用来完成PCB 的设计; ISIS模块用来完成电路原理图的布图和仿真。
它可以进行模拟电路仿真、数字电路仿真,也可以进行单片机及其外围电路组成的系统的仿真;软件提供了各种虚拟仪器,如示波器、逻辑分析仪、信号发生器、电压表、电流表等。
和其它仿真软件相比,Proteus ISIS最大特色是对单片机系统的仿真,目前支持的单片机类型有: 68000系列、8051系列、ARM系列、AVR系列、PIC系列、Z80系列、HC11系列等。
本文主要介绍Proteus软件在单片机方面的仿真功能,即ISIS模块的用法。
在单片机学习开发的过程中,程序的调试是一个很重要的环节,要安装电路进行实验,而且电路在调试过程中往往要进行调整和改变,这不紧增加了费用和难度,而且也影响了学习和开发的进度,这也成了一些初学者学习的障碍。
如果使用Proteus 软件就可以大大节省时间和开发费用,可以在软件仿真通过后再制作印刷电路板进行电路实验。
一、Proteus ISIS软件的工作环境和一些基本使用方法下面通过一个流水灯的实例来说明Proteus的基本使用方法,使用的软件版本是Proteus.Professional 7.1 SP2。
流水灯使用AT89C51单片机,用P2口作输出口。
先在Keil uVision编译器中输入下列程序:#include <reg51.h>void Delay1ms(unsigned int count)//延时子程序{unsigned int i,j;for(i=0;i<count;i++)for(j=0;j<120;j++);}main() //主程序{unsigned char LEDIndex = 0;bit LEDDirection = 1;while(1){if(LEDDirection)P2 = ~(0x01<<LEDIndex);elseP2 = ~(0x80>>LEDIndex);if(LEDIndex==7)LEDDirection = !LEDDirection;LEDIndex = (LEDIndex+1)%8;Delay1ms(200);}}将上述程序编译生成目标文件LED.hex。
Proteus 7 Professional 仿真单片机入门教程初学单片机时,拿着一块实验板发呆,电路也不懂、程序也不懂,只好慢慢弄,等弄懂了,实验板也差不多报销了。
而Proteus 正好可以解决这个问题,它功能强大,这里只讨论仿真MCU 的功能。
它可以在原理图上仿真,不用出PCB 板。
一、Proteus 6 Professional界面简介上图是启动后的画面。
下面简单介绍各部分的功能:1.原理图编辑窗口(The Editing Window):顾名思义,它是用来绘制原理图的。
蓝色方框内为可编辑区,元件要放到它里面。
注意,这个窗口是没有滚动条的,你可用预览窗口来改变原理图的可视范围。
2.预览窗口(The Overview Window):它可显示两个内容,一个是:当你在元件列表中选择一个元件时,它会显示该元件的预览图;另一个是,当你的鼠标焦点落在原理图编辑窗口时(即放置元件到原理图编辑窗口后或在原理图编辑窗口中点击鼠标后),它会显示整张原理图的缩略图,并会显示一个绿色的方框,绿色的方框里面的内容就是当前原理图窗口中显示的内容,因此,你可用鼠标在它上面点击来改变绿色的方框的位置,从而改变原理图的可视范围。
3.模型选择工具栏(Mode Selector Toolbar):主要模型(Main Modes):1* 选择元件(components)(默认选择的)2* 放置连接点3* 放置标签(用总线时会用到)4* 放置文本5* 用于绘制总线6* 用于放置子电路7* 用于即时编辑元件参数(先单击该图标再单击要修改的元件)配件(Gadgets):1* 终端接口(terminals):有VCC、地、输出、输入等接口2* 器件引脚:用于绘制各种引脚3* 仿真图表(graph):用于各种分析,如Noise Analysis4* 录音机5* 信号发生器(generators)6* 电压探针:使用仿真图表时要用到7* 电流探针:使用仿真图表时要用到8* 虚拟仪表:有示波器等2D图形(2D Graphics):1* 画各种直线2* 画各种方框3* 画各种圆4* 画各种圆弧5* 画各种多边形6* 画各种文本7* 画符号8* 画原点等4.元件列表(The Object Selector):用于挑选元件(components)、终端接口(terminals)、信号发生器(generators)、仿真图表(graph)等。
菜鸟的ARM学习笔记下面就是我学习ARM的第一阶段的记录,这段时间的学习基本上是使用Proteus配合KEIL做简单的实验(最后有实验的目录以及下载地址)。
通过该阶段的学习,算是对ARM 的基本结构有了了解。
该阶段主要学习资料是《基于PROTEUS的ARM虚拟开发技术》,以及另外一本ARM 体系结构的书籍,感觉这类书都差不多。
学习ARM前需要的基础1.前辈学习ARM的经验!(我是在嵌入式开发联盟的新人区看的帖子。
)2.掌握C语言编程。
3.了解简单的微机算计原理知识,例如二进制,计算机程序的执行过程,总线(数据、地址、控制),软件系统(系统软件与应用软件)。
4.听说过RISC与CISC,高级语言与低级语言的区别。
5.最好听说过串行传输与并行传输。
6.普林斯顿(ARM7)和哈佛结构(ARM9、10、11—)。
什么是ARM?学ARM,自然要理解ARM是什么,也好明确学习目标。
网上的资料很多,“ARM是一家公司,也是一个处理器体系”……我将学ARM分为以下几类:1.做ARM的核心研发。
也就是进ARM公司做IP核,应该是学电子之类的东西吧。
2.买ARM的IP核,做具体的嵌入式处理器、核心板,例如三星和NXP。
3.买ARM核心板,连接外围电路制作教育用或开发用的开发板,或者直接开发其它中断产品。
4.买ARM开发板做产品,要做系统软件和应用软件。
3和4基本并列了。
ARM基础任何一本介绍ARM体系结构书籍都应该有这些内容。
处理器模式用户模式、特权模式又分为系统模式、管理模式、快中断模式、中断模式、终止模式、未定义指令终止模式。
2. 寄存器R0-R7、R15和CPSR是所有模式共享的。
ﻫR8-R12出快中断模式有RX-fiq外所有模式共享。
R13、R14和SPSR只有用户模式和系统模式共享,其它都有似有SPSR。
R15(PC)程序计数器ﻫR16(CPSR)程序转台寄存器R13(SP)堆栈指针ﻫP14(LR)链接寄存器ARM指令集汇编程序设计略了,我看了,但是做Proteus仿真实验没用上,两天就忘了。
LPC2000我买的3本ARM入门书籍中有两本都是以LPC2000系列为例的,其实从网上可以下载到具体LPC2XXX处理器的datasheet,上面的资料是最权威和详尽的。
引脚选择PINSEL0、PINSEL1设置各个引脚的功能。
中断中断的寄存器太多了,没记。
GPIO做输入输出。
以P0口为例,寄存器有IO0PIN、IO0SET、IO0DIR、IO0CLR。
存储器1.LPC2000可用地址为4GB,内部2GB(0~0x7FFFFFFF),外部2GB(0x80000000~0xDFFFFFFF),高0.5GB是I/O设备地址空间(0xE0000000~0xFFFFFFFF)。
2.内部最低128KB或256KB为Flash。
3.高1GB(0x40000000~0x7FFFFFFF)为SRAM。
其中0x40000000~0x40001FFF为片内SRAM。
4.I/O部分,低2MB(0xE0000000~0xE001FFFFF)为VPB外设空间,高2MB(0xFFE00000~0xFFFFFFFF)为AHB外设空间。
5.FLASH加速模块。
MAMCR设置是否允许加速、MAMTIM设置预取处理器时钟。
时钟cclk、pclk分振荡器模式和从属模式,振荡器Fosc经PLL升频为cclk,cclk经过VPB分频后为pclk。
设置cclkPLLCFG 设置PLL倍频M,PLL分频器值PPLLCON PLL的允许与连接ﻫPLLSTAT 读取PLL状态ﻫPLLFEED使PLL设置生效ﻫ例Fosc=12MHz,cclk=60MHz,则M=60/12-1=4,因为Fcco=P*cclk*2(要求156M~320MHz)。
设置pclkﻫ由VPBDIV设置00为4分频、01为不分频、10为二分频。
定时器pclk定时,定时器为32位,从0计数到0xFFFFFFFF。
以T0为例T0TC,计数器初值ﻫT0PR,定时计数器分频,pclk/(PR+1)T0MR0~3,匹配值,当计数带到时候,按照T0MCR的设置触发不同动作。
ﻫT0MCR,计数器到达匹配值的动作(复位、中断、停止)ﻫT0EMR,外部匹配寄存器,到达匹配值时候外部引脚的操作(MAT0.0~3)ﻫT0CCR,外部引脚有特定动作时候,计数值存入T0CR0~3,设置是否触发中断T0CR0~3,在T0CCR控制下存TC值。
ﻫT0TCR,复位与使能T0IR,对应MR与CR中断PWM看门狗Pclk四分频后控看门狗的32为计数器减一。
ﻫWDTC,看门狗计数器初值。
WDMOD,看门狗工作模式,可以开启和复位看门狗。
ﻫWDFEED,喂狗寄存器。
ﻫWDTV,看门狗计数器当前值。
UART引脚RxD0,TxD0U0RBR,暂存接受数据。
U0THR,暂存发送数据。
访问它时,U0LCR的DLAB位为0。
ﻫU0IER,串口个状态的中断允许。
ﻫU0IIR,中断标志。
U0FCR,控制UART的FIFO(暂时没明白)。
U0LCR,传输模式。
U0LSR,当前状态(错误指示)。
U0DLL、U0DLM,pclk/( U0DLL U0DLM),访问时UOLCR的DLAB位为1。
SPI全双工同步串行接口引脚:SCK0,串行时钟。
SSEL0,从机选择。
MISO,主机输入,从机输出。
MOSI,主机输出,从机输入。
ﻫ寄存器:ﻫS0SPCR,SPI控制。
ﻫS0SPSR,SPI状态。
ﻫS0SPD R,SPI数据。
ﻫS0SPCCR,控制SCK的频率。
必须为偶数且大于等于8。
(指示一个SCK周期中的pclk周期)ﻫS0SPINT,SPI中断。
I2C引脚:SDA,SCLﻫ寄存器:ﻫI2CONSETI2CONCLRﻫI2CONﻫ上面三个寄存器控制应答标志位,中断标志、停止和起始以及I2C使能。
I2STAT,I2C状态。
I2DAT,I2C数据。
ﻫI2ADR,I2C从模式地址。
I2STAT,I2C状态。
ﻫI2SCLH,高电平占空比占pclk周期个数。
I2SCLL,低电平占空比占pclk周期个数。
分频fpclk/( I2SCLH+I2SCLL)。
AD转换引脚:AIN0~3寄存器:ﻫADCR,工作模式选择。
ADDR,转换数据以及标志的暂存。
基于Proteus的ARM实验目录菜鸟的ARM学习笔记(第一阶段)实验原理ARM(LPC21XX)的一个I/O口接LED,通过给它送0和1来设置LED的亮和灭。
Proteus仿真电路图步骤KEIL1.创建新工程2.选择ARM型号(KEIL会自动生成启动代码startup.s)3.添加源文件,编写程序4.设置项目选项(是否输出hex、lst文件,设置linker script) Proteus1.绘制电路图2.载入程序3.仿真C语言源程序2、开关控制LED——ARM的Proteus实验实验原理ARM的P0.1口接按钮,再通过P0.0控制LED的亮、灭。
本实验的电路图以及实验均在上一个实验基础之上修改。
其中电路图只多了一个开关。
Proteus仿真电路图实验步骤略(与上一实验相同)C语言源程序/******************************************************************************//**/ﻫ/* led.c: 用ARM实现开关控制led并亮灭,还是有点浪费…… *//**/ﻫ/******************************************************************************/ﻫ#include <LPC21xx.H> #define P0_1 0x02; ﻩ/*P0.1*/3、LCD——ARM的Proteus实验实验原理ARM的P0.0口到P0.10口接LCD,P0.11接LED。
每过一段时间LED状态改变,LCD 显示LED的状态。
Proteus仿真电路图C语言源程序#include<LPC21XX.H>ﻫ#define rs (1<<8)#define rw (1<<9)#define en (1<<10)#define busy (1<<7)ﻩ //P0.7ﻫtypedef unsigned char uint8;uint8 ledDown[]={"The LED is down!"};uint8 ledUp[]={"The LED is up!"};void waitLCD()ﻩﻩﻩ/*等待LCD*/{IO0DIR=0xf00;ﻩwhile(1)ﻩﻫ{ﻩIO0CLR=rs;ﻩﻩﻫIO0SET=rw;ﻫIO0SET=en;ﻫif(!(IO0PIN }IO0DIR=0xfff;ﻫ}ﻫvoid lcdOp(uint8 dat)/*送LCD控制码*/ﻫ{LCD配置为两4、UART——ARM的Proteus实验实验原理ARM的P0.0口接LED,串口接Proteus的虚拟终端。
每隔一段时间改变一次LED的状态,并且在串口上输出LED的当前状态。
Proteus仿真电路图C语言源程序#include <LPC21xx.H>ﻫ#include "uart.h"#define CR 0x0Dﻫchar ledDown[]={"The LED is down!\n"};char ledUp[]={"The LED is up!\n"};int putchar (int ch){/*向串口输出一个字符 */ﻫ if (ch =='\n') {ﻫwhile (!(U1LSR & 0x20));ﻫU1THR = CR; aﻫ} while (!(U1LSR & 0x20));return (U1THR = ch);}void delay (void) {unsigned volatile long i,j;ﻫ for(i=0;i<60000;i++)5、Eint1外部中断——ARM的Proteus实验实验原理ARM的P0.25接一个LED,引脚设置时连接EINT1功能,按钮触发中断。
中断服务程序另LED快速闪烁。
Proteus仿真电路图C语言源程序#include <LPC21XX.H>ﻫ#define LEDCON 0x02000000/*LED接在P0.25上*/typedef unsigned intuint32;void IRQ_Eint1(void) __attribute__((interrupt));/*声明某函数为中断服务子程序的方法*/ﻫuint32 times = 100;/*循环次数默认为100*/ﻫvoid IRQ_Eint1(void){times = 5;ﻫ while((EXTINT&0x02)!=0){EXTINT=0x02; //清除EINT1中断标志 }ﻫ VICVectAddr=0;}ﻫvoid delay100(void) { ﻫunsignedvolatile longi,j;ﻫ for(i=0;i<10000;i++)6、多个外部中断——ARM的Proteus实验实验原理ARM开启两个中断源Eint1与Eint2,分别用一个按钮来控制。