• <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频|成人a站免费|日本黄色片|久久久久无码AV

    技術熱線: 4007-888-234
    設計開發(fā)

    專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

    開發(fā)工具

    提供開發(fā)工具、應用測試 完善的開發(fā)代碼案例庫分享

    技術支持

    從全面的產(chǎn)品導入到強大技術支援服務 全程貼心伴隨服務,創(chuàng)造無限潛能!

    新品推廣

    提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

    新聞中心

    提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)

    實戰(zhàn)九:兩位數(shù)碼動態(tài)顯示實驗

    更新時間: 2019-01-05
    閱讀量:879

    ;本例說明動態(tài)顯示二位數(shù)碼管的方法,其實動態(tài)顯示數(shù)碼管是利用人眼的暫留效應,即

    ;輪流讓需顯示的多個數(shù)碼管分別各顯示一段時間,有的朋友可能會問:這樣不是可以看到

    ;數(shù)碼管在閃爍?不,只要你的掃描速度夠快,人眼是看不到閃爍的,也不是非常快基本上小于

    ;10MS就可以了,

    ;程序中使用一個寄存器(DIGIT)作計數(shù)器,然后將計數(shù)結果輸出顯示。

    ;因為數(shù)碼管只能顯示0-9的十進制輸出,所以計數(shù)器DIGIT需轉換成十進制再輸出,程序中將

    ;涉及到將十六進制轉成十進制BCD碼的方法。二進制調(diào)整為BCD碼的方法是將二進制碼左移8次

    ;每次移位后都檢查低四位LSD+3是否大于7,如果是則再加3,否則不加。接著再將高四位MSD作相同處理

    ;本程序的功能是:程序復位后,數(shù)碼管從0開始顯示數(shù)字,直到99,然而又從0到99循環(huán)顯示

    ;燒寫時應注意:配置位已經(jīng)在程序中寫明,加載HEX文件時會自動加載,燒寫時不用再手動設置配置位。

    ;實驗時請注意套件跳線選擇

    ;*

    LIST P=16F84A,R=DEC ;定義器件為16F84,默認數(shù)制為十進制

    ;—————————————————————————————-

    __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

    COUNT1 EQU 11H

    COUNT2 EQU 12H

    TABADD EQU 13H

    DISPBUF EQU 14H ;顯示值暫存

    DISPBUF_H EQU 15H ;顯示器高位

    DISPBUF_L EQU 16H ;顯示器低位

    BUFFER EQU 17H

    BUFFER1 EQU 18H

    SUM EQU 19H

    DIGIT EQU 1AH ;0-99計數(shù)器

    ;——————————

               ORG 0000H
    

    MAIN

               CLRF        PORTA
    
               CLRF        PORTB   ;初始化IO口
    
    
    
               BSF         STATUS,RP0 ;設置寄存器體1
    
               MOVLW       00000000B  ;將所有IO口設置為輸出
    
               MOVWF       TRISA 
    
               MOVWF       TRISB  
    
               BCF         STATUS,RP0  ;恢復寄存器體0
    
    
    
                MOVLW       0FFH       ;先讓數(shù)碼管全部不顯示
    
                MOVWF       PORTB
    
                  CLRF           DIGIT      ;顯示計數(shù)器清0
    
                CLRF        DISPBUF    ;清顯示值
    

    LOOP1

                MOVLW       22
    
                MOVWF       COUNTER    ;計數(shù)器0.2秒鐘加1   22*9.2MS=0.2s
    

    LOOP1_1

                CALL        DISP       ;調(diào)用顯示子程序
    
                DECFSZ      COUNTER,1   ;顯示0.2秒鐘
    
                GOTO        LOOP1_1
    
          INCF           DIGIT,1       ;計數(shù)器加1
    
          MOVLW        8
    
          MOVWF        COUNTER          ;循環(huán)左移計數(shù)器置8
    
          CLRF           BUFFER          ;清除緩沖器
    
          MOVF           DIGIT,W   
    
          MOVWF        BUFFER1         
    

    LOOP2

                RLF            BUFFER1,1         ;二進制數(shù)轉換成BCD碼(以便顯示)
    
          RLF          BUFFER,1
    
          DECFSZ       COUNTER,1          ;左移8次
    
          GOTO           ADJUST             ;
    
          MOVFW           BUFFER
    
          MOVWF        DISPBUF         ;是否有進位(即已達100),如已計數(shù)到100則
    
          SKPC                        ;從0開始再計數(shù)顯示(顯示00~99)
    
          GOTO           LOOP1
    
          GOTO           MAIN
    

    ADJUST

                MOVLW        3               ;二進制轉BCD的調(diào)整
    
          ADDWF        BUFFER,W        ;每次移位后都檢查低四位LSD+3是否大于7
    
          MOVWF        SUM             
    
          BTFSC        SUM,3
    
          MOVWF        BUFFER
    
          MOVLW        30H
    
          ADDWF        BUFFER,W        ;如果是則再加3,否則不加。
    
          MOVWF        SUM
    
          BTFSC        SUM,7
    
          MOVWF        BUFFER          ;接著再將高四位MSD作相同處理
    
          GOTO           LOOP2
    

    ;- ————————————————————-

    DELAY ;顯示廷時常數(shù),廷時時間為32556+6us+4us=4.6ms

                MOVLW        6
    
          MOVWF        COUNT1
    

    L2

            MOVLW        255
    
          MOVWF        COUNT2
    

    L3

                DECFSZ       COUNT2,1        
    
            GOTO           L3
    
          DECFSZ       COUNT1,1
    
          GOTO           L2
    
            RETLW        0
    

    ;—————————— —————————————————

    DISP

             SWAPF      DISPBUF,W         ;顯示值高低位交換,先處理高位
    
             ANDLW      0FH               ;屏蔽掉高位
    
             MOVWF      DISPBUF_H         ;存入寄存器
    
             MOVFW      DISPBUF           ;顯示值低位處理
    
             ANDLW      0FH               ;屏蔽掉高位
    
             MOVWF      DISPBUF_L         ;存入寄存器
    
             MOVLW      0FFH
    
             MOVWF      PORTB             ;先熄滅數(shù)碼管以免閃爍
    
             BSF        PORTA,1
    
             BCF        PORTA,2           ;先顯示低位
    
             MOVLW      TABLE
    
             MOVWF      TABADD           ;將轉換表的首地址存入TABADD  
    
             MOVFW      DISPBUF_L        ;計數(shù)值(W)與轉換表的起始地址相加
    
             ADDWF      TABADD,W
    
             CALL       CONVERT          ;存入W后調(diào)用轉換表子程序
    
             MOVWF      PORTB            ;送RB口顯示
    
             CALL       DELAY            ;廷時4。7MS
    
    
    
             MOVLW      0FFH             ;同樣方法顯示高位
    
             MOVWF      PORTB
    
             BSF        PORTA,2
    
             BCF        PORTA,1
    
             MOVLW      TABLE
    
             MOVWF      TABADD
    
             MOVFW      DISPBUF_H
    
             ADDWF      TABADD,W
    
             CALL       CONVERT
    
             MOVWF      PORTB
    
             CALL       DELAY
    
             RETLW      0
    

    ;———————————————————————————-

    CONVERT

            MOVWF        PC                    ;將W寄存器內(nèi)的7段顯示碼地址放入PC 
    

    TABLE ;PC執(zhí)行新地址指令, 跳到相對的地址執(zhí)行?

      RETLW        081H                ;0  ;RETLW指令,將七段顯示碼存入W后返回
    
      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
    

    ;——- ———————————————————————-

     END
    

    久久黄色 视频|我草AV|AV在线网站导航|色色97激情|无码人妻一区二区有奶水|日韩精品|大香蕉97视频
  • <tbody id="w8jhq"><dfn id="w8jhq"><pre id="w8jhq"></pre></dfn></tbody>
  • <fieldset id="w8jhq"><pre id="w8jhq"></pre></fieldset>