发布时间 : 星期四 文章方波信号发生器设计论文更新完毕开始阅读
图3-13 R3*100程序流程图
图22. R4*10000程序流程图
程序清单如下所示:
ORG MOV MOV
0030H R0,#* R1,#*
MOV MOV MOV MOV MOV MOV MUL CLR ADDC MOV
MOV ONE: CLR C ADDC
JC TWO: DJNZ CLR ADDC MOV MOV ADDC MOV MOV
MOV
THREE: CLR
R2,#* R3,#* R4,#0 R5.#0 A,R1 B,#10 AB C A,R0 R5,A A,#0
A,#100 JIA1 R2,ONE C A,R5 R5,A A,R4 A,#0 R4,A R6,#0 R7,#0 C
MOV ADDC MOV MOV ADDC MOV DJNZ CLR MOV ADDC MOV MOV ADDC MOV RET
A,R7 A,#E8H R7,A A,R6 A,#03H R6,A R4,THREE C A,R5 A,R7 R5,A A,R4 A,R6 R4,A
JIA1: INC
LJMP RET END
R4 TWO
现在该第二步,通过频率计算定时器的初值。先把频率转化为周期,再通过
输入的占空比计算出方波高电平的时间,最后再把周期和高电平时间分别转化为定时器0的计数初值。
把频率转化为周期比较简单,只需用1秒除以频率值即可。假设算得的周期为N,高电平时间为M。AT89C51的晶振一般为12MHZ,所以机器周期为1us。根据设计要求,16位定时器T0先后对方波高电平和低电平进行计时。所以,定时器T0的初值分别应为:(65535-M),(65565-N+M)。程序流程图如下: