pic12f509 i/o口操作问题

2020-02-06 10:25发布

本帖最后由 tzsteel 于 2014-10-30 10:24 编辑

#include"pic12f509.h"
#include<htc.h>

//__CONFIG  (0x02);//(WDT_OFF & MCLRE_OFF & OSC_IntRC );
__CONFIG  (0x0a);//(WDT_OFF & MCLRE_OFF & OSC_IntRC );
/******************引脚***************/

#define LED1 GP4
#define LED2 GP2
       
void Delay1000Ms()
{
        unsigned int i,j;

        for(i=0;i<150;i++)
        {
                //btn_press();                //按键检测
                for(j=0;j<550;j++);
        }
}


main()
{
    //GPWUF = 0;    //清除唤醒标志
    OPTION=0x07;
    TRIS=0x08;
    GPIO=0x08;
        //Delay10Ms();
        while(1)
        {
     //LED1 = 0;
     //LED2 = 0;
     Delay1000Ms();
     //LED1=1;
     //LED2=1;
     LED1=~LED1;
     LED2=~LED2;
    }
}   以上程序是能实现LED1,LED2大约1秒,输出高电平,再过一秒输出低电平,但如果把LED1=~LED1; LED2=~LED2;换成 LED1 = 0;LED2 = 0;Delay1000Ms();LED1=1;LED2=1;那就会出现LED1,LED2一直为低的情况,不知是啥原因,照理软件里有LED1=1;LED2=1;的,所以LED1,LED2应该会变高电的,但一直是低电,请大虾帮忙看看,谢谢。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
tzsteel
2020-02-07 20:26
jufr12315 发表于 2014-11-3 17:02
这个也有影响,之前用12f683内部RC振荡器,定时器测试输出方波,误差好大

目前已找到问题,发现用计数用125,250等的,测出来就比较准,其它的不行,计数用125US,实测出来就是140US,计数用250US,实测出来就是275US,这些误差应该也是if(TMR0==0xFF) 引起的。
                                                                                                                                                                                                                                          {
                                                                                                                                                                                                                                           TMR0=0x85;
                                                                                                                                                                                                                                            LED1=!LED1;
                                                                                                                                                                                                                                           }
真觉的PIC12F509,是颗垃圾的MCU,定时器都弄不准,那还算啥MCU啊?

一周热门 更多>