找回密码
 立即注册
查看: 24|回复: 1

7-2 定时器时钟,江协科技讲普中51单片机开发板STC89C52学习板 配套程序, A2标准版

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:81
  • 最近打卡:2026-07-24 14:35:47
已绑定手机

231

主题

174

回帖

1087

积分

版主

积分
1087
发表于 2026-7-13 09:32:11 | 显示全部楼层 |阅读模式
7-2 定时器时钟,江协科技讲普中51单片机开发板STC89C52学习板 配套程序, A2标准版
主程序main.C代码如下:


#include <REGX52.H>
#include "Delay.h"
#include "LCD1602.h"
#include "Timer0.h"

unsigned char Sec=55,Min=59,Hour=23;

void main()
{
        LCD_Init();
        Timer0Init();
       
        LCD_ShowString(1,1,"Clock:");        //上电显示静态字符串
        LCD_ShowString(2,1,"  :  :");
       
        while(1)
        {
                LCD_ShowNum(2,1,Hour,2);        //显示时分秒
                LCD_ShowNum(2,4,Min,2);
                LCD_ShowNum(2,7,Sec,2);
        }
}

void Timer0_Routine() interrupt 1
{
        static unsigned int T0Count;
        TL0 = 0x18;                //设置定时初值
        TH0 = 0xFC;                //设置定时初值
        T0Count++;
        if(T0Count>=1000)        //定时器分频,1s
        {
                T0Count=0;
                Sec++;                        //1秒到,Sec自增
                if(Sec>=60)
                {
                        Sec=0;                //60秒到,Sec清0,Min自增
                        Min++;
                        if(Min>=60)
                        {
                                Min=0;        //60分钟到,Min清0,Hour自增
                                Hour++;
                                if(Hour>=24)
                                {
                                        Hour=0;        //24小时到,Hour清0
                                }
                        }
                }
        }
}


回复

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:81
  • 最近打卡:2026-07-24 14:35:47
已绑定手机

231

主题

174

回帖

1087

积分

版主

积分
1087
发表于 2026-7-13 09:33:11 | 显示全部楼层
7-2 定时器时钟,江协科技讲普中51单片机开发板STC89C52学习板 配套程序, A2标准版
定时器Timer0.C代码如下:

#include <REGX52.H>

/**
  * @brief  定时器0初始化,1毫秒@12.000MHz
  * @param  无
  * @retval 无
  */
void Timer0Init(void)
{
        TMOD &= 0xF0;                //设置定时器模式
        TMOD |= 0x01;                //设置定时器模式
        TL0 = 0x18;                //设置定时初值
        TH0 = 0xFC;                //设置定时初值
        TF0 = 0;                //清除TF0标志
        TR0 = 1;                //定时器0开始计时
        ET0=1;
        EA=1;
        PT0=0;
}

/*定时器中断函数模板
void Timer0_Routine() interrupt 1
{
        static unsigned int T0Count;
        TL0 = 0x18;                //设置定时初值
        TH0 = 0xFC;                //设置定时初值
        T0Count++;
        if(T0Count>=1000)
        {
                T0Count=0;
               
        }
}
*/


回复

使用道具 举报 送花

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2026-7-25 10:14 , Processed in 0.069030 second(s), 46 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表