设MCS-51单片机使用12MHz晶振,欲使用定时器在P1.0口产生占空比约30%,周期为60ms的脉冲。
;============================================
最佳答案:
ORG 0000H
MOV TMOD, #01H
SETB TR0
LOOP:
MOV R2, #3
SETB P1.0
REPEAT:
MOV TH0, #(65536 - 20000) / 256
MOV TL0, #(65536 - 20000) MOD 256
JNB TF0, $
CLR TF0
CLR P1.0
DJNZ R2, REPEAT
JMP LOOP
END
;============================================
;============================================
后记:
这里给出的程序,可以说是最简短且高效的脉冲输出程序。
程序中的指令,仅仅11行,经过编译,长度仅仅有26个字节!
程序的执行速度、时间控制的精度,都是无与伦比的。
只有用汇编语言编写程序,才能达到如此精练的水平。
有些人,用C编写程序,编译后发现,单片机芯片的存储空间的都不够用的,呵呵
用C编写较大些的程序,执行的速度,更别提了。
建议,还是应该掌握汇编语言。
本程序,也很容易修改维护,改变周期、占空比,都是轻而易举的事。
;============================================
『本文转载自网络,版权归原作者所有,如有侵权请联系删除』