宏晶科技:www.MCU-Memory.com Mobile:13922805190(姚永平) Tel:0755-82948409 Fax: 0755-82944243
宏晶科技:专业单片机 / 存储器供应商 www.MCU-Memory.com STC12C5410AD 系列 1T 8051 单片机中文指南
89
; 假定 fosc = 20MHz 时, 要求 PCA 高速脉冲输出 125KHz 的方波:
; CCAPnL_Value = INT( 20000000/4/125000 + 0.5)
; = INT( 40 + 0.5)
; = INT( 40.5 )
; = 40
; = 28H
; 输出脉冲的频率 f = 20000000/4/40
; = 125000 (125.0KHz)
;CCAPnL_Value EQU 25H ;25H = 37, fosc = 18.432MHz 时, 高速脉冲输出 = 124.540KHz
;CCAPnL_Value EQU 28H ;28H = 40, fosc = 20MHz 时, 高速脉冲输出 = 125KHz
CCAPnL_Value EQU 42H ;42H = 66, fosc = 33MHz 时, 高速脉冲输出 = 125KHz
;------------------------------------------------------------
ORG 0000H
AJMP main
;------------------------------------------------------------
ORG 0033H ;interrupt 6
PCA_interrupt:
PUSH ACC ;4 Clock
PUSH PSW ;4 Clock
CLR CCF1 ;1 Clock, 清 PCA 模块 1 中断标志
MOV A, #CCAPnL_Value ;2 Clock
ADD A, CCAP1L ;3 Clock
MOV CCAP1L, A ;3 Clock
CLR A ;1 Clock
ADDC A, CCAP1H ;3 Clock
MOV CCAP1H, A ;3 Clock
POP PSW ;3 Clock
POP ACC ;3 Clock
RETI ;4 Clock
;此中断服务程序共用 34 Clock, 进入中断服务程序还要数个 Clock
;------------------------------------------------------------
ORG 0060H
main:
MOV SP, #0E0H ;设置堆栈指针
ACALL PCA_init ;调用 PCA 初始化程序
main_loop:
NOP
NOP
NOP
SJMP main_loop
;------------------------------------------------------------