最简短且高效的脉冲输出程序
扫描二维码
随时随地手机看文章
设MCS-51单片机使用12MHz晶振,欲使用定时器在P1.0口产生占空比约30%,周期为60ms的脉冲。
;============================================
最佳答案:
ORG0000H
MOVTMOD,#01H
SETBTR0
LOOP:
MOVR2,#3
SETBP1.0
REPEAT:
MOVTH0,#(65536-20000)/256
MOVTL0,#(65536-20000)MOD256
JNBTF0,$
CLRTF0
CLRP1.0
DJNZR2,REPEAT
JMPLOOP
END
;============================================
;============================================
后记:
这里给出的程序,可以说是最简短且高效的脉冲输出程序。
程序中的指令,仅仅11行,经过编译,长度仅仅有26个字节!
程序的执行速度、时间控制的精度,都是无与伦比的。
只有用汇编语言编写程序,才能达到如此精练的水平。
有些人,用C编写程序,编译后发现,单片机芯片的存储空间的都不够用的,呵呵
用C编写较大些的程序,执行的速度,更别提了。
建议,还是应该掌握汇编语言。
本程序,也很容易修改维护,改变周期、占空比,都是轻而易举的事。
;============================================