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

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

pic單片機走馬燈動態(tài)顯示實驗報告

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

接上篇:pic單片機采用定時器中斷的閃燈實驗報告:http://www.zg4o1577.cn/mcu/3996.html

1.  實驗目的

學習如何使用查找表

2.  任務要求

實現(xiàn)數(shù)字譯碼和動態(tài)顯示

實現(xiàn)數(shù)碼管顯示的滾動效果

用數(shù)碼管呈現(xiàn)實驗三中的外中斷

實現(xiàn)數(shù)碼管數(shù)字顯示

制作開機畫面

3.  實驗器材

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

4.  實驗方案

 

圖 1 硬件設計圖

圖 2 數(shù)字譯碼動態(tài)顯示

流程圖

圖 3走馬燈流程圖

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

先看到SEEd四個字母然后是0-9循環(huán)滾動,每次顯示4個數(shù)字或字符。電平變化中斷觸發(fā)后重新從0-9循環(huán)顯示。

程序中用查詢表的辦法,循環(huán)選擇數(shù)碼管,循環(huán)選擇要顯示的數(shù)字和字符,利用視覺暫留以展現(xiàn)四個字符同時存在的錯覺。利用TMR0定時選擇改變顯示的四個字符,由此做成字符滾動的效果。而電平變化中斷的作用則是重新選擇字符,使數(shù)碼管重新從0123開始顯示。開機顯示其實只是在最開始時選擇了顯示的字符,由于這部分字符不在TMR0的循環(huán)里,所以只出現(xiàn)一次。

整個實驗過程中有幾次硬件出現(xiàn)問題導致數(shù)碼管只顯示一個0,應該是接觸不良,不知道觸碰到哪里就又好了,這樣的事情發(fā)生了好幾次。其他的單步調(diào)試解決了,基本上沒什么問題。

備注:開機的SEEd顯示是許雙杰的觀點,我們不知道開機顯示什么就也做了這個SEEd。

 

附:

#INCLUDE p16f886.inc  
__config _CONFIG1, _INTOSCIO _WDT_OFF

CONTEXT_SAVING UDATA_SHR
W_TMP RES 1
S_TMP RES 1
OFFSET RES 1
COFFSET RES 1
NUM RES 1
CNUM RES 1
PA RES 1
CNT RES 1
LP0 RES 1
LP1 RES 1
ISBLACK RES 1

RESET CODE 0x0
PAGESEL INIT
GOTO INIT

ISR CODE 0x04;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MOVWF W_TMP
SWAPF STATUS,W
MOVWF S_TMP
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PB_INT
BTFSC INTCON,RBIF
CALL PORTB_INT
TM0_INT
BTFSC INTCON,T0IF
CALL TMR0_INT;;;;;;;;;;;;;;;;;;;;;
;COMF ISBLACK
;BTFSS ISBLACK,0
;CALL DECRESE_COFFSET
;NOP
;BTFSC ISBLACK,0
CALL BLACK
BANKSEL INTCON
BCF INTCON,2 ;;;;;;;;;;;;;清除TMR0中斷標志位
BANKSEL TMR0
MOVLW B'01111111'
MOVWF TMR0
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; 
SWAPF S_TMP,W
MOVWF STATUS
SWAPF W_TMP,F
SWAPF W_TMP,W
RETFIE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

CODE
INIT
BANKSEL TMR0
MOVLW B'01111111'
MOVWF TMR0

BANKSEL OPTION_REG
MOVLW B'00000111'
MOVWF OPTION_REG ;;;;;;;;;;;;;;;;;;;;;TMR0設置為256分頻

BANKSEL INTCON
BSF INTCON,GIE
BSF INTCON,T0IE ;;;;;;;;;;;;;;;;;;;;;總中斷使能,TMR0中斷使能
BSF INTCON,RBIE;;;;;;;;;;;;;;;;;;;;;;PORTB電平變化中斷使能

BANKSEL TRISC
CLRF TRISC
BANKSEL PORTC
MOVLW B'11111111'
MOVWF PORTC
BANKSEL TRISA
CLRF TRISA
BANKSEL PORTA
CLRF PORTA
BANKSEL ANSEL
CLRF ANSEL
BANKSEL TRISB
MOVLW B'00100000'
MOVWF TRISB
BANKSEL IOCB
MOVLW B'00100000'
MOVWF IOCB
BANKSEL PORTB
CLRF PORTB
BANKSEL WPUB
MOVLW B'00100000'
MOVWF WPUB

BANKSEL OSCCON
MOVLW B'00010011'
MOVWF OSCCON ;;;;;;;;;;;;;;;;;;;;;;振蕩器設置為125KHz,內(nèi)部振蕩器

BANKSEL COFFSET
MOVLW D'22'
MOVWF COFFSET;;;;;;;;;;;;;;;;;;;;10個數(shù)字

BANKSEL CNUM
MOVLW D'1'
MOVWF CNUM;;;;;;;;;;;;;;;;;;;;;;;;;4個數(shù)碼管

MOVF COFFSET,W
MOVWF PA;;;;;;;;;;;;;;;;;;;;;;;;;;;PA暫時存儲COFFSET

MOVLW D'4'
MOVWF CNT;;;;;;;;;;;;;;;;;;;;;;;;;;計數(shù)四次

CLRF ISBLACK

PAGESEL MAIN
GOTO MAIN

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;這里是函數(shù)區(qū);;;;;;;;;;;;;;;;;
SELECT:
BANKSEL PORTA
CLRF PORTA
BANKSEL PORTC
MOVLW B'11111111'
MOVWF PORTC
MOVLW LOW STABLE ;獲得TABLE的低8
ADDWF NUM,F;TABLE值加上偏移量
MOVLW HIGH STABLE;獲得TABLE的高5
BTFSC STATUS,C;檢測是否翻頁
ADDLW 1;翻頁則在TABLE的高5位加一
MOVWF PCLATH;TABLE的高5位寫入PCLATH
MOVF NUM,W;將需要調(diào)用的信號的地址寫入W
CALL STABLE;
MOVWF PORTC
RETURN

STABLE:
MOVWF PCL;轉(zhuǎn)到偏移的地址
RETLW B'11111110';1
RETLW B'11111101';2
RETLW B'11111011';3
RETLW B'11110111';4

WRITE:
MOVLW LOW TABLE ;獲得TABLE的低8
ADDWF OFFSET,F;TABLE值加上偏移量
MOVLW HIGH TABLE;獲得TABLE的高5
BTFSC STATUS,C;檢測是否翻頁
ADDLW 1;翻頁則在TABLE的高5位加一
MOVWF PCLATH;TABLE的高5位寫入PCLATH
MOVF OFFSET,W;將需要調(diào)用的信號的地址寫入W
CALL TABLE;
MOVWF PORTA
RETURN

TABLE:
MOVWF PCL;轉(zhuǎn)到偏移的地址
RETLW B'01101111';9
RETLW B'01111111';8
RETLW B'00000111';7
RETLW B'01111101';6
RETLW B'01101101';5
RETLW B'01100110';4
RETLW B'01001111';3
RETLW B'01011011';2
RETLW B'00000110';1
RETLW B'00111111';0
RETLW B'00000000';NULL——11
RETLW B'00000000';NULL——12
RETLW B'00000000';NULL——13
RETLW B'00000000';NULL——14
RETLW B'01011110';d——15
RETLW B'01111001';E——16
RETLW B'01111001';E————17
RETLW B'01101101';S——18
RETLW B'00000000';NULL——19
RETLW B'00000000';NULL——20
RETLW B'00000000';NULL——21
RETLW B'00000000';NULL——22

SETORIGIN:
MOVLW D'1'
MOVWF CNUM
MOVLW D'4'
MOVWF CNT
MOVF COFFSET,W
MOVWF PA
RETURN

SETPA:
MOVLW D'10'
MOVWF PA
RETURN

SETCOFFSET:
MOVLW D'10'
MOVWF COFFSET
RETURN

DELAY: 
MOVLW 01FH
MOVWF LP0
L0 MOVLW 01FH
MOVWF LP1
L1 DECFSZ LP1,F
GOTO L1
DECFSZ LP0,F
GOTO L0
RETURN

DECRESE_COFFSET:
DECF COFFSET
BTFSC STATUS,Z
CALL SETCOFFSET
RETURN

BLACK:
BANKSEL PORTA
CLRF PORTA
CALL DELAY
RETURN

TMR0_INT:
DECF COFFSET
BTFSC STATUS,Z
CALL SETCOFFSET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;COFFSET減一
RETURN

PORTB_INT:
BANKSEL PORTB
BCF PORTB,4
BANKSEL INTCON
BCF INTCON,RBIF;;;;;;;;;;;;;;;;;;;;;;;;;;PORTB中斷標志清除
MOVLW D'10'
MOVWF COFFSET

RETURN

;;;;;;;;;;函數(shù)區(qū)到此為止;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN
LOOP
MOVF CNUM,W
MOVWF NUM;數(shù)碼管
MOVF PA,W
MOVWF OFFSET;圖案

CALL SELECT;;;;;;;;;;;;;;;;;;;;;;;;;數(shù)碼管
CALL WRITE;;;;;;;;;;;;;;;;;;;;;;;;;;圖案

DECF PA
BTFSC STATUS,Z;;;;;;;;;;;;;;;;;;;;;;
CALL SETPA;;;;;;;;;;;;;;;;;;;;;;;;;;

INCF CNUM

DECF CNT
BTFSC STATUS,Z
CALL SETORIGIN

GOTO LOOP
END

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 久草福利 | 观看毛片 | 成人在线一区二区 | 国产成人精品久久二区二区91 | 亚洲国产一区二区三区 | 精品久久久久久久久久久久 | 亚洲一区二区三区在线播放 | 久久在线视频 | 日韩精品一区二区三区四区视频 | 久草新视频| 欧美成人精品一区二区男人看 | 成人a免费 | 在线观看国产wwwa级羞羞视频 | 久久er99热精品一区二区 | 在线观看av中文字幕 | 天天操天天干天天透 | 艹逼网| 亚洲色图婷婷 | 一区二区国产在线观看 | 91精品在线观看入口 | 国产高清免费视频 | 在线成人www免费观看视频 | 欧美日韩在线综合 | 操皮视频 | 精品视频在线免费观看 | 亚洲成人一级 | 欧美三级不卡 | 亚洲综合国产精品 | 亚洲精品一区二区在线观看 | 精品欧美乱码久久久久久1区2区 | 亚洲一区视频 | 日韩中文字幕 | 黄色a三级 | 波多野结衣一区二区三区在线观看 | 精品欧美一区二区三区久久久 | 午夜免费观看 | 激情欧美日韩一区二区 | 中文字幕四虎 | 日本一区二区三区四区 | 国产一区二区三区久久久久久久久 | 四虎影院美女 |