机电之家资源网
单片机首页|单片机基础|单片机应用|单片机开发|单片机文案|软件资料下载|音响制作|电路图下载 |嵌入式开发
培训信息
赞助商
用RC充电的方法实现温度的检测
用RC充电的方法实现温度的检测
 更新时间:2009-7-22 16:41:10  点击数:0
【字体: 字体颜色
/script>

;  该程序用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

 
  • 上一篇: 四位数码管时钟显示的时钟程序
  • 下一篇: AVR单片机写LCD128×64液晶模块C源程序
  • 发表评论   告诉好友   打印此文  收藏此页  关闭窗口  返回顶部
    热点文章
     
    推荐文章
     
    相关文章
    网友评论:(只显示最新5条。)
    关于我们 | 联系我们 | 广告合作 | 付款方式 | 使用帮助 | 机电之家 | 会员助手 | 免费链接

    点击这里给我发消息66821730(技术支持)点击这里给我发消息66821730(广告投放) 点击这里给我发消息41031197(编辑) 点击这里给我发消息58733127(审核)
    本站提供的机电设备,机电供求等信息由机电企业自行提供,该企业负责信息内容的真实性、准确性和合法性。
    机电之家对此不承担任何保证责任,有侵犯您利益的地方请联系机电之家,机电之家将及时作出处理。
    Copyright 2007 机电之家 Inc All Rights Reserved.机电之家-由机电一体化网更名-声明
    电话:0571-87774297 传真:0571-87774298
    杭州滨兴科技有限公司提供技术支持

    主办:杭州市高新区(滨江)机电一体化学会
    中国行业电子商务100强网站

    网站经营许可证:浙B2-20080178-1