[仿真] PIC16F877A单片机小程序调试无法实现引脚基本功能 求大神指导

[复制链接]
 楼主| 发表于 2014-11-2 12:09 | 显示全部楼层 |阅读模式
第一次接触PIC单片机,PIC16F877A,需要基于它做一个CAN通信。我先学习一个PIC16F877A的最小系统板,用一个小程序去调试它,程序如下。
#include        <pic.h>
main()
{
        TRISD=0X00;/*RD全部设置为输出*/
while(1);
        {
                PORTD=0XF0                /*RD高四位输出高电平,低四位输出低电平*/

}
}

程序成功编译并下载进去后,用万用表检测,RD八个引脚全部为低电平。现在不知道哪里出了问题。求各路大神指导下!万分感谢!!!
发表于 2014-11-2 12:33 | 显示全部楼层
在排除设置方面及后级电路的问题后,应该是 读 写 修改的问题了
 楼主| 发表于 2014-11-2 13:25 | 显示全部楼层
那这个怎么处理呢 我是刚学这个 很快就要交了 现在卡在这了 试
 楼主| 发表于 2014-11-2 13:26 | 显示全部楼层
zhaoyu2005 发表于 2014-11-2 12:33
在排除设置方面及后级电路的问题后,应该是 读 写 修改的问题了

求指导
发表于 2014-11-2 13:29 | 显示全部楼层
问问问答答答哒 发表于 2014-11-2 13:26
求指导

网上有关于这个问题的详细说明,最简单先试试单口输出高低电平看正常不,如果过单口不正常,那就是其他问题,如果单口正常,那应该就是这个问题了
 楼主| 发表于 2014-11-2 14:40 | 显示全部楼层
zhaoyu2005 发表于 2014-11-2 13:29
网上有关于这个问题的详细说明,最简单先试试单口输出高低电平看正常不,如果过单口不正常,那就是其他问 ...

我这个程序就是来测试IO口高低电平的 但是不能够正常输出
发表于 2014-11-2 16:03 | 显示全部楼层
注意两点,模拟输入口要配置成数字方式,最好关掉LVP

参考下面的程序:

//Config for 16F887
__CONFIG(HS & WDTDIS & PWRTEN & MCLREN & BORDIS & IESODIS & FCMDIS & LVPDIS & DEBUGEN);
__CONFIG(BORV21); //BORV40 will not work

void mcu_init()
{
        ADCON0 = 0;                               
        ADCON1 = 0;                                       
        ANSEL  = 0;       
        ANSELH = 0;
        RBPU = 0;
        GIE = 0;
       
        TRISA = defTrisA;        PORTA = defPortA;
        TRISB = defTrisB;        PORTB = defPortB;         WPUB = defWPUB;
        TRISC = defTrisC;        PORTC = defPortC;
        TRISD = defTrisD;        PORTD = defPortD;
        TRISE = defTrisE;        PORTE = defPortE;
}       

main()
{
        mcu_init();
        io_task_init();
       
        while(1)
        {
                comm_task();
                io_task_proc();
        }
}

发表于 2014-11-2 19:27 | 显示全部楼层
楼主,你差了一个东西,就是定义配置字,这个型号的单片机必须定义配置字才能正常运行。
比如,在#include“pic.h”下面加上
__CONFIG(XT&WDTDIS&LVPDIS); //定义配置字,晶振类型:XT,关闭看门狗,禁止低电压编程
发表于 2014-11-3 00:00 来自手机 | 显示全部楼层
印象中pic复位,端口初始化为模拟端口,你要软件改为数字端口。移到PIC版块去吧,能更快解决问题。
发表于 2014-11-3 10:53 | 显示全部楼层
1.不要输出固定电平,改成^=0xFF来看。
2.PIC要配置配置字,不然可能不工作。
3.注意这些端口如果有模拟口功能要关。
 楼主| 发表于 2014-11-4 15:54 | 显示全部楼层
NE5532 发表于 2014-11-3 10:53
1.不要输出固定电平,改成^=0xFF来看。
2.PIC要配置配置字,不然可能不工作。
3.注意这些端口如果有模拟口 ...

问题已解决 配置字的问题 我是初学者 感觉这个论坛挺好的 大家一起解决问题 相互帮助 万分感谢!
 楼主| 发表于 2014-11-4 15:55 | 显示全部楼层
不亦心 发表于 2014-11-3 00:00
印象中pic复位,端口初始化为模拟端口,你要软件改为数字端口。移到PIC版块去吧,能更快解决问题。 ...

问题已解决 配置字的问题 我是初学者 感觉这个论坛挺好的 大家一起解决问题 相互帮助 万分感谢!
 楼主| 发表于 2014-11-4 15:55 | 显示全部楼层
看见未来 发表于 2014-11-2 19:27
楼主,你差了一个东西,就是定义配置字,这个型号的单片机必须定义配置字才能正常运行。
比如,在#include ...

就是你说的这个问题 万分感谢!!!
 楼主| 发表于 2014-11-4 15:56 | 显示全部楼层
ddb_21ic 发表于 2014-11-2 16:03
注意两点,模拟输入口要配置成数字方式,最好关掉LVP

参考下面的程序:

正是配置字的问题 万分感谢:handshake
 楼主| 发表于 2014-11-4 15:57 | 显示全部楼层
zhaoyu2005 发表于 2014-11-2 13:29
网上有关于这个问题的详细说明,最简单先试试单口输出高低电平看正常不,如果过单口不正常,那就是其他问 ...

问题已经解决了 谢谢你对我的指导!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

9

帖子

0

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