如何利用STC89C52RC去实现一种99秒倒计时器的设计呢

设计要求:通过stc89c52rc单片机的定时器0实现精确定时,并通过lcd1602实现倒计时时间的显示功能,初始值为99秒,并且具有暂停和复位功能。,倒计时时间设置功能。
倒计时器系统电路:通过lcd1602显示倒计时初始值和当前计时值,并且可以通过set键启动倒计时,通过reset复位停止倒计时。并且在停止模式时可以通过plus和minus键进行倒计时初值的加减操作,在运行模式无法调整倒计时的初始值。。
系统的软件设计:上电首先初始化单片机,主要包括定时器的初始化、倒计时初始值的初始化、运行状态初始化。整个系统运行分为2个模式:停止模式、倒计时运行模式。主程序流程图:
主要代码
主函数:
void main()
{
initlcd1602();
    lcdshowstr(0, 0, current : 99 s);
    lcdshowstr(0, 1, initial : 99 s);
timer_inial();
while(1)
    {
        if(0==run_mode){
            time_set();
}else{
            second_cal_show();
}
         start();
         stop();
}
}void main()
{
initlcd1602();
    lcdshowstr(0, 0, current : 99 s);
    lcdshowstr(0, 1, initial : 99 s);
timer_inial();
while(1)
    {
        if(0==run_mode){
            time_set();
}else{
            second_cal_show();
}
         start();
         stop();
}
}
运行模式代码:
void second_cal_show()
{
  if(tf0==1)
        {
            tf0=0;
          th0=0xb8;
            tl0=0x00;
            time_count++;
            if(time_count>=50)//50次一秒
            {
              time_count=0;
                time_s--;
                if(0==time_s) {tr0=0;fm=0;run_mode=0;}
                sprintf(disp_buffer,%d s ,time_s);
            lcdshowstr(10, 0, disp_buffer);    
            }
}
}
停止模式代码:
void time_set()
{
    if(0==key_plus)
         {
             delay(1200);//10ms消抖
             if(0==key_plus)//再次检测按键是否按下
             {
                    //while(!key_plus);//等待按键释放
ini_value++;
                  sprintf(disp_buffer,%d s ,ini_value);
                  lcdshowstr(10, 1, disp_buffer);
                 lcdshowstr(10, 0, disp_buffer);
}
}else if(0==key_minus)
         {
             delay(1200);//10ms消抖
             if(0==key_minus)//再次检测按键是否按下
             {
                    //while(!key_minus);//等待按键释放
                 ini_value--;
                 sprintf(disp_buffer,%d s ,ini_value);
                 lcdshowstr(10, 1, disp_buffer);
                 lcdshowstr(10, 0, disp_buffer);
             }
}
}


华为云短短几年的发展:厚积薄发
锂电池热机械处理工艺
2023年金砖国家新工业革命技术与治理卓越人才培训班到访四维图新旗下杰发科技参观交流
1.5A轨到轨输出同步降压型稳压器可通过单个电阻器进行调节
趋势所致?深入解析苹果“美国制造”战略
如何利用STC89C52RC去实现一种99秒倒计时器的设计呢
叉车油改电的背景下,如何选择一款优质国产MOS管提升控制器质量?
融合定位技术,应对物联网碎片化场景应用!
基于Linux的USB从设备驱动研究
8万级陆地移动堡垒,2023款欧萌达极致安全再进阶
智造之眼丨多目标定位抓取
简单认识网络处理器
宝马ix3的低伪路试谍照曝光,最新五代BMW eDrive电动驱动控制系统
PLC数据采集如何实现?PLC数据采集网关怎么来选?
2020年搭载Imagination IP的海外设备有哪些?
物理隔离的操作系统
3D打印产业链分析
基于Intel Atom E3800的车载计算机解决方案
无线视频监控的两种方法
极海APM32F407工业HMI应用方案助您增强交互体验