• <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

    技術(shù)熱線: 4007-888-234
    設(shè)計(jì)開(kāi)發(fā)

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

    開(kāi)發(fā)工具

    提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

    技術(shù)支持

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

    新品推廣

    提供新的芯片及解決方案,提升客戶(hù)產(chǎn)品競(jìng)爭(zhēng)力

    新聞中心

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

    用三位數(shù)碼管顯示八位AD數(shù)值

    更新時(shí)間: 2019-03-26
    閱讀量:3568

    ;************************************
          LIST   P=16F877              ;列表偽指令
          INCLUDE "P16F877.INC"        ;把包含文件含入源程序
    ;************************************
    RTCC  EQU  01H
    W_TEMP  EQU  20H
    STATUS_TEMP EQU  21H
    FLAGS  EQU  22H
    TABADD  EQU  23H
    DISPBUF_L EQU  24H
    DISPBUF_H EQU  25H
    DISP1BUF_L EQU  26H
    DISP1BUF_H EQU  27H
    SOU   EQU  28H
    SOUH  EQU  29H
    TEMP1  EQU  30H
    TEMP2  EQU  31H
    CNT   EQU  32H

     

    ;************************************
            ORG        0000H

     GOTO    START
            ORG        0008H
    ;-------------------------------------------------
    CONVERT   
            MOVWF      PCL              ;W寄存器內(nèi)的7段顯示碼地址放入PC
    TABLE                              ;PC執(zhí)行新地址指令, 跳到相對(duì)的地址執(zhí)行?               
         RETLW      0C0H           ;0  ;RETLW指令,將七段顯示碼存入W后返回
         RETLW      0F9H       ;1                                
         RETLW      0A4H       ;2
         RETLW      0B0H       ;3
         RETLW      099H       ;4
         RETLW      092H       ;5
         RETLW      082H        ;6
            RETLW      0F8H           ;7
         RETLW      080H       ;8
         RETLW      090H       ;9
    ;----- -----------------------------------------------

    START
            BANKSEL    PORTC            ;選擇同PORTC寄存器相同的體
           CLRF       PORTC            ;PORTC
          MOVLW      B'10000001'     ;選擇:時(shí)鐘時(shí)鐘源為FOSC/8,允許ADC工作
          MOVWF      ADCON0           ;通道AN0,暫時(shí)不啟動(dòng)轉(zhuǎn)換過(guò)程

     

           BANKSEL    OPTION_REG       ;選擇寄存器OPTION_REG的體為當(dāng)前體
          CLRF       TRISC            ;PORTC所有管腳設(shè)為輸出(LED)
           MOVLW      B'00001110'      ;轉(zhuǎn)換結(jié)果左對(duì)齊,只選1個(gè)A/D通道RA0/AN0
           MOVWF      ADCON1           ;選擇VDDVSS作參考源
            MOVLW    01H    ;設(shè)置RA0為輸入,其它為輸出
         MOVWF    TRISA
            BANKSEL    PORTC            ;選中同寄存器PORTC的體為當(dāng)前體
    ;---------------------------------
    MAIN    BSF     ADCON0,GO           ;開(kāi)啟A/D轉(zhuǎn)換過(guò)程
      CALL  DELAY
    WAIT
            BTFSS   PIR1,ADIF           ;等待A/D轉(zhuǎn)換過(guò)程結(jié)束,檢測(cè)ADC中斷標(biāo)志位

    GOTO   WAIT                ;如果沒(méi)有轉(zhuǎn)換結(jié)束,則返回循環(huán)檢測(cè)
           MOVF   ADRESH,W            ;如果轉(zhuǎn)換完畢,則把A/D結(jié)果讀到W
         MOVWF  SOU
         CALL    SBTBCD2
            SWAPF  SOU,W               ;顯示值高低位交換,先處理高位
           ANDLW  0FH              ;屏蔽掉高位
            MOVWF   DISPBUF_H          ;存入寄存器
            MOVFW  SOU              ;顯示值低位處理
            ANDLW  0FH              ;屏蔽掉高位
            MOVWF  DISPBUF_L        ;存入寄存器        
           SWAPF  SOUH,W              ;顯示值高低位交換,先處理高位
           ANDLW  0FH              ;屏蔽掉高位
            MOVWF  DISP1BUF_H          ;存入寄存器
            MOVFW  SOUH              ;顯示值低位處理
            ANDLW  0FH              ;屏蔽掉高位
            MOVWF  DISP1BUF_L          ;存入寄存器
         CALL  DISPLAY       
            GOTO  MAIN                ;循環(huán)進(jìn)行A/D轉(zhuǎn)換
    ;***************************************************
    DISPLAY

        MOVLW       0FFH
            MOVWF       PORTC             ;先熄滅所有數(shù)碼管以免閃爍
           MOVLW  03EH
      MOVWF  PORTA   
            MOVLW       TABLE
            MOVWF       TABADD           ;將轉(zhuǎn)換表的首地址存入TABADD  
            MOVFW       DISPBUF_L        ;計(jì)數(shù)值(W)與轉(zhuǎn)換表的起始地址相加
      ADDWF  TABADD,W
      CALL  CONVERT
      MOVWF  PORTC
      BCF   PORTA,4
      CALL  DELAY
      BSF   PORTA,4
      MOVFW       DISPBUF_H        ;計(jì)數(shù)值(W)與轉(zhuǎn)換表的起始地址相加
      ADDWF  TABADD,W
      CALL  CONVERT
      MOVWF  PORTC
      BCF   PORTA,5
      CALL  DELAY
      BSF   PORTA,5
      MOVFW       DISP1BUF_L        ;計(jì)數(shù)值(W)與轉(zhuǎn)換表的起始地址相加
      ADDWF  TABADD,W
      CALL  CONVERT
      MOVWF  PORTC
      BCF   PORTA,2
      CALL  DELAY
      BSF   PORTA,2
      RETURN                
    ;********************SBTBCD2********************

    ;本程序?qū)崿F(xiàn)單字節(jié)二進(jìn)制數(shù)轉(zhuǎn)化為2字節(jié)壓縮BCD碼。
    ;入口參數(shù):原二進(jìn)制數(shù)在SOU中。
    ;出口參數(shù):結(jié)果在SOUH:SOU中。
    ;占用資源:W,STATUS,023H,024H,025H,028H,029H,兩重堆棧。

     

               IFNDEF       SBTBCD21
                #DEFINE     SBTBCD21
                            
    SBTBCD2     MOVF        SOU,W
                MOVWF       TEMP2
                CLRF        SOU
                CLRF        SOUH
                BCF         STATUS,C
                MOVLW       8
                MOVWF       CNT
    LOOPC       RLF         TEMP2,F
                RLF         SOU,F

       RLF         SOUH,F
                DECFSZ      CNT,F
                GOTO        ADJDEC         
                RETURN                  ;整個(gè)子程序結(jié)束
    ADJDEC      MOVLW       SOU
                MOVWF       FSR
                CALL        ADJBCD      ;調(diào)整SOU
                MOVLW       SOUH
                MOVWF       FSR
                CALL        ADJBCD      ;調(diào)整SOUH
                GOTO        LOOPC
    ;********************調(diào)整BCD********************
    ADJBCD      MOVLW       03H
                ADDWF       INDF,W      ;低四位加3
                MOVWF       TEMP1       ;暫存
                BTFSC       TEMP1,3     ;結(jié)果大于7,
                MOVWF       INDF        ;則存起來(lái)
                MOVLW       30H
                ADDWF       INDF,W      ;高四位加3
                MOVWF       TEMP1              
                BTFSC       TEMP1,7     ;結(jié)果大于7,
                MOVWF       INDF        ;則存起來(lái)
                RETLW       0
               ENDIF
    ;**********************************************
    DELAY    MOVLW  0FFH
       MOVWF  034H
    LP0   NOP
       NOP

     NOP
       NOP
       NOP
       DECFSZ  034H
       GOTO  LP0
       RETURN
    ;---------------------------------
          END                         ;源程序結(jié)束


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