久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> MCU設(shè)計實例 >> 瀏覽文章

pic單片機(jī)采用定時器中斷的閃燈實驗報告

作者:未知   來源:互聯(lián)網(wǎng)   點擊數(shù):  更新時間:2014年08月15日   【字體:

上接:http://www.zg4o1577.cn/mcu/3983.html

1.  實驗?zāi)康?/span>

學(xué)習(xí)如何使用中斷

2.  任務(wù)要求

用定時器中斷方式完成閃燈實驗

設(shè)計驗證外部邊沿中斷/電平變化中斷

睡眠喚醒

3.  實驗器材

單片機(jī)PIC16F886一片、LED燈一只、電阻任選、下載器(及相關(guān)的線)一個

4.  實驗方案

圖 1 硬件設(shè)計圖

 

 

 

 

圖 2 定時器中斷軟件流程圖

 


圖 3電平變化中斷流程圖

 

圖 4 睡眠喚醒流程圖

5.  實驗現(xiàn)象分析

基礎(chǔ)實驗部分

仿真模擬,在反轉(zhuǎn)PORTA代碼部分加上斷點,用STOP WATCH 觀察兩次運行至斷點所需的時間,

 

。

然后下載至芯片,LED燈閃動正常。

電平變化中斷實驗:

使用PORTBRB5作為輸入端口,當(dāng)RB5電平變化時,RA端口上的燈閃爍4次,從頭到尾RC端上的燈只有亮一種狀態(tài)。

睡眠喚醒實驗:觸發(fā)一次喚醒,RA端燈亮滅四次,RC3改變一次狀態(tài)。

做電平變化中斷和睡眠喚醒實驗時遇到兩個問題:1.電平變化中斷標(biāo)志位清零前沒有對PORTB執(zhí)行讀寫操作,導(dǎo)致清除無效;1,DELAY函數(shù)寫在中斷內(nèi)部,總是提前RETURN破壞了現(xiàn)場且多執(zhí)行了DELAY操作。

 

 

附:

定時器中斷代碼:

#INCLUDE p16f886.inc  

__config _CONFIG1, _WDT_OFF

 

CONTEXT_SAVING UDATA_SHR

W_TMP RES 1

S_TMP RES 1

 

RESET CODE 0x0

PAGESEL MAIN

GOTO MAIN

 

ISR CODE 0X04

MOVWF W_TMP

SWAPF STATUS,W

MOVWF S_TMP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以上保存現(xiàn)場

BANKSEL INTCON

BCF INTCON,2 ;;;;;;;;;;;;;清除TMR0中斷標(biāo)志位

BANKSEL PORTA

COMF PORTA,1 ;;;;;;;;;;;;;;PORTA翻轉(zhuǎn)

BANKSEL TMR0

MOVLW B'00001111' ;;;;;;;;;;;;;;TMR0預(yù)置數(shù)

MOVWF TMR0

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以下恢復(fù)現(xiàn)場

SWAPF S_TMP,W

MOVWF STATUS

SWAPF W_TMP,F

SWAPF W_TMP,W

RETFIE

 

CODE

MAIN

MOVLW B'00001111'

MOVWF TMR0 ;;;;;;;;;;;;;;;;;;;;;;;TMR0預(yù)置數(shù)

BANKSEL OPTION_REG

MOVLW B'000011'

MOVWF OPTION_REG ;;;;;;;;;;;;;;;;;;;;;TMR0設(shè)置為16分頻

 

BANKSEL INTCON

BSF INTCON,GIE

BSF INTCON,T0IE ;;;;;;;;;;;;;;;;;;;;;總中斷使能,TMR0中斷使能

;;;;;;;;;

 

BANKSEL OSCCON

MOVLW B'00000011'

MOVWF OSCCON ;;;;;;;;;;;;;;;;;;;;;;振蕩器設(shè)置為310KHz,內(nèi)部振蕩器

 

BANKSEL ANSEL

CLRF ANSEL

BANKSEL TRISA;

MOVLW B'00000000'

MOVWF TRISA

BANKSEL PORTA

CLRF PORTA ;;;;;;;;;;;;;;;;;;;;;設(shè)置PORTA為輸出

LP

NOP

GOTO LP

END

 

外部中斷代碼

#INCLUDE p16f886.inc  

__config _CONFIG1, _WDT_OFF

 

CONTEXT_SAVING UDATA_SHR

W_TMP RES 1

S_TMP RES 1

LP0 RES 1

LP1 RES 1

TIMES RES 1

 

RESET CODE 0x0

PAGESEL MAIN

GOTO MAIN

 

ISR CODE 0x04

MOVWF W_TMP

SWAPF STATUS,W

MOVWF S_TMP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以上保護(hù)現(xiàn)場

BANKSEL PORTB

BSF PORTB,4

BANKSEL INTCON

BCF INTCON,RBIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;PORTB,清除中斷標(biāo)志位

MOVLW D'4'

MOVWF TIMES;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置亮燈次數(shù)為4

MM COMF PORTA,F

CALL DELAY

COMF PORTA,F

CALL DELAY

DECFSZ TIMES,F

GOTO MM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;閃爍4

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以下恢復(fù)現(xiàn)場

SWAPF S_TMP,W

MOVWF STATUS

SWAPF W_TMP,F

SWAPF W_TMP,W

RETFIE

 

CODE

 

DELAY 

MOVLW 01FH

MOVWF LP0

L0 MOVLW 01FH

MOVWF LP1

L1 DECFSZ LP1,F

GOTO L1

DECFSZ LP0,F

GOTO L0

RETURN

 

MAIN

 

BANKSEL TRISC

MOVLW B'11110111'

MOVWF TRISC

BANKSEL PORTC

MOVLW B'00001000'

XORWF PORTC,F;;;;;;;;;;;;;;;;;;;;;;

;;;;;;;;;;;;;;;;;;;;;;設(shè)置RC3標(biāo)志程序執(zhí)行,用于判斷程序是否被重復(fù)執(zhí)行

 

BANKSEL INTCON

BCF INTCON,RBIF;;;;;;;;;;;;;;;;;;;;;;;;;;清除中斷標(biāo)志位

 

BANKSEL OSCCON

MOVLW B'00000011'

MOVWF OSCCON;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置振蕩器頻率31KHz

 

BANKSEL ANSEL

CLRF ANSEL

BANKSEL TRISA;BANK1

MOVLW B'00000000'

MOVWF TRISA

BANKSEL PORTA

CLRF PORTA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置PORTA為輸出

 

BANKSEL INTCON

MOVLW B'11011000'

MOVWF INTCON;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;使能電平變化中斷

 

BANKSEL OPTION_REG

MOVLW B'01010000'

MOVWF OPTION_REG;;;;;;;;;;;;;;;;;;;;;;;;;;;使能PORTB上拉

 

BANKSEL PORTB

CLRF PORTB

BANKSEL TRISB

MOVLW B'00100000'

MOVWF TRISB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置RB5為輸入

BANKSEL ANSELH

CLRF ANSELH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置模擬輸入模式為0

BANKSEL IOCB

MOVLW B'00100000'

MOVWF IOCB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;允許PORTB5電平變化使能

 

LOOP

GOTO LOOP

 

END

睡眠喚醒代碼:

#INCLUDE p16f886.inc  

__config _CONFIG1, _WDT_OFF

 

CONTEXT_SAVING UDATA_SHR

W_TMP RES 1

S_TMP RES 1

LP0 RES 1

LP1 RES 1

TIMES RES 1

 

RESET CODE 0x0

PAGESEL MAIN

GOTO MAIN

 

ISR CODE 0x04

MOVWF W_TMP

SWAPF STATUS,W

MOVWF S_TMP

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以上保護(hù)現(xiàn)場

BANKSEL PORTB

BSF PORTB,4

BANKSEL INTCON

BCF INTCON,RBIF;;;;;;;;;;;;;;;;;;;;;;;;PORTB并清除中斷標(biāo)志位

MOVLW D'4'

MOVWF TIMES;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置亮燈次數(shù)4

MM COMF PORTA,F

CALL DELAY

COMF PORTA,F

CALL DELAY

DECFSZ TIMES,F

GOTO MM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;燈閃爍四次

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;以下恢復(fù)現(xiàn)場

SWAPF S_TMP,W

MOVWF STATUS

SWAPF W_TMP,F

SWAPF W_TMP,W

RETFIE

 

CODE

 

DELAY 

MOVLW 01FH

MOVWF LP0

L0 MOVLW 01FH

MOVWF LP1

L1 DECFSZ LP1,F

GOTO L1

DECFSZ LP0,F

GOTO L0

RETURN

 

MAIN

BANKSEL INTCON

BCF INTCON,RBIF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;清除中斷標(biāo)志位

 

BANKSEL OSCCON

MOVLW B'00000011'

MOVWF OSCCON;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置振蕩器31KHz

 

BANKSEL ANSEL

CLRF ANSEL

BANKSEL TRISA

MOVLW B'00000000'

MOVWF TRISA

BANKSEL PORTA

CLRF PORTA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置PORTA輸出

 

BANKSEL INTCON

MOVLW B'11011000'

MOVWF INTCON;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;使能總中斷使能和電平變化中斷使能

 

BANKSEL OPTION_REG

MOVLW B'01010000'

MOVWF OPTION_REG;;;;;;;;;;;;;;;;;;;;;;;;

 

BANKSEL PORTB

CLRF PORTB

BANKSEL TRISB

MOVLW B'00100000'

MOVWF TRISB

BANKSEL ANSELH

CLRF ANSELH

BANKSEL IOCB

MOVLW B'00100000'

MOVWF IOCB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置PORTB5電平變化中斷使能

 

BANKSEL PORTC

MOVLW B'11110111'

BANKSEL TRISC

CLRF TRISC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;設(shè)置PORTC3為輸出

 

loop 

BANKSEL PORTC

MOVLW B'00001000'

XORWF PORTC,F

CALL DELAY;;;;;;;;;;;;;;;;;;;;;;RC3改變一次狀態(tài),執(zhí)行一次SLEEP,顯示是否進(jìn)入休眠

 

SLEEP

NOP

GOTO loop

 

END

 

下一篇:  pic單片機(jī)走馬燈動態(tài)顯示實驗報告 http://www.zg4o1577.cn/mcu/4080.html

關(guān)閉窗口
主站蜘蛛池模板: 色伊人| 动漫www.被爆羞羞av44 | 中文字幕一区二区三区在线观看 | 久久精品一 | 亚洲视频在线看 | 国产99视频精品免费视频7 | 精品国产一区二区三区久久 | 欧美精品日韩精品 | 国产在线aa | 日韩视频在线播放 | 一级黄色片网站 | av在线一区二区三区 | 日本中文在线视频 | 欧美一区二区 | 欧美激情一区二区 | 99精品久久久久久 | av在线一区二区三区 | 在线播放中文字幕 | 亚洲中午字幕 | 久久99视频这里只有精品 | 成人网av | 亚洲精品一区二区冲田杏梨 | 一区二区亚洲 | 久久久婷婷 | 久久久av | 成人精品毛片国产亚洲av十九禁 | 国产精品视频一区二区三区四蜜臂 | 亚洲一区视频在线 | 天天夜夜操 | 希岛爱理在线 | 国产一区久久久 | 国产无人区一区二区三区 | 91视频进入 | 国产成人综合网 | 97热在线 | 午夜精品久久久久久久久久久久久 | 欧美日韩高清在线观看 | 欧美v在线| 五月综合激情在线 | 欧美精品首页 | 99国产精品久久久久老师 |