微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > 基于EMP78P156单片机的RC测温的实现

基于EMP78P156单片机的RC测温的实现

时间:11-13 来源:互联网 点击:

*************************************

;;;;;;;;;;;;;;;;;;;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_DATA1

MOVRS_DATA1,A

MOVA,AD_DATA2

MOVRS_DATA2,A

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_DATA1,A

MOVAD_DATA2,A

BCPORT6,5

BSFLAG1,AD_E;置正在采样标志位

JMPADQUIT

AD_1:;对参考电阻进行采样

MOVA,AD_DATA1;将AD采样过来的数据放入参考电阻的数据寄存器

MOVRF_DATA1,A

MOVA,AD_DATA2

MOVRF_DATA2,A

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_DATA1,A

MOVAD_DATA2,A

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_DATA1;SAMPLE COUNT

JBSSTATUS,Z

JMPTCC_0

INCAD_DATA2

MOVA,AD_DATA2

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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top