资源描述:
《微机实验报告(含思考题)实验2》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、......实验二ARM汇编控制LED实验1、理解掌握通过ARM汇编控制硬件操作;2、熟练使用ARM调试软件RVDS进行硬件调试。1、掌握ARM处理器GPIO相关寄存器的使用;2、用ARM汇编实现控制开发LED按照一定方式点亮。1、ARM汇编基础2、ARM处理器通用IO口的操作软件:Windows操作系统,RVDS软件硬件:ARM嵌入式开发板,PC机Pentium100以上,并口线,JTAG板,JTAG连接线1、S3C2440处理器相关寄存器介绍?PORTG控制寄存器(GPGCON)?PORTG数据寄存器(GPGDAT).专业word可编辑.......?PORT
2、G禁止上拉寄存器(GPGUP)注:以上寄存器详细描述见实验指导书或者S3C2440芯片手册。2、开发板LED部分原理图说明?GPG5接LED4,串联上拉电阻?GPG6接LED5,串联上拉电阻?GPG7接LED6,串联上拉电阻?GPG8接LED7,串联上拉电阻所以,当IO口输出低电平时,相应的LED才能点亮。(一)LED汇编实验1、通过查看S3C2440处理器G口控制寄存器,在ledtest.s文件中添加汇编代码,设置GPG5-GPG8为output。2、在ledtest.s文件中添加汇编代码,禁止GPG5-GPG8端口的上拉电阻。3、在ledtest.s文件中添加
3、汇编代码,点亮LED6,熄灭LED5,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进行硬件调试.专业word可编辑......
4、.(二)LEDC语言实验(选做)(一)LED汇编实验;GPIO寄存器宏定义GPGCONEQU0x56000060GPGDATEQU0x56000064GPGUPEQU0x56000068EXPORTLEDTESTAREALEDTESTASM,CODE,READONLY;该伪指令定义了一个代码段,段名为LEDTESTASM,属性只读ENTRYLEDTEST;设置GPG5-GPG8(即LED4--LED7)为outputldrr0,=GPGCONldrr1,[r0]movr1,#0x00015400strr1,[r0];禁止GPG5-GPG8(即LED4--LED7)
5、端口的上拉电阻.专业word可编辑.......ldrr0,=GPGUPldrr1,[r0]movr1,#0x01e0strr1,[r0]looptest;将数据端口G的数据寄存器的地址附给寄存器r2ldrr2,=GPGDAT;点亮LED5,熄灭LED6-LED8,并调用延时ldrr3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0020strr3,[r2];GPG5(即LED5)output0ldrr0,=0xffffff;初始计数值bldelay;调用延迟子程序;----------点亮LED6,熄灭LED5,LED7,LED8,并调用延时
6、----ldrr3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0040.专业word可编辑.......strr3,[r2];GPG6(即LED6)output0ldrr0,=0xffffff;初始计数值bldelay;----------点亮LED7,熄灭LED5,LED6,LED8,并调用延时----ldrr3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0080strr3,[r2];GPG7(即LED7)output0ldrr0,=0xffffff;初始计数值bldelay;----------点亮LED8,熄灭LE
7、D5,LED6,LED7,并调用延时----ldrr3,[r2]orrr3,r3,#0x01e0bicr3,r3,#0x0100strr3,[r2];GPG8(即LED8)output0ldrr0,=0xffffff;初始计数值bldelay;-------------实现LED5-LED8依次点亮-------------------blooptestdelay.专业word可编辑.......subr0,r0,#1;r0=r0-1cmpr0,#0x0;将r0的值与0相比较bnedelay;比较的结果不为0(r0不为0),继续调用delay,否则执行下一条语句m
8、ovpc,