timer0_1ms.c

来自「按键程序讨论」· C语言 代码 · 共 93 行

C
93
字号
//
//  名称:
//  编写:niechao
//  日期:2012.08
//  修改:无
//  内容:1 Ms 延时子程序
#include<reg52.h>
#include"key.h"
#include"led.h"
 
 bit  Timer0_1msflag  = 0; //1ms时标
 unsigned char   OUT  = 0; //20ms时标
 unsigned char  OUT1  = 0; //40ms时标
 unsigned char  OUT2  = 0; //1s时标
//
// 
 unsigned char Tflag  = 0; //20ms计数
 unsigned char Tflag1 = 0; //40ms计数
 unsigned char Tflag2 = 0; //1s时标
 
//------------------------------------------------
//          1ms延时初始化函数
//------------------------------------------------ 
//注意总中断用主程序打开 EA = 1  用来增加灵活性
void Timer0Init(void) 
{
    TMOD &= 0xf0 ;      //定时器1通过外中断打开实
                        //际不用  
    TMOD |= 0x01 ;      //定时器0工作方式1
    TH0  =  0xfc ;      //定时器初始值12MHz晶振
    TL0  =  0x17 ;
    TR0  = 1 ;
    ET0  = 1 ;
    
} 

   

//------------------------------------------------
//          1ms延时中断
//------------------------------------------------ 


void Time0Isr(void) interrupt 1
{  

    TR0   =  0;
    TH0  =  0xfc ;          //定时器重新赋初值
    TL0  =  0x17 ;
    	
	
    Tflag++;
    Timer0_1msflag = 1;      //1MS时标标志位置位
    
	if(Tflag == 20)
      
	  {
       
	   Tflag=0;
       Tflag1++;  
	   Tflag2++;
	   OUT=1;        //20MS时标标志位

	  
       led_show();  //50HZ显示刷新速度
	  
	   }
	
    if(Tflag1 == 8)
      
	  {
       
	   Tflag1=0;  
	   OUT1=1;        //120MS时标标志位
       getkey();

	  }


    if(Tflag2 == 100)
    
	  {
       
	   Tflag2=0;
       OUT2=1;        //2S时标标志位 
	   
	  }
     
    Display(0,8);
    TR0=1; 
	 
}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?