打印
[PIC®/AVR®/dsPIC®产品]

【求教】16F877A 初始化PORTA时设为数字口,但无法赋值

[复制链接]
2613|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
caoyuan86|  楼主 | 2013-12-30 01:48 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 caoyuan86 于 2013-12-30 08:38 编辑

void key_init()
{
        STATUSbits.RP0=0;  
        STATUSbits.RP1=0;
        PORTA=0;
        STATUSbits.RP0=1;
        STATUSbits.RP1=0;
        ADCON1=0x07;
        CMCON=0x07;
        TRISA=0XFF;
}

void main()
{
        key_init();
        PORTA=0xFF;
        while(1);
}

在仿真时(MPLAB SIM)运行到while(1)步骤时查看PORT0的值时为0x00。
按照手册不设置CMCON=0x07时也为0x00


改变TRISA的值,只要方向为输出的引脚就可以正确赋值,但是我需要引脚输入,应该怎么做?

修改TRISA=0;时
观察PORTA=0x3F


(PICC 9.83/MPLAB 8.83/Win 7 32位)

****************************************************************************
找到了,数据手册:
PORTA Data Latch when written: PORTA pins when read
写数据的时候是写在Latch,只有当TRIS为输出的时候才输出到引脚上。
而读的时候是直接读引脚上的值。造成了不同。

图也上传了,与大家分享。

哪里有不对的,希望得到大家指正,谢谢!
****************************************************************************

请大家帮忙,谢谢!




沙发
Auto_lee| | 2013-12-30 13:50 | 只看该作者
TRISA为什么要么是FF就是00?不是按照你的需求分配输入输出?你全部置输出结果读出来是0x3f,有可能是被强下拉了。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
caoyuan86 + 1 神马都是浮云
板凳
ayb_ice| | 2013-12-30 14:38 | 只看该作者
“TRISA=0XFF;”

这不输入吗,PIC这点与其它MCU不同的

使用特权

评论回复
地板
philzhao| | 2013-12-30 16:05 | 只看该作者
你看一下A口有几个脚

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
caoyuan86 + 1 很给力!
5
yewuyi| | 2013-12-30 17:06 | 只看该作者
A口上有复用模块,首先要关闭掉。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
caoyuan86 + 1 很给力!
6
caoyuan86|  楼主 | 2013-12-30 18:34 | 只看该作者
嗯嗯,谢谢楼上大家,问题原因早上已经找到了。

其实是因为在设置成输入以后,不能通过给PORTA赋值来改变PORTA寄存器的数值。

谢谢啦

使用特权

评论回复
7
caoyuan86|  楼主 | 2013-12-30 18:36 | 只看该作者
Auto_lee 发表于 2013-12-30 13:50
TRISA为什么要么是FF就是00?不是按照你的需求分配输入输出?你全部置输出结果读出来是0x3f,有可能是被强 ...

嗯嗯A口有五个脚,我想全部输入,图省事儿就FF了,谢谢啦~

使用特权

评论回复
8
caoyuan86|  楼主 | 2013-12-30 18:37 | 只看该作者
yewuyi 发表于 2013-12-30 17:06
A口上有复用模块,首先要关闭掉。

谢谢老大,下午上机的时候测试OK了~

使用特权

评论回复
9
caoyuan86|  楼主 | 2013-12-30 18:38 | 只看该作者
ayb_ice 发表于 2013-12-30 14:38
“TRISA=0XFF;”

这不输入吗,PIC这点与其它MCU不同的

嗯嗯,输入以后我想软件改变PORTA的值,我想错了~
谢谢啦~已经知道怎么做了!

使用特权

评论回复
10
caoyuan86|  楼主 | 2013-12-30 18:40 | 只看该作者
philzhao 发表于 2013-12-30 16:05
你看一下A口有几个脚

嗯嗯,问题已经找到了,谢谢啦!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

7

帖子

0

粉丝