单片机技术与应用电子教案 1.端口寄存器及其配置.docVIP

单片机技术与应用电子教案 1.端口寄存器及其配置.doc

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

PAGE

PAGE1

课时教案

课程:单片机技术与应用-基于CC2530的ZigBee技术开发与应用

课题

I/O端口寄存器及其配置

课时

2

教学

目标

知识:

1.掌握I/O端口寄存器及其配置方法

技能:

1.会配置I/O端口寄存器

素质:

1.具备自主学习能力及知识总结分析能力

2.具备严谨细致的工作态度

重点

I/O端口寄存器及其配置

难点

I/O端口寄存器的配置

教法

做中教做中学学训结合

学法

自主探究

教具

试验

多媒体、PPT课件

教学过程

问题设计及知识点

师生互动设计

(问题与任务)

I/O端口寄存器及其配置

一、CC2530单片机I/O端口寄存器

CC2530单片机I/O端口相关的常用寄存器有以下4个(x表示端口号0~2):

Px:数据端口,用来控制端口的输出或获取端口的输入。

PxSEL:端口功能选择,设置端口是通用I/O(GPIO)还是外设I/O。

PxDIR:作为通用I/O时,用来设置数据的传输方向。

PxINP:作为通用I/O时,选择输入模式是上拉、下拉还是三态。

1.Px数据端口

用来控制端口的输出或获取端口的输入。

2.PxSEL功能选择寄存器

寄存器PxSEL(其中x表示端口号0~2,如要配置P1_1端口,则选择P1SEL。),可用于将端口中的每个引脚配置为通用I/O引脚或外设I/O引脚,可位寻址。默认情况下,复位后,所有数字输入/输出引脚都配置为通用输入引脚。

注意:

(1)复位之后,寄存器的PxSEL所有位为0,即默认为GPIO;

(2)P2端口中,P2_4、P2_3、P2_0三个引脚具有GPIO或外设I/O双重功能,

P2_2和P2_1除具有Debug功能外,仅有GPIO功能,无外设I/O功能。

3.PxDIR方向选择

当作为通用I/O时,用来设置数据的传输方向,见表1-1-3所示。

注意:

(1)复位之后,寄存器PxDIR所有位为0,即默认为输入;

(2)P2端口仅有P2_4~P2_0五个引脚可以设置为输入或输出。

二、CC2530单片机I/O端口寄存器的配置

1.对寄存器的某些位置0而不影响其他位

思考:寄存器P1SEL的当前值是0x6c,现需要将该寄存器的第1位、第3位和第5位设置为0,同时不能影响该寄存器其他位的值,那么,在C语言中应该怎么编写代码呢?

使用“=~”将寄存器指定位清0,同时不影响其他位的值。

正确写法:P1SEL?=?~0x2A;

因为:逻辑“与”操作的特点是,该位有0结果就为0,若为1则保存原来值不变。

分析:首先将字节“00000000”中要操作的第1位、第3位和第5位设置为1,即0010?1010,再将该数值取反,即1101?0101,也就是~0x2A。最后将该值与寄存器P1SEL中的值01101100“相与”,那么有0的位,即1、3、5位将被置0,其余的位会保持原来的值不变。

则经过“P1SEL?=?~0x2A;”后,即

011011001101?0101?=?0100?0100,就将1、3、5位置0了,而其他位不变。

总结:对寄存器的某些位置0时,设置方法是将字节?“00000000”?中要操作的位设置为1,采用逻辑运算符“=~”。

2.对寄存器的某些位置1而不影响其他位

思考:寄存器P1SEL的当前值是0x6c,现需要将该寄存器的第1位、第4位和第5位设置为1,同时不能影响该寄存器其他位的值,那么,在C语言中应该怎么编写代码呢?

使用“|=”将寄存器指定位置1,同时不影响其他位的值。

正确写法:P1SEL?|=?0x32;

因为:逻辑“或”操作的特点是,该位有1结果就为1,若为0则保存原来值不变。

首先将字节“00000000?”中要操作的第1位、第4位和第5位设置为1,即0011?0010,也就是0x32。再将该值与寄存器P1SEL“相或”,则有1的位,即1、4、5位将被设置为1,其余的位会保持原来的值不变。

由上述可知:因为P1SEL的当前值为0x6c,即01101100,

则经过“P1SEL?|=?0x32;”后,即

01101100?||?0011?0010?=?0111?1110,就将1、4、5位置1了,而其他位不变。

总结:对寄存器的某些位置1时,设置方法是将字节?“00000000”?中要操作的位设置为1,采用逻辑运算符“|=”。

看书总结CC2530单片机I/O端口常用寄存器

教师引导学生理解常用端口寄存器功能。

学生小组合作强化训练端口寄存器的功能。

教师引导学生思考分析

新知应用

1.将P0端口的P0_1位方向设置为输入,P0_3和P0_6位方向设置为输出。

2

文档评论(0)

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

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

1亿VIP精品文档

相关文档