📄 ccutest3.inc
字号:
; File:CCUTEST3.ASM
; 功能:使用CCU的4个模块,实现非对称PWM输出。
; 说明:将跳线器J5、J6、J27取出,J3短接到OCD端,在JP6的PWM1、PWM2、PWM3
; 分别测试模块A、B、C的输出,DAOUT是模块D输出经漏波后的电压。
; 通过跳线器J8、J9选择高频晶振6MHz。
$NOMOD51
$INCLUDE (REG932.INC)
PLLEN BIT TCR20.7
TMOD21 BIT TCR20.1
TMOD20 BIT TCR20.0
ORG 0000H
AJMP MAIN
ORG 0100H
MAIN: MOV SP,#60H
MOV R7,#0
DJNZ R7,$
; 由于上电复位时所用IO口设置为高阻态,所以要进行IO设置
MOV P1M1,#00H
MOV P1M2,#00H
MOV P2M1,#0C0H ; 设置P2.1(OCD)为推挽输出方式
MOV P2M2,#0C2H
ACALL INI_CCU ; 初始化CCU
SJMP $
; 初始化CCU
; 设置定时器重装值,时钟源,各个模块的比较值。
INI_CCU:
MOV TOR2H,#0FFH ; 设置CCU定时器重装值,即PWM频率控制
MOV TOR2L,#00H ; TH2,TL2可先不设置
; 设置PWM模块
MOV OCRAH,#60H
MOV OCRAL,#00H
MOV CCCRA,#01H
MOV OCRBH,#60H
MOV OCRBL,#00H
MOV CCCRB,#03H ; 输出反转的PWM,即与模块A的相反
MOV OCRCH,#70H
MOV OCRCL,#00H
MOV CCCRC,#01H
MOV OCRDH,#80H
MOV OCRDL,#00H
MOV CCCRD,#01H
; 设置PLL分频数,并把PWM模块的设置值(映像寄存器的)传送入比较寄存器
MOV TCR21,#82H ; 设置PLL倍频输出
MOV TCR20,#00H
SETB PLLEN ; 使能PLL
NOP
JNB PLLEN,$ ; 等待PLL锁定
SETB TMOD21 ; 启动定时器
CLR TMOD20
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -