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