在学习单片机的时分,咱们发现许多功用都是经过中止来完成的。之前也举过烧水的例子来论述中止,今日就解说一下守时器赋初值的办法。8位的守时器最大可计数2的8次方为256,16位的守时器最大可计数2的16次方为65536。因为单片机的守时器是递加式的,所以最大值减去所要守时的值便是初值,举例如下:
最大值为100,咱们只需要38,怎么办呢,因为是递加的,咱们只需要在62时开端计时就可以了。
以proteus仿真为例简略解说守时器赋初值
用proteus建立的电路图如下,晶振为12M,P2.0每10ms翻转一次,即P2.0输出的频率为100HZ。
这儿运用16位的守时器,那单片机守时器0的最大计数便是65536.晶振为12M,那单片机的一个机器周期便是1us,守时器 0作业在方法1时最大守时65.536ms。
守时器的守时时刻T = (65536-X),单位是us;
守时器初值X = 65536-T;
假定守时时刻T=10ms=10000us,
那守时器初值X=65536-10000=55536us,也便是守时器0从55536开端递加到65536便是10ms,所以55536便是守时器的初值,55536转化为十六进制为0Xd8f0,所以守时器的初值为:
TH0 = 0XD8;
THL = 0XF0;
用虚拟示波器抓到的波形如下:
只需要付出硬件本钱的STM32单片机学习板正在集资众筹,价格129元,。这款学习板包含了GPIO使用、RS232通讯、RS485通讯、CAN总线通讯、USB通讯、I%&&&&&%总线、SPI总线、JTAG在线调试、SW在线调试、ISP主动下载、RTC实时时钟、TFT真彩屏使用等丰厚的外设资源,详情请加个人微信号liuzhx2000了解。