亲爱的读者们,今日给大家带来一篇详细的技术文章,其中涵盖了所有所需资料的获取方式,大家只需进群即可免费领取全部内容。
点击此处,联系小助理即可免费获取0元学习资料:
简单来说,单片机的内部运作机制就是通过系统时钟的每一个机器周期产生一个记数脉冲。举个例子,我实验板的晶振频率为12MHZ。这意味着每1MHZ的信号都有一个持续时间为1us的脉冲。如果定时器T0对这1MHZ的信号进行计数,从0计数到65536us时,当它达到计数的最大值,就会发生溢出并产生一个中断信号,向中断系统申请处理。
关于定时器的结构,如图所示,主要包括两个关键的组成部分。
- 两个定时器/计数器——T0和T1。每个定时器/计数器都是由两个8位的计数器组合而成的16位计数器。
- TCON寄存器——这是控制寄存器,用于控制两个定时器/计数器的启动和停止。
- TMOD寄存器——这是工作模式控制寄存器,用于设置定时器/计数器的工作模式。
其中TMOD寄存器的功能是设置定时器/计数器的工作模式。如图所示,通过配置TMOD寄存器,我们可以控制定时器T0和T1的工作模式。这里需要注意的是,TMOD寄存器的地址为89H,不可位寻址。
具体到TMOD寄存器的各位功能如下:
- C/-T——这是定时器/计数器的选择控制位。当它被置为0时,选择定时器模式;当它被置为1时,选择计数器模式。
- M1和M0——这两个是模式选择控制位。通过对这两个位的赋值,我们可以选择定时器的四种工作模式。
- GATE——当它被置为1时,TR0或TR1可以单独控制定时器的运行。
TCON寄存器的各位功能则如下:
- TF1(TF0)——这是定时器T1(T0)的溢出标志位。当定时器溢出时,硬件会自动将这个标志位设置为1,并向CPU申请中断处理。
- TR0(TR1)——这是定时器T1(T0)的运行控制位。当它被置为1时,定时器就开始运行并开始计数。
- 其他几个位是外部中断控制位。
配置定时器主要涉及对TMOD和TCON这两个寄存器的设置。以配置定时器0的模式1为例,来引发中断。具体的配置步骤是:首先配置寄存器TMOD,根据需要只配置定时器0的相关位;然后配置寄存器TCON,只针对定时器0相关的部分进行设置。
在配置中断时,当计数溢出后,硬件会自动向CPU发出中断请求。CPU响应后进入中断服务子程序处理。处理完成后,相关的标志位会自动复位。为了成功配置中断,需要设置ET0为1(开启定时器0的中断),EA为1(开启总中断),以及PT0为适当的值(具体取决于实际需求)。
使用这个配置好的定时器,结合LCD1602模块,我们可以轻松地实现一个简易的时钟显示功能,包括秒、分、时等信息。
虽然目前对某些部分还不是非常熟悉,但幸运的是模块的源代码已经提供好了。随着对各个函数功能的深入了解,我们一定能够完全掌握并运用这个模块。