首页 > 其他 > 详细

PIC16F877A 看门狗和led灯的程序

时间:2015-11-06 22:09:38      阅读:363      评论:0      收藏:0      [点我收藏+]

#include <pic.h>
#define uchar unsigned char
#define uint unsigned int
uint i=0;
uchar ledflag;
void init(void)
{
  TRISD=0;
  // PORTD=0xfe;
  OPTION_REGbits.PSA=1; //把预分频器给看门狗
  OPTION_REGbits.PS2=1; //看门狗的预分频器
  OPTION_REGbits.PS1=1;
  OPTION_REGbits.PS0=1;

  OPTION_REGbits.T0CS=0;
  TMR0=6;
  INTCONbits.T0IF=0;
  INTCONbits.T0IE=1;
  INTCONbits.PEIE=1;
  NTCONbits.GIE=1;
}

void main(void)
{
  uchar k=0;
  init();
  PORTD=0xfe;
  while(1)
  {
    if(ledflag==1)
    {
      PORTD=(PORTD<<1)|0x01;
      ledflag=0;
      k++;
      if(k==8)
      {
        k=0;
        PORTD=0XFE;
      }
    }
  }
}
void interrupt timer0()
{
  if(INTCONbits.T0IF==1)
  {
    INTCONbits.T0IF=0; //定时器0 每200ms LED灯移动一次
    TMR0=6;
    i++;
    if(i==1000)
    {
      i=0;
      ledflag=1;
    }
  CLRWDT(); //每中断一次,清除看门狗计数器和预分频器的值
  }

}

PIC16F877A 看门狗和led灯的程序

原文:http://www.cnblogs.com/xiangsi/p/4943689.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!