您的位置 首页 IC

PIC16C5X的I/O口

PIC16C5X系列单片机所有IO口都可被独立定义为输入或输出口。参见图1。作输入口时,这些端口不锁存,外部输入信号必须保持到读指令读入为止。

PIC16C5X系列单片机一切I/O口都可被独立界说为输入或输出口。参见图1。作输进口时,这些端口不锁存,外部输入信号有必要坚持到读指令读入停止。输出信号被锁存并坚持不变,直到被改动停止。要界说一个口为输出,可直接设定对应操控位为“0”,某位端口用于输入,则相应TRIS位须为“1”。

当“TRIS f”送入“1”时,Q1、Q2都截止,I/O脚成高阻状况,此刻为输入态。当履行指令如MOVF 6,W,把当时I/O口的状况读入数据总线。当“TRIS f”送出“0”时,Q1、Q2的导通状况取决于数据锁存器Q(非)的状况。当写入数据为“1”时,Q(非)输出“0”,Q1导通,Q2,截止,I/O口输出高电平。当数据为“0”时,Q(非)输出“1”,Q2导通,Q1截止,I/O口输出低电平。不管I/O脚置成输入或输出,履行指令(如MOVF 6,W)都是将I/O端口的状况读入数据总线。

一些指令先读后写,如BCF、BSF指令整个端口状况读入CPU,履行位操作后再将成果写回去掩盖本来的内容,即输出成果放在I/O口的数据锁存器上,这点程序员需加以留意。特别当一个端口中一条或几条引脚一瞬间作输入,一瞬间又作输出而又履行BCF、BSF指令时。举例说明:BSF 6,5指令的意图是要把B口的第5方位为高电平“1”,履行这条指令时,先把整个B口当时的状况读入CPU,把第5方位成“1”后再把成果(8个位)从头输出到B口的数据锁存锁存器。假如B口的某位用作双向I/O口,且它在这时被界说为输入态,则在这条I/O脚上呈现的输入信号被再写入这个I/O脚数据锁存器,然后掩盖本来的内容。假如这个I/O脚保存为输入方法,不会呈现问题。但假如稍后这个I/O脚改为输出态,则数据锁存器bit1端内容或许和从前的不同了。

I/O输出电路为CMOS互补推挽电路,有很强的带负载才能,高电平输出时具有20mA的拉电流,低电平输出时答应25mA的灌电流。这种特性可直接用于驱动LED显示器,为了改动某各引脚上的电平,这个引脚有效地输出“0”或“1”时,不应该一起又遭到外部设备的驱动,因为由此引起的高输出电流或许损坏芯片。

I/O操作指令周期的最终写I/O口,假如为读,数据须在指令周期开端前准备好。关于同一个口履行先写后读,有必要当心。指令序列应满足要求:鄙人一条读I/O数据的指令履行之前,应使引脚的电平安稳,不然引脚的从前状况会被读入CPU,而不是新状况。主张最好用NOP指令或其他非I/O操作指令把读写指令离隔。

电磁搅扰环境恶劣的状况下,如键盘处于静电放电ESD(Electronic Static Discharge)的环境中,因为电磁噪声搅扰,寄存器的内容将受影响。若I/O操控寄存器的内容产生改动,即便一只引脚从输入变成输出状况,程序仍然持续运转。此刻程序从这一引脚读取数据,成果或许是过错的。面临这种状况,咱们主张在必定时刻距离内需从头界说I/O口的输入和输出状况。假如程序安排上答应,最好是每次读写数据时设置I/O操控寄存器,尽管关于大多数时分不需要这样做,仅仅提示程序员留意电磁噪声搅扰问题。

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/bandaoti/254162.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部