第四掌_STM8单片机触角—IO口应用.docVIP

  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文档。上传文档
查看更多
STM8单片机的触角——I/O口的应用 玩转 I/O口必备的“五器” STM8S208RB单片机的I/O口分布情况如 REF _Ref304367912 \h 图41所示 图 STYLEREF 1 \s 4 SEQ 图 \* ARABIC \s 1 1 STM8S208RB管脚分布图 从 REF _Ref304367912 \h 图41中我们可以看到,STM8S208RB共有64个引脚,其中52个通用输入/输出口(GPIO),它们分别是PA1~PA6、PB0~PB7、PC1~PC7、PD0~PD7、PE0~PE7、PF0、PF3~PF7、PG0~PG7、PI0。其中,每个端口都有一个输出数据寄存器(ODR),一个输入引脚寄存器(IDR),一个数据方向寄存器(DDR),一个控制寄存器1(CR1),一个控制寄存器2(CR2),这就是STM8单片机I/O的“五器”。“五器”到手了,该如何使用,如 REF _Ref304379880 \h 表41。 配置模式 数据方向寄存器 DDR 控制寄存器1 CR1 控制寄存器2 CR2 配置模式 输入 0 0 0 悬浮输入 0 1 0 上拉输入 0 0 1 中断悬浮输入 0 1 1 中断上拉输入 输出 1 0 0 开漏输出 1 1 0 推挽输出 1 x 1 输出(最快速度10MHz) x x x 真正的开漏输出(特定引脚) 表 STYLEREF 1 \s 4 SEQ 表 \* ARABIC \s 1 1 I/O口配置表 由 REF _Ref304379880 \h 表41中看出,当Px_DDRn为“1”,Pxn配置为输出,否则为输入。 当配置为输入时,若Px_CR1为“1”,上拉电阻使能,否则为悬浮输入。而Px_CR2为“1”时,开启当前I/O口的外部中断功能,为“0”时关闭外部中断功能。若想读取该I/O引脚上的数据,只需读取相应的Px_IDR寄存器即可。 当配置为输出时,若Px_CR1为“1”,Pxn配置为推挽输出,否则为开漏输出。而Px_CR2为“1”时,当前I/O口的最大输出速率为10MHz,否则最大输出速率为2MHz。想要某个I/O口输出高电平,则向Px_ODR中写入0xff,否则写入0x00; 注:针对STM8S208RB而言,x为A、B、C、D、E、F、G、I;n为0~7。 下面的例子演示了如何设置PB口低四位为推挽输出,最快速度10MHz,并输出高电平,高四位为上拉输入。 unsigned char i; … /*设置输出高电平*/ PB_ODR = (1 3) | (1 2) | (1 1) | (1 0); /*设置端口方向*/ PB_DDR = (1 3) | (1 2) | (1 1) | (1 0); /*设置推挽输出和定义上拉电阻*/ PB_CR1 = 0xff; /*设置端口最大速度和关闭中断*/ PB_CR2 = (1 3) | (1 2) | (1 1) | (1 0); /*读取端口输入数据*/ i = PB_IDR 0xf0; … 悬浮与上拉 悬浮输入与上拉输入是两种输入方式,不同之处在于上拉输入时,引脚内部有个上拉电阻。当引脚悬空时,上拉输入的引脚电平是确定的,即高电平;而悬浮输入则不同,它的电平时不确定的,即使外部的一个很小的信号都会使其发生改变。 上拉输入最典型的应用就是外部按键,当按键未按下时,我们要保证它是高电平,当按键按下时才被拉低;而悬浮输入的典型应用就是模数转换,外部的任何一个小信号都要经过A/D采样转换为数字信号。 开漏与推挽 开漏输出 说开漏输出之前,我们先来看看什么是集电极开路输出。 图 STYLEREF 1 \s 4 SEQ 图 \* ARABIC \s 1 2 集电极开路 集电极开路输出的结构图如 REF _Ref304384915 \h 图42所示,三极管Q1的集电极就是单片机的I/O口,什么都不接,所以叫做集电极开路。当控制端输入为“0”时,三极管Q2截止,及集电极与发射机之间断开,所以5V电压通过R1接到Q1的基级,Q1导通,即相当于管脚直接接地;当控制端输入“1”时,三极管Q2导通,Q1截止,输出引脚与地之间断开。我们将 REF _Ref304384915 \h 图42简化为 REF _Ref304385731 \h 图43所示。 图 STYLEREF 1 \s 4 SEQ 图 \* ARABIC \s 1 3 集电极开路简化图 REF _Ref304385731 \h 图43中的开关受软件控制,“1”时断开,“0”时闭合。很明显可以看出,当开关闭合时,输出直接接地,所以输出低电平。而当开关断开时,则输出端悬空,即引脚为高阻态。这时电平状态未知,如果后面一个电阻负载(即使很

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档