ARM汇编计算平均值程序及S3C2440系统设计

需积分: 50 35 下载量 34 浏览量 更新于2024-08-05 4 收藏 300KB PDF 举报
"吉林大学软件学院的一份嵌入式原理课后作业,包含了两个问题:1) 使用ARM汇编语言编写程序,计算特定内存地址NN处7个无符号字节数据的平均值(去除最大值和最小值),并将结果存储在MM地址;2) 设计一个基于S3C2440的系统,包括4x4矩阵键盘和2位七段数码管显示,用C语言编写初始化和功能实现程序。" **问题1:ARM汇编语言计算平均值** 在这个作业中,学生被要求使用ARM汇编语言来处理一个数据处理任务。程序的主要目标是从NN地址开始的7个连续字节中,剔除最大值和最小值,然后计算其余5个字节的平均值,并将结果存放在MM地址。程序流程如下: 1. 初始化:设置R3为NN地址,R4为数据个数7,R6为累加和初始值,R0和R1分别用于存储最大值和最小值。 2. 循环处理:使用一个循环结构遍历7个字节数据,每次循环中,R2从NN地址处加载一个字节,与R0和R1比较更新最大值和最小值,然后累加到R5。 3. 结束循环:当计数器R4减到0时,循环结束。 4. 计算平均值:从累加和中减去最大值和最小值,然后除以5得到平均值(由于原始代码中没有做除法操作,这里可能需要补充一个除法步骤)。 5. 结果存储:将平均值存入MM地址。 **问题2:S3C2440系统设计** 这个部分要求设计一个基于S3C2440处理器的小系统,该系统包含一个4x4矩阵键盘和2位七段数码管显示。S3C2440的F、G端口用于驱动共阳极的七段数码管,E端口用于连接矩阵键盘。设计内容包括: 1. **电路图原理**:根据题目描述,应画出电路图,表明如何连接S3C2440的GPIO端口到矩阵键盘和七段数码管。 2. **初始化程序**:在C语言中,初始化程序应配置S3C2440的端口为输入/输出,设置适当的引脚方向,并可能需要设置中断处理程序。 3. **功能实现程序**:当按键按下时,程序需要检测到按键事件,然后将按键对应的十进制编码显示在数码管上。这需要对矩阵键盘扫描和数码管编码进行编程。 解答中给出了按键编码表和一部分电路设计概念,但具体的C语言代码和完整的电路图并未提供。实际实现时,还需要考虑键盘扫描逻辑,例如扫描周期、消抖处理等,以及数码管的段码控制,确保正确显示数字。