标题: 想问一下pic16f877怎么将RA0到RA5设置为输出,为什么给PORTA赋值老是赋值不了 [打印本页]

作者: 傲娇的12351    时间: 2019-12-30 21:49
标题: 想问一下pic16f877怎么将RA0到RA5设置为输出,为什么给PORTA赋值老是赋值不了
想问一下pic16f877怎么将RA0到RA5设置为输出,为什么给PORTA赋值老是赋值不了

作者: Y_G_G    时间: 2019-12-31 08:32
用C还是汇编,C没有用过,不知道是怎么编译的,所以就不知道语法上有没有区别
但汇编的用过,端口A要设定的控制寄存器是在BANK1的,这玩意操作和8051是有区别的
1,默认的汇编指令操作的对象是:BANK0
2,如果你要操作BANK1,则要先操作RP1和RP0位来选择BANK1,设定完之后又要重新改回BANK0操作
你可以参考PIC16F887的数据手册里的代码,它有中文版本的,这个型号几乎和877A是一样的,很多地方都是可以直接复制代码过来用的
作者: 佛云    时间: 2019-12-31 11:03
TRISA=0x00;  /*A 口设置为输出*/
作者: ar_fa    时间: 2019-12-31 11:03
你先查查复用功能的寄存器,是不是上电默认值不是普通IO口,另外,在下载设置配置中,也需要修改(RA4),应当配置成普通IO口
作者: jizhongbiao    时间: 2019-12-31 16:13
需要设置两个寄存器:一个是端口方向寄存器,一个端口输出寄存器。
作者: 傲娇的12351    时间: 2019-12-31 20:34
Y_G_G 发表于 2019-12-31 08:32
用C还是汇编,C没有用过,不知道是怎么编译的,所以就不知道语法上有没有区别
但汇编的用过,端口A要设定的控 ...

嗯嗯,这个我知道,寄存器在不同的体里面,得转换体才能操作寄存器
作者: 傲娇的12351    时间: 2019-12-31 20:36
ar_fa 发表于 2019-12-31 11:03
你先查查复用功能的寄存器,是不是上电默认值不是普通IO口,另外,在下载设置配置中,也需要修改(RA4),应 ...

手册里面好像说上电默认A口是AD模拟量输入,然后RA4好像是漏极开路,得接个上拉电阻才能输出高电平
作者: Y_G_G    时间: 2020-1-2 08:26
傲娇的兽兽! 发表于 2019-12-31 20:36
手册里面好像说上电默认A口是AD模拟量输入,然后RA4好像是漏极开路,得接个上拉电阻才能输出高电平

TRISA默认值是xx11 1111
所以,它在不设定的情况下是作为"数据输入"端口的,如果你要正确的检测A端口的电平状态,就得加上拉电阻
但并不是直接是AD端口,要用作ADC的话还要另外设定的
你只要把TRISA清除为0就可以作为输出端口了,不用加上拉电阻,但是要加限流电阻
作者: 傲娇的12351    时间: 2020-1-2 11:17
Y_G_G 发表于 2020-1-2 08:26
TRISA默认值是xx11 1111
所以,它在不设定的情况下是作为"数据输入"端口的,如果你要正确的检测A端口的电 ...

行,我知道了




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1