嵌入式实验讲义Word格式.docx
- 文档编号:6625310
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:21
- 大小:95.61KB
嵌入式实验讲义Word格式.docx
《嵌入式实验讲义Word格式.docx》由会员分享,可在线阅读,更多相关《嵌入式实验讲义Word格式.docx(21页珍藏版)》请在冰点文库上搜索。
3、GPJUP――端口上拉电阻使能寄存器。
6、实验电路图
1、nLED_1接S3C2440的GPF4引脚。
2、nLED_2接S3C2440A的GPF5引脚。
3、nLED_3接S3C2440的GPF7引脚。
4、nLED_4接S3C2440A的GPF6引脚。
七、实验程序实现
1利用C语言实现跑马灯程序
2ARM汇编指令编写的延时程序
8、实验步骤
1、连接好实验环境,将仿真器的一端通过并口连接到PC机,将仿真器的另一端通过ARM仿真器先连接到ARM实验箱的JTAG接口。
2、将串口线一端接到PC机,另一端接到ARM实验箱的UART0接口;
打开串口超级终端dnw.exe,设置串口BaudRate为115200,选择COM1。
3、打开ADSCodeWarrior,在ADSCodeWarrior中打开实验工程HK_ASM_C.mcp;
并对工程进行编译。
4、打开仿真器驱动程序Multi-ICEserver,并加载配置文件ARM920T.cfg。
5、打开ARM的开发环境AXDDebugger,在AXDDebugger中加载可执行映象文件HK_ASM_C.axf。
6、执行映象文件,并观察实验结果。
注:
若没有Multi-ICE调试,可以采用下面方法测试程序:
1、重起ARM实验箱,实验箱会执行flash中的BIOS程序,打开dnw.exe超级终端。
2、在dnw中,输入“0”,选择“USBdownloadfile”,在PC上安装USB驱动。
3、点击“USBPort”“Transmit”选择HK_ASM_C目录下的可执行映象文件HK_ASM_C.bin将该文件下载到SDRAM。
4、下载结束后,会提示是否要立即运行,这时输入“Y”,执行HK_ASM_C.bin。
5、在dnw中观察实验结果。
九、实验结果
程序运行后,LED灯D1、D2、D3、D4不断闪烁,跑马灯程序运行。
实验二C语言实现LED控制实验
1.熟悉ADS开发环境、AXD及调试环境。
2.掌握S3C2440的I/O控制寄存器的配置。
3.掌握嵌入式C语言编程的方法。
1.熟悉ARM开发环境的建立。
2.使用C语言设置GPIO口的相应寄存器。
1、C语言的“预处理伪指令”在嵌入式程序设计中的应用
1)文件包含伪指令
格式#include<
头文件名.h>
;
标准头文件
#include“头文件名.h”;
自定义头文件
2)宏定义伪指令
格式:
#define宏标识符宏体
3)条件编译伪指令
格式
#if(条件表达式1)…
#elif(条件表达式2)…
#elif(条件表达式n)…
#else…
#endif
2、嵌入式程序设计中的函数及函数库
(1)一个较大的C语言程序一般是由一个主函数和若干个子函数组成,每个函数完成一个特定的功能。
主函数可以调用其他函数,其他函数之间也可以相互调用。
通过函数间的相互调用可以大大减少编程的工作量。
函数定义的格式:
(2)externintstarg(chara,intb,int*p)
3、嵌入式程序设计中常用的C语言语句
C语言语句格式为:
标号:
语句
C语言的语句有10种:
表达式语句、复合语句、条件语句、循环语句、swith语句、break语句、continue语句、返回语句等
其中用的最多地是条件语句、swith语句和循环语句
4、嵌入式程序设计中C语言的变量、数组、结构、联合
1)变量定义格式:
int*count
2)数组
定义格式:
intSymbol[5]={DIGIT_0,DIGIT_1,DIGIT_2,DIGIT_3,DIGIT_4};
3)指针数组
int*p[5]={地址,地址,…}];
4)数组指针
int(*p)[5]=a;
5)结构体
structsockaddr{
unsignedshortsa_family;
charsa_data[14];
};
5、实验电路图
1、nLED_1接S3C2440的GPF4引脚;
2、nLED_2接S3C2440A的GPF5引脚;
3、nLED_3接S3C2440的GPF7引脚;
六、程序实现
利用GPIO做跑马灯的程序
7、实验步骤
1.连接好实验环境,将仿真器的一端通过并口连接到PC机,将仿真器的另一端通过ARM仿真器先连接到ARM实验箱的JTAG接口。
2.将串口线一端接到PC机,另一端接到ARM实验箱的UART0接口;
3.打开ADSCodeWarrior,在ADSCodeWarrior中打开实验工程HK_ASM_C.mcp;
并对工程进行编译。
4.打开仿真器驱动程序Multi-ICEserver,并加载配置文件ARM920T.cfg。
5.打开ARM的开发环境AXDDebugger,在AXDDebugger中加载可执行映象文件HK_ASM_C.axf。
6.执行映象文件,并观察实验结果。
1.重起ARM实验箱,实验箱会执行flash中的BIOS程序,打开dnw.exe超级终端。
2.在dnw中,输入“0”,选择“USBdownloadfile”,在PC上安装USB驱动。
3.点击“USBPort”“Transmit”选择HK_ASM_C目录下的可执行映象文件HK_ASM_C.bin将该文件下载到SDRAM。
4.下载结束后,会提示是否要立即运行,这时输入“Y”,执行HK_ASM_C.bin。
5.在dnw中观察实验结果。
八、实验结果
实验三外部中断应用实验
1.了解S3C2440外部中断的工作原理。
2.掌握S3C2440外部中断的使用方法。
通过外部S201、S202、S203按键触发外部中断。
4、实验原理
1ARM的异常中断类型
在嵌入式系统中外部设备的功能实现主要是靠中断机制来实现的。
中断功能可以解决CPU内部运行速度远远快于外部总线速度而产生的等待延时问题。
ARM提供的FIQ和IRQ异常中断用于外部设备向CPU请求中断服务,一般情况下都是采用IRQ中断。
2异常中断响应过程和返回过程
异常中断的响应过程:
1).保存处理器当前状态寄存器CPSR的值到备份程序状态寄存器SPSR中。
2).设置但前程序状态寄存器CPSR的值,其中包括:
设置CPSR响应位的值,使处理器进入特定的处理器模式;
按要求屏蔽中断,通常应该屏蔽IRQ中断。
在FIQ总断时屏蔽FIQ中断。
3).设置Lr寄存器。
将相应中断模式的Lr寄存器的值设为异常中断的返回地址。
4).处理程序计数器PC,将PC值设为相应的中断向量的地址,从而实现跳转以执行中断服务程序。
异常中断的返回过程:
1).恢复状态寄存器。
将保存的备份程序状态寄存器SPSR值赋给当前程序状态寄存器CPSR。
2).将返回地址赋值到程序计数器(PC)。
这样程序将返回到异常中断产生的下一条指令或出现问题的指令处执行。
3异常中断的安装
1)利用跳转指令实现异常中断的安装
将BL指令放置到中断向量表的特定位置,跳转目标地址为中断处理程序的首地址,便可直接实现异常中断的安装。
其优点是BL指令可以直接保存地址,缺点是BL的跳转范围只有32MB的地址空间。
2)利用ldr指令实现异常中断的安装
利用ldr直接向程序计数器PC中赋值也可以实现中断处理程序的安装。
先要将异常中断处理程序首地址的绝对地址放在临近的一个存储单元中,然后用ldr命令将该内存单元中的地址读取到PC中。
其优点是可调用程序的范围不受限制。
4.S3C2440的中断控制器
SRCPND――源中断指示寄存器
INTMOD――中断模式寄存器
INTPND――中断请求寄存器
INTMSK――中断屏蔽寄存器
INTOFFSET――中断偏移寄存器
5.S3C2440子中断列表
SUBSRCPND――次级源中断指示寄存器
INTSUBMSK――次级中断屏蔽寄存器
EXTINTn――外部中断控制寄存器n
EINTPND――外部中断判断寄存器
EINTMASK――外部中断屏蔽寄存器
5、实验程序
1外部中断服务程序
2中断初始化函数
6、实验步骤
2.将串口线一端接到PC机,另一端接到ARM实验箱的UART0接口;
打开串口超级终端dnw.exe,设置串口BaudRate为115200,选择COM1。
3.打开ADSCodeWarrior,在ADSCodeWarrior中打开实验工程HK_EINT.mcp;
4.打开仿真器驱动程序Multi-ICEserver,并加载配置文件ARM920T.cfg。
5.打开ARM的开发环境AXDDebugger,在AXDDebugger中加载可执行映象文件HK_EINT.axf。
6.执行映象文件,分别按下按键S201、S202、S203键,并在串口输出中观察实验结果。
3.点击“USBPort”“Transmit”选择HK_EINT目录下的可执行映象文件HK_EINT.bin将该文件下载到SDRAM。
4.下载结束后,会提示是否要立即运行,这时输入“Y”,执行HK_EINT.bin。
七、实验结果
分别通过S201、S202、S203按键,从串口看出进入了相应的外部中断服务程序。
实验四PWM控制蜂鸣器和直流电机实验
1.了解PWM相关应用。
2.利用定时器的PWM功能,产生一定占空比的PWM脉冲波形。
二、实验内容
1.编写程序改变PWM控制器输出频率,控制蜂鸣器。
2.编写程序改变PWM控制器输出频率,控制直流电机。
三、实验设备及工具
1.ARM实验箱教学实验平台
2.ADS1.2评估版集成开发环境
3.串口连接线,电源
四、实验原理
1.PWM简介
脉宽调制(PWM)就是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术广泛应用在从测量、通信到功率控制与变换的许多领域中。
PWM从处理器到被控系统信号都是数字式的,无需进行数模转换,让信号保持为数字形式可将噪声影响降到最小。
PWM是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
2.S3C2410的PWM控制器
S3C2410具有五个16位定时器,定时器0,1,2,3具有PWM控制器,定时器4是个内部定时期不具有对外输出口线。
定时器0具有死区发生器,通常用于大电流设备应用。
1)预分频器和分割器
定时器0和定时器1分享同一个8位的预分频器,定时器2,3和4分享一个预分频器。
2)PWM调制
PWM脉冲频率由TCNTBn决定。
PWM脉冲宽度值则由TCMPBn的值来决定。
3.PWM实验相关寄存器
定时器配置寄存器0(TCFG0)
定时器输入时钟频率=PCLK/{预分频}/{分割值}
{预分频值}=1~255;
{分割值}=2,4,8,16,32
定时器配置寄存器1(TCFG1)
定时器控制寄存器(TCON)
定时器n计数缓冲区寄存器和比较缓冲区寄存器(TCNTBn,TCMPBn)
4.接口电路图
ARM实验箱教学平台将S3C2410的TOUT0端口(定时器0的脉冲输出端口,GPB0)与蜂鸣器的脉冲输入端口相连。
5、实验步骤
实验PWM控制直流电机
(1)编写主函数调用实验A、B函数及gprs/gps和红外控制数码管显示函数,编译生成目标代码。
(2)硬件连接:
用串口线将PC机的COM1与实验箱的UART1连起来,再用交叉网线将PC机的网口与实验箱的网口连起来,最后接上电源;
(3)下载、调试并运行:
(4)结合实验内容和原理,观察实验现象,实验结果为实现电机的转动正转à
停止à
反转循环。
六、实验程序
PWM应用程序例程
七、练习题
实现电机的转动正转à
实验五ADC应用实验
一、实验目的
1.了解A/D转换的基本原理。
2.掌握A/D转换的编程方法。
1.编写程序对模拟输入进行采集和转换,并将结果显示在串口超级终端。
2.通过可变电阻改变模拟量输入,观察显示结果。
三、实验设备
1.HKC2440开发实验箱
2.ADS1.2集成开发环境,ARM仿真器、串口连接线
1、ADC的主要类型
1)并行比较ADC
2)逐次逼近型
3)积分型ADC
4)压频变换型ADC
5)∑-Δ型ADC
6)流水线型ADC
7)任何ADC都包括三个基本功能:
抽样、量化和编码
2、AD转换器的主要技术指标
1)分辩率(Resolution)
2)转换速率(ConversionRate)
3)量化误差(QuantizingError)
4)偏移误差(OffsetError)
5)满刻度误差(FullScaleError)
6)线性度(Linearity)
其他指标还有:
绝对精度(AbsoluteAccuracy),相对精度(RelativeAccuracy),微分非线性,单调性和无错码,总谐波失真(TotalHarmonicDistotortion缩写THD)和积分非线性
五、S3C2440ADC介绍
S3C2440芯片自带一个8通道输入10bitCMOS模数转换器。
在2.5MHz的转换器时钟下,可以达到500KSPS,ADC具有采样保持、低功耗等功能
特点:
v精度(Resolution):
10-bit
v微分线性误差(DifferentialLinearityError):
±
1.5LSB
v积分线性误差(IntegralLinearityError)±
2.0LSB:
v最大转换速率(MaximumConversionRate)500KSPS
v输入电压(Inputvoltagerange):
0-3.3V
v片上采样保持电路
v正常模式
v单独X,Y坐标转换模式
v自动X,Y坐标顺序转换模式
v等待中断模式
六、实验步骤
1.连接好实验环境,将仿真器的一端通过并口连接到PC机,将仿真器的另一端通过ARM仿真器先连接到ARM实验箱的JTAG接口。
2.将串口线一端接到PC机,另一端接到ARM实验箱的UART0接口;
打开串口超级终端dnw.exe,设置串口BaudRate为115200,选择COM1。
3.打开ADSCodeWarrior,在ADSCodeWarrior中打开实验工程HK_ADC.mcp;
并对工程进行编译。
4.打开仿真器驱动程序Multi-ICEserver,并加载配置文件ARM920T.cfg。
5.打开ARM的开发环境AXDDebugger,在AXDDebugger中加载可执行映象文件HK_ADC.axf。
6.执行映象文件,调节ARM实验箱上的可调电阻R64,并在串口输出中观察输出的数字量值。
1.在dnw中,输入“0”,选择“USBdownloadfile”,在PC重起ARM实验箱,实验箱会执行flash中的BIOS程序,打开dnw.exe超级终端。
2.上安装USB驱动。
3.点击“USBPort”“Transmit”选择HK_ADC目录下的可执行映象文件HK_ADC.bin将该文件下载到SDRAM。
4.下载结束后,会提示是否要立即运行,这时输入“Y”,执行HK_ADC.bin。
5.调节ARM实验箱上的可调电阻R215,并在串口输出中观察输出的数字量值。
调节ARM实验箱上的可调电阻R215,通过串口可以看到AD转换后的数字值
实验六行列式按键扫描实验
一、实验目的
1.学习键盘驱动原理。
2.掌握通过CPU的I/O扩展键盘的方法。
二、实验内容
编写键盘扫描程序,并将按键值在LED点阵显示(或超级终端)。
2.ADS1.2评估版集成开发环境和调试代理软件
3.网线,串口连接线,电源
实现键盘有两种方案:
一、采用现有的一些芯片实现键盘扫描;
二、用软件实现键盘扫描。
当摁键被按下或者被释放时,并不能够产生一个明确的1或者0。
尽管触点可能看起来稳定而且很快地闭合,但与微处理器快速的运行速度相比,这种动作是比较慢的。
当触点闭合时,其弹起就像一个球。
弹起效果将产生如右图所示的好几个脉冲。
弹起的持续时间通常将维持在5ms~30ms之间。
在初始化阶段,所有的行(输出端口)被强行设置为低电平。
在没有任何键按下时。
所有的列(输入端口)将读到高电平。
任何键的闭合将造成其中的一列变为低电平,因此只需再确定是哪一行即可定位被按键的位置。
在所有的行中,保持一行为低,其余为高,循环所有行,此时能使列仍然输出低的行即为按键的行号。
为了过滤回弹的问题,微处理器以规定的时间间隔对键盘进行采样,这个间隔通常在20ms~100ms之间(被称为去除回弹周期),它主要取决于所使用开关的回弹特征
本次实验实现的是4×
4的键盘扫描。
平时4个GPIO引脚都是高,有键按下时产生中断信号,中断服务程序运行键盘扫描程序,得到行号和列号。
去除回弹周期为20ms
五、实验步骤
(1)新建一个工程名为KeyScan,并新建源文件、输入代码,设置好工程编译生成目标代码;
用串口线将PC机的COM1与实验箱的UART1连起来,再用交叉网线将PC机的网口与实验箱的网口连起来,最后插上12V电源;
(4)结合实验内容和原理,观察实验现象,实验结果应该是在实验箱上按下的键值对应显示在超级终端上;
六、练习题
采用中断的方式进行按键的识别。
实验七七段数码管实验
学习使用UltraEditC代码文本编辑器;
了解数码管动态显示的原理;
了解74LS164扩展端口的方法。
使用UltraEdit文本编辑器,编写一段程序,控制八个数码管的显示。
利用tftp将程序下载到ARM板。
四、实验设备及工具
硬件:
ARM9实验箱、PC机Pentumn100以上,串口线。
软件:
PC机操作系统win2000UltraEdit、tftp
五、实验原理及说明
本实验仪提供了8段共阴极数码管显示电路,学生只要按地址输出相应数据,就可以实现对显示器的控制。
显示共有6位,采用动态方式显示。
8段数码管是由DSP2407异步串口经74LS164“串转并”后输出得到。
1.连接好实验环境,将仿真器的一端通过并口连接到PC机,将仿真器的另一端通过ARM仿真器先连接到ARM实验箱的JTAG接口。
3.打开ADSCodeWarrior,在ADSCodeWarrior中打开实验工程HK_LED7.mcp;
并对工程进行编译。
4.打开仿真器驱动程序Multi-ICEserver,并加载配置文件ARM920T.cfg。
5.打开ARM的开发环境AXDDebugger,在AXD
Debugger中加载可执行映象文件HK_LED7.axf。
6.打开控控制开关S517。
7.执行映象文件,可以看到数码9~0数字循环显示。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 实验 讲义