ARM嵌入式系统实验--汇编_第1页
ARM嵌入式系统实验--汇编_第2页
ARM嵌入式系统实验--汇编_第3页
ARM嵌入式系统实验--汇编_第4页
ARM嵌入式系统实验--汇编_第5页
已阅读5页,还剩139页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARM嵌入式系统实验,EasyARM2200开发板硬件结构,功能特点可以使用多种兼容芯片(LPC2210/2212/2214/2290/2292/2294/LPC2114/2124/2119/2129/2194等)具有4MbitSRAM,16MbitFLASH具有RTL8019AS网卡芯片,TCP/IP软件包标准MODEM直接接口USB、CAN接口、打印机接口、图形液晶显示接口、RS232转换电路,EasyARM2200开发板功能框图,实验内容,GPIO的控制实验,如蜂鸣器控制、模拟SPI等;外部中断实验,学习向量中断控制器(VIC);完成I2C总线的实验;SPI接口数据发送、接收实验;PWM、DAC实验;实时时钟控制实验;WDT及低功耗控制实验;ADC数据采集实验,硬件原理(1)-电源电路,5V稳压电路,硬件原理(1)-电源电路(contd),7805实现5V电源,硬件原理(1)-电源电路(contd),3.3V及1.8V电源,硬件原理(2)-复位电路,硬件原理(3)-系统时钟电路,晶振的接法,硬件原理(4)-JTAG接口电路,硬件原理(5)-串口及MODEM接口电路,UART0及UART1,硬件原理(6)-键盘及LED显示电路,硬件原理(7)-SPI驱动LED灯电路,硬件原理(8)-蜂鸣器及PWM电路,硬件原理(9)-PWMDAC电路,硬件原理(10)-ADC电路,硬件原理(11)-CAN接口电路,硬件原理(12)-外设PACK接口电路,硬件原理(13)-以太网接口电路,硬件原理(14)-图形液晶模块接口电路,硬件原理(15)-系统存储器电路,硬件原理(15)-CF卡及IDE硬盘接口电路,硬件原理(16)-LPC2210与IDE硬盘接口电路,硬件原理(17)-USBPACK电路,EasyARM2200元件布局图,ADS集成开发环境及EasyJTAG仿真器应用,CodeWarriorIDE,AXD调试器简介,工程的编辑-建立工程,工程的编辑-建立文件,添加文件到工程,编译连接工程,打开旧工程,点击【File】菜单,选择【Open】即弹出“打开”对话框,找到相应的工程文件(*.mcp),单击【打开】即可。在工程窗口的【Files】页中,双击源程序的文件名即可打开该文件进行编辑。,工程的调试,全速运行(Go)停止运行(Stop)单步运行(StepIn)单步运行(Step)单步运行(StepOut)运行到光标(RunToCursor)设置断点(ToggleBreakPoint),工程的调试-contd,打开寄存器窗口(ProcessorRegisters)打开观察窗口(ProcessorWatch)打开变量观察窗口(ContextVariable)打开存储器观察窗口(Memory)打开反汇编窗口(Disassembly)加载调试文件(LoadImage)重新加载文件(ReloadCurrentImage),EasyJTAG仿真器的安装与应用,特点采用RDI通讯接口,无缝嵌接ADS1.2高达1M速率的JTAG时钟驱动采用同步Flash刷新技术(synFLASH)采用同步时序控制技术(synTIME)支持32位ARM指令/16位THUMB指令的混合调试增加映射寄存器窗口,方便用户查看/修改寄存器数值,基础实验,ADS1.2集成开发环境练习实验目的了解ADS1.2集成开发环境的使用方法实验内容建立一个新的工程建立一个C源文件,并添加到工程中设置编译连接控制选项编译连接工程,实验步骤,建立一个工程,TEST1.S文件代码,AREAExample1,CODE,READONLY;声明代码段Example1ENTRY;标识程序入口CODE32;声明32位ARM指令STARTMOVR0,#15;设置参数MOVR1,#8ADDSR0,R0,R1;R0=R0+R1BSTARTEND,选择ARMLinker项,编译连接工程,【Project】-【Make】,将编译连接整个工程,汇编指令实验1,实验目的了解ADS1.2集成开发环境及ARMulator软件仿真掌握指令的条件执行和使用LDR/STR指令完成存储器的访问实验内容,汇编指令实验1-contd,实验步骤启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程Instruction1建立汇编源文件TEST2.S,编写实验程序,然后添加到工程中设置工程连接地址ROBase为0 x40000000,RWBase为0 x40003000。设置调试入口地址Imageentrypoint为0 x40000000。编译连接工程,选择【Project】-【Debug】,启动AXD进行软件仿真调试。打开寄存器窗口(ProcessorRegisters),选择Current项监视R0、R1的值。打开存储器观察窗口(Memory)设置观察地址为0 x40003100,显示方式Size为32Bit,监视0 x40003100地址上的值。可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,调试时观察寄存器和0 x40003100地址上的值,实验参考程序,COUNTEQU0 x40003100;定义一个变量,地址为0 x40003100AREAExample2,CODE,READONLY;声明代码段Example2ENTRY;标识程序入口CODE32;声明32位ARM指令STARTLDRR1,=COUNT;R1=COUNTMOVR0,#0;R0=0STRR0,R1;R1=R0,即设置COUNT为0LOOPLDRR1,=COUNTLDRR0,R1;R0=R1ADDR0,R0,#1;R0=R0+1CMPR0,#10;R0与10比较,影响条件码标志MOVHSR0,#0;若R0大于等于10,则此指令执行,R0【Debug】,启动AXD进行软件仿真调试打开寄存器窗口(ProcessorRegisters),选择Current项监视寄存器R0、R1、R13(SP)和R14(LR)的值打开存储器观察窗口(Memory)设置观察地址为0 x40003EA0,显示方式Size为32Bit,监视从0 x40003F00起始的满递减堆栈区单步运行程序,跟踪程序执行的流程,观察寄存器值的变化和堆栈区的数据变化,判断执行结果是否正确。调试程序时,更改参数X和n来测试程序,观察是否得到正确的结果。例如:先复位程序(选择【File】-【ReloadCurrentImage】),接着单步执行到“BLPOW”指令,在寄存器窗口中将R0、R1的值进行修改,然后继续运行程序,汇编指令实验4,实验目的学习ARM微控制器的16位Thumb汇编指令的使用方法实验内容使用Thumb指令ADD、MOV、CMP、B实现1+2+3+N的运算(N为0时,结果为0;N为1时结果1),汇编指令实验4-contd,实验步骤启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程Instruction4建立汇编源文件TEST5.S,编写实验程序,然后添加到工程中设置工程连接地址ROBase为0 x40000000,RWBase为0 x40003000。设置调试入口地址Imageentrypoint为0 x40000000编译连接工程,选择【Project】-【Debug】,启动AXD进行软件仿真调试打开寄存器窗口(ProcessorRegisters),选择Current项监视各寄存器的值单步运行程序,注意执行BXR0指令前后CPSR寄存器的T位,汇编指令实验5,实验目的通过实验了解如何使用ARM汇编指令实现结构化程序编程实验内容使用ARM汇编指令实现if条件执行使用ARM汇编指令实现for循环结构使用ARM汇编指令实现while循环结构使用ARM汇编指令实现dowhile循环结构使用ARM汇编指令实现switch开关结构,汇编指令实验5-contd,实验步骤启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程Instruction5建立汇编源文件TEST6.S,编写实验程序,然后添加到工程中设置工程连接地址ROBase为0 x40000000,RWBase为0 x40003000。设置调试入口地址Imageentrypoint为0 x40000000编译连接工程,选择【Project】-【Debug】,启动AXD进行软件仿真调试打开寄存器窗口(ProcessorRegisters),选择Current项监视各寄存器的值单步运行程序,判断程序是否按设计的程序逻辑执行,ARM微控制器工作模式实验,实验目的掌握如何使用MRS/MSR指令实现ARM微控制器工作模式的切换了解在各个工作模式下的寄存器实验内容使用MRS/MSR指令切换工作模式,并初始化各种模式下堆栈指针观察ARM微控制器在各种模式下寄存器的区别,ARM微控制器工作模式实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程MODE建立汇编源文件TEST7.S,编写实验程序,然后添加到工程中设置工程连接地址ROBase为0 x40000000,RWBase为0 x40003000。设置调试入口地址Imageentrypoint为0 x40000000编译连接工程,选择【Project】-【Debug】,启动AXD进行软件仿真调试打开寄存器窗口(ProcessorRegisters),选择Current项监视各寄存器的值单步运行程序,注意观察CPSR、SPSR、R13(SP)、R14(LR)、R15(PC)寄存器,C语言程序实验,实验目的通过实验了解使用ADS1.2编写C语言程序,并进行调试实验内容编写一个汇编程序文件和一个C程序文件汇编程序的功能是初始化堆栈指针和初始化C程序的运行环境,然后调跳转到C程序运行,C语言程序实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程ProgramC建立源文件Startup.S和Test.c,编写实验程序,然后添加到工程中设置工程连接地址ROBase为0 x40000000,RWBase为0 x40003000。设置调试入口地址Imageentrypoint为0 x40000000设置位于开始位置的起始代码段,C语言调用汇编程序实验,实验目的掌握在C语言程序中调用汇编程序,了解ATPCS基本规则实验内容在C程序调用汇编子程序,实现两个整数的加法运算汇编子程序的原型为:uint32Add(uint32x,uint32y),C语言调用汇编程序实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImage工程模板建立一个工程ProgramC1建立源文件Startup.S、Add.S和Test.c,编写实验程序,然后添加到工程中设置工程连接地址ROBase为0 x40000000,RWBase为0 x40003000。设置调试入口地址Imageentrypoint为0 x40000000设置工程连接选项,位于开始位置的起始代码段设置为Startup.o的Start段编译连接工程,选择【Project】-【Debug】,启动AXD进行软件仿真调试在Test.c文件中的调用Add()的代码处设置断点,然后全速动行程序程序在断点处停止。使用SetpIn单步运行程序,观察程序是否转到汇编程序Add.S选择【ProcessorViews】-【Variables】)打开变量观察窗口,观察全局变量的值,单步/全速运行程序,判断程序的运算结果是否正确,GPIO输出控制实验1,实验目的掌握EasyJTAG仿真器的安装和使用熟悉LPC2000系列ARM7微控制器的GPIO控制实验内容控制EasyARM2200开发板上的蜂鸣器报警先使用片外RAM(IS61LV25616AL芯片)进行调试调试通过后将程序固化到片外FLASH(SST39VF160芯片),然后脱机运行,GPIO输出控制实验1-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程BeepCon_C建立C源文件BeepCon.c,编写实验程序,然后添加到工程的user组中选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP9跳线短接,JP4跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,程序将会在beepcon.c的主函数中停止单击ContextVariable图标按钮(或者选择【ProcessorViews】-【Variables】)打开变量观察窗口,通过此窗口可以观察局部变量和全局变量。选择【SystemViews】-【DebuggerInternals】即可打开LPC2000系列ARM7微控制器的片内外设寄存器窗口。可以单步运行程序,可以设置/取消断点,或者全速运行程序,停止程序运行,观察变量的值,判断蜂鸣器控制是否正确将EasyARM2200开发板上的JP9跳线短接,JP1、JP4跳线断开,JP6跳线设置为Bank0-Flash、Bank1-RAM,JP7跳线设置为OUTSIDE选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。此时EasyJTAG仿真器将会把程序下载到片外FLASH上,GPIO输出控制实验2,实验目的熟悉LPC2000系列ARM7微控制器的GPIO控制,能够使用GPIO模拟SPI总线输出实验内容使用GPIO口模拟SPI总线与74HC595进行连接,控制74HC595驱动8个LED流水灯显示,GPIO输出控制实验2-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程LedDisp_C建立C源文件LedDisp.c,编写实验程序,然后添加到工程的user组中选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP8跳线短接,JP6跳线设置为Bank0-RAM、Bank1-Flash选择【Project】-【Debug】,启动AXD进行JTAG仿真调试单步运行程序,通过LED1LED8的显示判断74HC595数据移位输出是否正确。全速运行程序,观察LED1LED8的显示,GPIO输入实验,实验目的能够使用GPIO的输入模式读取开关信号实验内容读取P0.14口上的电平值,然后将读到的值输出控制蜂鸣器,GPIO输入实验-contd,实验原理,GPIO输入实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程ReadPin_C建立C源文件ReadPin.c,编写实验程序,然后添加到工程的user组中选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP9跳线短接,JP4跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash选择【Project】-【Debug】,启动AXD进行JTAG仿真调试单步运行程序,先短接JP1,观察IO0PIN寄存器的值,然后断开JP1,观察IO0PIN寄存器的值。全速运行程序,短接/断开JP1,控制蜂鸣器的蜂鸣,存储器重映射实验,实验目的通过实验,熟悉LPC2000系列ARM7微控制器的存储器重映射机制实验内容设置MEMMAP=2,然后将0 x400000000 x4000003F地址上的存储单元全部写入0 x55,同时观察0 x000000000 x0000003F地址上的数据;再写入0 xAA,同时观察0 x000000000 x0000003F地址上的数据设置MEMMAP=0,观察0 x000000000 x0000003F地址上的数据是否与0 x7FFFE0000 x7FFFE03F地址上的数据是否一致,存储器重映射实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程ReMap_c建立C源文件ReMap.c,编写实验程序,然后添加到工程的user组中选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP6跳线设置为Bank0-RAM、Bank1-Flash选择【Project】-【Debug】,启动AXD进行JTAG仿真调试打开存储器观察窗口(Memory)设置观察地址为0 x00000000,显示方式Size为8Bit,监视从0 x000000000 x0000003F的数据单步运行程序,观察0 x000000000 x0000003F地址上的数据当运行MEMMAP=0之后,观察0 x000000000 x0000003F地址上的数据是否与0 x7FFFE0000 x7FFFE03F地址上的数据是否一致1,外部中断实验1,实验目的掌握向量中断控制器(VIC)的设置掌握外部中断引脚功能设置及外部中断的工作模式设置了解中断服务函数的编写实验内容设置P0.14脚为EINT1功能,初始化为非向量中断,并设置为电平触发模式,然后等待外部中断。中断服务程序将蜂鸣器控制输出信号取反,然后等待中断信号的撤消,最后清除中断标志并退出中断,外部中断实验1-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程VICDef_C建立C源文件EINT1_Def.c,编写实验程序,然后添加到工程的user组中在Startup.s文件的InitStack子程序中,修改设置系统模式堆栈处的代码为“MSRCPSR_c,#0 x5f”,即使能IRQ中断选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP9跳线短接,JP4跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash选择【Project】-【Debug】,启动AXD进行JTAG仿真调试在中断服务程序中设置断点,全速运行程序,然后短接/断开JP1,使EINT1为低/高电平单步/全速运行程序,观察程序是否正确运行,蜂鸣器是否蜂鸣,外部中断实验2,实验目的掌握向量IRQ中断的设置及应用掌握外部中断引脚功能设置及外部中断的工作模式设置实验内容设置P0.14脚为EINT1功能,初始化为向量中断,并设置为下降沿触发模式,然后等待外部中断。中断服务程序将蜂鸣器控制输出信号取反,然后清除中断标志并退出中断,外部中断实验2-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程VICVect_C建立C源文件EINT1_Vect.c,编写实验程序,然后添加到工程的user组中在Startup.s文件的InitStack子程序中,修改设置系统模式堆栈处的代码为“MSRCPSR_c,#0 x5f”,即使能IRQ中断选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP9跳线短接,JP4跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash选择【Project】-【Debug】,启动AXD进行JTAG仿真调试在中断服务程序中设置断点,全速运行程序,然后短接/断开JP1,使EINT1为低/高电平单步/全速运行程序,观察程序是否正确运行,蜂鸣器是否蜂鸣一直短接JP1,观察是否会不断的产生中断,外部存储器接口实验1,实验目的通过实验掌握外部存储器控制器(EMC)的设置及外部存储器接口的应用实验内容使用外部存储器接口的Bank1连接一片16位总线接口的FLASH(SST39VF160),然后使用程序初始化EMC,接着对FLASH进行全片擦除,编写两字节数据,再读出来校验,若校验通过则蜂鸣器响一声,否则不断地蜂鸣报警,外部存储器接口实验1-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程Emc_C建立C源文件SST39VF160.c,编写实验程序,然后添加到工程的user组中在Startup.s文件的ResetInit子程序中,修改PINSEL2寄存器和BCFG1寄存器的设置值。对于本实验,PINSEL2寄存器的值使用模板默认设置即可,而BCFG1寄存器的值,可以修改IDCY、WST1、WST2域的值,也可以使用模板默认设置选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP9跳线短接,JP4跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash选择【Project】-【Debug】,启动AXD进行JTAG仿真调试打开存储器观察窗口(Memory)设置观察地址为0 x81000000,显示方式Size为16Bit,监视片外FLASH的数据单步运行程序,观察片外FLASH的数据,观察err变量的值全速运行程序,若蜂鸣器响一声,表示FLASH擦除、编程操作成功。若不断的蜂鸣报警,表示FLASH擦除或编程操作失败,外部存储器接口实验2,实验目的通过实验掌握外部存储器控制器(EMC)的设置,使外部存储器的访问速度最优化,提高外部程序的运行速度实验内容在外部RAM运行LED流水灯显示控制程序(使用软件延时),并使用定时器0来测量每一轮循环所需要的时间,将定时器的值(即程序运行的时间)通过串口向上位机发送。通过更改EMC存储器组的配置,控制外部RAM的访问速度,然后观察程序的运行速度,外部存储器接口实验2-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程Speed_c建立C源文件runtime.c,编写实验程序,然后添加到工程的user组中。在项目中的config.h文件中加入#include在Startup.s文件的ResetInit子程序中,观察BCFG0和BCFG1寄存器的设置值,可知工程模板默认配置外部存储器接口为最慢的访问速度选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP8跳线短接,JP6跳线设置为Bank0-RAM、Bank1-Flash使用串口延长线把EasyARM2200开发板的CZ2(UART0)与PC机的COM1连接。PC机运行EasyARM软件,设置串口为COM1,波特率为115200,然后选择【设置】-【发送数据】,在弹出的发送数据窗口中点击“高级”即可打开接收窗口选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,观察流水灯显示的变化速度及EasyARM软件上显示的运行时间值停止JTAG仿真调试,关闭AXD软件。在target.c文件的TargetResetInit()函数中重新配置Bank0的访问速度,定时器实验1,实验目的熟悉LPC2000系列ARM7微控制器的定时器0/1的基本设置及应用实验内容使用定时器0实现1秒定时,控制蜂鸣器蜂鸣。采用软件查询方式等待定时时间到达,定时器实验1-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程TIMEBEEP_C建立C源文件TimeBeep.c,编写实验程序,然后添加到工程的user组中选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP9跳线短接,JP4跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,蜂鸣器会响一秒,停一秒,然后再响一秒依次循环,定时器实验2,实验目的熟悉LPC2000系列ARM7微控制器的定时器0/1的基本设置及定时中断应用实验内容使用定时器0实现1秒定时,控制蜂鸣器蜂鸣。采用中断方式实现定时控制,定时器实验2-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程TIMEOUT_C建立C源文件TimeOut.c,编写实验程序,然后添加到工程的user组中在Startup.s文件的InitStack子程序中,修改设置系统模式堆栈处的代码为MSRCPSR_c,#0 x5f,即使能IRQ中断选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP9跳线短接,JP4跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,蜂鸣器会响一秒,停一秒,然后再响一秒依次循环,UART实验1,实验目的通过实验,掌握UART各个控制寄存器的设置,并能使用串口向PC机发送数据实验内容使用UART0向PC机发送字符串“HelloWorld!”。UART0设置为通讯波特率115200,8位数据位,1位停止位,无奇偶校验,UART实验1-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程SendStr_c建立C源文件SendStr.c,编写实验程序,然后添加到工程的user组中选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP6跳线设置为Bank0-RAM、Bank1-Flash使用串口延长线把EasyARM2200开发板的CZ2(UART0)与PC机的COM1连接。PC机运行EasyARM软件,设置串口为COM1,波特率为115200,然后选择【设置】-【发送数据】,在弹出的发送数据窗口中点击“高级”即可打开接收窗口选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,PC机上的EasyARM软件会不断的显示“HelloWorld!”,UART实验2,实验目的通过实验,掌握UART中断程序的设计,能够理解发送FIFO和接收FIFO的功能实验内容使用串口UART0接收上位机发送的数据,当接收到8个连续数据后,将接收计数值加1并输出LED1LED8显示,再将接收到的数据原封不动地发送回上位机。使能UART0的FIFO进行数据发送/接收,接收采用中断处理方式。UART0设置为通讯波特率115200,8位数据位,1位停止位,无奇偶校验,UART实验2-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程DataRet_c建立C源文件DataRet.c,编写实验程序,然后添加到工程的user组中在Startup.s文件的InitStack子程序中,修改设置系统模式堆栈处的代码为“MSRCPSR_c,#0 x5f”,即使能IRQ中断选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP8跳线全部短接,JP6跳线设置为Bank0-RAM、Bank1-Flash使用串口延长线把EasyARM2200开发板的CZ2(UART0)与PC机的COM1连接。PC机运行EasyARM软件,设置串口为COM1,波特率为115200,然后选择【设置】-【发送数据】,在弹出的发送数据窗口中点击“高级”即可打开接收窗口选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,在PC机上的EasyARM软件发送8字节数据,LPC2210接收到数据后会控制板上的LED1LED8显示,并将接收到的数据回发给PC机,Modem接口实验,实验目的掌握LPC2000系列ARM7微控制器的UART1的Modem接口应用实验内容使用UART1的Modem接口功能,连接Modem与远程主机进行通讯,Modem接口实验-contd,实验原理,Modem接口实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程modem建立C源文件Test.c、modem.c和modem.h,编写实验程序,然后把Test.c和modem.c添加到工程的user组中,在项目中的config.h文件中加入“#includeMODEM.H”在Startup.s文件的InitStack子程序中,修改设置系统模式堆栈处的代码为“MSRCPSR_c,#0 x5f”,即使能IRQ中断选用DebugInExram生成目标,然后编译连接工程将EasyARM2200开发板上的JP3跳线全部短接,JP1、JP2跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash使用Modem连接线将Modem(1)与EasyARM2200开发板的CZ3(UART1)连接起来。将Modem(2)与PC机的COM1/COM2连接,运行EasyARM软件并打开数据发送窗口和接收窗口,然后发送AT指令设置Modem(2)自动摘机选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,等Modem拔号建立连接后,PC机上的EasyARM软件将接收到字符串“EasyARM2200-MODEM”,I2C接口实验1,实验目的掌握LPC2000系列ARM7微控制器的硬件I2C接口的使用了解CAT24WC02E2PROM的操作方法及注意事项实验内容使用主模式I2C向CAT24WC02写入10字节数据,然后读出校验,若校验通过则蜂鸣器响一声,否则不断地蜂鸣报警,I2C接口实验1-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程WR_e2prom;建立C源文件I2cTest.c、I2cInt.c和I2cInt.h,编写实验程序,然后把I2cTest.c和I2cInt.c添加到工程的user组中,在项目中的config.h文件中加入“#includeI2CINT.H”。在Startup.s文件的InitStack子程序中,修改设置系统模式堆栈处的代码为“MSRCPSR_c,#0 x5f”,即使能IRQ中断。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP5跳线全部短接,JP9跳线短接,JP6跳线设置为Bank0-RAM、Bank1-Flash。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,若蜂鸣器响一声,表明E2PROM读写操作成功。,I2C接口实验2,实验目的掌握LPC2000系列ARM7微控制器的硬件I2C接口的使用了解ZLG7290键盘与LED驱动芯片的使用实验内容使用主模式I2C对ZLG7290进行操作。先控制所有数码管全显并闪烁,接着显示“87654321”,延时一段时间后显示“LPC2210F”,然后接收键盘输入,根据按键值控制相应显示位闪烁,I2C接口实验2-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程I2cInt_c;建立C源文件I2cTest.c、zlg7290.c、zlg7290.h、I2cInt.c和I2cInt.h,编写实验程序,然后把I2cTest.c、zlg7290.c和I2cInt.c添加到工程的user组中,在项目中的config.h文件中加入“#includeI2CINT.H”和“#includeZLG7290.H”。在Startup.s文件的InitStack子程序中,修改设置系统模式堆栈处的代码为“MSRCPSR_c,#0 x5f”,即使能IRQ中断。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP5跳线全部短接,JP6跳线设置为Bank0-RAM、Bank1-Flash。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,LPC2210会通过I2C接口控制ZLG7290。当数据管会显示“LPC2210F”时,按S1S16键,相应显示位就闪烁显示,SPI接口实验,实验目的通过实验,掌握SPI接口的初始化及数据输出/输入控制实验内容使用硬件SPI接口与74HC595进行连接,控制74HC595驱动8个LED流水灯显示,SPI接口实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程SpiDisp_C;建立C源文件spidisp.c,编写实验程序,然后添加到工程的user组中。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP4跳线断开,JP8跳线全部短接,JP6跳线设置为Bank0-RAM、Bank1-Flash。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试全速运行程序,观察LED1LED8的显示,PWM输出实验,实验目的熟悉PWM模块的基本原理及应用实验内容使用PWM6输出一个固定占空比的单边沿控制PWM信号,通过滤波电路实现DAC转换,PWM输出实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程Pwmdac_c。建立C源文件PWMDAC.c,编写实验程序,然后添加到工程的user组中。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP2跳线短接,JP3_RXD1跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。全速运行程序,使用示波器测量PWM测试点和PWMDAC测试点的信号。,RTC实验1,实验目的掌握RTC的在不同系统时钟下的分频设置,掌握RTC日期、时间值的设置及读取实验内容初始化并运行RTC,然后读取时间值通过串口向上位机发送,并把秒的值输出到开发板上的LED1LED8显示,RTC实验1-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程SendRtc_C。建立C源文件sendrtc.c,编写实验程序,然后添加到工程的user组中。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP8跳线短接,JP6跳线设置为Bank0-RAM、Bank1-Flash。使用串口延长线把EasyARM2200开发板的CZ2(UART0)与PC机的COM1连接。PC机运行EasyARM软件,设置串口为COM1,波特率为115200,然后选择【设置】-【发送数据】,在弹出的发送数据窗口中点击“高级”即可打开接收窗口(不要选择“十六进制方式显示”)。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。全速运行程序,PC机上的EasyARM软件会不断的显示RTC的时间值,RTC实验2,实验目的掌握RTC的在不同系统时钟下的分频设置,掌握RTC日期、时间值的设置及读取实验内容初始化并运行RTC,然后每隔1秒钟读取一次时间值,并通过串口向上位机发送,上位使用EasyARM软件的仿真万年历窗口进行显示,RTC实验2-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程disptimer2。建立C源文件sendrtcb.c,编写实验程序,然后添加到工程的user组中。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP6跳线设置为Bank0-RAM、Bank1-Flash。使用串口延长线把EasyARM2200开发板的CZ2(UART0)与PC机的COM1连接。PC机运行EasyARM软件,设置串口为COM1,波特率为115200,然后选择【功能】-【万年历】,打开仿真万年历窗口。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。全速运行程序,PC机上的EasyARM软件会不断的显示RTC的时间值,模数转换器实验,实验目的掌握模数转换器的应用设置,进行电压信号的测量实验内容使用AIN0和AIN1测量两路直流电压,并将测量结果通过UART0向PC机发送,模数转换器实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程Adc01_c。建立C源文件adc01.c,编写实验程序,然后添加到工程的user组中。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP6跳线设置为Bank0-RAM、Bank1-Flash。使用串口延长线把EasyARM2200开发板的CZ2(UART0)与PC机的COM1连接。PC机运行EasyARM软件,设置串口为COM1,波特率为115200。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。全速运行程序,PC机上的EasyARM软件会不断的显示AIN0和AIN1的电压值。调整EasyARM2200开发板的W1或W2,观察AIN0或AIN1的测量值的变化(在PC机上的EasyARM软件上观察)。,WDT实验,实验目的通过实验,掌握LPC2000系列ARM7微控制器的WDT功能及其使用方法实验内容运行WDT,然后控制LED1LED8显示输出。先对LED1LED8闪烁控制,并进行喂狗处理,然后只点亮LED1,并进入死循环,等待WDT复位,WDT实验-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程Wdtrun_c。建立C源文件Wdtrun.c,编写实验程序,然后添加到工程的user组中。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP8跳线短接,JP6跳线设置为Bank0-RAM、Bank1-Flash。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。全速运行程序,EasyARM2200开发板上的LED1LED8会全显示并且闪烁,然后只点亮LED1。当WDT复位后,停止程序(在AXD软件按Stop按钮)将会停在不正确的地址上,低功耗实验1,实验目的掌握LPC2000系列ARM7微控制器的低功耗控制实验内容控制LPC2210进入空闲状态,并使用定时器中断唤醒,定时时间为0.5S,中断唤醒后控制蜂鸣器响一声,然后再次进入空闲状态,低功耗实验1-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程Idle_time。建立C源文件Idle_time.c,编写实验程序,然后添加到工程的user组中。在Startup.s文件的InitStack子程序中,修改设置系统模式堆栈的代码为“MSRCPSR_c,#0 x5f”,即使能IRQ中断。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP9跳线短接,JP4跳线断开,JP6跳线设置为Bank0-RAM、Bank1-Flash。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。全速运行程序,蜂鸣器将每隔0.5秒响一声,低功耗实验2,实验目的掌握LPC2000系列ARM7微控制器的低功耗控制实验内容控制LPC2210进入掉电状态,并允许外部中断1唤醒。每唤醒一次,LED1LED8显示值加1,然后再次进入掉电状态,低功耗实验2-contd,实验步骤启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程Pdrun_c。建立C源文件Pdrun.c,编写实验程序,然后添加到工程的user组中。在Startup.s文件的InitStack子程序中,修改设置系统模式堆栈的代码为“MSRCPSR_c,#0 x5f”,即使能IRQ中断。选用DebugInExram生成目标,然后编译连接工程。将EasyARM2200开发板上的JP8跳线短接,JP6跳线设置为Bank0-RAM、Bank1-Flash。选择【Project】-【Debug】,启动AXD进行JTAG仿真调试。全速运行程序,LPC2210进入掉电状态,短接/断开JP1,使EINT1为低/高电平,即可唤醒LPC2210。每唤醒一次,LPC2210控制LED1LED8显示值加1,图形液晶显示实验,实验目的通过实验了解点阵图形液晶模块SMG240128A的基本原理及其应用电路设计方法能够使用LPC2200总线方式控制液晶模块,并编写驱动程序实验内容编写基于LPC2200微控制器上的SMG240128A驱动程序,设置液晶模块为图形模式,然后在屏幕上显示均匀的黑白方格,液晶模块介绍,SMG240128A点阵图形液晶模块的点像素为240128点内嵌控制器为东芝公司的T6963C外部显示存储器为32K字节,模块的电路原理框图,SMG240128A点阵图形液晶模块应用连接电路,实验步骤,启动ADS1.2,使用ARMExecutableImageforlpc22xx工程模板建立一个工程LCM_Disp;建立源文件lcddrive.c、lcddrive.h,编写液晶模块的驱动程序,然后将lcddrive.c添加到工程的user组中;建立C源文件test.c,编写实验程序,然后添加到工程的user组中;修改CONFIG.H,增加包含LCDDRIVE.H头文件。在Startup.s文件的ResetInit子程序中,修改存储器接口Bank3总线配置(因为SMG240128A液晶模块接口是使用Bank3的地址空间),如程序清单3.38所示。为了使程序更快的执行

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论