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

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

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

?? 這是一段利用單片機IO口作的溫控程序,感溫元件是NTC。功能是
?? TXT
字號:
   這是一段利用單片機IO口作的溫控程序,感溫元件是NTC。功能是,當溫度低過某值時開始加熱,
隨著溫度上升。。。當高到某值時停止加熱,然后開始冷卻。。。不斷重復。。。,使用時要注意
RC常數,常數過大會造成16位計數溢出,得不到正確結果。程序是作產品前的一個試驗程序,當時
調試已通過,能作到±0.5℃。
;******************************************************
;FileName: IOTestNTC.asm
;     MCU: MDT2005EP
;   Clock: 4 MHz for EXTXT
;    Date: 2006/03/17
;  Writer: Alin
;    Blog: http://51dz.21ic.org
;******************************************************
;計算被測量電阻。只做比較,不作計算。
;計算公式: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一区二区三区免费野_久草精品视频
欧美一区二区三区公司| 日韩你懂的在线观看| 日韩制服丝袜av| 久久午夜免费电影| 欧美日韩情趣电影| 成人免费av网站| 另类的小说在线视频另类成人小视频在线| 国产欧美日韩综合精品一区二区 | 色婷婷综合视频在线观看| 激情综合色综合久久综合| 亚洲国产综合色| 国产精品少妇自拍| 日韩欧美一级二级三级久久久| 色中色一区二区| 不卡一二三区首页| 国产精品影视网| 免费一级片91| 五月开心婷婷久久| 亚洲精品一卡二卡| 欧美韩国日本不卡| 欧美精品一区二| 日韩欧美成人一区| 日韩一区二区三区av| 欧美日韩一卡二卡三卡| 99久久精品免费精品国产| 国产精品综合二区| 国产在线视频不卡二| 麻豆极品一区二区三区| 日本中文在线一区| 日韩vs国产vs欧美| 免费成人你懂的| 日本不卡的三区四区五区| 日本欧美在线看| 日韩av二区在线播放| 日本三级韩国三级欧美三级| 日韩精品每日更新| 无码av中文一区二区三区桃花岛| 一区二区免费视频| 亚洲午夜久久久久久久久电影网| 亚洲另类一区二区| 亚洲动漫第一页| 日韩国产欧美视频| 久久精品理论片| 国产一区二区三区四区五区美女| 久久国产福利国产秒拍| 国产在线精品国自产拍免费| 国产精品18久久久久久久网站| 韩国午夜理伦三级不卡影院| 国产麻豆午夜三级精品| 国产不卡视频一区二区三区| 国产成人欧美日韩在线电影| 成人av在线观| 在线精品视频一区二区三四| 欧美三区免费完整视频在线观看| 欧美日韩在线三级| 日韩欧美一区二区不卡| 久久众筹精品私拍模特| 国产精品热久久久久夜色精品三区| 国产精品成人免费| 亚洲高清一区二区三区| 男人操女人的视频在线观看欧美| 韩国毛片一区二区三区| 成人av资源站| 欧美日韩国产高清一区二区| 精品欧美乱码久久久久久| 国产日韩欧美制服另类| 亚洲欧美日韩国产手机在线| 天堂av在线一区| 国产资源精品在线观看| eeuss影院一区二区三区| 色88888久久久久久影院野外| 欧美日韩国产影片| 亚洲精品一区二区三区在线观看| 国产夜色精品一区二区av| 亚洲美女屁股眼交3| 奇米色一区二区三区四区| 国产成人精品亚洲777人妖| 91在线视频在线| 日韩视频在线观看一区二区| 国产欧美一区二区三区在线老狼| 一区二区不卡在线播放 | 亚洲精品免费电影| 久久av资源网| 一本到高清视频免费精品| 欧美一级黄色片| 国产精品久久久久影院色老大| 亚洲一区二区在线播放相泽| 国内欧美视频一区二区| 色香蕉久久蜜桃| 久久这里只精品最新地址| 一级中文字幕一区二区| 国产在线播放一区| 欧美日韩在线播放一区| 国产欧美一二三区| 美女网站色91| 色婷婷av久久久久久久| 日韩欧美www| 亚洲五月六月丁香激情| 成人免费黄色大片| 日韩欧美国产三级| 亚洲妇熟xx妇色黄| av电影一区二区| 精品国产第一区二区三区观看体验| 一区二区三区在线免费观看| 国产iv一区二区三区| 日韩一区二区电影网| 一卡二卡欧美日韩| xnxx国产精品| 日韩高清中文字幕一区| 在线这里只有精品| 亚洲四区在线观看| 国产成人免费在线视频| 精品国产免费视频| 秋霞影院一区二区| 欧美日韩一区二区三区四区| 亚洲日本免费电影| 成人午夜免费视频| 久久综合九色综合欧美98| 蜜臀精品久久久久久蜜臀| 欧美日韩一区小说| 亚洲主播在线播放| 欧美性色黄大片手机版| 亚洲欧美日韩国产成人精品影院 | 青青草原综合久久大伊人精品优势| 色综合咪咪久久| 亚洲视频一区在线| 99在线视频精品| 成人欧美一区二区三区白人| 福利视频网站一区二区三区| 久久综合色播五月| 国产精品一区二区无线| xfplay精品久久| 国产成人一区在线| 久久久亚洲综合| 国产精品资源在线看| 国产日韩欧美精品在线| 国产99久久久国产精品免费看| 国产三级精品三级| 不卡视频在线观看| 亚洲免费观看视频| 在线免费观看一区| 亚洲国产中文字幕在线视频综合| 欧美三日本三级三级在线播放| 亚洲国产日韩a在线播放性色| 欧美日韩午夜精品| 日韩中文字幕av电影| 欧美成人一区二区| 国产91精品欧美| 亚洲欧美怡红院| 欧美视频一区二区| 日韩黄色免费电影| 26uuu国产电影一区二区| 国产成人精品1024| 亚洲日韩欧美一区二区在线| 在线观看欧美日本| 蜜臀91精品一区二区三区| 久久免费午夜影院| 91麻豆国产自产在线观看| 亚洲妇熟xx妇色黄| 日韩精品一区二区三区中文不卡 | 99这里都是精品| 亚洲成人手机在线| 欧美成人vps| av福利精品导航| 亚洲第一搞黄网站| 久久久久久99精品| 91尤物视频在线观看| 日本不卡在线视频| 亚洲国产激情av| 欧美日本在线观看| 国产一区二区不卡老阿姨| 亚洲欧美视频在线观看视频| 欧美一区二区视频在线观看 | 蜜桃久久久久久久| 国产精品欧美久久久久一区二区| 欧美又粗又大又爽| 国产一区二三区好的| 亚洲激情在线播放| 精品国产免费一区二区三区四区| 91免费版在线| 黑人精品欧美一区二区蜜桃| 亚洲免费观看高清完整版在线观看熊| 91精品在线观看入口| 成人h版在线观看| 久久国产乱子精品免费女| 国产精品成人在线观看| 欧美岛国在线观看| 欧洲激情一区二区| 国产成a人亚洲精| 日韩高清不卡在线| 亚洲免费视频成人| 国产欧美一区二区三区在线老狼| 欧美日韩一区二区电影| 99久久婷婷国产| 狠狠色狠狠色综合系列| 亚洲一区二区在线播放相泽| 国产精品久久久久永久免费观看| 欧美一卡二卡三卡| 欧美日韩亚洲另类| 91行情网站电视在线观看高清版|