• PIC16F877A 看门狗定时器实验


    //*******************PIC16F877A 看门狗定时器实验*******************
    //
    //PORTA,PORTB,PORTC,PORTD,PORTE复位时为输入状态
    //PORTA.4(RA4)为开漏输出
    //
    //WDT运行于独立的内部RC振荡器,即使器件时钟停振,WDT仍正常工作
    //PIC16F877A单片机的WDT只能在烧写芯片时通过配置位启动或停止
    //WDT基本溢出时间为18ms,由于温度影响,该值在7-33ms之间变化
    //WDT和TMR0共用一个预分频器
    //PSA=1;           //预分频器分配给WDT使用
    //PS2  PS1  PS0     WDT
    // 0    0    0     1  分频
    // 0    0    1     2  分频
    // 0    1    0     4  分频
    // 0    1    1     8  分频
    // 1    0    0     16 分频
    // 1    0    1     32 分频
    // 1    1    0     64 分频
    // 1    1    1     128分频
    //
    //mcu: PIC16F877A  12MHz 
    //2010年7月11日8:03:01
    //****************************************************************

    #include <lian_pic.h>
    __CONFIG(HS&WDTEN&LVPDIS&PWRTEN);   
    //HS振荡,打开看门狗,低压编程关闭,启动延时定时器

    //********************函数定义*********************
    void delay1ms(uint DelayTime);

    //*************** 主程序 ********************
    void main(void)
    {   
        PSA=1;           //预分频器分配给WDT使用
        PS2=1;
        PS1=1;
        PS0=1;           //预分频器128分频
      TRISC=0x00;      //PORTC口设置为输出
      PORTC=0x00;
      CLRWDT();        //清看门狗

      while(1)        
      {
        PORTC++;
        delay1ms(200);
      }
    }   

    //***************延时 n*1ms 12MHz***************
    void delay1ms(uint DelayTime)
    {    uint temp;
        for(;DelayTime>0;DelayTime--)
        {    for(temp=0;temp<270;temp++)
            {;}
        }
    }

    //*******************PIC16F877A 看门狗定时器实验*******************
    //
    //PORTA,PORTB,PORTC,PORTD,PORTE复位时为输入状态
    //PORTA.4(RA4)为开漏输出
    //
    //WDT运行于独立的内部RC振荡器,即使器件时钟停振,WDT仍正常工作
    //PIC16F877A单片机的WDT只能在烧写芯片时通过配置位启动或停止
    //WDT基本溢出时间为18ms,由于温度影响,该值在7-33ms之间变化
    //WDT和TMR0共用一个预分频器
    //PSA=1;           //预分频器分配给WDT使用
    //PS2  PS1  PS0     WDT
    // 0    0    0     1  分频
    // 0    0    1     2  分频
    // 0    1    0     4  分频
    // 0    1    1     8  分频
    // 1    0    0     16 分频
    // 1    0    1     32 分频
    // 1    1    0     64 分频
    // 1    1    1     128分频
    //
    //mcu: PIC16F877A  12MHz  
    //2010年7月11日8:03:01
    //****************************************************************
    
    #include <lian_pic.h>
    __CONFIG(HS&WDTEN&LVPDIS&PWRTEN);	
    //HS振荡,打开看门狗,低压编程关闭,启动延时定时器
                    
    
    //********************函数定义*********************
    void delay1ms(uint DelayTime);
    
    
    //*************** 主程序 ********************
    void main(void)
    {	
    	PSA=1;           //预分频器分配给WDT使用
    	PS2=1;
    	PS1=1;
    	PS0=1;           //预分频器128分频
    	
      TRISC=0x00;      //PORTC口设置为输出
      PORTC=0x00; 
      
      CLRWDT();        //清看门狗
    
      while(1)         
      {
        PORTC++;
        delay1ms(200);
      } 
    }	
    
    //***************延时 n*1ms 12MHz***************
    void delay1ms(uint DelayTime)
    {	uint temp;
        for(;DelayTime>0;DelayTime--)
    	{	for(temp=0;temp<270;temp++)
    		{;}
    	}
    }
  • 相关阅读:
    strict aliasing
    加密数据包加解密部分逆向跟踪
    自定义session扫描器
    同步容器类ConcurrentHashMap及CopyOnWriteArrayList
    CountDownLatch闭锁
    volatile关键字与内存可见性
    原子变量与CAS算法
    C语言笔记一
    小组讨论4
    201920201学期 20192416《网络空间安全专业导论》第六周学习总结
  • 原文地址:https://www.cnblogs.com/hnrainll/p/1919262.html
Copyright © 2020-2023  润新知