2023年春江苏开放大学微机控制与接口技术综合大作业

上传人:水*** 文档编号:353193129 上传时间:2023-06-05 格式:DOCX 页数:5 大小:144.54KB
返回 下载 相关 举报
2023年春江苏开放大学微机控制与接口技术综合大作业_第1页
第1页 / 共5页
亲,该文档总共5页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《2023年春江苏开放大学微机控制与接口技术综合大作业》由会员分享,可在线阅读,更多相关《2023年春江苏开放大学微机控制与接口技术综合大作业(5页珍藏版)》请在金锄头文库上搜索。

1、2023年春江苏开放大学微机控制与接口技术综合大作业第13周布置,第16周完成提交。1. 设ARM 数据存储采用小端格式,R0=0x241a3c5,R1=0x9000,写出下面指令的执行结果:(20分) STR R0,R1 LDR R2,R1 LDRB R3, R1,#2 2. 解释下面程序段的执行结果(20分) MRS R0, CPSR BIC R0, R0, #0x1F ; ORR R0, R0, #0x13 ; MSR CPSR_c, R0;M4:0处理器模式0b10000用户模式0b10001FIQ模式0b10010IRQ模式0b10011管理模式0b10111中止模式0b11011未

2、定义模式0b11111系统模式 3.寄存器R0 、R1和R2中有三个正整数,求出其中最大的数,并将其保存在R3中。(30分)4.如图所示, GPIO 口GPB5、GPB6、GPB8、GPB10上分别连接了发光二极管LED0、LED1、LED2、LED3 ,编写程序控制发光二极管的亮灭。(30分)我的答案1、 STRSTR R0, R1指令后,将R0寄存器中的值0x241a3c5存储到地址为0x9000的内存中,存储后内存中的值为0x5c 0x3c 0x1a 0x24。执行LDR R2, R1指令后,将地址为0x9000的内存中的值0x5c 0x3c 0x1a 0x24加载到R2寄存器中,即R2

3、=0x241a3c5。执行LDRB R3, R1,#2指令后,将地址为0x9002的内存中的值0x1a加载到R3寄存器的低8位中,高24位为0,即R3=0x0000001a。2、 这段程序的作用是将CPSR寄存器中的值取出来,然后将低5位清零,再将第1位和第4位设置为1和3,最后将修改后的值写回到CPSR中。执行结果是将当前处理器的模式设置为IRQ模式,因为在CPSR寄存器的低5位中,其中第0位为控制模式(0:用户模式,1:非用户模式),第1位为FIQ禁止位(0:允许FIQ中断,1:禁止FIQ中断),第2位为IRQ禁止位(0:允许IRQ中断,1:禁止IRQ中断),第3和第4位为处理器模式,区分

4、了7种不同的处理器模式。因为将低5位都清零后,第1和第4位分别被设置为1和3,所以处理器进入了IRQ模式。3、CMP R0, R1 ; 比较R0和R1的大小MOVGT R2, R0 ; 如果R0大于R1,则将R0赋值给R2MOVLE R2, R1 ; 如果R0小于等于R1,则将R1赋值给R2CMP R2, R3 ; 比较R2和R3的大小MOVGT R3, R2 ; 如果R2大于R3,则将R2赋值给R34、 将GPB5、GPB6、GPB8、GPB10的输出电平全部设置为低电平,以确保发光二极管处于关闭状态。MOV R0, #0x00000000 ; 将R0寄存器设置为0,表示所有GPIO口的输出

5、电平都为低电平STR R0, GPIOB_BASE, #GPIOx_BSRR ; 将R0寄存器中的值写入GPIOB口的BSRR寄存器中,将GPB5、GPB6、GPB8、GPB10的输出电平全部设置为低电平以便观察发光二极管关闭状态。将GPB5的输出电平设置为高电平,以使LED0亮起来。MOV R0, #0x00000020 ; 将R0寄存器设置为0x00000020,表示GPB5的输出电平为高电平STR R0, GPIOB_BASE, #GPIOx_BSRR ; 将R0寄存器中的值写入GPIOB口的BSRR寄存器中,将GPB5的输出电平设置为高电平以便观察LED0亮起来的效果。将GPB5的输出

6、电平设置为低电平,以使LED0熄灭。MOV R0, #0x00200000 ; 将R0寄存器设置为0x00200000,表示GPB5的输出电平为低电平STR R0, GPIOB_BASE, #GPIOx_BSRR ; 将R0寄存器中的值写入GPIOB口的BSRR寄存器中,将GPB5的输出电平设置为低电平重复步骤,对LED1、LED2、LED3进行控制。控制LED1、LED2、LED3的亮灭MOV R0, #0x00000040 ; 控制GPB6上的LED1STR R0, GPIOB_BASE, #GPIOx_BSRR; 等待一段时间MOV R0, #0x00400000STR R0, GPIO

7、B_BASE, #GPIOx_BSRR; 等待一段时间MOV R0, #0x00000080 ; 控制GPB8上的LED2STR R0, GPIOB_BASE, #GPIOx_BSRR; 等待一段时间MOV R0, #0x00800000STR R0, GPIOB_BASE, #GPIOx_BSRR; 等待一段时间MOV R0, #0x00000400 ; 控制GPB10上的LED3STR R0, GPIOB_BASE, #GPIOx_BSRR; 等待一段时间MOV R0, #0x04000000STR R0, GPIOB_BASE, #GPIOx_BSRR; 等待一段时间在程序结尾可以添加一个无限循环,以便程序持续运行。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 成考

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号