书上的示例是要求P1.0口输出周期为2ms的方波,书上给出如下程序:
有一点不明白,在重装T1初值后P1.0取非后,要过1ms才能从SJMP $原地踏步中跳到BRT1中,再经过两条赋值指令才再次对P1.0取非,这两条指令的执行要经过几个机器周期的时间,这样输出的方波周期就大于2ms了吧,这么想错在哪了呢?
书上采用的是方式0,说由于TL1高三位不能用,所以应把1C8H改写成E018H,应该没错。主要是老师要我们拿内部定时器定时中断编一段电子秒表程序,如果这么来误差也太大了吧
追答是啊,误差是比较大,对时钟显示编程尤为明显。但对秒表影响相对较小,我们就以1ms偏差6个us来看,1s 偏差6ms, 60s偏差360ms(=0.36s)。
本程序如果采用定时器方式2,则偏差会更小,所以我们说对秒表影响较小。