基于EMP78P156单片机的RC测温的实现
*************************************
;;;;;;;;;;;;;;;;;;;RC转换测量;;;;;;;;;;;;;;;;;;;;;;;;;
ADCONVER:
JBCFLAG1,AD_E;是否正在进行AD采样,1 EN, 0 DIS
JMPADQUIT
JBCFLAG1,HAVEDIS;放电时间是否到
JMPREF_SENSOR
;;;;;;;;;;;;;;;;;;;;;;;;
IORIOC6;置P6.3,P6.4,P6.5输出,为AD采样做好准备
ANDA,@0B11000111
IOWIOC6
BSPORT6,3;P5.0,P5.1,P5.2输出为1,对电容进行放电
BSPORT6,4
BSPORT6,5
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLRLA_CNT1;清放电时间计数
BSFLAG1,LP; LP置高表示放电结束
BSFLAG1,AD_E;使能AD采样
RET
REF_SENSOR:
BCFLAG1,HAVEDIS
BCFLAG1,AD_TYPE;正在采样的是参考电阻还是传感器:1 REF REGISTER, 0 SENSOR
MPAD_1;正在对参考电阻进行采样
;对传感器电阻进行采样
MOVA,AD_DA
MOVRS_DA
MOVA,AD_DA
MOVRS_DA
BSFLAG1,RS_OVER
BSFLAG1,AD_TYPE
IORIOC6;SET port6.3,port6.4 INPORT,port6.5 EXPORT
ORA,@0B00011000
ANDA,@0B11011111
IOWIOC6
MOVA,@231;REF START COUNT
MOVTCC,A
MOVA,@0
MOVAD_DA
MOVAD_DA
BCPORT6,5
BSFLAG1,AD_E;置正在采样标志位
JMPADQUIT
AD_1:;对参考电阻进行采样
MOVA,AD_DA
MOVRF_DA
MOVA,AD_DA
MOVRF_DA
BSFLAG1,REF_OVER
BCFLAG1,AD_TYPE;清零AD_TYPE
IORIOC6
ORA,@0B00101000
ANDA,@0b11101111;port6.3,port6.5 INPORT,port6.4 EXPORT
IOWIOC6
MOVA,@231;SENSOR START COUNT
MOVTCC,A
MOVA,@0
MOVAD_DA
MOVAD_DA
BCPORT6,4
BSFLAG1,AD_E
ADQUIT:
RET
;******************************************************
INT_TCC:
MOVBACC,A;保护ACC和STATUS
SWAPASTATUS
MOVBSTATUS,A
JBSRF,0;判断是否为计数器中断,如果是得话进入
;计数器中断服务程序,不是则退出
JMPINTQUIT
MOVA,@231;赋初始值给TCC
MOVTCC,A
BCRF,0;RF可以指令清零,但不能置1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
LAPSE_TIMER:
JBSFLAG1,LP;放电0.1S计时(LP放电标志位)
JMPTCC_1;如果放电没结束则跳转到TCC_1
INCLA_CNT1;如果放电结束了,执行
MOVA,@255
XORA,LA_CNT1
JBSSTATUS,Z
MPTCC_1;如果不等于255则跳转到TCC_1
BCFLAG1,AD_E;采样正在进行的标志位清0(AD采样不使能)
BSFLAG1,HAVEDIS ;放电时间标志位为1(表示已经计时0.5秒,足够放完电)
BCFLAG1,LP;放电结束,放电标志位清零
TCC_1:
JBSFLAG1,AD_E;判断AD采样使能?
JMPINTQUIT;不使能就跳出中断
JBCFLAG1,LP;判断放电标志位使能?
JMPINTQUIT;不使能就跳出中断
INCAD_DA
JBSSTATUS,Z
JMPTCC_0
INCAD_DA
MOVA,AD_DA
XORA,@120
JBSSTATUS,Z
JMPTCC_0
BCFLAG1,AD_E;AD采样不使能
JMPINTQUIT
TCC_0:
JBCPORT6,3;检测P51口电平是否变化
JMPINTQUIT;没有变化就跳出中断
BCFLAG1,AD_E;如果P51为0则停止采样
INTQUIT:
SWAPABSTATUS;恢复寄存器
MOVSTATUS,A
SWAPBACC
SWAPABACC
RETI
END
EMP78P156单片机RC测 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)