高手赐教:晶振为6M,怎样产生一个周期为1S的方波,怎样修改以下程序,原程序为产生周期0.2S的方波。

ORG 0000H
START:AJMP MAIN
ORG 000BH
AJMP INT_T0
ORG 0030H
MAIN:MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
SETB ET0
SETB EA
MAIN_1:SJMP MAIN_1
INT_T0:PUSH ACC
PUSH PSW
MOV TH0,#3CH
MOV TL0,#0B0H
CPL P1.0
CPL P1.1
POP PSW
POP ACC
RETI
END

修改TH0和TL0的计数值。
具体分析:6MHz的指令周期是1/6MHz * 12=2*10^(-6)秒,即2us.采用单片机自身的定时器,你只能定时 2us*65535=0.13107s;现在转到你的题目,是产生周期为0.2s的方波,我们可通过计数定时次数实现,比如4次50ms定时、2次100ms定时等等。在这给给你如何设置定时器初值再稍微说一点,因为要定时100ms,可以通过 2us*x=0.1 推出 x=50000,即让定时器计时5w次,所以定时器初值为65536-50000=15536,然后将15536转换成16进制3CB0即可,然后高位复制3C,地位复制0B0,最后再在中断子程序里设置个计数变量,如果计数值等于2,翻转电平即可,初始化计数值为1重新统计。
温馨提示:答案为网友推荐,仅供参考