除了 ADRESL=0;
ADRESH=0;
以外还要关掉什么??
怎样将PIC单片机的所有管教设为IO端口?
答案:2 悬赏:0 手机版
解决时间 2021-02-20 06:03
- 提问者网友:像風在裏
- 2021-02-19 15:51
最佳答案
- 五星知识达人网友:舊物识亽
- 2021-02-19 16:29
首先不是你说的“ADRESL=0;ADRESH=0;”不是设置IO口,这二个寄存器只是AD转换结果寄存器!与IO设置无关。
不同型号的PIC单片机设置有所不同。
如果没有AD功能的引脚,它本身就是IO口,无须设置,默认是IO的输入,如果要设置为输出,把相应的TRISx位设置为0就是输出。
如果有AD功能的引脚,如PIC16F887,则要对ANSEL和ANSELH寄存器设置,把相应的位设置为0就是IO脚,不同型号的PIC16系列单片机,这一点是不同的。
以上是我一个字一个字打出来的,不是从网络拷贝的。
不同型号的PIC单片机设置有所不同。
如果没有AD功能的引脚,它本身就是IO口,无须设置,默认是IO的输入,如果要设置为输出,把相应的TRISx位设置为0就是输出。
如果有AD功能的引脚,如PIC16F887,则要对ANSEL和ANSELH寄存器设置,把相应的位设置为0就是IO脚,不同型号的PIC16系列单片机,这一点是不同的。
以上是我一个字一个字打出来的,不是从网络拷贝的。
全部回答
- 1楼网友:山河有幸埋战骨
- 2021-02-19 18:05
在pic18系列里,port寄存器不是用来做输出的,lat才是用来做输出的。如latb=0xff;
port寄存器是用来读取io的状态,而lat其实是读-修改-写操作。
如果对port寄存器进行写操作,只是会将你要写的数据放到io口的锁存器中,但并不会发送到io上。而写lat则是先读锁存器的数据,然后像用port操作那样将其修改写到io口的锁存器中,最后发送到io引脚上。
其实,数据手册上在io口那一章的开始就明确指出:
“每个端口有三个与其相关的寄存器”
“tris寄存器(数据方向)”
“port寄存器(读取引脚的电平)”
“lat寄存器(输出锁存)”
玩pic,只要你仔细阅读对应的数据手册,你不需要看其他书籍都能弄懂。而且大部分都有官方中文版。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯