电子科技大学微机实验报告实验2
《电子科技大学微机实验报告实验2》由会员分享,可在线阅读,更多相关《电子科技大学微机实验报告实验2(6页珍藏版)》请在装配图网上搜索。
1、实验二ARM汇编控制LED实验【实验目的】1、理解掌握通过ARM汇编控制硬件操作;2、熟练使用ARM调试软件RVDS进行硬件调试。【实验内容】1、掌握ARM处理器GPIO相关寄存器的使用;2、用ARM汇编实现控制开发LED按照一定方式点亮。【预备知识】1、ARM汇编基础2、ARM处理器通用IO口的操作【实验设备和工具】软件:Windows操作系统,RVDS软件硬件:ARM嵌入式开发板,PC机PentiumlOO以上,并口线,JTAG板,JTAG连接线【实验原理】1、S3C244O处理器相关寄存器介绍 PORTG控制寄存器(GPGCON) PORTG数据寄存器(GPGDAT) PORTG禁止上拉
2、寄存器(GPGUP)注:以上寄存器详细描述见实验指导书或者S3C244O芯片手册。2、开发板LED部分原理图说明 GPG5接LED4,串联上拉电阻 GPG6接LED5,串联上拉电阻 GPG7接LED6,串联上拉电阻 GPG8接LED7,串联上拉电阻所以,当IO口输出低电平时,相应的LED才能点亮。【实验步骤】(一)LED汇编实验1、通过查看S3C2440处理器G口控制寄存器,在ledtest.s文件中添加汇编代码,设置GPG5GPG8为output。2、在ledtest.s文件中添加汇编代码,禁止GPG5GPG8端口的上拉电阻。3、在ledtest.s文件中添加汇编代码,点亮LED6,熄灭LE
3、D5,LED7,LED8,并调用延时。4、在ledtest.s文件中添加汇编代码,点亮LED7,熄灭LED5,LED6,LED8,并调用延时。5、在ledtest.s文件中添加汇编代码,点亮LED8,熄灭LED5,LED6,LED7,并调用延时。6、在ledtest.s文件中添加汇编代码,实现LED5-LED8依次点亮。7连接好JTAG仿真板,一口与PC的并口相连,另一口与开发板的JTAG口相连,打开开发板电源。打开H-jtag程序,检测CPU,点击RVDS中的“Debug”,打开RVD进行硬件调试(二)LEDC语言实验(选做)【实验结果和程序】(一)LED汇编实验;GPIO寄存器宏定义GPG
4、CONEQU0x56000060GPGDATEQU0x56000064GPGUPEQU0x56000068EXPORTLEDTESTAREALEDTESTASM,CODE,READONLY;该伪指令定义了一个代码段,段名为LEDTESTASM,属性只读ENTRYLEDTEST;设置GPG5GPG8(即LED4-LED7)为outputldrr0,=GPGCONldrr1,r0movr1,#0x00015400strr1,r0;禁止GPG5GPG8(即LED4-LED7)端口的上拉电阻ldrr0,=GPGUPldrr1,r0movr1,#0x01e0strr1,r0looptest;将数据端口G
5、的数据寄存器的地址附给寄存器r2ldrr2,=GPGDAT;点亮LED5,熄灭LED6-LED&并调用延时ldrr3,r2orrr3,r3,#0x01e0bicr3,r3,#0x0020strr3,r2;GPG5(即LED5)output0ldrr0,=0xffffff;初始计数值bldelay;调用延迟子程序;点亮LED6,熄灭LED5,LED7,LED8,并调用延时-ldrr3,r2orrr3,r3,#0x01e0bicr3,r3,#0x0040strr3,r2;GPG6(即LED6)output0ldrr0,=0xffffff;初始计数值bldelay;点亮LED7,熄灭LED5,LED
6、6,LED8,并调用延时-ldrr3,r2orrr3,r3,#0x01e0bicr3,r3,#0x0080strr3,r2;GPG7(即LED7)output0ldrr0,=0xffffff;初始计数值bldelay;点亮LED8,熄灭LED5,LED6,LED7,并调用延时-ldrr3,r2orrr3,r3,#0x01e0bicr3,r3,#0x0100strr3,r2;GPG8(即LED8)output0ldrr0,=0xffffff;初始计数值bldelay;实现LED5-LED8依次点亮blooptestdelaysubr0,r0,#1;r0=r0-1cmpr0,#0x0;将r0的值与
7、0相比较bnedelay;比较的结果不为0(rO不为0),继续调用delay,否则执行下一条语句movpc,lr;返回END;程序结束符(二)LEDC语言实验(选做)arm汇编部分:AREA|DATA|,CODE,READONLYENTRY;ldrr13,=0x1000IMPORTmainbmainENDC语言部分:/SerialExperiment/ThisiscodedbyUESTCHQ20101018/*串口通信C程序,按e退出通信*/#defineULCON0(*(volatileunsigned*)0x50000000)/UART线控制寄存器#defineUCON0(*(volati
8、leunsigned*)0x50000004)/UART控制寄存器#defineUFCON0(*(volatileunsigned*)0x50000008)/FIFO控制寄存器#defineUMCON0(*(volatileunsigned*)0x5000000C)/AFCdisable#defineUTRSTAT0(*(volatileunsigned*)0x50000010)/UART状态寄存器#defineUBRDIV0(*(volatileunsigned*)0x50000028)/波特率#defineUTXH0(*(volatileunsigned*)0x50000020)#defi
9、neURXH0(*(volatileunsigned*)0x50000024)#defineCAMDIV0(*(volatileunsigned*)0x4C000018)#defineGPHCON(*(volatileunsigned*)0x56000070)#defineGPHDAT(*(volatileunsigned*)0x56000074)#defineGPHUP(*(volatileunsigned*)0x56000078)#defineMPLLCON(*(volatileunsigned*)0x4C000004)#defineUPLLCON(*(volatileunsigned*)
10、0x4C000008)#defineCLKDIVN(*(volatileunsigned*)0x4C000014)#defineWTCON(*(volatileunsigned*)0x53000000)voidinitpll()MPLLCON=0x76022;/Fin=16.9344MHz,Fout=266.72MHzCLKDIVN=0x07;/00000111voidinituart()ULCON0=0x03;UCON0=0x0805;UFCON0=0x0;UMCON0=0x0;UBRDIV0=0x17;44450000/(115200*16)-1=24-1=23voidinitgpio()
11、GPHCON|=0xa0;GPHUP|=0x0f;WTCON&=0xdb;/1位起始位,8位数据位串口时钟PCLK,查询方式/波特率115200/settorxdandtxd/pullupUBRDIV0=voiduart_send(char*c)for(;*c!=0;c+)URXH0=*c;unsignedcharuart_get()UTXH0=URXH0;returnUTXH0;intmain()charkey=;initpll();/初始化锁相环PLLinitgpio();/初始化IO口inituart();/初始化串口uart_send(Ifyouwanttoquit,pleasepre
12、ssern);while(1)key=uart_get();if(key=e)uart_send(rnyoupressedeandyoullquit!rn);break;elseuart_send(&key);uart_send(theprogramexitedbyuser!rn);return0;思考题】1、如何实现LED0-LED7的循环点亮。答:将GPGCON端口的值改为0x0001555,GPGUP的值改为OxOlff。再仿照Ied4-led7的程序写出led0-led3的点亮代码,最后循环执行即可2、一般情况下,配置通用IO口的需要哪些步骤。答:读入IO口控制寄存器地址,配置IO口的状态(读或写等)。3、ledtest.s文件的汇编程序中代码ldrr0,=0xffffff的作用是什么。答:设置延迟的时间。实验结论】本实验通过arm对Led灯的控制,了解了S3C2440处理器端口的配置
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。