zoukankan      html  css  js  c++  java
  • 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++)
    		{;}
    	}
    }
  • 相关阅读:
    ChaosBlade x SkyWalking 微服务高可用实践
    工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇
    阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳
    我在阿里巴巴做 Serverless 云研发平台
    「更高更快更稳」,看阿里巴巴如何修炼容器服务「内外功」
    「云原生上云」后的聚石塔是如何应对 双11 下大规模应用挑战的
    从零入门 Serverless | SAE 的远程调试和云端联调
    利用 Arthas 解决启动 StandbyNameNode 加载 EditLog 慢的问题
    Arthas 实践——生产环境排查 CPU 飚高问题
    RocketMQ 很慢?引出了一个未解之谜
  • 原文地址:https://www.cnblogs.com/hnrainll/p/1919262.html
Copyright © 2011-2022 走看看