7个寄存器 是R1-R16.(当然,里面有很多是分几个模式的,所以总共有37个)
类似于单片机的R0-R7. GPXCON,GPXDAT等等是另外的寄存器,应该叫,特殊功能寄存器,类似于单片机的P0,P1,TCON,等等。 GPXCON:是X管脚的控制寄存器,控制它们的模式,比如输出模式,输入模式……
GPXDAT:是X管脚的数据寄存器,存储它们的数据,

GPIO ,通用的输入输出,其引脚可供编程使用,对于简单的外部设备,比如控制一个LED 灯的亮灭,自然 只需要一位 信号就够了。

使用传统的 串行口和并行口 并不合适。 所以 S3C2440 芯片提供了 130个通用的 GPIO 口。

s3c2440 有 130个 功能可以选择的I/O端口,共9组: GPA,GPB,。。。。GPJ , 每组I/O 引脚数目不等。 GPB组共有11个I/O 端口,GPB0---GPB1——-----GPB10 ,GPC 有16个, GPC0--GPC15.

功能可以选择是指 可以通过设置控制寄存器来将 某个引脚作为 输入、输出或者 其他功能。

举例子:

开发板LED1 接在 GPB5 端口上,因此可以通过控制寄存器来将GPB5设为输出, 只有当GPB5 是低电平的时候LED1 才会亮, 这时候便用到 芯片内部对应的数据寄存器。 数据寄存器每一位控制一个I/O引脚。。

GPB5便由 数据寄存器的第5位控制,输入0 ,LED1点亮。

_____________________________________________________________________________________________________________________________________________

我们通过分析 GPB 来掌握 GPIO 口的 使用,举一反三!!!!!!!!!!!!!!!!!!!!!!!!!!

GPxCON:用于配置(configure),选择引脚的功能。
GPxDAT:用于读/写数据。
GPxUP:确定是否使用内部上拉电阻。(没有GPAUP寄存器。)
 
我们来讲解 GPBCON :
 
从图可以看出  B组  有 11个 GPIO 端口 。
GPXCON 中 每两位控制一根引脚。 00表示 输入,01 表示输出, 10 特殊功能 ,11 保留不用 
这样理解吧,参考51单片机,51单片机 并行口 P0 P1 P2 P3 ,一个有 8位
 
GPxDAT 寄存器, 用于读写引脚, 设为输入时候, 读此寄存器可知 相应引脚电平状态高低,输出时候也一样。
 
GPXUP : 为 1 无上拉电阻, 0 有上拉电阻。 
         
GPBCON:  = 0x15400         GPB0
 
#define LEDS           (1<<5|1<<6|1<<7|1<<8)   
GPBDAT=(GPBDAT&(~LEDS)) | (1<<6|1<<7|1<<8);  //  LED1 亮了,其余灭,分析简单

讨论:   
                         
GPBCON    
     
     
GPB10 21  
  20  
GPB9 19  
  18  
GPB8 17 LED4
  16  
GPB7 15 LED3
  14  
GPB6 13 LED2
  12  
GPB5 11 LED1
  10  
GBP4 9  
  8  
GPB3 7  
  6  
GPB2 5  
  4  
GPB1 3  
  2  
GPB0 1  
  0  
15400    
     
     
0    
0    
0    
0    
0  (17:16) 01 output
1    
0 (15:14) 01 putput
1    
0 (13:12) 01 output
1    
0 (11:10) 01 output
1    
0    
0    
0    
0    
0    
0    
0    
0    
0    
0    
GPBDAT   ~LEDS (GPBDAT&(~LEDS))
(1<<6|1<<7|1<<8)
 
           
           
GPB10 10        
           
GPB9 9        
           
GPB8 8 0 0 1                 
           
GPB7 7 0 0 1  
           
GPB6 6 0 0 1  
           
GPB5 5 0 0 0       LED1亮  
           
GPB4 4        
           
GPB3 3        
           
GPB2 2        
           
GPB1 1        
           
GPB0 0        
           
     
(1<<5|1<<7|1<<8)
(1<<5|1<<6|1<<8)
 (1<<5|1<<6|1<<7)
     
     
     
     
     
1 1 0       LED4亮
     
1 0     LED3 亮 1
     
0    LED2亮 1 1
     
1 1 1
     
     
     
     
     
     
     
     
     
     
     
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
这样一个 LED 流水灯 就形成了啊。。。
 
 
 
 
                                                                       

(一)GPIO 编程实验 LED 流水灯控制的更多相关文章

  1. TQ210裸机编程(2)——LED流水灯

    两个文件start.S和led.c start.S .global _start                @声明一个全局的标号 _start:     bl main               ...

  2. 第一个FPGA工程—LED流水灯

    这一章我们来实现第一个FPGA工程-LED流水灯.我们将通过流水灯例程向大家介绍一次完整的FPGA开发流程,从新建工程,代码设计,综合实现,管脚约束,下载FPGA程序.掌握本章内容,大家就算正式的开始 ...

  3. S3C6410裸奔之旅——RVDS2.2编译、仿真、调试过程 LED流水灯---转的

    S3C6410裸奔之旅——RVDS2.2编译.仿真.调试过程 LED流水灯 (2012-10-13 23:56:30) 转载▼ 标签: s3c6410裸奔 ok6410 rvds2.2 rvds2.2 ...

  4. 使用CCS10新建TMS320F28335工程并闪烁LED(流水灯)程序

    学习TMS320F28335使用Code Composer Studio 10.4.0下载和安装本文不再叙述. 1. 新建工程 1.1选择目录新建工作区 1.2打开软件界面如下图所示: 1.3选择新建 ...

  5. 学习笔记——单片机简介 & 点亮LED & 流水灯 & 电路基础【更新Ing】

    视频地址:https://www.bilibili.com/video/av10765766 超详细!!!!!! 单片机内部三大资源 [资源:单片机可提供使用的东西] FLASH 可以重复擦写 断电后 ...

  6. ARM实验1 —— 流水灯实验

    实验内容: 编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现. 实验目的: 熟悉开发环境的使用. 掌握Exynos 4412处理器GPIO功能 ...

  7. cc2530单片机的第一次实验,流水灯

    第一个实验:控制流水灯 P1_0,P1_1,P0_4都连接在发光二极管的负极,所以,当这三个引脚为低电平,也就是0的时候,相应的发光二极管才会亮. 其实这里可以稍微的关注一下寄存器的地址,然后,编程的 ...

  8. [DM8168]Linux下控制GPIO实现LED流水灯

    首先加载驱动模块,应用程序通过调用API实现GPIO控制功能. 驱动程序: /* * fileName: led_gpio.c * just for LED GPIO test * GP1_14 -& ...

  9. LED流水灯(二)

    记住看汇编的时候是红在上面 黑色在下面 startup.s 程序 ; MDK跑马灯实验; PRESERVE8               // 字节对齐关键词 ,汇编有8位对齐的要求,要添加 AREA ...

随机推荐

  1. linux 限制root SSH登陆和限制su

    linux 限制root用户SSH登录:   1.修改SSHD服务的配置文件/etc/ssh/sshd_config    将#PermitRootLogin yes 改为PermitRootLogi ...

  2. 字典树 - A Poet Computer

    The ACM team is working on an AI project called (Eih Eye Three) that allows computers to write poems ...

  3. 【CodeVS2800】 送外卖 最短路+状压DP

    首先求出各点之间的最短路,floyed即可,注意是0-n. 然后考虑状压,f[i][j]表示状态为i时访问j点时的最短路和,1表示访问,0表示未访问,然后第j个点所在的位置就是(1<<j) ...

  4. C++STL 常用 函数 用法

    学完c++快一年了,感觉很有遗憾,因为一直没有感觉到c++的强大之处,当时最大的感觉就是这个东西的输入输出比C语言要简单好写. 后来我发现了qt,opencv,opengl,原来,c++好玩的狠. 在 ...

  5. java 编码

    编码和解码:无论是解码还是编码都是针对码表来讲的. 编码:将能看懂得字符变为我们看不懂的码值. 字符串--->字节数组 String类的getBytes() 方法进行编码,将字符串,转为对映的二 ...

  6. java解析json数据

    json数据一般分两种,对象和数组. json解析需要写异常处理. 解析json对象用的是JSONObject类,如 public void analys_jsonObject(String json ...

  7. 利用box-shadow绘图

    上篇博客提到过,box-shadow属性的本质是对形状的复制,那么如果我设置一个1*1px的i标签,利用box-shadow可以叠加的特性,给每一个1*1px的阴影赋上颜色,那么最后不就是一幅图片了么 ...

  8. android—-线性布局

    android五大布局之线性布局. 1.线性布局的特点:各个子元素彼此连接,中间不留空白 而今天我们要讲解的就是第一个布局,LinearLayout(线性布局),我们屏幕适配的使用 用的比较多的就是L ...

  9. php http头设置相关信息

    HTTP 状态码 状态码用来告诉HTTP客户端,HTTP服务器是否产生了预期的Response. HTTP/1.1中定义了5类状态码, 状态码由三位数字组成,第一个数字定义了响应的类别 1XX 提示信 ...

  10. 一般企业网站,电商可以完全可以水平拓展的lanmp系统架构

    本来不打算把所有的架构方案和基础技术写出,毕竟是吃饭的家伙事,拿这套东西去面试完全可以对付只做过中小网站的经验的开发面试人员,但是我也是从别人的博客和文章学习和实践出来的 如果你没有基础的linux一 ...