找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2659|回复: 8
打印 上一主题 下一主题
收起左侧

想问一下pic16f877怎么将RA0到RA5设置为输出,为什么给PORTA赋值老是赋值不了

[复制链接]
跳转到指定楼层
楼主
ID:598304 发表于 2019-12-30 21:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
想问一下pic16f877怎么将RA0到RA5设置为输出,为什么给PORTA赋值老是赋值不了
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:401564 发表于 2019-12-31 08:32 | 只看该作者
用C还是汇编,C没有用过,不知道是怎么编译的,所以就不知道语法上有没有区别
但汇编的用过,端口A要设定的控制寄存器是在BANK1的,这玩意操作和8051是有区别的
1,默认的汇编指令操作的对象是:BANK0
2,如果你要操作BANK1,则要先操作RP1和RP0位来选择BANK1,设定完之后又要重新改回BANK0操作
你可以参考PIC16F887的数据手册里的代码,它有中文版本的,这个型号几乎和877A是一样的,很多地方都是可以直接复制代码过来用的
回复

使用道具 举报

板凳
ID:466578 发表于 2019-12-31 11:03 | 只看该作者
TRISA=0x00;  /*A 口设置为输出*/
回复

使用道具 举报

地板
ID:652775 发表于 2019-12-31 11:03 | 只看该作者
你先查查复用功能的寄存器,是不是上电默认值不是普通IO口,另外,在下载设置配置中,也需要修改(RA4),应当配置成普通IO口
回复

使用道具 举报

5#
ID:130230 发表于 2019-12-31 16:13 | 只看该作者
需要设置两个寄存器:一个是端口方向寄存器,一个端口输出寄存器。
回复

使用道具 举报

6#
ID:598304 发表于 2019-12-31 20:34 | 只看该作者
Y_G_G 发表于 2019-12-31 08:32
用C还是汇编,C没有用过,不知道是怎么编译的,所以就不知道语法上有没有区别
但汇编的用过,端口A要设定的控 ...

嗯嗯,这个我知道,寄存器在不同的体里面,得转换体才能操作寄存器
回复

使用道具 举报

7#
ID:598304 发表于 2019-12-31 20:36 | 只看该作者
ar_fa 发表于 2019-12-31 11:03
你先查查复用功能的寄存器,是不是上电默认值不是普通IO口,另外,在下载设置配置中,也需要修改(RA4),应 ...

手册里面好像说上电默认A口是AD模拟量输入,然后RA4好像是漏极开路,得接个上拉电阻才能输出高电平
回复

使用道具 举报

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

TRISA默认值是xx11 1111
所以,它在不设定的情况下是作为"数据输入"端口的,如果你要正确的检测A端口的电平状态,就得加上拉电阻
但并不是直接是AD端口,要用作ADC的话还要另外设定的
你只要把TRISA清除为0就可以作为输出端口了,不用加上拉电阻,但是要加限流电阻
回复

使用道具 举报

9#
ID:598304 发表于 2020-1-2 11:17 | 只看该作者
Y_G_G 发表于 2020-1-2 08:26
TRISA默认值是xx11 1111
所以,它在不设定的情况下是作为"数据输入"端口的,如果你要正确的检测A端口的电 ...

行,我知道了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表