打印
[仿真]

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

[复制链接]
2738|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
第一次接触PIC单片机,PIC16F877A,需要基于它做一个CAN通信。我先学习一个PIC16F877A的最小系统板,用一个小程序去调试它,程序如下。
#include        <pic.h>
main()
{
        TRISD=0X00;/*RD全部设置为输出*/
while(1);
        {
                PORTD=0XF0                /*RD高四位输出高电平,低四位输出低电平*/

}
}

程序成功编译并下载进去后,用万用表检测,RD八个引脚全部为低电平。现在不知道哪里出了问题。求各路大神指导下!万分感谢!!!

相关帖子

沙发
zhaoyu2005| | 2014-11-2 12:33 | 只看该作者
在排除设置方面及后级电路的问题后,应该是 读 写 修改的问题了

使用特权

评论回复
板凳
问问问答答答哒|  楼主 | 2014-11-2 13:25 | 只看该作者
那这个怎么处理呢 我是刚学这个 很快就要交了 现在卡在这了 试

使用特权

评论回复
地板
问问问答答答哒|  楼主 | 2014-11-2 13:26 | 只看该作者
zhaoyu2005 发表于 2014-11-2 12:33
在排除设置方面及后级电路的问题后,应该是 读 写 修改的问题了

求指导

使用特权

评论回复
5
zhaoyu2005| | 2014-11-2 13:29 | 只看该作者
问问问答答答哒 发表于 2014-11-2 13:26
求指导

网上有关于这个问题的详细说明,最简单先试试单口输出高低电平看正常不,如果过单口不正常,那就是其他问题,如果单口正常,那应该就是这个问题了

使用特权

评论回复
6
问问问答答答哒|  楼主 | 2014-11-2 14:40 | 只看该作者
zhaoyu2005 发表于 2014-11-2 13:29
网上有关于这个问题的详细说明,最简单先试试单口输出高低电平看正常不,如果过单口不正常,那就是其他问 ...

我这个程序就是来测试IO口高低电平的 但是不能够正常输出

使用特权

评论回复
7
ddb_21ic| | 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();
        }
}

使用特权

评论回复
8
看见未来| | 2014-11-2 19:27 | 只看该作者
楼主,你差了一个东西,就是定义配置字,这个型号的单片机必须定义配置字才能正常运行。
比如,在#include“pic.h”下面加上
__CONFIG(XT&WDTDIS&LVPDIS); //定义配置字,晶振类型:XT,关闭看门狗,禁止低电压编程

使用特权

评论回复
9
不亦心| | 2014-11-3 00:00 | 只看该作者
印象中pic复位,端口初始化为模拟端口,你要软件改为数字端口。移到PIC版块去吧,能更快解决问题。

使用特权

评论回复
10
NE5532| | 2014-11-3 10:53 | 只看该作者
1.不要输出固定电平,改成^=0xFF来看。
2.PIC要配置配置字,不然可能不工作。
3.注意这些端口如果有模拟口功能要关。

使用特权

评论回复
11
问问问答答答哒|  楼主 | 2014-11-4 15:54 | 只看该作者
NE5532 发表于 2014-11-3 10:53
1.不要输出固定电平,改成^=0xFF来看。
2.PIC要配置配置字,不然可能不工作。
3.注意这些端口如果有模拟口 ...

问题已解决 配置字的问题 我是初学者 感觉这个论坛挺好的 大家一起解决问题 相互帮助 万分感谢!

使用特权

评论回复
12
问问问答答答哒|  楼主 | 2014-11-4 15:55 | 只看该作者
不亦心 发表于 2014-11-3 00:00
印象中pic复位,端口初始化为模拟端口,你要软件改为数字端口。移到PIC版块去吧,能更快解决问题。 ...

问题已解决 配置字的问题 我是初学者 感觉这个论坛挺好的 大家一起解决问题 相互帮助 万分感谢!

使用特权

评论回复
13
问问问答答答哒|  楼主 | 2014-11-4 15:55 | 只看该作者
看见未来 发表于 2014-11-2 19:27
楼主,你差了一个东西,就是定义配置字,这个型号的单片机必须定义配置字才能正常运行。
比如,在#include ...

就是你说的这个问题 万分感谢!!!

使用特权

评论回复
14
问问问答答答哒|  楼主 | 2014-11-4 15:56 | 只看该作者
ddb_21ic 发表于 2014-11-2 16:03
注意两点,模拟输入口要配置成数字方式,最好关掉LVP

参考下面的程序:

正是配置字的问题 万分感谢:handshake

使用特权

评论回复
15
问问问答答答哒|  楼主 | 2014-11-4 15:57 | 只看该作者
zhaoyu2005 发表于 2014-11-2 13:29
网上有关于这个问题的详细说明,最简单先试试单口输出高低电平看正常不,如果过单口不正常,那就是其他问 ...

问题已经解决了 谢谢你对我的指导!

使用特权

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

本版积分规则

1

主题

9

帖子

0

粉丝