• <rp id="wfxtb"><acronym id="wfxtb"></acronym></rp><em id="wfxtb"></em><dd id="wfxtb"><big id="wfxtb"><video id="wfxtb"></video></big></dd>
  • <rp id="wfxtb"></rp>

    <mark id="wfxtb"><center id="wfxtb"></center></mark>

      <rp id="wfxtb"><span id="wfxtb"><u id="wfxtb"></u></span></rp>

      <rp id="wfxtb"><object id="wfxtb"></object></rp>

      注意:訪問本站需要Cookie和JavaScript支持!請設置您的瀏覽器! 打開購物車 查看留言付款方式聯系我們
      初中電子 單片機教材一 單片機教材二
      搜索上次看見的商品或文章:
      商品名、介紹 文章名、內容
      首頁 電子入門 學單片機 免費資源 下載中心 商品列表 象棋在線 在線繪圖 加盟五一 加入收藏 設為首頁
      本站推薦:
      用RC充電的方法實現溫度的檢測
      文章長度[16345] 加入時間[2007/1/12] 更新時間[2025/3/18 17:41:03] 級別[0] [評論] [收藏]
       

      ;  該程序用RC充電的方法實現溫度的檢測

      ;  RA0 數碼管個位選通 RA1 數碼管百位選通

      ;  RB7 數碼管百位和負號選通 

      ; RA2 檢測電容高低電平

      ;  RA3  對電容充電和放電
      ;-----------------
        
         INCLUDE  "P16F84A.INC"
      ;------------------
      ;*****************************************************
        LIST P=16F84A,R=DEC         ;定義器件,默認為十進制
      ;-----------------------------------------------------
        __CONFIG B'11111111110001';_CP_OFF&_WDT_OFF&_PWRITE_ON&_XT_OSC
                                                    ;沒有代碼保護
                                                    ;看門狗關閉
                                                    ;上電廷時器開啟
                                                    ;振蕩器模式為XT
         RC   EQU 2
         RVCC EQU 3
         JIZIBZ  EQU 2
         TIMER EQU 30H
         BZH    EQU 32H
         TIMER2  EQU  36H
         FRISTJSQ  EQU  33H
         XIANZHIL  EQU  34H
         XIANZHIH  EQU  35H
         JSQ1      EQU  37H
         BCDLS     EQU  38H
         SUM       EQU  39H
         JSQ2      EQU  42H
         XIANZHIBAI  EQU  40H ;顯值百位
         L         EQU   0
         H         EQU   1
         BAI       EQU   7;顯示百位
         ZEROFZ    EQU   2 ;負值標記
         FP         EQU  0 ;分頻標記
      MAIN
         ORG  000H
         BANKSEL  TRISB
         CLRF  TRISB
         CLRF  TRISA
         BANKSEL  PORTB
         CLRF   PORTB
         CLRF   PORTA
       
         BCF    PORTA,H
         BCF    PORTA,L
         CLRZ
          NOP
      LOOP
          BANKSEL  TRISA
          BSF    TRISA,RC
           BCF    TRISA,RVCC
          BANKSEL  PORTA
      LOOP1
              
               CLRF   TIMER
               CLRF   SUM
               CLRF   BCDLS
               CLRF   TIMER2
               CLRF   XIANZHIH
               CLRF   XIANZHIL
               MOVLW  0FFH
               MOVWF      XIANZHIBAI
               CLRF   BZH
               CLRF   JSQ2
               BSF    PORTA,RVCC
               CALL   CONG
              
      LOOP2   
               BTFSS  PORTA,RC
               GOTO   OUT   
               INCF  TIMER,1;TIMER
               ;GOTO  LOOP2  ;http://211.100.30.165/search/?key=測試','_blank');" onmouseout=kwL(event); target=_blank>測試2
               BTFSC  BZH,FP ;選擇分頻
               GOTO   TWOFP
               MOVLW  D'1'  ;低分頻單步短 o  5
               XORWF  TIMER,0
               BTFSS  STATUS,Z
               GOTO   LOOP2
               CLRF   TIMER
               INCF   TIMER2,1;TMER2最終計時
               MOVLW  D'60';判TIMER2是否到了60到了60采用另一分頻
               XORWF  TIMER2,0
               BTFSC  STATUS,Z
               BSF    BZH,FP
               GOTO   LOOP2
      TWOFP
               MOVLW  D'1'  ;高分頻單步長o 11
               XORWF  TIMER,0
               BTFSS  STATUS,Z
               GOTO   LOOP2
               CLRF   TIMER
               INCF   TIMER2,1
               MOVLW  D'1' ;只有在-1的時候才顯示負數
               XORWF  TIMER2,0;判斷是否為-1在00時不顯示負數
               BTFSC  STATUS,Z
               GOTO    SETFH ;轉到設置負號
               MOVLW  D'120';判是否到了120如果到了,則為負值
               XORWF  TIMER2,0
               BTFSS  STATUS,Z
                GOTO   LOOP2
               ;CALL  SETFH
               BSF   BZH,ZEROFZ;置負數標志,因為是00所以不能置負號
               CLRF   TIMER2
               GOTO   LOOP2
      SETFH  ;設置負號
               MOVLW  0BFH;040H
               MOVWF  XIANZHIBAI
               GOTO  LOOP2
      OUT
               BSF   PORTA,RVCC
               BTFSC  BZH,ZEROFZ;如果是負值就不用減,如果是正值就應該減
               GOTO   CLFZ
               MOVF  TIMER2,0
               SUBLW  D'120'
               MOVWF  TIMER2
               MOVF  TIMER2,0 ;判斷TIMER是不是有百位數
               MOVWF   JSQ2
               MOVLW  D'100'
               SUBWF  JSQ2,1
               BTFSS  STATUS,C
               GOTO   OUT_1
               MOVLW  0F9H;006H
               MOVWF  XIANZHIBAI
               MOVF   JSQ2,0
               MOVWF  TIMER2
                      
      OUT_1     CALL   BCDBIT
               GOTO   XIANSHI
      CLFZ   ;負值處理 
               CALL  BCDBIT
               GOTO   XIANSHI
             
      BCDBIT
               MOVLW  D'8'
               MOVWF  JSQ1
      BCD_1
              RLF   TIMER2
              RLF   BCDLS,1
             
              DECFSZ JSQ1,1
              GOTO   TIAOZHEN
              RETURN
      TIAOZHEN
              MOVLW  D'3'
              ADDWF  BCDLS,0
              MOVWF  SUM
              BTFSC  SUM,3
              MOVWF  BCDLS
              MOVLW  030H 
              ADDWF  BCDLS,0
              MOVWF  SUM
              BTFSC  SUM,7
              MOVWF  BCDLS
              GOTO  BCD_1
      CONG
              BSF   PORTA,RVCC
              MOVLW  D'200'
              MOVWF  43H
              DECFSZ  43H
              GOTO  $-1
              BCF   PORTA,RVCC
              RETURN
                      
      XIANSHI
             MOVLW  D'8'
             MOVWF  JSQ2 ;一次顯示循環次數,以免閃濼
      ;-----------顯示L-------
      XS       MOVF  BCDLS,0;讀出兩位十進制數
             ANDLW  00FH;去掉高四位
             MOVWF  XIANZHIL;低四位放在L
             SWAPF  BCDLS,1 ;高低交換,高在低位
             MOVLW  00FH;取高位值
             ANDWF  BCDLS,0;
             MOVWF  XIANZHIH;放到顯示H中
             SWAPF  BCDLS,1;恢復BCDLS值
              BCF   PORTA,H;關H
              BCF   PORTA,L;關L
             
              CLRF  PORTB
              MOVF  XIANZHIL,0
              CALL  TAB
              MOVWF  PORTB
              BCF    PORTB,BAI
              BSF   PORTA,L;打開L
              CALL  YS;延時
            
      ;-----------顯示H-------
              BCF   PORTA,H;關閉顯示
              BCF   PORTA,L
             
              CLRF  PORTB
              MOVF  XIANZHIH,0
              CALL  TAB
              MOVWF  PORTB
              BCF    PORTB,7
              BSF   PORTA,H;開高
              CALL  YS
      ;-----------顯示BAI-------
              BCF   PORTA,H;關
              BCF   PORTA,L
              ;BCF   PORTA,BAI
              CLRF  PORTB
              MOVF  XIANZHIBAI,0
              MOVWF  PORTB
              BSF    PORTB,7
             ; BSF    PORTA,BAI
               CALL  YS
             DECFSZ  JSQ2,1;判斷循環4次到了沒有
              GOTO  XS
              BCF   PORTB,7
              
            
      WAIT
             ;CALL  CONG
             GOTO  LOOP1
      TAB
            ADDWF  PCL,F
              RETLW        0XC0;0
              RETLW        0XF9;1
              RETLW        0XA4;2
              RETLW        0XB0;3
              RETLW        0X99;4
              RETLW        0X92;5
              RETLW        0X82;6
              RETLW        0XF8;7
              RETLW        0X80;8
              RETLW        0X90;9
              RETURN
      YS
          MOVLW  H'0F'
          MOVWF  20H
      YS_1    MOVLW  H'0F'
          MOVWF   21H
          DECFSZ  21H,1
          GOTO  $-1
          DECFSZ  20H,1
          GOTO  YS_1
          RETURN

         END

      1、 本站不保證以上觀點正確,就算是本站原創作品,本站也不保證內容正確。
      2、如果您擁有本文版權,并且不想在本站轉載,請書面通知本站立即刪除并且向您公開道歉! 以上可能是本站收集或者轉載的文章,本站可能沒有文章中的元件或產品,如果您需要類似的商品請 點這里查看商品列表!
      本站協議。 版權信息。 關于我們。 本站地圖。 營業執照。 發票說明。 付款方式。 聯系方式
      深圳市寶安區西鄉五壹電子商行——粵ICP備16073394號-1;地址:深圳西鄉河西四坊183號;郵編:518102
      E-mail:51dz$163.com($改為@);Tel:(0755)27947428
      工作時間:9:30-12:00和13:30-17:30和18:30-20:30,無人接聽時可以再打手機13537585389
      91嫩草黄片动漫版