嵌入式系统设计实验五.doc
一、 实验目的 1.了解S3C2410的通用I/0接口 2.掌握I/0功能的复用并熟练的配置,进行编程实验 二、 实验内容 1.在实验箱的CPU 板上点亮LED 灯LED1、LED2,并轮流闪烁! 三、 实验设备 1.EL-ARM-860教学实验箱,PentiumII以上的PC机,仿真调试电缆。 2.PC操作系统WIN98或WIN2000或WINXP,ADS1.2集成开发环境,仿真调试驱动程序。 四、 实验原理 S3C2410 CPU共有117个多功能复用输入输出口,分为8组端口: ·4个16位的I/0端口(PORT C、PORT D、PORT E、PORT G) ·2个11位的I/0端口(PORT B和 PORT H) ·1个8位的I/0端口(PORT F) ·1个23位的I/0端口(PORT A) 这些通用的GPI/0接口,是可配置的,PORTA除功能口外,它们仅用作输出使用,剩下的 PORTB、PORTC、PORTD、PORTE、PORTF、PORTG均可作为输入输出口使用。 配置这些端口,是通过一些寄存器来实现的,这些寄存器均有各自的地址,位长 32位。 往该地址中写入相应的数据,即可实现功能及数据配置。 GPACON (Ox56000000)/ /Port A control GPADAT (Ox56000004) //Port A data GPBCON (Ox56000010)//Port B control GPBDAT (Ox56000014)/ /Port B data GPBUP(Ox56000018)//Pull-up control B GPCCON (Ox56000020)/ /Port C control GPCDAT (Ox56000024)/ /Port C data GPCUP (Ox56000028)//Pull-up control c GPDCON (Ox56000030)//Port D control GPDDAT (Ox56000034) //Port D data GPDUP (Ox56000038)//Pul1-up control D GPECON (Ox56000040)//Port E control GPEDAT (Ox56000044)//Port E data GPEUP(Ox56000048)//Pul1-up control E GPFCON (Ox56000050)//Port F control GPFDAT (Ox56000054)/ /Port F data GPFUP(Ox56000058)//Pull-up control F GPGCON (Ox56000060)/ /Port G control GPGDAT (Ox56000064)//Port G data GPGUP (Ox56000068)//Pul1-up control G GPHCON (Ox56000070)/ /Port H control GPHDAT (Ox56000074)//Port H data GPHUP (Ox56000078)//Pull-up control H 现用G口、H口举例说明。对于G口如表1、表2、表3, 表1 表2 也就是说,在地址Ox0x56000060中,给32位的每一位赋值,那么,在CPU的管脚上就定义了管脚的功能值。当G口某管脚配置成输出端口,则在 PDATG对应的地址中的对应位上,写入1,则该管脚输出为高电平,写入0,则该管脚输出为低电平。若配置为功能管脚,则该管脚变成具体的功能脚。 对于H口见表4、表5、表6、表7 表6 也就是说,在地址Ox56000070中,给32位的每一位赋值,那么,在CPU的管脚上就定义了管脚的功能值。当H口某管脚配置成输入端口,则在 GPHDAT对应的地址中的对应位上,得到1,则该管脚的输入为高电平,得到0,则该管脚的输入为低电平。当H口某管脚配置成输出端口,则在GPGDAT对应的地址中的对应位上,写入1,则该管脚输出为高电平,写入0,则该管脚输出为低电平。若配置为功能管脚,则该管脚变成具体的功能脚。其他端口配置请参见PDF文挡。 在程序中对GPI/0各寄存器的读写实现,是通过给宏赋值实现的。这些宏在2410addr.h中定义;具体如:。 #define rGPACON (* (volatile unsigned *)Ox56000000)(//Port A control #define rGPADAT (*
用户评论