lab3b.asm

来自「pic单片机资料」· 汇编 代码 · 共 30 行

ASM
30
字号
	#INCLUDE p16F877A.inc		; Include the standard definitions
	#DEFINE	DEVICE_FREQ_HZ 	D'4000000'	; Used in later calculations
	#DEFINE BEEP_HZ			D'880'		; Chosen Beep Frequency

Start
	BANKSEL	TRISC		; BANKSEL to get to TRISC bank (bank 1)
	bcf		TRISC,2	; Set CCP1 as an output
	movlw	((DEVICE_FREQ_HZ/D'64')/BEEP_HZ)-1	; Load period
	movwf	PR2									;  "
	BANKSEL	CCPR1L		; BANKSEL is needed to get bank to bank 0.
	movlw	((DEVICE_FREQ_HZ/D'128')/BEEP_HZ)	; Load duty cycle
	movwf	CCPR1L								;  "
	movlw	0x06		; Turn on TMR2 (for PWM) 
	movwf	T2CON		; and /16 prescale

CheckButton
	btfsc	PORTA,4
	goto	ButtonOff
ButtonOn
	movlw	H'0C'
	movwf	CCP1CON
	goto	CheckButton
ButtonOff
	BANKSEL	PR2				; |
	rrf		PR2,F			; what will adding these lines do?
	BANKSEL	CCP1CON			; |
	clrf	CCP1CON
	goto	CheckButton
	END

⌨️ 快捷键说明

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