亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 用普通io口測量溫度(ntc)的程序(zt).txt

?? 普通IO口RC測溫 普通IO口RC測溫 普通IO口RC測溫
?? TXT
字號:
用普通IO口測量溫度(NTC)的程序(zt)
程序匠人 發表于 2007-5-22 8:50:00  閱讀全文(466) | 回復(0) | 引用通告(0) | 編輯

這是一段利用單片機IO口作的溫控程序,感溫元件是NTC。功能是,當溫度低過某值時開始加熱,隨著溫度上升。。。當高到某值時停止加熱,然后開始冷卻。。。不斷重復。。。
      使用時要注意RC常數,常數過大會造成16位計數溢出,得不到正確結果。
      程序是作產品前的一個試驗程序,當時調試已通過,能作到±0.5℃。
 
;******************************************************
;filename: IOTestNTC.asm
;     mcu: MDT2005EP
;   clock: 4 MHz for EXTXT
;    date: 2006/03/17
;  writer: aLin
;******************************************************

;計算被測量電阻。只做比較,不作計算。
;計算公式:Rx = Rf * (Tx/Tf)
;Rx為被測電阻
;Rf為已知電阻,Rf=10K
;Tx為被測電阻對電容C放電的計數值,為16位數
;Tf為被測電阻對電容C放電的計數值,為16位數
;查溫度特性表(NTC型號為:CWF2-473F-3950K,大亞科技制造):
;下限溫度5攝氏度時電阻為121545.44歐,即121.54544K
;換算為:Tx/Tf=Rx/Rf=12.154544
;擴大1000倍后結果為:12154.544,約為12155,即2F76H              
;上限溫度8攝氏度時電阻為104712.92歐,即104.71292K
;換算為:Tx/Tf=Rx/Rf=10.471292
;擴大1000倍后結果為:10471.292,約為10471,即28E7H
 
;-------------------------------------------------------------------       

               list         p=pic16c54
               #i nclude     "p16c5x.inc"
;定義I/O口              
               #define      vt     portb,0
               #define      rf     portb,1
               #define      rx     portb,2
               #define      on     portb,4
               #define      off    portb,4
               #define      f0     user,0     
                     
;RAM 分配
   CNT         EQU         10H    ;計數器
   SOU1        EQU         11H    ;四字節被除數最低位和16位商的低8位
   SOU2        EQU         12H    ;被除數和16位商高8位
   SOU3        EQU         13H    ;被除數和16位余數的低8位
   SOU4        EQU         14H    ;四字節被除數最高位和16位余數的高8位
   USER        EQU         15H    ;用戶標記位
   SOU         EQU         16H    ;被數低8位和積(四字節積的最低位)和RX電阻計數器低8位
   SOUH        EQU         17H    ;被乘數高8位和積和RX電阻計數器高8位
   RLT         EQU         18H    ;乘數低8位和積
   RLTH        EQU         19H    ;乘數高8位和積(四字節積的最高位)
   TEMP1       EQU         1AH    ;臨時寄存器1-4
   TEMP2       EQU         1BH
   TEMP3       EQU         1CH
   TEMP4       EQU         1DH
   RFCNTL      EQU         1EH    ;RF電阻計數器低8位
   RFCNTH      EQU         1FH    ;RF電阻計數器高8位         
;--------------------------------- 
    
               ORG      0000h 
                                           
       start   bcf       fsr,6         ;選擇bank0
               bcf       fsr,5
               movlw     b'11101111'   ;RB4定義為輸出,其余輸入,PortB4為一直輸出
               tris      06h                                               
;---------------------------------------------------           
;停止加熱處理程序
;等待溫度降到5攝氏度以下是,重新加熱,跳到加熱處理程序
;
;負溫度系電阻,阻值越大,溫度越低
;用5攝氏度時對應的電阻減去測出的電阻,為負數,表明實際溫度已低過5攝氏度
;需加熱處理 
;
   HOT_DOWN    bcf      off       ;停止加熱
;               call     d1s       ;延時1秒
               call     io_rm     ;調用測量電阻程序
               call     DUMUL     ;調用16位無符號乖法程序
               call     DUDIV     ;調用32位除以16位無符號除法程序
                                       
;比較商大小
;0E10 對應36K電阻,溫度是31度
        
               MOVLW    2FH      
               MOVWF    TEMP1
               MOVF     SOU2,W
               SUBWF    TEMP1,W   ;商高8位先減
               BTFSS    STATUS,C  ;檢查是否有借位,有借位時C=0
               GOTO     HOT_UP    ;有借位,被減數小于減數,跳到加熱程序 
               BTFSS    STATUS,Z  ;無借位,查相減結果是否為0  
               GOTO     HOT_DOWN  ;結果不為0,則被減數大于減數,跳到停止加熱程序
              
               MOVLW    76H       ;商高8位相等,商低8位相減
               MOVWF    TEMP1
               MOVF     SOU1,W
               SUBWF    TEMP1,W
               BTFSS    STATUS,C
               GOTO     HOT_UP
               BTFSS    STATUS,Z
               GOTO     HOT_DOWN              
               GOTO     HOT_DOWN  ;兩數相等,返回              
;--------------------------------------
; 
;加熱程序處理程序
;
;當溫度大于8攝氏度時跳到停止加熱程序
;            
    HOT_UP     bsf      on        ;加熱
;               call     d1s       ;延時1秒
               call     io_rm     ;調用測量電阻程序
               call     DUMUL     ;調用16位無符號乖法程序
               call     DUDIV     ;調用32位除以16位無符號除法程序
              
;比較商大小  
;07D0對應電阻20K,溫度45度  
   
               MOVLW    28H      
               SUBWF    SOU2,W    ;商高8位先減
               BTFSS    STATUS,C  ;檢查是否有借位,有借位時C=0
               GOTO     HOT_DOWN  ;有借位,被減數小于減數,跳到停止加熱程序 
               BTFSS    STATUS,Z  ;無借位,查相減結果是否為0  
               GOTO     HOT_UP    ;結果不為0,則被減數大于減數,跳到加熱程序
              
               MOVLW    0E7H      ;商高8位相等,商低8位相減
               SUBWF    SOU1,W
               BTFSS    STATUS,C
               GOTO     HOT_DOWN
               BTFSS    STATUS,Z
               GOTO     HOT_UP              
              
               GOTO     HOT_UP    ;溫度未低過下限溫度,返回繼續等待
;----------------------------------------           
;    
      io_rm    clrf     SOUH
               clrf     SOU
                   
               clrf     RFCNTH
               clrf     RFCNTL              
               call     fullcharge    ;讓電容充電。
               call     rxdischarge   ;調用測量rx放電時間子程序             
              
               call     fullcharge    ;讓電容充電
               call     rfdischarge   ;調用測量rf放電時間子程序。
              
               call     fulldischarge ;讓電容完全放電。
              
               retlw    00h
;-----------------------------------------
;
;電容充電子程序
;
 fullcharge
               movlw    b'11101110'  ;vt口轉為輸出,rf、rx為輸入,PortB4一直輸出
               tris     06h
              
               bsf      vt           ;vt口輸出高電平,讓電容充電
              
               movlw    .40          ;延時,讓電容有足夠時間充滿電至Voh。
               movwf    CNT
               decfsz   CNT,F
               goto     $-1
               retlw    00h
;---------------------------------------
;
;電容放電
;
fulldischarge
               movlw    b'11101110'  ;vt口轉為輸出,rf、rx為輸入,PortB4一直輸出
               tris     06h
              
               bcf      vt           ;vt口輸出低電平,讓電容放電
              
               retlw    00h
;-----------------------------------------
;       
;測量rf放電時間子程序
;
rfdischarge
               movlw    b'11101101' ;vt口轉為輸入,rf口轉為輸出,rx口輸入,PortB4一直輸出
               tris     06h
                         
               bcf      rf          ;rf口輸出低電平,電容對rf電阻放電.
                                        
     _rfdis    btfss    vt
               goto     _rfdisdone
               incf     RFCNTL,f
               skpnz
               incf     RFCNTH,f
               goto     _rfdis
       
 _rfdisdone
               movlw    b'11101111'  ;斷開rf電阻,由輸出改為輸入,PortB4一直輸出
               tris     06h
              
               retlw    00h
;--------------------------
;            
;測量rx放電時間子程序
;                                            
rxdischarge
               movlw    b'11101011'  ;vt口轉為輸入,rx口轉為輸出,rf口輸入,PortB4一直輸出
               tris     06h
                   
               bcf      rx           ;rx口輸出低電平,電容對rx電阻放電.
    
     _rxdis    btfss    vt
               goto     _rxdisdone
               incf     SOU,f
               skpnz
               incf     SOUH,f
               goto     _rxdis
              
 _rxdisdone
               movlw    b'11101111'  ;斷開rx電阻,由輸出改為輸入,PortB4一直輸出
               tris     06h
              
               retlw    00h                        
;---------------------
;
;本程序實現四字節除以雙字節無符號數除法。
;
;入口參數:被除數在SOU4~SOU1中,除數在RLTH、RLT中。
;出口參數:商在SOU2、SOU1中,余數在SOU4、SOU3中.
                       
      DUDIV    MOVLW    .16         ;循環16次
               MOVWF    CNT
              
               MOVF     RLTH,W      ;被除數,32位,最高8位
               MOVWF    SOU4
               MOVF     RLT,W
               MOVWF    SOU3                          
               MOVF     SOUH,W
               MOVWF    SOU2
               MOVF     SOU,W
               MOVWF    SOU1        ;被除數,32位,最低8位 
              
               MOVF     RFCNTH,W    ;除數高8位 
               MOVWF    RLTH
               MOVF     RFCNTL,W    ;除數低8位
               MOVWF    RLT    
                    
       LOOP    BCF      STATUS,C    ;C清0
               RLF      SOU1,F
               RLF      SOU2,F
               RLF      SOU3,F
               RLF      SOU4,F
               BTFSS    STATUS,C
               GOTO     CLR_F0       ;C=0, 跳到CLR_F0,清F0
               BSF      F0           ;C=1, 置F0
              
     SUB_LO    BCF      STATUS,C                   
               MOVF     RLT,W
               SUBWF    SOU3,W      ;SOU3-RLT -> W
               MOVWF    TEMP1       ;送TEMP1保存
               BTFSS    STATUS,C    ;有借位時C=0
               GOTO     SUB_HI      ;低8位相減時有借位,被減數高8位要借1,相當于減數加1
               MOVF     RLTH,W
               SUBWF    SOU4,W
                          
      THAN     BTFSC    F0          ;若夠減,跳到SAVE
               GOTO     SAVE
               BTFSS    STATUS,C 
               GOTO     NEXT        ;若不夠減,跳到NEXT
              
      SAVE     MOVWF    SOU4        ;保存相減結果 
               MOVF     TEMP1,W
               MOVWF    SOU3
               INCF     SOU1,F
           
      NEXT     DECFSZ   CNT,F
               GOTO     LOOP             
              
               RETLW    00H     
              
     SUB_HI    INCF     RLTH,W
               SUBWF    SOU4,W
               GOTO     THAN      
              
     CLR_F0    BCF      F0
               GOTO     SUB_LO            
              
;***************DUMUL***********
;本程序實現雙字節無符號數乘法。
;入口參數:被乘數在SOUH、SOU中,乘數在RLTH、RLT中。
;出口參數:結果在RLTH、RLT、SOUH、SOU中。
                       
   DUMUL       MOVLW       .16
               MOVWF       CNT
           
;設乘數RLTH、RLT=03E8H=1000D,即將SOUH、SOU擴大1000倍           
               MOVLW       03H
               MOVWF       RLTH
               MOVLW       0E8H
               MOVWF       RLT
                        
               MOVF        SOU,W
               MOVWF       TEMP3
               MOVF        SOUH,W
               MOVWF       TEMP4
               CLRF        SOU         ;用于暫
               CLRF        SOUH        ;存
               CLRF        TEMP1       ;結
               CLRF        TEMP2       ;果
               BCF         STATUS,C
   LOOP3       RRF         TEMP4,F
               RRF         TEMP3,F     ;將被乘數的某一位送到C中
               BTFSC       STATUS,C
    
               GOTO        DUADD       ;將RLTH:RLT中的被乘數加上
           
   BACK        RRF         SOUH,F
               RRF         SOU,F
               RRF         TEMP2,F
               RRF         TEMP1,F     ;被乘數右移
               DECFSZ      CNT,F
               GOTO        LOOP3
               MOVF        SOUH,W      ;保存結果
               MOVWF       RLTH
               MOVF        SOU,W
               MOVWF       RLT
               MOVF        TEMP2,W     
               MOVWF       SOUH
               MOVF        TEMP1,W
               MOVWF       SOU
               RETLW       00H  
           
   DUADD       MOVF        RLT,W 
               ADDWF       SOU,F
               MOVF        RLTH,W
               BTFSC       STATUS,C
               INCFSZ      RLTH,W
               ADDWF       SOUH,F
               GOTO        BACK
                                                                        
;---------------------------
;延時1S
;                           
;       d1s     movlw       .16     ; .16時為1.000069S
;               movwf       temp1
;               movlw       .100
;               movwf       temp2
;               movlw       .207
;               movwf       temp3
;               decfsz      temp3,f
;               goto        $-1
;               decfsz      temp2,f
;               goto        $-5
;               decfsz      temp1,f
;               goto        $-9
;               retlw       00h                   
;--------------------------------    
               
               END

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕一区二区日韩精品绯色| 久久99国产精品麻豆| 日本伊人色综合网| 成人免费高清在线| 精品三级在线看| 亚洲伊人色欲综合网| 国产91在线观看| 91精品国产91久久久久久一区二区| 日本一区二区三区免费乱视频| 蜜臀久久99精品久久久画质超高清| eeuss国产一区二区三区| 精品久久人人做人人爰| 天天影视涩香欲综合网| 在线这里只有精品| 亚洲男人的天堂网| 成人一区在线观看| 久久精品日韩一区二区三区| 香港成人在线视频| 91麻豆免费在线观看| 国产欧美日韩另类一区| 国产精品夜夜嗨| 久久综合久久鬼色中文字| 天天色天天爱天天射综合| 色香蕉成人二区免费| 中文字幕在线观看一区二区| 成人av免费网站| 国产女人18水真多18精品一级做| 国产真实乱对白精彩久久| 精品久久一区二区| 麻豆精品一区二区av白丝在线| 欧美一区二区私人影院日本| 国产成人亚洲综合a∨猫咪| 亚洲欧美aⅴ...| 99久久er热在这里只有精品66| 国产亚洲成aⅴ人片在线观看| 国内成人精品2018免费看| 26uuu精品一区二区在线观看| 精品一二三四在线| 国产日韩在线不卡| 97久久精品人人澡人人爽| 中文字幕一区二区三中文字幕| 成人性生交大片免费看在线播放| 欧美激情在线一区二区| 91蜜桃传媒精品久久久一区二区 | 九九九精品视频| 日韩片之四级片| 国产精品一区二区久久不卡 | 国产伦精一区二区三区| 精品美女在线观看| 成人av资源下载| 亚洲精品v日韩精品| 欧美二区在线观看| 精品在线播放免费| 中文字幕中文字幕一区二区| 91高清在线观看| 另类成人小视频在线| 亚洲精品乱码久久久久久久久| 图片区小说区区亚洲影院| 欧美体内she精高潮| 亚洲地区一二三色| 欧美变态凌虐bdsm| 99久久久无码国产精品| 日本中文字幕不卡| 国产精品毛片无遮挡高清| 欧美伊人久久久久久久久影院 | 欧美伊人久久久久久久久影院| 性做久久久久久久免费看| 精品国产一区久久| 色婷婷激情综合| 韩日av一区二区| 亚洲精品va在线观看| 日韩三级av在线播放| 99久久婷婷国产综合精品| 日韩电影一区二区三区| 综合久久国产九一剧情麻豆| 91精品国产综合久久蜜臀| 成人av资源站| 久久99国内精品| 亚洲午夜私人影院| 欧美激情一区二区三区全黄| 884aa四虎影成人精品一区| 成人免费的视频| 久久精品久久综合| 天天av天天翘天天综合网| 国产精品视频在线看| 精品日韩一区二区三区免费视频| 91精品91久久久中77777| 国产精品亚洲а∨天堂免在线| 亚洲一区二区三区四区在线免费观看 | 2023国产精品视频| 欧美日韩情趣电影| 色综合久久综合| 国产成人亚洲综合色影视| 日本视频一区二区| 无码av中文一区二区三区桃花岛| 日韩久久一区二区| 中文字幕亚洲一区二区va在线| 日韩亚洲欧美一区二区三区| 日本一区二区不卡视频| 国产在线精品一区二区不卡了 | 亚洲国产精品一区二区久久| 久久亚洲捆绑美女| 欧美一级艳片视频免费观看| 欧美视频一区在线| 欧美在线不卡一区| 97se亚洲国产综合自在线| 国产美女在线精品| 国内精品免费在线观看| 久99久精品视频免费观看| 另类小说色综合网站| 美女高潮久久久| 久久精品国产99国产| 另类小说色综合网站| 精品在线观看视频| 国产一区二区美女| 国产成人激情av| 成人a级免费电影| 99国产精品国产精品毛片| 波多野结衣在线一区| 91在线视频免费观看| 久久狠狠亚洲综合| 成人动漫一区二区在线| 国产一区二区三区电影在线观看 | 欧美一个色资源| 日韩精品中文字幕在线一区| 日韩久久精品一区| 久久精品一级爱片| 国产精品视频麻豆| 亚洲精品老司机| 天堂蜜桃91精品| 国产综合成人久久大片91| 成人综合婷婷国产精品久久蜜臀| 99免费精品在线观看| 欧美自拍偷拍一区| 日韩一区二区三区三四区视频在线观看 | 亚洲一区二区欧美激情| 五月天中文字幕一区二区| 奇米四色…亚洲| 国产91丝袜在线18| 色一区在线观看| 日韩一区二区在线看| 国产欧美日韩不卡| 亚洲大尺度视频在线观看| 久久aⅴ国产欧美74aaa| 成人动漫一区二区| 欧美日韩高清不卡| 日本一区二区三区视频视频| 亚洲精品日日夜夜| 激情综合色综合久久| 色婷婷av一区二区三区gif | 欧美少妇性性性| www一区二区| 一区二区三区中文字幕| 日本不卡的三区四区五区| 成人精品视频一区二区三区尤物| 91精彩视频在线观看| 精品国产精品一区二区夜夜嗨| 国产精品久久免费看| 麻豆成人免费电影| 一本大道av伊人久久综合| 精品国产91乱码一区二区三区| 亚洲欧洲另类国产综合| 免费成人美女在线观看| 色欧美88888久久久久久影院| 精品美女在线播放| 午夜私人影院久久久久| 成人一级黄色片| 日韩免费在线观看| 亚洲国产日韩综合久久精品| 成人性色生活片| 精品国产亚洲在线| 五月综合激情婷婷六月色窝| 91香蕉国产在线观看软件| 久久嫩草精品久久久久| 日本亚洲天堂网| 欧美色涩在线第一页| 亚洲视频一区二区在线观看| 国产成人自拍高清视频在线免费播放| 欧美日本视频在线| 一区二区三区小说| 92国产精品观看| 国产精品视频观看| 国产成人精品一区二区三区四区| 91精品国产综合久久久久| 亚洲综合自拍偷拍| 一本久久a久久精品亚洲| 国产精品初高中害羞小美女文| 经典一区二区三区| 精品三级av在线| 精品在线一区二区三区| 精品免费一区二区三区| 久久精品国产99| 欧美成人精品二区三区99精品| 日本中文字幕一区二区视频| 欧美日韩激情一区| 亚洲伊人色欲综合网| 欧美日韩一二三| 日韩精品一二三| 91麻豆精品国产91| 久久电影网电视剧免费观看|