欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 【推薦】ST套件數碼管靜態 [打印本頁]

作者: selko112    時間: 2008-8-14 15:40
標題: 【推薦】ST套件數碼管靜態
ST套件數碼管靜態顯示試驗(學習查表程序)
;本實驗的目的是讓大家熟悉數碼管,學習怎樣應用查表程序,本程序的功能是要用PIC來實現一位
;數碼管顯示,程序復位后先由第一個數碼管從0循環顯示到9,再由第二個數碼管從0顯示到9,然后再
;由第一個數碼管顯示返復循環。程序中用一個計數器由0計數到9,同時將其在LED上顯示出來。該例給出
;計數值與顯示碼的轉換方法。
;PIC單片機學習網-----http://www.pic16.com
;燒寫時應注意:配置位已經在程序中寫明,加載HEX文件時會自動加載,燒寫時不用再手動設置配置位。
;實驗時請注意套件跳線選擇;
;****************************************************************
  LIST P=16F84A,R=DEC    ;定義器件為16F84,默認數制為十進制
;-----------------------------------------------
  __CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC
                                              ;沒有代碼保護
                                              ;看門狗關閉
                                              ;上電廷時器開啟
                                              ;振蕩器模式為XT
;---------------------
PC     EQU 02H            ;變量單元定義
STATUS EQU 03H
PORTA EQU 05H
PORTB EQU 06H

TRISA EQU 5H
TRISB EQU 6H
;-----------------------STATUS
RP0    EQU 5
;-----------------------
COUNTER EQU 10H
COUNT0  EQU 11H
COUNT1  EQU 12H
COUNT2  EQU 13H
TABADD  EQU 14H
;--------------------
     ORG 0000H
MAIN
     CLRF PORTA
     CLRF PORTB          ;初始IO口
    
     BSF STATUS,RP0      ;設置數據寄存器體1
     MOVLW 00000000B     ;設置RB、RA口全部為輸出
     MOVWF TRISA
     MOVWF TRISB 
     BCF STATUS,RP0      ;恢復數據寄存器體0
;----------------------
LOOPA
     MOVLW 0FFH          ;讓數碼所有劃先熄滅
     MOVWF PORTB
     BSF PORTA,2
     BCF PORTA,1          ;讓第一位數碼管顯示
LOOP1
     MOVLW TABLE          ;將轉換表的首地址存入TABADD
     MOVWF TABADD
     CLRF COUNTER         ;計數器清0
     CLRW
LOOP2
     ADDWF TABADD,W        ;計數值(W)與轉換表的起始地址相加
     CALL CONVERT          ;存入W后調用轉換表子程序
     MOVWF PORTB           ;取出的七段顯示碼送RB口顯示
     CALL DELAY
     INCF COUNTER,1        ;計數器加1遞增(依次顯示0,1,2,…9,。)
     MOVLW 11
     XORWF COUNTER,0       ;第一位顯示完后轉第二位顯示
     BZ LOOPB
     MOVFW COUNTER
     GOTO LOOP2
;-------------------------
LOOPB
     MOVLW 0FFH            ;讓數碼所有劃先熄滅
     MOVWF PORTB
     BSF PORTA,1
     BCF PORTA,2            ;讓第二位數碼管顯示
LOOP3
     MOVLW TABLE
     MOVWF TABADD
     CLRF COUNTER
     CLRW
LOOP4
     ADDWF TABADD,W
     CALL CONVERT
     MOVWF PORTB
     CALL DELAY
     INCF COUNTER,1
     MOVLW 11
     XORWF COUNTER,0
     BZ LOOPA                  ;第二位顯示完后轉第一位循環顯示
     MOVFW COUNTER
     GOTO LOOP4
;---------------------------------
DELAY                                 ;設置延時常數
       MOVLW    3             
       MOVWF    COUNT0
L1  
       MOVLW    255
       MOVWF    COUNT1
L2  
       MOVLW    255
       MOVWF    COUNT2
L3  
       DECFSZ   COUNT2,1         ;遞減循環
       GOTO    L3
       DECFSZ   COUNT1,1
       GOTO    L2
       DECFSZ   COUNT0,1
       GOTO    L1
       RETLW    0
;-------------------- ----------------------------------
CONVERT  
            MOVWF    PC                      ;將W寄存器內的7段顯示碼地址放入PC  
TABLE                                           ;PC執行新地址指令, 跳到相對的地址執行
                                                ;RETLW指令,將七段顯示碼存入W后返回        
   RETLW    081H    ;0
  RETLW    0E7H    ;1                               
  RETLW    092H    ;2
  RETLW    0A2H    ;3
  RETLW    0E4H    ;4
  RETLW    0A8H    ;5
  RETLW    088H    ;6
  RETLW    0E3H    ;7
  RETLW    080H    ;8
  RETLW    0A0H    ;9
          RETLW       07FH                      ;.
;----- -----------------------------------------------
     END





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1