• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
  • slider image 488
  • slider image 491
:::


Browsing this Thread:   1 Anonymous Users






程式除錯
#1
中級會員
中級會員


查看用戶資訊
大家好 這是我用中斷寫的蜂鳴器程式 我希望響聲一秒後停止
但是我試過了 蜂鳴器還是持續叫著 請各位高手 給予校正
謝謝 以下是我的程式碼
list p=16F873a
#include <p16f873a.inc> ; Include file locate at defult directory

w_temp equ 0x20 ;定義暫存器位址w_temp,STATUS_temp,
STATUS_temp equ 0x21
scaler equ 0x22 ;定義暫存器scaler,blankcnt位址
blankcnt equ 0x23
maxcount equ .10 ;定義maxcount為數值50
SOUNDDELAY1 equ 0x33


;********************************************

;*********************************************
org 0x00 ;初始位置為0x00
goto Main
nop ;利用ICD偵錯時,程式第一個位址需填入nop
org 0x04 ;中斷位置
goto IntServ

IntServ
movwf w_temp ;將w暫存器內容儲存
swapf STATUS_temp,w ;將STATUS暫存器高低byte內容交換
movwf STATUS_temp ;交換後,存至STATUS_temp中
btfsc PIR1,TMR1IF ;判斷Timer1是否中斷
call Timer1 ;當Timer1有溢位中斷產生,呼叫中斷服務程式
swapf STATUS_temp,w ;將中斷前STATUS內容重新載入
movwf STATUS
swapf w_temp,f ;將中斷前w內容重新載入
swapf w_temp,w

Timer1
banksel PIR1 ;選擇PIR1放置的Bank
bcf PIR1,TMR1IF ;將Timer1的致能旗標清除
clrf TMR1L ;把Timer1L清為零,防止進位
movlw 0xf8 ;
movwf TMR1H ;Timer1H載入f8h
movlw 0x2f ;Timer1L載入2fh
movwf TMR1L ;所以Timer1會從f82fh計數到溢位中斷產生,剛好為2000(2ms)
banksel maxcount
movlw maxcount
movwf blankcnt
return

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 ;關閉延遲

MOVLW 222 ;反覆鳴叫
CALL SOUNDDELAY0
GOTO SOUND
;---------------------Main-------------------------------------------------------------
Main
call initial
bcf PORTC,2

;---------------------sounddelay---------------------------------------------------
SOUNDDELAY0
MOVWF SOUNDDELAY1 ;將222放入暫存器
SOUNDDELAYUS_1 ;每一個指令為1us,所以延遲為222*5us+1=1111us,為900Hz
NOP
NOP
DECFSZ SOUNDDELAY1
GOTO SOUNDDELAYUS_1
retfie

;-------------------------------------------------------------------------------------
initial
banksel maxcount
movlw maxcount
movwf blankcnt ;將常數值maxcount載入blankcnt暫存器
movlw b'00000000'
movwf PORTC ;將PORTB的LED清除
;movlw 0x04 ;初始值4,scaler
;movwf scaler
banksel TRISC
clrf TRISC ;定義PORTB為輸出阜
banksel T1CON
clrf T1CON ;設定Timer1時脈為Fosc/4

clrf TMR1H ;將Timer1內容清為零
clrf TMR1L
clrf INTCON ;將INTCON內容清為零
bsf INTCON,PEIE ;將周邊功能的中斷致能
banksel PIE1
clrf PIE1 ;將PIE1內容清為零
bsf PIE1,TMR1IE ;將Timer1溢位中斷致能
banksel PIR1
clrf PIR1
banksel TMR1L
clrf TMR1L
movlw 0xf8
movwf TMR1H
movlw 0x2f
movwf TMR1L
bsf T1CON,TMR1ON ;讓Timer1開始計數
banksel INTCON
bsf INTCON,GIE ;將中斷總開關打開,使中斷可以產生
return

;----------------Blink--------------------------------------------------------------------------
;Blink
; decfsz blankcnt,f ;blankcnt減1
; goto blinkend ;若blankcnt不為零,跳離Blink副程式
; bcf PORTC,2

;blinkend
; return

;-------------------------------------------------------
end

發表於: 2005/7/25 13:51
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







You can view topic.
不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------