实验6--ARM的IO接口实验4页_第1页
实验6--ARM的IO接口实验4页_第2页
实验6--ARM的IO接口实验4页_第3页
实验6--ARM的IO接口实验4页_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、实验6 ARM的I/O接口实验1. 实验目的1. 了解S3C2410的通用I/O接口.2. 掌握I/0功能的复用并熟练的配置,进行编程实验.2.实验环境及设备1. EL-ARM-830+教学实验箱,PentiumII以上的PC机,仿真调试电缆。2. PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,仿真调试驱动程序。3.实验内容(1)实验原理:ARM芯片I/O口通常都是与其他引脚复用的。要熟悉ARM芯片I/O口的编程配置方法,熟悉S3C44B0X芯片I/O口配置寄存器,编程实现实验板上的发光二极管LEDl和LED2依次点亮和熄灭。A. S3CRRB0X 芯片上共有7

2、1 个多功能I/O 引脚,他们分别为7 组I/O 端口: 2 个9 位I/O 端口 (端口E 和F) 2 个8 位I/O 端口 (端口D 和G) 1 个16 位I/O 端口 (端口C) 1 个10 位I/O 端口 (端口A ) 1 个11 位I/O 端口 (端口B ) 每组端口都可以通过软件配置寄存器来满足不同系统合设计的需要。在运行主程序之 前,必须先对每一个用到的引脚的功能进行设置。如果某些引脚的附庸功能没有使用,那么 可以先将该引脚设置为I/O口。 B. S3C44B0X 芯片与端口相关的寄存器 1、端口控制寄存器 (PCONAG):在S3C44B0X 芯片中,大部分引脚是使用多路复用的

3、,所以要确定每个引脚的功能。PCONn(端口控制寄存器)能够定义引脚功能。如果 PG0PG7 作为掉电模式下的唤醒信号,那么这些端口必须配置成中断模式。 2、端口数据寄存器 (PDATAG):如果端口定义为输出口,那么输出数据可以写入 PDATn 中相应的位;如果端口定义为输入口,那么输入数据可以从PDATn 相应的位中读 入。 3、端口上拉寄存器 (PUPCG):通过配置端口上拉寄存器,可以使该组端口与上拉 电阻连接或断开。当寄存器中相应位配置为0 时,该引脚接上拉寄存器;当寄存器中相应位 配置为1 时,该引脚不接上拉电阻。 4 、外部中断寄存器 (EXTINT ):通过不同的信号方式可以使

4、8 个外部中断被请求。 EXTINT 寄存器可以根据外部中断的需求,将中断触发信号配置为低电平触发,高电平触发,下降沿触发,上升沿触发和边沿触发几种方式。 (2)实验步骤:1、本实验使用实验教学系统的CPU板,在进行本实验时,LCD电源开关、音频的左右声道开关、AD通道选择开关、触摸屏中断选择开关等均应处在关闭状态。2、在PC机并口和实验箱的CPU板上的J-link接口之间,连接仿真调试电缆以及串口间连接公/母接头串口线。3、打开超级终端,配置串口的属性(如COM1),配置波特率为115200,校验位无,数据位为8,停止位为1,数据控制流为无;检查连接是否可靠,可靠后,接入电源线,系统上电,同

5、时按住“空格”键,进入VIVI状态。4、打开ADS1.2开发环境,从里面打开实验程序HARDWAREADS实验五IO.mcp项目文件,进行编译。5、编译通过后,进入ADS1.2调试界面,加载实验程序HARDWAREADS实验五IO_DataDebug中的映象文件程序映像IO.axf。6、在ADS调试环境下全速运行映象文件。观察CPU板左下角的LED1、LED2灯轮流的的闪烁!这是对GPIO口操作的结果。具体实现见程序。(3)、实验中参考程序 #include "option.h" #include "def.h" #include "44b.h

6、" #include "44blib.h" void Isr_Init(void); void HaltUndef(void); void HaltSwi(void); void HaltPabort(void); void HaltDabort(void); void Main(void) rSYSCFG=SYSCFG_8KB; #if (PLLON 1) ChangePllValue(PLL_M,PLL_P,PLL_S); #endif Isr_Init(); Port_Init(); Uart_Init(0,115200); 波特率是115200 Uart_

7、Select(0); Delay(0); /calibrate Delay() 延迟 Led_Display(7); 0111三个灯全亮 Delay(1000); /calibrate Delay() Led_Display(0); Delay(5000); /calibrate Delay() Led_Display(7); Uart_Printf("n start n"); while(1) Delay(5000); /calibrate Delay() Led_Display(1); 亮第一个灯,其他灭 Delay(5000); /calibrate Delay()

8、Led_Display(2); 亮第二个灯,其他灭 Delay(5000); /calibrate Delay() Led_Display(4); 亮第三个灯,其他灭 void Isr_Init(void) U32 i; pISR_UNDEF=(unsigned)HaltUndef; pISR_SWI =(unsigned)HaltSwi; pISR_PABORT=(unsigned)HaltPabort; pISR_DABORT=(unsigned)HaltDabort; for(i=_RAM_STARTADDRESS;i<(_RAM_STARTADDRESS+0x20);i+=4)

9、*(volatile unsigned *)i)=0xEA000000+0x1FFE; rINTCON=0x5; / Non-vectored,IRQ enable,FIQ disable rINTMOD=0x0; / All=IRQ mode rINTMSK|=BIT_GLOBAL|BIT_EINT3; / All interrupt is masked. void HaltUndef(void) Uart_Printf("Undefined instruction exception!n"); while(1); void HaltSwi(void) Uart_Prin

10、tf("SWI exception!n"); while(1); void HaltPabort(void) Uart_Printf("Pabort exception!n"); while(1); void HaltDabort(void) Uart_Printf("Dabort exception!n"); while(1); 将其中部分程序改为以下程序,使其变为每次两个灯一起亮 Uart_Printf("n start n"); while(1) Delay(5000); /calibrate Delay() Led_Display(3); Delay(5000); /calibrate Delay() Led_Display(5); Del

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论