单片机逆变电源设计+电路图+原理图+主程序及流程图 第9页
INCADC:
MOV R0,#2CH
MOV R2,#03H
SAMP: MOV DPTR,#7F00H ;AD0809端口地址送DPTR
MOV A,#00H ;输入通道0选择
MOVX @DPTR,A ;启动A/D转换
MOV R7,#0FFH ;延时查询方式
DELAY:DJNZ R7,DELAY
无耻悲鄙下流的网"学.网总是抄辣,文^论,文.网
http://www.751com.cn FILTER:MOV A,6CH
CJNE A,6DH,CMP1
AJMP CMP2
CMP1:JNC CMP2
XCH A,6DH
XCH A,6CH
CMP2:MOV A6DH
CJNE A,6EH,CMP3
MOV 6AH,A
CMP3:JC CMP4
MOV 6AH,A
CMP4:MOV A,6EH
CJNE A,6CH,CMP5
MOV 6AH,A
CMP5:JC CMP6
XCH A,6CH
CMP6:MOV 6AH,A ;滤波结果存于6AH
RET
4.5 输出频率测试计算子程序部分
SA828带有频率输出端口,将其与单片机的中断INT0口相接,如原理图所示。本例中所使用的中断源有2个:T0中断和 中断。 中断的功能是计算ZPPR输出的调制波频率。由于调制波频率可能比较低,因此用T0溢出中断来记录一个ZPPR周期中T0溢出的次数,这个溢出次数保存到70H中。这样,在一个 中断间隔里,所用的时间(即ZPPR周期)是3个字节的数(1个字节的T0溢出次数,2个字节的T0值)。
因为AT89C52使用12MHZ的时钟频率,一个机器周期是 ,所以调制波频率的计算公式为:
0F4240H,也是一个3字节的数,因此 是一个3字节除法运算。如果对精度要求不高, 的分子分母可以舍掉最低字节来简化运算,这样就成为双字节除法运算。所以,当 中断时,只取TH0,将其存放到71H中除法运算的整数商存放到72H、73H中,小数商存放到75H中。
中断子程序及流程图如下:
SUANPIN: CLR EA ;关中断
CLR TR0
PUSH ACC ;保存现场
PUSH B
PUSH DPL
PUSH DPH
PUSH PSW
PUSH 50H
PUSH 51H
PUSH 52H
PUSH 53H
PUSH 60H
PUSH 61H
PUSH 62H
PUSH 63H
PUSH 6AH
SETB PSW.3
MOV 70H,#00H ;
MOV TL0,#00H ;TL0清0
MOV 71H,TH0 ;取TH0值
MOV TH0,#00H ;TH0清0
MOV R4,#0FH
MOV R5,#42H
MOV R6,70H ;输入除数
MOV R7,71H
LCALL NDIV ;调用双字节除法子程序原来的程序,
NDIV:MOV B,#16 ;双字节无符号数除法子程序
;当条件(R2R3)〈(R6R7)满足时,
;(R2R3R4R5)/(R6R7)=(R4R5),余数在(R2R3)
NDVL1: CLR C
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV F0,C
CLR C
无耻悲鄙下流的网"学.网总是抄辣,文^论,文.网
http://www.751com.cn MOV A,R1
MOV R3,A
INC R5
NDVD1:DJNZ B ,NDVL1
CLR F0
MOV 72H,R4 ;频率整数部分存于7273H中
MOV 73H,R5 ;调制波频率整数部分存72H
MOV 75H,R2 ;将调制波频率小数部分(小于100)存75H
MOV 70H,#00H ;70H清0
ABC:POP 6AH
POP 63H
POP 62H
POP 61H
POP 60H
POP 53H
POP 52H
POP 51H
POP 50H
POP PSW ;恢复现场
POP DPH
POP DPL
POP B
POP ACC
SETB EA ;开中断
SETB TR0
RETI
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9]
单片机逆变电源设计+电路图+原理图+主程序及流程图 第9页下载如图片无法显示或论文不完整,请联系qq752018766