打印

PIC单片机一个引脚的问题,很奇怪!

[复制链接]
1937|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhangyongyi|  楼主 | 2013-8-3 16:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的单片机型号是PIC18F25K80,我给这个单片机的C1引脚写了一个1KHZ的方波程序,但是程序下载进去过后用示波器测量就是看不到方波,写高电平也不行,但是C2,C3,C4引脚都可以,能看到1KHZ的方波,B端口也可以,就是C1引脚不行,不知道为啥,是不是电路图需要加什么元件,还是程序里面要对这个引脚进行特殊的配置,求高手指点啊,这个问题一直没解决掉!
沙发
zhangyongyi|  楼主 | 2013-8-3 16:40 | 只看该作者
附加上我写的程序:
#include "pic18f25k80.h"
#pragma config FOSC =INTIO2
//,IESO=0,PLLCFG=0
#pragma config WDTEN =OFF
#pragma config MCLRE=1
#pragma config WRTC=0
#pragma config STVREN=0
#pragma config CP0=0,CP1=0,CP2=0,CP3=0
#pragma config XINST=OFF

void PIC18_OSC_Iint(void)
{
    OSCCON=0X70;
    OSCTUNEbits.PLLEN=0;
}
void PIC18_PORT_Iint(void)
{
   //TRISAbits.TRISA1=1;
   // LATAbits.LATA1=0;
    // INTCON2bits.RBPU=0;
   //  TRISBbits.TRISB3=0;
   //  LATBbits.LATB3=0;
   TRISCbits.TRISC1=0;
   LATCbits.LATC1=1;
  // TRISCbits.TRISC3=0;
  // LATCbits.LATC3=1;
}

void PIC18_TIMER0_Iint(void)
{
    T0CONbits.TMR0ON=0;
   T0CONbits.T08BIT=0;
   T0CONbits.T0CS=0;
   TMR0H=(65536-1000)/256;
   TMR0L=(65536-1000)%256;
   INTCONbits.TMR0IF=0;
   T0CONbits.TMR0ON=1;
}
void main(void)
{
  PIC18_OSC_Iint();
  PIC18_PORT_Iint();
  PIC18_TIMER0_Iint();

  while(1)
{
      if(1==INTCONbits.TMR0IF)
     {
         INTCONbits.TMR0IF=0;
          TMR0H=(65536-1000)/256;
          TMR0L=(65536-1000)%256;
          if(0== LATCbits.LATC1)
           LATCbits.LATC1=1;
        else   LATCbits.LATC1=0;
   }
}
}
换成C2,C3,C4引脚都没问题。

使用特权

评论回复
板凳
yewuyi| | 2013-8-3 21:39 | 只看该作者
检查PORTC.1上有没有复用功能,如果有,则关闭,仅保留IO功能即可。

使用特权

评论回复
地板
NE5532| | 2013-8-4 14:59 | 只看该作者
这种一般是模拟口没关和复用功能的问题,可以换个芯片看,如果也没有,就排除引脚损坏的问题,安心找软件设置问题吧。

使用特权

评论回复
5
zhangyongyi|  楼主 | 2013-8-4 15:26 | 只看该作者
搞定了,自己知道哪儿不对了,需要在在配置字中配置C0,C1这两个端口。

使用特权

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

本版积分规则

7

主题

18

帖子

0

粉丝