找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3220|回复: 1
打印 上一主题 下一主题
收起左侧

2440裸机编程之三 通用I/O口

[复制链接]
跳转到指定楼层
楼主
ID:68618 发表于 2014-11-12 14:43 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
S3C2440A 具有130 个多功能输入/输出脚,分别包含在如下9 组端口中。
●1 个25 位输出端口(端口A)。
●1 个11 位输出端口(端口B)。
●4 个16 位输入/输出端口(端口C、D、E、G)。
●1 个8 位输入/输出端口(端口F)。
●1 个9 位输入/输出端口(端口H)。
●1 个13 位输入/输出端口(端口J)。

基本上,每个端口有三个寄存器:
GPnCON:端口配置寄存器,多数端口有多种功能,所以需要这个寄存器来使某个端口确定某一功能。
GPnDAT:端口数据寄存器,当端口为输出功能时:写这个寄存器就是使端口引脚输出相应电平;当端口为输入功能时:读这个寄存器就是读端口引脚上的相应电平;
GPnUP:端口上拉寄存器,决定端口是否具有内部上拉功能。

下面做个程序,使GPF4引脚上的LED灯闪烁。
GPF4的设置
GPFCON[9:8] 00 = Input   01 = Output
            10 = EINT[4] 11 = Reserved
GPF4的设置
GPFDAT的相应位分别对应每个引脚
//********************************************************************
void Main(void)
{     
    int i;
    ……硬件初始化……

LED();
while(1);
}
void  LED(void)
{
int i;
Uart_Printf("\nIO LED 实验\n");
Uart_Printf("GPF4----LED1闪烁\n");
rGPFCON = rGPFCON & ~(3<<8) | 1<<8 ;//设置GPF4为输出功能
while(1)
{ for(i=0; i<10000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<4 ;//GPF4电平反转
}
}
//*******************************************************************
结果如下图:



Very good,我们又学会了用一种新的处理器点亮LED。

下面实验一个四个灯的流水灯实验,这四个灯接GPF4-GPF7
//********************************************************************
void Main(void)
{     
    int i;
    ……硬件初始化……

LED();
while(1);
}
void  LED(void)
{
int i;
Uart_Printf("\nIO 流水灯 实验\n");
rGPFCON = rGPFCON & ~(0xff<<8) | 1<<8 | 1<<10 | 1<<12 | 1<<14 ;//设置GPF4、5、6、7为输出功能
rGPFDAT &= ~ ( 1<<4 | 1<<5 | 1<<6 | 1<<7 ) ;//GPF4电平反转
while(1)
{ for(i=0; i<20000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<4 ;//GPF4电平反转
  
  for(i=0; i<20000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<5 ;//GPF5电平反转
  
  for(i=0; i<20000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<6 ;//GPF6电平反转
  
  for(i=0; i<20000000; i++);  //延时
  rGPFDAT = rGPFDAT ^ 1<<7 ;//GPF7电平反转
}
}
//*******************************************************************
运行:四个灯轮流亮

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:45457 发表于 2015-9-11 19:11 | 只看该作者
2440裸机编程之三 通用I/O口
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表