可以用汇编写吗。但也是这样的,假如这个频率要在,1K-200K可调那么我,在数码管上存的时候肯定,存的是,0-9,K。10K。100K去存,我按键调的时候也是调,分三位去调节的。假如,输出,20K,那么,1/200000=0。0000005然后把得到的这个数去/2得到多久转换一个高低电平,单片机怎么算这个数。
追答ORG 0000H
LJMP MAIN
ORG 000BH
LJMP T0ISR
ORG 0030H
MAIN:
MOV TMOD,#02H
MOV TH0,#6
MOV TL0,#6
SETB TR0
SETB ET0
SETB EA
CLR A
SJMP $
T0ISR:
INC A
CJNE A,#8,T0E
CLR A
CPL P1.0
T0E:
RETI
END
;计算很简单,对频率求倒数,再乘以2就是定时器总初值,再根据量程大小决定中断次数和初值大小。
难点就是计算这个了,就是不知道二进制怎么去计算这个。
追答你不用担心二进制的计算问,恒定值需要你自己计算,也就是用十进制计算。至于输入是参数,那么就需要单片机计算了,如果你编制不了计算程序,可以下载一个51汇编语言常用子程序集,里面有很多可供你参考的程序,也可以用查表法来做,将你需要的东西,做成一个表放到里面,这样就简单多了。
追问你的意思是,把,1K-200K的初值和次数都先算好然后,查表送到定时器TH TL里面是吧,这样的话那就简单了。多谢。
本回答被提问者采纳