📄 pcapwm16.asm
字号:
//-----------------------------------------------------------------------------
// 版权归新华龙电子公司所有
//-----------------------------------------------------------------------------
//
//文件名: PCApwm16.ASM
//
//编写人: LC
//
//编写时间:2005/03/10
//
//目标器件: C8051F02x
//
//编译工具: Silicon Laboratories IDE
//
//程序说明: 此程序实现PCA的16位PWM输出,输出脚配置在P0.0脚。
$include (c8051f020.inc) // SFR declarations
ORG 0
AJMP main
ORG 4BH
AJMP PCA_ISR
ORG 0100H
//------------------------------------------------------------------------------------
// MAIN Routine
//------------------------------------------------------------------------------------
main:
;关看门狗
MOV WDTCN,#0deH
MOV WDTCN,#0adH
LCALL PORT_Init ;初始化IO口
LCALL PCA_Init ;PCA初始化成16位脉宽调置方式
SETB EA ;开总中断
AJMP $
RET
;初始化I/O口
PORT_Init:
MOV XBR0,#08H ;CEX0-->P0.0
MOV XBR2,#40H ;使能交叉开关和弱闪拉
ORL P1MDOUT,#40H ;使能P1.6脚推挽输出
RET
;初始化PCA
PCA_Init:
MOV EIE1,#08H
;MOV PCA0MD,#01H ;PCA定时器/计数器溢出中断禁止
MOV PCA0L,#00H
MOV PCA0H,#00H
MOV PCA0CPM0,#0cbH ;16位PWM方式,当CCF0=1时,允许辅捉/比较标志的中断申请
MOV PCA0CPL0,#00H ;置初值
MOV PCA0CPH0,#80H
MOV PCA0CN,#40H ;允许PCA定时器/计数器
RET
;PCA中断子程序
PCA_ISR:
CLR CF ;清溢出中断标志
CLR CCF0 ;清匹配中断标志
;MOV PCA0L,#00H
;MOV PCA0H,#40H
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -