大家好 這是一個2.8KHz蜂鳴器的程式 目前這個程式可以執行 但是我想讓此蜂鳴器執行一秒即停止 請問我要如何改程式 謝謝各位的指點 我使用16F873A ICD2 demoboard為PICDEM 2 PLUS
LIST P=16F873A
#include p16F873a.inc ;-----------------------------------------------------
;-----------------------------------------------------
;RTCC EQU 01H ;PC EQU 02H
;STATUS EQU 03H
;C EQU 0
;RP0 EQU 5
;count_1s equ 0x20
;count_us equ 0x21
;VAL_500uS equ .250
;VAL_1s equ .200
;-----------------------
SOUNDDELAY1 EQU 0x20
;--------------------
ORG 0x00
nop
MAIN
banksel PORTC ;定義PORTC,清除PORTC
CLRF PORTC
BSF STATUS,RP0 ;
MOVLW b'00000000' ;定義TRISC為輸出模式
MOVWF TRISC
BCF STATUS,RP0
SOUND
MOVLW 222 ;1/222,450HZ
BSF PORTC,2 ;將蜂鳴器打開
CALL SOUNDDELAY0 ;呼叫延遲
BCF PORTC,2 ;關閉延遲
;call delay_1s
MOVLW 222 ;反覆鳴叫
CALL SOUNDDELAY0
GOTO SOUND
;------------------------------
SOUNDDELAY0
MOVWF SOUNDDELAY1 ;將222放入暫存器
SOUNDDELAYUS_1 ;每一個指令為1us,所以延遲為222*5us+1=1111us,為900Hz
NOP
NOP
DECFSZ SOUNDDELAY1
GOTO SOUNDDELAYUS_1
retfie