代码拉取完成,页面将自动刷新
#include "main.h"
void sys_Timer0_Init(void) //50uS@11.0592MHz
{ AUXR &= 0x7f;
TMOD &= 0xf0; //使用定时器0,8位重装载,12T模式(标准51定时器,工作方式2)
TMOD |= 0x02;
TH0=(255-45); //高8位赋初值
TL0=(255-45); //低8位赋初值
TR0=1; //启动定时器1
ET0=1; //开启定时器0中断
}
char count_50uS=20;
char count_1mS=10;
char count_10mS=10;
char count_100mS=10;
bit flag_50uS=0;
bit flag_1mS=0;
bit flag_10mS=0;
bit flag_100mS=0;
bit flag_1S=0;
void sys_Init()
{ sys_Disp_Init();
sys_Beep_Init();
sys_Timer0_Init();
EA = 1;
}
void sys_Timer0_isr() interrupt 1 //程序基本架构/任务调度/OS
{ flag_50uS = 1;
if( --count_50uS == 0 ) //调度系统架构基本操作
{ count_50uS = 20;
flag_1mS = 1;
if( --count_1mS == 0 )
{ count_1mS = 10;
flag_10mS = 1;
if( --count_10mS == 0 )
{ count_10mS = 10;
flag_100mS = 1;
if( --count_100mS == 0 )
{ count_100mS = 10;
flag_1S = 1;
}
}
}
}
}
void sys_task_50uS()
{ sys_Beep_drv();
user_task_50uS();
}
void sys_task_1mS()
{ sys_Display_drv();
sys_Key_drv(); //调度设备驱动
user_task_1mS();
}
void sys_task_10mS()
{ if( sys_BP.timer != 0) sys_BP.timer--; //蜂鸣器计时
user_task_10mS();
}
void sys_task_100mS()
{ user_task_100mS();
}
void sys_task_1S()
{ user_task_1S();
}
extern void Func_Keydown();
extern void Func_Keyup();
void sys_main()
{ if( flag_50uS ) { flag_50uS=0; sys_task_50uS(); }
if( flag_1mS ) { flag_1mS=0; sys_task_1mS(); }
if( flag_10mS ) { flag_10mS=0; sys_task_10mS(); }
if( flag_100mS ) { flag_100mS=0; sys_task_100mS(); }
if( flag_1S ) { flag_1S=0; sys_task_1S(); }
if( sys_event_Keydown ) { sys_event_Keydown=0; user_func_Keydown();}
if( sys_event_Keyup ) { sys_event_Keyup=0; user_func_Keyup(); }
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。