非操作系统下的实验嵌入式实验报告.docx
- 文档编号:3225999
- 上传时间:2022-11-20
- 格式:DOCX
- 页数:46
- 大小:902.12KB
非操作系统下的实验嵌入式实验报告.docx
《非操作系统下的实验嵌入式实验报告.docx》由会员分享,可在线阅读,更多相关《非操作系统下的实验嵌入式实验报告.docx(46页珍藏版)》请在冰豆网上搜索。
非操作系统下的实验嵌入式实验报告
HarbinInstituteofTechnology
实验报告
课程名称:
嵌入式系统
院系:
电信学院
班级:
1105301
姓名:
张常乐
学号:
1110530110
指导教师:
任广辉
实验时间:
2014年12月
哈尔滨工业大学
第二章非操作系统下的实验
2.2GPIO接口实验
2.2.1实验目的
1.熟悉ADS软件的使用
2.熟悉程序的下载和调试流程
3.熟悉GPIO的操作
2.2.2实验原理
1)GPIO的原理及寄存器操作
GPIO(GeneralPurposeI/O,通用输入/输出接口)也称为并行I/O(parallelI/O),是最基本的I/O形式,由一组输入引脚、输出引脚或输入/输出引脚组成,CPU对它们能够进行存取操作。
GPIO引脚能够通过软件编程改变输入/输出方向。
S3C2440A共有130个多功能复用输入/输出端口(I/O口),分为端口A~端口J共9组。
端口A除了作为功能口外,只能够作为输出口使用,其他端口都可以为输入/输出端口。
为了满足不同系统设计的需要,每个I/O口可以很容易地通过软件对进行配置。
每个引脚的功能必须在启动主程序之前进行定义。
如果一个引脚没有使用复用功能,那么它可以配置为I/O口。
与配置I/O口相关的寄存器包括:
◆端口控制寄存器(GPACON~GPJCON)
◆端口数据寄存器(GPADAT~GPJDAT)
◆端口上拉寄存器(GPBUP~GPJUP)
以端口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位连接,对其操作涉及的寄存器有:
2.2.3实验仪器与设备
1.TQ2440实验平台
2.J-LINK调试器
2.2.4实验步骤
1.实现控制LED开启关闭功能
(1)单步调试例程,也可以双击程序中的某一行添加断点,则全速运行后程序会停在断点处。
并且在调试过程中观察LED的变化。
写出控制LED开启和关闭的程序语句和对应LED的状态,填入下表当中
序号
程序
现象
1
rGPFDAT=rGPFDAT&(~(1<<0));//PORTB[0]为低电平
LED0点亮
2
rGPFDAT=rGPFDAT|(1<<0);//PORTB[0]为高电平
LED0熄灭
(2)例程中实现的是对一个LED的控制,修改例程,写出一个对所有LED控制的通用函数,该函数的参数有两个:
LED的号码和LED的开关状态。
写出该函数并且写出调用该函数控制4个LED状态的语句和对应现象,填入下表中:
序号
程序
现象
1
rGPFDAT&=~((1<<0)|(1<<1)|(1<<2)|(1<<3));//PORTB[0至3]为低电平
LED0~LED3全部点亮
2
rGPFDAT|=((1<<0)|(1<<1)|(1<<2)|(1<<3));//PORTB[0至3]为高电平
LED0~LED3全部熄灭
3
rGPFDAT&=~((1<<0)|(1<<1)|(1<<2)|(1<<3));//PORTB[0至3]为低电平
delay(20);
rGPFDAT|=((1<<0)|(1<<1)|(1<<2)|(1<<3));//PORTB[0至3]为高电平
delay(20);
LED0~LED3循环点亮熄灭
2.实现流水灯功能
(1)利用上面编写的通用的LED控制函数,实现LED依次亮灭的过程(流水灯),把流水灯控制的语句填入下表中并描述LED的变化
序号
程序
现象
1
rGPFDAT&=~((1<<0));//PORTB[0]为低电平
delay(20);
rGPFDAT|=((1<<0));//PORTB[0]为高电平
delay(20);
rGPFDAT&=~((1<<1));//PORTB[1]为低电平
delay(20);
rGPFDAT|=((1<<1));//PORTB[1]为高电平
delay(20);
rGPFDAT&=~((1<<2));//PORTB[2]为低电平
delay(20);
rGPFDAT|=((1<<2));//PORTB[2]为高电平
delay(20);
rGPFDAT&=~((1<<3));//PORTB[3]为低电平
delay(20);
rGPFDAT|=((1<<3));//PORTB[3]为高电平
delay(20);
LED0~LED3循环点亮熄灭实现流水灯功能
3.实现控制蜂鸣器功能
(1)跟LED的控制类似,蜂鸣器的控制也是通过控制IO输出电平来控制的。
蜂鸣器使用的是GPB0,只需要对该端口操作即可
(2)写出控制蜂鸣器鸣叫和静音的语句,并把实验现象填入下表当中
序号
程序
现象
1
rGPBDAT=rGPBDAT&(~(1<<0));//PORTB[0]为低电平
delay(10);
rGPBDAT=rGPBDAT|(1<<0);//PORTB[0]为高电平
delay(10);
TX实验板上的蜂鸣器实现鸣叫和静音循环
4.实现按键控制LED功能
(1)写出查询按健状态函数,并根据不同的按键控制不同的LED亮
(2)按键使用的是IO口是GPF0、GPF1、GPF2和GPF4。
需要将其配置为输入的模式,然后读取数据寄存器即可
(3)把按键检测的程序段和对应的现象写入下表中
序号
程序
现象
1
For(j=0;j<4;j++)
{
If((rGPFDAT&=(1< { rGPFDAT&=~((1<<0)); } Else { rGPFDAT|=((1<<0)); } } 程序循环监测4个按键,当按下1~4对应的按键后1~4的LED对应点亮,松开后便熄灭 2.2.5实验思考题 从程序编写的角度,比较51单片机和SC32440的IO操作的不同之处 答: 51单片机可以单独对1bit的位进行操作,而SC32440必须一次性对整个IO口进行操作。 2.3中断实验 2.3.1实验目的 1.熟悉ARM的中断操作 2.掌握按键检测的方法 2.3.2实验原理 1).中断的原理和相关寄存器 S3C2440A中的中断控制器可以从60个中断源接收中断请求。 这些中断源由内部外设提供,例如DMA控制器、UART、IIC等。 当接收来自内部外设和外部中断请求引脚的多个中断请求时,在仲裁过程后中断控制器请求ARM920T的FIR或IRQ中断。 S3C2440A中与中断相关的寄存器有: ◆中断源挂起寄存器(SRCPND) ◆中断挂起寄存器(INTPND) ◆中断模式寄存器(INTMOD) ◆中断屏蔽寄存器(INTMSK) ◆中断优先级寄存器(PRIORITY) S3C2440A中的外部中断在上述中断寄存器的基础上增加了以下寄存器: ◆外部中断控制寄存器(EXTINT0~2) ◆外部中断滤波寄存器(EINTFLT0~3) ◆外部中断屏蔽寄存器(EINTMASK) ◆外部中断挂起寄存器(EINTPEND) 本次实验采用了外部中断EINT0、EINT1、EINT2和EINT4。 下面分析相关寄存器的意义: 中断源挂起寄存器(SRCPND) 该寄存器标志哪个中断源产生中断请求,产生中断请求但未必响应,该寄存器不受中断屏蔽和优先级的影响。 中断处理函数需要将其清零以免重复触发。 下表列出了SRCPND中部分位的意义 中断挂起寄存器(INTPND) 该寄存器标志中断源挂起寄存器(SRCPND)中非屏蔽的且优先级最高的中断,只有一位被标志,该中断将产生IRQ。 中断处理函数中应该将其清零以防止重复触发。 下表列出了INTPND中部分位的意义。 中断模式寄存器(INTMOD) 用于选择中断源属于FIQ还是IRQ,只有一个中断源能够配置为FIQ。 下表列出了INTMOD中部分位的意义。 中断屏蔽寄存器(INTMSK) 该寄存器用于用于屏蔽某些中断。 若某被屏蔽的中断产生了,中断源挂起寄存器(SRCPND)相应的位仍然会被置1,但中断挂起寄存器(INTPND)相应的位不会被置1,该中断也不会被处理。 下表列出了INTMSK中部分位的意义。 外部中断控制寄存器(EXTINT0~2) 外部中断控制寄存器(EXTINT0~2)主要用于配置外部中断的触发方式,触发方式有: 低电平触发、高电平触发、下降沿触发、上升沿触发、双边触发。 下表列出了EXTINT0的部分位的意义。 外部中断屏蔽寄存器(EINTMASK) 外部中断屏蔽寄存器(EINTMASK)用于屏蔽某些外部中断,当其中的位为1时,表示屏蔽对应的中断源。 其部分位的意义如下表所示,本实验只用到其第4位: 外部中断挂起寄存器(EINTPEND) 外部中断挂起寄存器(EINTPEND)用于标志产生中断请求的外部中断源,其各位的意义如下所示。 2.3.3实验仪器与设备 1.TQ2440实验平台 2.J-LINK调试器 2.3.4实验步骤 1.打开实验代码文件夹中的irq_test子文件夹中的工程irq_test.mcp工程 2.阅读代码,单步执行,体会voidKeyScan_Test(void)函数里面对中断相关寄存器的设置方法和意义,了解中断服务函数staticvoid__irqKey_ISR(void)中对相关寄存器的设置方法 3.注意: 要进入中断服务函数,必须全速执行程序,不能单步执行。 因此,可以在中断服务函数staticvoid__irqKey_ISR(void)添加一个断点,然后点击 全速执行程序。 当按下按键后,程序就会停在断点处 4.例程中只给出外部中断0和外部中断4的程序,只能实现对按键K2和K4的检测,仿照对外部中断0的配置,完成对按键K1和K3的检测,写出对外部中断1和2的配置代码还有对LED的控制程序,并进行调试,把代码和现象列入下表中 序号 程序 现象 1 if(rINTPND==BIT_EINT1) {ClearPending(BIT_EINT1); } if(rINTPND==BIT_EINT2) {ClearPending(BIT_EINT2); } 检测按键中断并清除相应中断挂起位 2 if((rGPFDAT&(1<<1))==0) {LED_Control(1,ON); Delay(1000); LED_Control(1,OFF); } LED1亮1s后熄灭 3 if((rGPFDAT&(1<<2))==0) {LED_Control(3,ON); Delay(1000); LED_Control(4,OFF); } LED3亮1s后熄灭 2.3.5实验思考题 比较实验2.2和实验2.3,要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 操作系统 实验 嵌入式 报告