非操作系统下的实验嵌入式实验报告

上传人:hs****ma 文档编号:457764742 上传时间:2023-12-11 格式:DOC 页数:42 大小:1.09MB
返回 下载 相关 举报
非操作系统下的实验嵌入式实验报告_第1页
第1页 / 共42页
非操作系统下的实验嵌入式实验报告_第2页
第2页 / 共42页
非操作系统下的实验嵌入式实验报告_第3页
第3页 / 共42页
非操作系统下的实验嵌入式实验报告_第4页
第4页 / 共42页
非操作系统下的实验嵌入式实验报告_第5页
第5页 / 共42页
点击查看更多>>
资源描述

《非操作系统下的实验嵌入式实验报告》由会员分享,可在线阅读,更多相关《非操作系统下的实验嵌入式实验报告(42页珍藏版)》请在金锄头文库上搜索。

1、 Harbin Institute of Technology实验报告 课程名称: 嵌入式系统 院 系: 电信学院 班 级: 1105301 姓 名: 张常乐 学 号: 1110530110 指导教师: 任广辉 实验时间: 2014年12月 哈尔滨工业大学第二章 非操作系统下的实验2.2 GPIO接口实验2.2.1 实验目的1. 熟悉ADS软件的使用2. 熟悉程序的下载和调试流程3. 熟悉GPIO的操作2.2.2 实验原理1)GPIO的原理及寄存器操作GPIO(General Purpose I/O,通用输入/输出接口)也称为并行I/O(parallel I/O),是最基本的I/O形式,由一组

2、输入引脚、输出引脚或输入/输出引脚组成,CPU对它们能够进行存取操作。GPIO引脚能够通过软件编程改变输入/输出方向。S3C2440A共有130个多功能复用输入输出端口(I/O口),分为端口A端口J共9组。端口A除了作为功能口外,只能够作为输出口使用,其他端口都可以为输入/输出端口。为了满足不同系统设计的需要,每个I/O口可以很容易地通过软件对进行配置。每个引脚的功能必须在启动主程序之前进行定义。如果一个引脚没有使用复用功能,那么它可以配置为I/O口。与配置I/O口相关的寄存器包括:u 端口控制寄存器(GPACONGPJCON)u 端口数据寄存器(GPADATGPJDAT)u 端口上拉寄存器(

3、GPBUPGPJUP)以端口B为例,说明端口寄存器的配置方式,端口B的寄存器如下所示:端口B控制寄存器:端口B数据寄存器:端口B上拉电阻寄存器:2). LED硬件接口电路LED的硬件接口电路如图2-1所示,LED与ARM的GPB端口连接,需要使用的寄存器有: 3). 蜂鸣器硬件接口电路蜂鸣器的硬件接口如图2-2所示,其与ARM的GPB端口的第0位GPB0连接,对其操作涉及的寄存器有4) 按键硬件接口电路按键硬件接口如图2-3所示,其采用的上拉的形式,按键没有按下则管脚的电平为高电平,当按键按下后,管脚电平为低电平。四个按键分别跟ARM的GPF口的第0、1、2和4位连接,对其操作涉及的寄存器有:

4、 2.2.3 实验仪器与设备1. TQ2440实验平台2. J-LINK 调试器2.2.4 实验步骤1实现控制LED开启关闭功能(1) 单步调试例程,也可以双击程序中的某一行添加断点,则全速运行后程序会停在断点处。并且在调试过程中观察LED的变化。写出控制LED开启和关闭的程序语句和对应LED的状态,填入下表当中序号程序现象1rGPFDAT=rGPFDAT&(10); /PORTB0为低电平LED0点亮2rGPFDAT=rGPFDAT|(10); /PORTB0为高电平LED0熄灭(2) 例程中实现的是对一个LED的控制,修改例程,写出一个对所有LED控制的通用函数,该函数的参数有两个:LED

5、的号码和LED的开关状态。写出该函数并且写出调用该函数控制4个LED状态的语句和对应现象,填入下表中:序号程序现象1rGPFDAT&=(10)|(11)|(12)|(13); /PORTB0至3为低电平LED0LED3全部点亮2rGPFDAT|=(10)|(11)|(12)|(13); /PORTB0至3为高电平LED0LED3全部熄灭3rGPFDAT&=(10)|(11)|(12)|(13); /PORTB0至3为低电平delay(20);rGPFDAT|=(10)|(11)|(12)|(13); /PORTB0至3为高电平delay(20);LED0LED3循环点亮熄灭2. 实现流水灯功能

6、(1) 利用上面编写的通用的LED控制函数,实现LED依次亮灭的过程(流水灯),把流水灯控制的语句填入下表中并描述LED的变化序号程序现象1rGPFDAT&=(10); /PORTB0为低电平delay(20);rGPFDAT|=(10); /PORTB0为高电平delay(20);rGPFDAT&=(11); /PORTB1为低电平delay(20);rGPFDAT|=(11); /PORTB1为高电平delay(20);rGPFDAT&=(12); /PORTB2为低电平delay(20);rGPFDAT|=(12); /PORTB2为高电平delay(20);rGPFDAT&=(13);

7、 /PORTB3为低电平delay(20);rGPFDAT|=(13); /PORTB3为高电平delay(20);LED0LED3循环点亮熄灭实现流水灯功能3. 实现控制蜂鸣器功能(1) 跟LED的控制类似,蜂鸣器的控制也是通过控制IO输出电平来控制的。蜂鸣器使用的是GPB0,只需要对该端口操作即可(2) 写出控制蜂鸣器鸣叫和静音的语句,并把实验现象填入下表当中序号程序现象1rGPBDAT=rGPBDAT&(10); /PORTB0为低电平delay(10);rGPBDAT=rGPBDAT|(10); /PORTB0为高电平delay(10);TX实验板上的蜂鸣器实现鸣叫和静音循环4. 实现

8、按键控制LED功能(1) 写出查询按健状态函数,并根据不同的按键控制不同的LED亮(2) 按键使用的是IO口是GPF0、GPF1、GPF2和GPF4。需要将其配置为输入的模式,然后读取数据寄存器即可(3) 把按键检测的程序段和对应的现象写入下表中序号程序现象1For(j=0;j4;j+) If(rGPFDAT&=(1j)=0) rGPFDAT&=(10);ElserGPFDAT|=(10);程序循环监测4个按键,当按下14对应的按键后14的LED对应点亮,松开后便熄灭2.2.5 实验思考题从程序编写的角度,比较51单片机和SC32440的IO操作的不同之处答:51单片机可以单独对1bit的位进

9、行操作,而SC32440必须一次性对整个IO口进行操作。2.3 中断实验2.3.1 实验目的1. 熟悉ARM的中断操作2. 掌握按键检测的方法2.3.2 实验原理1). 中断的原理和相关寄存器S3C2440A 中的中断控制器可以从60个中断源接收中断请求。这些中断源由内部外设提供,例如DMA控制器、UART、IIC等。当接收来自内部外设和外部中断请求引脚的多个中断请求时,在仲裁过程后中断控制器请求ARM920T的FIR或IRQ中断。S3C2440A中与中断相关的寄存器有:u 中断源挂起寄存器(SRCPND)u 中断挂起寄存器(INTPND)u 中断模式寄存器(INTMOD)u 中断屏蔽寄存器(

10、INTMSK)u 中断优先级寄存器(PRIORITY)S3C2440A中的外部中断在上述中断寄存器的基础上增加了以下寄存器:u 外部中断控制寄存器(EXTINT02)u 外部中断滤波寄存器(EINTFLT03)u 外部中断屏蔽寄存器(EINTMASK)u 外部中断挂起寄存器(EINTPEND)本次实验采用了外部中断EINT0、EINT1、EINT2和EINT4。下面分析相关寄存器的意义:中断源挂起寄存器(SRCPND)该寄存器标志哪个中断源产生中断请求,产生中断请求但未必响应,该寄存器不受中断屏蔽和优先级的影响。中断处理函数需要将其清零以免重复触发。下表列出了SRCPND中部分位的意义中断挂起

11、寄存器(INTPND)该寄存器标志中断源挂起寄存器(SRCPND)中非屏蔽的且优先级最高的中断,只有一位被标志,该中断将产生IRQ。中断处理函数中应该将其清零以防止重复触发。下表列出了INTPND中部分位的意义。中断模式寄存器(INTMOD)用于选择中断源属于FIQ还是IRQ,只有一个中断源能够配置为FIQ。下表列出了INTMOD中部分位的意义。中断屏蔽寄存器(INTMSK)该寄存器用于用于屏蔽某些中断。若某被屏蔽的中断产生了,中断源挂起寄存器(SRCPND)相应的位仍然会被置1,但中断挂起寄存器(INTPND)相应的位不会被置1,该中断也不会被处理。下表列出了INTMSK中部分位的意义。外部

12、中断控制寄存器(EXTINT02)外部中断控制寄存器(EXTINT02)主要用于配置外部中断的触发方式,触发方式有:低电平触发、高电平触发、下降沿触发、上升沿触发、双边触发。下表列出了EXTINT0的部分位的意义。外部中断屏蔽寄存器(EINTMASK)外部中断屏蔽寄存器(EINTMASK)用于屏蔽某些外部中断,当其中的位为1时,表示屏蔽对应的中断源。其部分位的意义如下表所示,本实验只用到其第4位:外部中断挂起寄存器(EINTPEND)外部中断挂起寄存器(EINTPEND)用于标志产生中断请求的外部中断源,其各位的意义如下所示。2.3.3 实验仪器与设备1. TQ2440实验平台2. J-LIN

13、K 调试器2.3.4 实验步骤1. 打开实验代码文件夹中的irq_test子文件夹中的工程irq_test.mcp工程2. 阅读代码,单步执行,体会void KeyScan_Test(void)函数里面对中断相关寄存器的设置方法和意义,了解中断服务函数static void _irq Key_ISR(void)中对相关寄存器的设置方法3. 注意:要进入中断服务函数,必须全速执行程序,不能单步执行。因此,可以在中断服务函数static void _irq Key_ISR(void)添加一个断点,然后点击全速执行程序。当按下按键后,程序就会停在断点处4. 例程中只给出外部中断0和外部中断4的程序,

14、只能实现对按键K2和K4的检测,仿照对外部中断0的配置,完成对按键K1和K3的检测,写出对外部中断1和2的配置代码还有对LED的控制程序,并进行调试,把代码和现象列入下表中序号程序现象1if(rINTPND=BIT_EINT1)ClearPending(BIT_EINT1);if(rINTPND=BIT_EINT2)ClearPending(BIT_EINT2);检测按键中断并清除相应中断挂起位2if(rGPFDAT&(11) = 0 )LED_Control(1,ON);Delay(1000);LED_Control(1,OFF);LED1亮1s后熄灭3if(rGPFDAT&(12) = 0 ) LED_Control(3,ON);Delay(1000);LED_Cont

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

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