⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ccuuse.asm.bak

📁 LPC932的CCU应用
💻 BAK
字号:
;使用硬件CCU			-----	基本定时器操作
;  1.  16位定时器,并有溢出重装功能有
;  2.  时钟CCUCLK可选,可将时钟源以1到1024间的任何整数进行分频
;  3.  4个比较/PWM输出,可选择极性
;  4.  对称/非对称PWM选择
;  5.  2路比较输入,带有事件计数器和数据噪声滤波器
;  6.  7个中断(1个溢出,2个捕获,4个比较)使用同一具中断向量
;  7.  通过映像寄存器可实现安全的16位读/写。

;16位定时器,4个捕获/比较模块,对应用4路输出(OA,OB,OC,OD),两路捕获输入(IA,IB)
	

;CCU定时器
TH2		DATA	0CDH		;CCU定时器寄存器
TL2		DATA	0CCH
TOR2H		DATA	0CFH		;CCU定时器的重装寄存器
TOR2L		DATA	0CEH

TISE2		DATA	0DEH		;中断源寄存器
TICR2		DATA	0C9H		;CCU中断控制寄存器,可屏蔽或打开某个中断
TIFR2		DATA	0E9H		;CCU中断标志寄存器


;定义CCU控制字节
TCR20		DATA	0C8H		;用来设置CCU定时器及工作模式

PLLEN		BIT	TCR20.7		;启动锁相环功能。为1时启动
HLTRN		BIT	TCR20.6		;PWM停止指示。该位为1时指示发生了PWM停止。若要重新启动PWM,用户要清零该位。
HLTEN		BIT	TCR20.5		;PWM停止功能使能。该位为1时,输入捕获A管脚的捕获事件将立即停止所有PWM。
ALTCD		BIT	TCR20.4		;PWM通道C/D交替输出使能。当该位置位,PWM通道C和D的输出每个计数器周期交替选通。  
ALTAB		BIT	TCR20.3		;PWM通道A/B交替输出使能。当该位置位,PWM通道A和B的输出每个计数器周期交替选通。  
TDIR2		BIT	TCR20.2		;CCU定时器的计数方向,为0是递增,为1时递减。
TMOD21		BIT	TCR20.1		;CCU定时模式选择。00---定时器停止,01---基本定时器功能
TMOD20		BIT	TCR20.0		;10---非对称PWM(使用PLL作为时钟源),11---对称PWM(使用PLL作为时钟源)

TCR21		DATA	0F9H		;用于设置PLL分频器,以对PCLK进行倍频

;预分频器控制寄存器,TPCR2H的高6位无效。将PCLK再进行分频
TPCR2H		DATA	0CBH
TPCR2L		DATA	0CAH



;各个模块的寄存器定义
OCRAH		DATA	0EFH		;各个模块的捕获比较的定时器寄存器
OCRAL		DATA	0EEH
OCRBH		DATA	0FBH
OCRBL		DATA	0FAH
OCRCH		DATA	0FDH
OCRCL		DATA	0FCH
OCRDH		DATA	0FFH
OCRDL		DATA	0FEH

CCCRA		DATA	0EAH		;各个模块的捕获比较控制或模式
CCCRB		DATA	0EBH
CCCRC		DATA	0ECH
CCCRD		DATA	0EDH

ICRAH		DATA	0ABH		;输入捕获A高字节
ICRAL		DATA	0AAH		;输入捕获A低字节
ICRBH		DATA	0AFH
ICRBL		DATA	0AEH


;定义LPC932的部分特殊寄存器
TRIM	DATA	96H	
DIVM	DATA	95H	  	;CPU分频设置寄存器
P1M1	DATA	91H
P1M2	DATA	92H
P2M1	DATA	0A4H
P2M2	DATA	0A5H
IEN1	DATA	0E8H
ECCU	BIT	IEN1.4		;CCU中断允许位

T2_CNT	DATA	30H		;软件定时器
LEDCON	BIT	P1.6		;LED控制口线,为0时点亮




;============================================================
		ORG	0000H
		AJMP	MAIN

		ORG	005BH	
		AJMP	INTS_CCU	;CCU中断入口


		ORG	0100H
MAIN:		MOV	R7,#0
		DJNZ	R7,$
		;由于上电复位时所用IO口设置为高阻态,所以要进行IO设置
	  	MOV	P1M1,#2CH
	  	MOV	P1M2,#0CH
	  	MOV	P2M1,#00H
	  	MOV	P2M2,#00H
	  	CPL 	LEDCON
		MOV	T2_CNT,#0
		MOV	SP,#60H	 

		ACALL	INI_CCU		;初始化CCU
		
		SJMP	$		;等待定时器中断


;初始化CCU
;设置定时器重装值,时钟源设置,并打开中断设置等。
INI_CCU:
		MOV	TOR2H,#10H	;设置CCU定时器重装值
		MOV	TOR2L,#00H	;TH2,TL2可先不设置

		MOV	TPCR2H,#00	;使用PCLK时钟源,并进行10分频
		MOV	TPCR2L,#10	

		MOV	TCR20,#00000001B;设置基本定时器
		
		MOV	TICR2,#80H	;设置CCU中断使能寄存器
		SETB	ECCU		;打开CCU中断
		SETB	EA		
		RET



;CCU定时器中断处理	
;注:定时器值会自动重装,TH2,TL2
INTS_CCU:	
		MOV	A,TISE2
		ANL	A,#07H
		CJNE	A,#07H,INTS_CEXT	;判断中断源,若不为CCU定时器中断,退出

		INC	T2_CNT		
		MOV	A,T2_CNT
		CJNE	A,#10,INTS_CEXT
		MOV	T2_CNT,#0
		CPL	LEDCON
INTS_CEXT:	MOV	TIFR2,#00H		;清除中断标志
		RETI

END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -