• 小学
  • 初中
  • 高中
  • 考试
  • 方法
  • 语文
  • 数学
  • 英语
  • 历史
  • 电脑
  • 阅读
  • 视频
  • 作文
  • 范文
  • 论文
  • 励志
  • 创业
  • 职场
  • 知识
  • 生活
  • 爱好
  • 语录
  • 思维
  • 资讯
  • 当前位置: 银杏学习网 > 初中 > 正文

    【单片机入门-C51语言采用定时器查询方法设计LCD电子钟解说】 单片机定时器

    时间:2018-11-09 08:46:37来源:银杏学习网 本文已影响 银杏学习网手机站

    原标题:单片机入门-C51语言采用定时器查询方法设计LCD电子钟解说

    视频如下:

    我们在设计LCD电子钟的时候,要明确这样的关系:

    1天=24小时;

    1小时=60分钟;

    1分钟=60秒。

    然后可以根据定时器获取1秒的定时,比如先获取50ms,再计数20次就可以得到1秒。

    这里总结一下51单片机定时器/计数器的使用方法,步骤如下:

    1。计算计数初值:

    计数值=定时的时间/机器周期

    初值X=最大计数值M-计数值;

    2.TMOD寄存器的设置:

    GATE C/T M1 M0 GATE C/T M1 M0

    3.TCON寄存器的设置:

    主要关注TR1/TR0

    4.打开中断(含定时器中断和总中断)或者查询TF0/TF1

    5。编程

    电路图如下:

    代码如下:

    #include "lcd12864.h"

    unsigned char hour=10,minute=58,second=23;

    unsigned char count;

    unsigned char CLOCK[]="10:58:23";

    void main()

    {

    TMOD=0x01;

    TH0=0x3c;

    TL0=0xb0;//50ms 15536->65536 =50000*1us=50ms

    TR0=1;//启动定时器

    lcd_init();

    lcd_clr();

    while(1)

    {

    CLOCK[0]= hour/10+0x30;

    CLOCK[1]= hour%10+0x30;

    CLOCK[3]= minute/10+0x30;

    CLOCK[4]= minute%10+0x30;

    CLOCK[6]= second/10+0x30;

    CLOCK[7]= second%10+0x30;

    printchars(0,2,CLOCK,0);

    while(!TF0);

    TF0=0;

    TH0=0x3c;

    TL0=0xb0;//50ms 15536->65536 =50000*1us=50ms

    count++;

    if(count==20)//50*20=1000ms=1s

    {

    count=0;

    second++;

    if(second==60)

    {

    second=0;

    minute++;

    if(minute==60)

    {

    minute=0;

    hour++;

    if(hour==24)

    {

    hour=0;

    }

    }

    }

    }

    }

    }

    • 【单片机入门-C51语言采用定时器查询方法设计LCD电子钟解说】 单片机定时器 相关文章: