日本a√视频在线,久久青青亚洲国产,亚洲一区欧美二区,免费g片在线观看网站

        <style id="k3y6c"><u id="k3y6c"></u></style>
        <s id="k3y6c"></s>
        <mark id="k3y6c"></mark>
          
          

          <mark id="k3y6c"></mark>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于EMP78P156單片機(jī)的RC測溫的實(shí)現(xiàn)

          基于EMP78P156單片機(jī)的RC測溫的實(shí)現(xiàn)

          作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
          以前做一個電熨斗的項(xiàng)目,其中要使用到溫度的測量,但是為了節(jié)省成本,要用不帶AD的單片機(jī)來控制。測溫部分是利用RC來測溫,就是利用熱敏電阻結(jié)合RC電路來實(shí)現(xiàn)溫度的測量,可以精確到1℃。本電路采用了臺灣義隆單片機(jī)EM78P156來實(shí)現(xiàn)溫度的測量和控制。

          一、總體控制電路:

          本文引用地址:http://yuyingmama.com.cn/article/201611/316077.htm

          圖 1

          二、RC測溫原理:

          利用單片機(jī)I/O口來實(shí)現(xiàn)RC測溫,電路很簡單,而且也不難實(shí)現(xiàn),最主要的是要有個概念,如何實(shí)RC測溫,也就是RC測溫的原理。這里具體的介紹一下,可以在這個原理基礎(chǔ)上進(jìn)行修改很擴(kuò)展為多路的測溫。如下圖(2)

          圖中:

          P1.0、P1.1和P1.2是單片機(jī)的3個I/O口;

          RK為100K精密電阻;

          RT為100K—精度為1%的熱敏電阻;

          R1為100 的普通電阻;

          C1為瓷介電容。

          工作原理:

          1. 先將P1.0、P1.1和P1.2設(shè)為低電平輸出,延時0.5s ,使C1放電完。

          2. 將P1.1和P1.2設(shè)置為輸入狀態(tài),P1.0輸出高電平,通過RK電阻給C1充電,單片機(jī)內(nèi)部的計數(shù)器開始計時,并且不斷的檢測P1.2狀態(tài),當(dāng)P1.2為高電平時,即當(dāng)C1的電壓達(dá)到了單片機(jī)高電平輸入的門限電壓時,根據(jù)計數(shù)的值來確定從開始充電到P1.2轉(zhuǎn)變?yōu)楦唠娖降臅r間T1。

          3. 將P1.0、P1.1和P1.2設(shè)為低電平輸出,延時0.5s ,使C1放電完。

          4. 再將P1.0和P1.2設(shè)置為輸入狀態(tài),P1.1輸出高電平,通過RT電阻給C1充電,單片機(jī)內(nèi)部的計數(shù)器開始計時,并且不斷的檢測P1.2狀態(tài),當(dāng)P1.2為高電平時,即當(dāng)C1的電壓達(dá)到了單片機(jī)高電平輸入的門限電壓時,根據(jù)計數(shù)的值來確定從開始充電到P1.2轉(zhuǎn)變?yōu)楦唠娖降臅r間T2。

          5. 電容電壓計算公式:

          所以 ,這樣我們可以通過計算來得到熱敏電阻的阻值,通過查表來得到測量的溫度值。

          注:我們可以根據(jù)需要把R1也換成熱敏電阻,來實(shí)現(xiàn)兩路溫度的檢測,理論上N個I/O口可以測量N-1個溫度。也可以把電容一端接VCC,那么當(dāng)C1充滿的時候檢測端口電壓就是低電平。

          三、實(shí)際程序舉例

          /******RC測溫程序********/

          /*單片機(jī):EM78P156*/

          /*晶振:4MHZ*/

          /*編者:鄭文*/

          /*日期:2007.01.31*/

          /*功能:RC測溫*/

          /************************/

          /*說明:精密電阻充電時間計數(shù)值存放地址:RF_DATA2(24H) RF_DATA1(23H)

          /*熱敏電阻充電時間計數(shù)值存放地址:RS_DATA2(26H) RS_DATA1(25H)

          /*寄存器及變量定義*/

          R0EQU 0X00

          TCCEQU 0X01

          CONTEQU 0X01

          PCEQU 0X02

          STATUSEQU 0X03

          CEQU 0

          DCEQU 1

          ZEQU 2

          R4EQU 0X04

          RSREQU 0X04

          IOC5EQU 0X05

          PORT5EQU 0x05

          IOC6EQU 0X06

          PORT6EQU 0x06

          ;***************************

          ;***************************

          IOCAEQU 0X0A

          IOCBEQU 0X0B

          IOCCEQU 0X0C

          IOCDEQU 0X0D

          IOCEEQU 0X0E

          RFEQU 0X0F

          IOCFEQU 0X0F

          ;**************************

          ;**************************

          T_SETEQU 0X1F;溫度設(shè)置值寄存器

          T_MEASEQU 0X20;當(dāng)前測得溫度值

          AD_DATA1EQU 0X21;存放AD采樣過來的數(shù)值

          AD_DATA2EQU 0X22

          RF_DATA1EQU 0X23;存放基準(zhǔn)電阻采樣過來的數(shù)值,存放低位

          RF_DATA2EQU 0X24;存放高位

          RS_DATA1EQU 0X25;存放傳感器電阻采樣過來的數(shù)值

          RS_DATA2EQU 0X26

          XSWEQU 0X2A;顯示位,判斷哪位可以正在點(diǎn)亮

          BACCEQU 0X2D;ACC備份寄存器

          BSTATUSEQU 0X2E;STATUS備份寄存器

          LA_CNT1EQU 0X2F

          FLAG1EQU 0X30

          LPEQU 0;LP放電標(biāo)志位

          HAVEDISEQU 1;放電時間計數(shù)標(biāo)志位

          RS_OVEREQU 4

          REF_OVEREQU 5

          AD_EEQU 6;采樣正在進(jìn)行標(biāo)志位

          AD_TYPEEQU 7;采樣類型,是參考電阻采樣還是傳感器電阻采樣

          /********************************************/

          ORG00H

          JMPSTART

          ORG08H

          JMPINT_TCC ;進(jìn)入中斷程序

          ;*******************************************

          ;=================================================

          START:

          CALL INITAITE ;程序初始化

          MAIN:

          MAIN2:

          CALL ADCONVER ;RC測溫RC時間測量

          JMPMAIN

          ;**************************************************

          INITAITE:

          MOVA,@0B00000000;BIT6特殊,預(yù)分頻器分給計數(shù)器,分頻比為1:2,

          CONTW;上升沿觸發(fā),內(nèi)部時鐘源,中斷屏蔽。

          MOVA,@0B00000000;5口定義為輸出口

          IOWIOC5

          MOVA,@0B00000000;6口定義為輸出口

          IOWIOC6

          MOVA,@0B00000000

          IOWIOCE;WITE=0禁止WDT,EIS=0定義P60口為雙向IO口而不是中斷口;

          MOVA,@0B00000001

          IOWIOCF;定時器中斷允許

          ENI;開中斷,整個程序執(zhí)行過程,中斷一直是起用的

          RET

          /**********************************************************

          *程序名稱:AD程序

          ************************************************************/

          ;---------

          ;|P6.3|----------P5.1

          ;||____|

          ;|P6.5|--|____|--|P5.2

          ;||___/|

          ;|P5.4|--|__/_|--|P5.0

          ;||/---

          ;||--- c

          ;|||

          ;---------+5v

          ;***********************************************************

          ;;;;;;;;;;;;;;;;;;;RC轉(zhuǎn)換測量;;;;;;;;;;;;;;;;;;;;;;;;;

          ADCONVER:

          JBCFLAG1,AD_E;是否正在進(jìn)行AD采樣,1 EN, 0 DIS

          JMPADQUIT

          JBCFLAG1,HAVEDIS;放電時間是否到

          JMPREF_SENSOR

          ;;;;;;;;;;;;;;;;;;;;;;;;

          IORIOC6;置P6.3,P6.4,P6.5輸出,為AD采樣做好準(zhǔn)備

          ANDA,@0B11000111

          IOWIOC6

          BSPORT6,3;P5.0,P5.1,P5.2輸出為1,對電容進(jìn)行放電

          BSPORT6,4

          BSPORT6,5

          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

          CLRLA_CNT1;清放電時間計數(shù)

          BSFLAG1,LP; LP置高表示放電結(jié)束

          BSFLAG1,AD_E;使能AD采樣

          RET

          REF_SENSOR:

          BCFLAG1,HAVEDIS

          BCFLAG1,AD_TYPE;正在采樣的是參考電阻還是傳感器:1 REF REGISTER, 0 SENSOR

          MPAD_1;正在對參考電阻進(jìn)行采樣

          ;對傳感器電阻進(jìn)行采樣

          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;置正在采樣標(biāo)志位

          JMPADQUIT

          AD_1:;對參考電阻進(jìn)行采樣

          MOVA,AD_DATA1;將AD采樣過來的數(shù)據(jù)放入?yún)⒖茧娮璧臄?shù)據(jù)寄存器

          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;保護(hù)ACC和STATUS

          SWAPASTATUS

          MOVBSTATUS,A

          JBSRF,0;判斷是否為計數(shù)器中斷,如果是得話進(jìn)入

          ;計數(shù)器中斷服務(wù)程序,不是則退出

          JMPINTQUIT

          MOVA,@231;賦初始值給TCC

          MOVTCC,A

          BCRF,0;RF可以指令清零,但不能置1

          ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

          LAPSE_TIMER:

          JBSFLAG1,LP;放電0.1S計時(LP放電標(biāo)志位)

          JMPTCC_1;如果放電沒結(jié)束則跳轉(zhuǎn)到TCC_1

          INCLA_CNT1;如果放電結(jié)束了,執(zhí)行

          MOVA,@255

          XORA,LA_CNT1

          JBSSTATUS,Z

          MPTCC_1;如果不等于255則跳轉(zhuǎn)到TCC_1

          BCFLAG1,AD_E;采樣正在進(jìn)行的標(biāo)志位清0(AD采樣不使能)

          BSFLAG1,HAVEDIS ;放電時間標(biāo)志位為1(表示已經(jīng)計時0.5秒,足夠放完電)

          BCFLAG1,LP;放電結(jié)束,放電標(biāo)志位清零

          TCC_1:

          JBSFLAG1,AD_E;判斷AD采樣使能?

          JMPINTQUIT;不使能就跳出中斷

          JBCFLAG1,LP;判斷放電標(biāo)志位使能?

          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;恢復(fù)寄存器

          MOVSTATUS,A

          SWAPBACC

          SWAPABACC

          RETI

          END



          關(guān)鍵詞: EMP78P156單片機(jī)RC測

          評論


          技術(shù)專區(qū)

          關(guān)閉