MCU 中输入/输出口的使用

发布时间:2010-9-13 13:55    发布者:techshare
关键词: MCU , 输出 , 输入
简介:

在HT49C30-1/HT49R30A-1 中有8 个双向的输入/输出口(PA 口,8 位),6 个输入口(PB 口);HT49C50-1/HT49R50A-1 中有12 个双向的输入/输出口(PA 口,8 位;PC 口,4 位),8 个输入口(PB 口);HT49C70-1/HT49R70A-1 中有16 个双向的输入/输出口(PA 口,8 位;PC 口,8 位),8 个输入口(PB 口)PA、PB、PC 分别对应RAM 中地址[12H] 、[14H] 、[16H] 。掩膜时可选择PA、PC 口的结构(NMOS 或CMOS),及该口是否具有上拉电阻(具体介绍看使用手册)。

若PA、PC 口结构NMOS 时,在读取数据之前,必须向相关位写“1”以关闭场效应管NMOS 使其作为一个输入口。也就是说,要先执行指令SET [m].i 以关闭相关的NMOS,然后才能用MOV A,[m] 来读取稳定的数据。



图1 输入输出口  

一些指令称为读-修改-写指令,该指令先读取引脚的值,而且是将八位引脚的状态全部读取,进行相应的位操作后,重写回锁存器中。这样,有些位的锁存器会因为该操作而改变原来的状态,致使再次输出时产生错误。例如,指令“SET [m].i”、“CLR [m].i”、“CPL[m]”、“CPLA[m] ”就是先将数据读取至CPU 中,然后进行定义的操作(位操作)后,再将结果写回锁存器或是累加器中。所以口在输入状态时执行此类指令,可能会使内部锁存的状态改变,需要加以注意。

输入输出口应用程序举例

1.掩膜选择:pa.0"pa.3 选择CMOS 结构,带上拉电阻;
硬件要求:pa.0"pa.3 接LED;pa.4"pa.7 接开关

电路图



图2 电路

程序说明:

如上图所示,pa.0"pa.3 作为输出,pa.4"pa.7 作为输入,利用程序将pa.4"pa.7 口上的开关数读入单片机,经过高4 位与低4 位互换,再向pa.0"pa.3 输出pa.4"pa.7 的开关状态,使LED 的发光次序与pa.4"pa.7 上的开关设置相符。  



2.掩膜选择:PC口选为CMOS并带上拉电阻

硬件连接:PA.7与PA.0口相连接程序说明:本程序的目的要说明在执行读-修改-写指令时发生的特殊情况。




程序说明:

执行以上程序,我们会发现PA.0和PA.7引脚的值始终为0,但实际上PA.0和PA.7 内部锁存器的值是变化的,参见程序注释。

如果用单步调试,我们就能观察到“Read—Modify—Write”的过程。当程序执行完(2)时,将连接PA.0和PA.7的导线断开,则执行完下一条语句后PA.0引脚的值会变为1。

加上(3)语句,如果在执行完(2)时断开连接,则最后结果为PA.0=1、PA.7=1;如果在执行完(3)时断开连接,则最后结果为PA.0=0、Pa.7=1。在使用过程中因注意以上区别所以某个口当为NMOS结构,要作为输入口时,一定要先向该口写“1”,再读入该口的输入状态,

并且读口状态的操作一定要紧接在写“1”操作之后,避免因执行“Read—Modify—Write”指令而发生错误。
本文地址:https://www.eechina.com/thread-26445-1-1.html     【打印本页】

本站部分文章为转载或网友发布,目的在于传递和分享信息,并不代表本网赞同其观点和对其真实性负责;文章版权归原作者及原出处所有,如涉及作品内容、版权和其它问题,我们将根据著作权人的要求,第一时间更正或删除。
您需要登录后才可以发表评论 登录 | 立即注册

厂商推荐

  • Microchip视频专区
  • Dev Tool Bits——使用MPLAB® Discover浏览资源
  • Dev Tool Bits——使用条件软件断点宏来节省时间和空间
  • Dev Tool Bits——使用DVRT协议查看项目中的数据
  • Dev Tool Bits——使用MPLAB® Data Visualizer进行功率监视
  • 贸泽电子(Mouser)专区

相关在线工具

相关视频

关于我们  -  服务条款  -  使用指南  -  站点地图  -  友情链接  -  联系我们
电子工程网 © 版权所有   京ICP备16069177号 | 京公网安备11010502021702
快速回复 返回顶部 返回列表