本帖最后由 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为输出的时候才输出到引脚上。
而读的时候是直接读引脚上的值。造成了不同。
图也上传了,与大家分享。
哪里有不对的,希望得到大家指正,谢谢!
****************************************************************************
请大家帮忙,谢谢!
|