内容发布更新时间 : 2024/11/5 12:47:35星期一 下面是文章的全部内容请认真阅读。
ARM嵌入式系统设计复习补充(2017-12-1)
总体复习要求:以复习资料为主线看教材和实验资料的有关内容,教材前3章要多看细看,需投入足够
的时间做到尽量熟悉和理解课程知识,范围还包括平时作业和课堂练习。
名词解释:
(1) CPSR 当前程序状态寄存器(Current Programs Status Register ) (2) BSP 板级支持包(Broad Support Package )
(3) RISC 精简指令集计算机(Reduce Instruct Set Computer) (4) MMU 内存管理单元(Memory Manage Unit)
(5) GPIO 通用输入输出端口(General Purpose Input/Output ports) (6) SOC 片上系统(System on Chip)
(7) PWM 脉宽调制(Pulse Width Modulation) (8) JTAG 联合调试动作组(Joint Test Action Group)
(9) ICE 在线仿真(In Circuit Emulator )
(10) ISR 中断服务程序(Interrupt Service Routine) (11) ADC 模-数转换器(Analog to Digit Converter) (12) RTOS 实时操作系统(Real Time Operating System)
有关实验要点:
实验报告应有完成的实验题目内容和实验过程和小结(含提交实验程序与说明)
实验一:ARM开发平台使用入门
了解掌握用Eclipse 和JlinkServer 编写和调试ARM汇编程序与C语言源程序。 程序结构例子:
文件名(EX1.s) 程序功能是什么?
.equ num, 5 .text
.globe _start _start:
MOV R0,#0x500000 MOV R1,#0 MOV R7,#200 LP: LDR R2,[R0],#4 CMP R2,#num BNE NEXT
MOV ADD R1,R1,#1 NEXT: SUBS R7,R7,#1
BNE LP
MOV R0,#0x600000 STR R0,[R0] stop: B stop .end
实验二:GPIO LED接口控制实验
* 掌握GPIO接口编程,用GPIO端口控制LED灯闪烁
GPIO接口的数据端口的每位功用(如GPH2DAT 8位)可由其控制端口(GPH2CON 的32位)8组*4位 的状态来设定,0000 指定为输出,0001指定为输入,0011指定为功能用途。如对用接口的数据端口的最高位和最低位来实现用按键来控制LED灯闪亮。 设控制端口为GPJ2CON , 则 GPJ2CON = 0x00000001 可完成上述设定。 数据端口 GPJ2DAT的最高位设为输入,最低位位输出。
可用 GPH2DAT&(0x1<<8); 读入按键的状态(0 为 按下, 1为 松开) 用 GPJ2DAT &=~(0x1<<0); 点亮LED灯
用 GPJ2DAT |=(0x1<<0);或者 GPJ2DAT&=0xFE; 熄灭LED灯 实验三:LED数码管综合实验 (含KeyPAD键盘实验)
* 熟悉LED数码管和键盘控制,实现用键盘控制LED灯的数码显示。 1. 七段码表的含义(共阴极和共阳极是反码关系)
用数字对应的下标i 可取出七段码表 seg7Table[i]中的段码
2. 数码管在那位显示有数位控制寄存器指定(低电位 0 有效),显示什么数字 由写入数码显示寄存器的段码决定。
实验四:A/D转换控制实验 (含 PWM定时器实验)
* 了解和掌握PWM脉宽定时器和A/D转换的工作原理,设计和实现用电位调节器控制蜂鸣器的鸣叫声。
1. ADC 基本实验完成了将电位调节旋钮的电压模拟量转换成指定精度(10位或12位) 的数字量,若是12位转换精度 则输出量的范围是 0 - 4095 ;
启动转换:对ADC控制寄存器的最低位AD使能开启 ,该启动使能位会自动清零,并在转换完成时将ADC控制寄存器的对话结束标志位(D15位)置1;
如 TSAADCCON0 |=(1<<0); 检查转换是否开始和完成:
TSAADCCON0&(1<<0)== 0 ;逻辑真为转换开始
TSAADCCON0&(1<<15) == 1;逻辑真是检测AD转换是否结束 获取转换结果:读取A_D数据寄存器的值
表达式 (TSDATX0&0x3ff)是获取转换结果数据(10位精度)。
2. PWM定时器基本实验完成了设定指定频率的脉冲输出来鸣响蜂鸣器。
PWM定时器的计数缓冲寄存器(TCNTBn)设定了减数计时周期的初始值,可决定输出脉冲波形的周期长度,比较缓冲寄存器(TCMPBn)可设定输出波形在减数周期何时翻转的比较值,可决定输出方波的占空比。
3. 两个实验的融合设计:
将ADC转换程序得到的调节电压的数字量作为改变PWM定时器的定时时钟脉冲或计数缓冲和比较寄存器的参数,从而改变PWM输出脉冲的频率和占空比,使得蜂鸣器的鸣响发生改变。
部分程序改进如下(参考):
jn=adc_test();
jn1 = jn/1000;
GPD0.GPD0CON = (GPD0.GPD0CON & (~0xF000) | (0x2 << 12));//设置Tout3输出
TIMER3.TCNTB3 = jn; switch(jn1){
//设置基数缓冲器的值
case 1:TIMER.TCFG1 = (TIMER.TCFG1 & ~0xF000) | 1 <<12;TIMER3.TCMPB3 = jn /1; break;
case 2:TIMER.TCFG1 = (TIMER.TCFG1 & ~0xF000) | 2 <<12;TIMER3.TCMPB3 = jn /3; break;
case 3:TIMER.TCFG1 = (TIMER.TCFG1 & ~0xF000) | 3<<12;TIMER3.TCMPB3 = jn /6; break;
case 4:TIMER.TCFG1 = (TIMER.TCFG1 & ~0xF000) | 4 <<12;TIMER3.TCMPB3 = jn /8; break;
}
实验五:LCD触摸屏显示控制实验
* 熟悉LCD液晶触摸屏的显示和控制方法,编程实现在触摸点画圆。
屏幕矩阵800*480(分辨率)则 ROW =480 ;COL=800 水平扫描值 HOZVAL=COL-1 垂直扫描值 LINEVAL=ROW-1 左上角坐标为(0,0)右下角为(799,479) 彩色显示模式 16M(24bpp)色,用24位的前3个字节表示红,绿,蓝的配比 64K(16bpp)色,用16位表示一个像素点,三原色配比 5/6/5。
将LCD显示实验程序和LCD触摸屏实验程序功能融合在一起,实现在触摸点(可以同时获取多点)处画圆形图案。获取点集的坐标在结构数组Touch_MSG.Touch_xy[n]中,程