第7章 通用端口.pptVIP

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 通用端口

第7章 通用端口和中断设计 7.1 I/O口工作原理及其控制寄存器 一、 I/O口简介 S3C2410A共有117个多功能复用I/O口,分为8组: PORT A~PORT H。 PORT A可做作为功能口,输出口使用; PORT B~PORT H作输入输出口,功能口使用。 8组I/O口按照其位数的不同,可分为23位,11位,16位,8位: 1个23位的输出口(PORT A) 2个11位的I/O口(PORT B 和PORT H) 4个16位的I/O口(PORT C、PORT D、PORT E、PORT G) 1个8位的I/O口(PORT F) 二、I/O口控制寄存器 配置I/O口功能,需要通过设置一系列寄存器来实现,寄存器包括: 1、端口控制寄存器(GPACON~GPHCON) 功能:用于定义每个引脚的功能 说明:PORTA与PORTB~PORTH在功能选择方面有所不同 ★ GPACON每一位对应一根引脚(23根) ‘0’ :输出引脚 ‘1’:功能引脚,主要是用地址线 A端口主要用于功能口,作为地址线使用 ★ GPBCON~GPHCON:每两位控制一根引脚 “00”:输入,“01”:输出,“10”:功能引脚,”11”保留 2、端口数据寄存器(GPADAT~GPHDAT) 功能:存放读写引脚的数据 说明:每一个引脚对应寄存器中的一位 当引脚设为输入,读此寄存器可知相应引脚的电平状态,当引脚设为输出时,写此寄存器的相应位即可令引脚输出相应位。 3、端口上拉寄存器(GPBUP~GPHUP) 功能:用于控制每组端口的上拉电阻。 ‘1’:相应引脚无上拉电阻 ‘0’:相应引脚使用内部上拉电阻 三、 端口的程序设计(使用软件访问硬件) 1、端口程序设计 主要是实现对端口特殊寄存器的访问 例:如想设置GPGCON寄存器值为0汇编语言实现: GPGCON寄存器地址为:0 程序: ldr r0,=0 ldr r1,=0 str r0,[r1] 或者: GPGCON equ 0 ldr r0,=0 ldr r1,= GPGCON str r0,[r1] C语言如何实现对特殊寄存器的访问? 2、c语言中访问寄存器 主要使用volatile volatile关键字是嵌入式系统开发的一个重要特点。 volatile(可变的)这个关键字说明这变量可能会被意想不到地改变,这样编译器就不会去假设这个变量的值了。这种“意想不到地改变”,不是由程序去改变,而是由硬件去改变。 例如要访问0址 (1)转换为地址类型 (volatile unsigned *) 0 把0制转换成volatile unsigned long类型的地址p. 即地址的操作的范围是从0始的4个字节(long型).暂记为p。 (2)定义指针 #define A?? *p 即A为P指针指向位置的内容了。这里就是通过内存寻址访问到寄存器A,可以读/写操作 写操作:A=0 读操作:tmp=A 上例:设置GPGCON寄存器值为0 ( c语言) #define rGPGCON (*(volatile unsigned *)0 rGPGCON= 0 C程序: #define rGPBCON (*(volatile unsigned *)0 #define rGPBDAT (*(volatile unsigned *)0 int data; rGPBCON= rGPBCON 0xFFFFF00F; //设定PORTB为输入方式 data= rGPGDAT; //data存放按键的键值 例2:端口作为输出,点亮led1和led2两盏灯。 #define rGPGCON (*(volatile unsigned *)

文档评论(0)

yanpan1 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档