📄 timer0_1ms.c
字号:
//
// 名称:
// 编写: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 + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -