最近上课讲了单片机的内容,马上要复习了,于是打算总结总结。
我们上课使用的是汇编讲的单片机,于是就学习了一下汇编的编程过程。(刚接触汇编的时候有些不太适应,因为以前都是写C或java的,在条件判断的时候总想写括号,但是汇编中没有括号,只能通过缩进来找格式....)不多说废话了。
进行单片机的定时计算器的判断的时候,其结构图需要了解一下:
这个图是单片机中两定时器/计数器的结构。
单片机的定时器/计数器需要两个寄存器来控制(在硬件方面学的不精,有些器件说错了请谅解),这两个寄存器分别为TMOD(用于控制寄存器的工作方式),TCON(该寄存器的高4位于定时器/计数器有关,其低4位于外部中断有关)。其结构如下:
图中的GATE为门控位。一般的情况下GATE = 0;但是当进行外部中断0的高点平测量的时候则将其置为1。
C/T为控制定时器/计数器是用于计数的还是用户定时的。当该位为0表示该为用于定时。当该为为1表示该为用于计数。
其中的后两位分别为M1、M0.这两位用户统计定时器的计数位数。其中当M1M0 = 00,此时单片机定时器0于定时器1分别工作于方式0,定时位数为13位。该方法使用的情况较少。
M1M0 = 01,该单片机定时器1和定时器0工作的定时位数位16位。
M1M0 = 10,该单片机定时器1和定时器0工作的定时位数位8位。但是此时单片机可以进行重装载。
M1M0 = 11,此时单片机1停止工作,单片机0的高8位于低8位拆成两部分。T0使用的低8位正常的定时计数,而T0的高8位借给定时器1用作定时器。
给定时器THx和TLx赋初的公式
(2^n-X)*Tcy = T
公式说明:
1.n表示单片机的位数。单片机的工作位数有8位,13位,16位。
2.X表示要赋的初始值
3.Tcy为机器周期。 当机器频率为6MHz的时候,其机器周期为12/6MHz = 2μs,当机器频率为12MHz的时候,其机器周期为12/12MHz = 1μs。
4.T表示总共要定的时间。