打印
[学习资料]

PIC16F877A 看门狗和led灯的程序

[复制链接]
444|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主

#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(); //每中断一次,清除看门狗计数器和预分频器的值
  }

}




使用特权

评论回复
沙发
szt1993| | 2024-2-28 21:52 | 只看该作者
看门狗和led灯的程序学习一下

使用特权

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

本版积分规则

13

主题

86

帖子

0

粉丝