當前位置:編程學習大全網 - 編程語言 - 論文單片機溫度控制系統的(程序清單)!!!!急!!!!

論文單片機溫度控制系統的(程序清單)!!!!急!!!!

本設計的溫度測量及加熱控制系統以 AT89S52 單片機為核心部件,外加溫度采集電

路、鍵盤及顯示電路、加熱控制電路和越限報警等電路。采用單總線型數字式的溫度傳

感器 DS18B20,及行列式鍵盤和動態顯示的方式,以容易控制的固態繼電器作加熱控制

的開關器件。本作品既可以對當前溫度進行實時顯示又可以對溫度進行控制,以使達到

用戶需要的溫度,並使其恒定在這壹溫度。人性化的行列式鍵盤設計使設置溫度簡單快

速,兩位整數壹位小數的顯示方式具有更高的顯示精度。建立在模糊控制理論上的控制

算法,使控制精度完全能滿足壹般社會生產的要求。通過對系統軟件和硬件設計的合理

規劃,發揮單片機自身集成眾多系統級功能單元的優勢,在不減少功能的前提下有效降

低了硬件成本,系統操控簡便。

實驗證明該溫控系統能達到 0.2℃的靜態誤差,0.45℃的控制精度,以及只有 0.83%

的超調量,因而本設計具有很高的可靠性和穩定性。

關鍵 詞: 單片機 恒溫控制 模糊控制

1

引 言

溫度是工業生產中主要的被控參數之壹,與之相關的各種溫度控制系統廣泛應用於

冶金、化工、機械、食品等領域。溫度控制是工業生產過程中經常遇到的過程控制,有

些工藝過程對其溫度的控制效果直接影響著產品的質量,因而設計壹種較為理想的溫度

控制系統是非常有價值的。

硬件 系統的設計

1、電路總體原理框圖

溫度測量及加熱系統控制的總體結構如圖 1 所示。系統主要包括現場溫度采集、實

時溫度顯示、加熱控制參數設置、加熱電路控制輸出、與報警裝置和系統核心 AT89S52

單片機作為微處理器。

圖 1:系統總體原理框圖

溫度采集電路以數字量形式將現場溫度傳至單片機。單片機結合現場溫度與用戶設

定的目標溫度,按照已經編程固化的模糊控制算法計算出實時控制量。以此控制量控制

固態繼電器開通和關斷,決定加熱電路的工作狀態,使水溫逐步穩定於用戶設定的目標

值。在水溫到達設定的目標溫度後,由於自然冷卻而使其溫度下降時,單片機通過采樣

回的溫度與設置的目標溫度比較,作出相應的控制,開啟加熱器。當用戶需要比實時溫

度低的溫度時,此電路可以利用風扇降溫。系統運行過程中的各種狀態參量均可由數碼

管實時顯示。

2、溫度采集電路的設計

溫度采集電路模塊如圖 2 示。DS18B20 內部結構主要由四部分組成:64 位光刻 ROM、

溫度傳感器、非揮發的溫度報警觸發器 TH 和 TL、配置寄存器。其中 DQ 為數字信號輸

入/輸出端;GND 為電源地;VDD 為外接供電電源輸入端。

2

圖 2:溫度采集電路

DS18B20 中的溫度傳感器可完成對溫度的測量,以 12 位轉化為例:用 16 位符號擴展

的二進制補碼讀數形式提供,以 0.0625℃/LSB 形式表達,其中 S 為符號位。

這是 12 位轉化後得到的 12 位數據,存儲在 18B20 的兩個 8 比特的 RAM 中,二進

制中的前面 5 位是符號位,如果測得的溫度大於 0,這 5 位為 0,只要將測到的數值乘

於 0.0625 即可得到實際溫度;如果溫度小於 0,這 5 位為 1,測到的數值需要取反加 1

再乘於 0.0625 即可得到實際溫度。

3、鍵盤和顯示的設計

鍵盤采用行列式和外部中斷相結合的方法,圖 3 中各按鍵的功能定義如下表 1。其

中設置鍵與單片機的 INT 0 腳相連,S 0 S 9 、YES、NO 用四行三列接單片機 P0 口,REST

鍵為硬件復位鍵,與 R、C 構成復位電路。模塊電路如下圖 3:

表 1:按鍵功能

按鍵 鍵名 功能

REST 復位鍵 使系統復位

RET 設置鍵 使系統產生中斷,進入設置狀態

S 0 S 9 數字鍵 設置用戶需要的溫度

YES 確認鍵 用戶設定目標溫度後進行確認

NO 清除鍵 用戶設定溫度錯誤或誤按了 YES 鍵後使用

3

圖 3 鍵盤接口電路

顯示采用 3 位***陽 LED 動態顯示方式,顯示內容有溫度值的十位、個位及小數點後

壹位。用 P2 口作為段控碼輸出,並用 74HC244 作驅動。P1.0—P1.2 作為位控碼輸出,

用 PNP 型三極管做驅動。模塊電路如下圖 4:

4、加熱控制電路的設計

圖 4 顯示接口電路

用於在閉環控制系統中對被控對象實施控制,被控對象為電熱杯,采用對加在電熱

杯兩端的電壓進行通斷的方法進行控制,以實現對水加熱功率的調整,從而達到對水溫

控制的目的。對電爐絲通斷的控制采用 SSR-40DA 固態繼電器。它的使用非常簡單,只

要在控制端 TTL 電平,即可實現對繼電器的開關,使用時完全可以用 NPN 型三極管接

成電壓跟隨器的形式驅動。當單片機的 P1.3 為高點平時,三極管驅動固態繼電器工作

接通加熱器工作,當單片機的 P1.3 為低電平時固態繼電器關斷,加熱器不工作。控制

電路圖如下圖 5:

4

圖 5 加熱控制電路

5、報警及指示燈電路的設計

當用戶設定的目標溫度達到時需用聲音的形式提醒用戶,此時蜂鳴器為三聲斷續的

滴答滴答的叫聲。在本系統中我們為用戶設計了越限報警,當溫度低於用戶設置的目標

溫度 10 度或高於 10 度時蜂鳴器為連續不斷的滴答滴答叫聲。當單片機 P1.7 輸出高電

平時,三極管導通,蜂鳴器工作發出報警聲。P1.7 為低電平時三極管關斷,蜂鳴器不

工作。

D1 為電熱杯加熱指示燈,P1.5 低電平有效;D0 為檢測到 DS18B20 的指示,高電平

有效;D10 為降溫指示燈,低電平有效。報警及指示燈電路如下圖 6 示:

圖 6 報警及指示燈電路

5

軟 件系統的設計

系統的軟件由三大模塊組成:主程序模塊、功能實現模塊和運算控制模塊。

1、主程序模塊

主程序主要完成加熱控制系統各部件的初始化和實現各功能子程序的調用,以及實

際測量中各個功能模塊的協調在無外部中斷申請時,單片機通過循環對外部溫度進行實

時顯示。把設置鍵作為外部中斷 0,以便能對數字按鍵進行相應處理。主程序流程圖如

下圖 7:

6

圖 7 主程序流程圖

7

2、功能實現模塊

以用來執行對固態繼電器及電熱杯的控制。功能實現模塊主要由中斷處理子程序、

溫度比較處理子程序、鍵盤處理子程序、顯示子程序、報警子程序等部分組成。鍵盤顯

示及中斷程序流程圖如下圖 8:

3、運算控制模塊

圖 8 鍵盤、顯示、中斷 子程序流程圖

該模塊由標度轉換、模糊控制算法,及其中用到的乘法子程序。

3.1 標度轉換

16

式中 A 為二進制的溫度值, A0 為 DS18B20 的數字信號線送回來的溫度數據。

8

單片機在處理標度轉換時是通過把 DS18B20 的信號線送回的 16 位數據右移 4 位得

到二進制的溫度值。其小數部分通過查小數表的形式獲取。程序流程圖如下圖 9:

開始

將28H低4位與29H高4位組合成

壹個字節

將合成的字節(整數部分)送29H

單元

將29H單元低4位送A

給DPTR賦常數表格2首地址

將查到的數值(即小數部分)送

30H單元

結束

3.2 模糊控制算法子程序

圖 9 標度轉換子程序流程圖

該系統為壹溫度控制系統,由於無法確切確定電爐的物理模型,因而無法建立其數

學模型和傳遞函數。加熱器為壹慣性系統,我們采用模糊控制的方法,通過多次溫度測

量模糊計算當用戶設定目標溫度時需提前關斷加熱器的溫度,利用加熱器自身的熱慣性

使溫度上升到其設定溫度。每隔 5 攝氏度我們進行壹次溫度測量,並當達到其溫度時關

斷加熱器記錄下因加熱器的熱慣性而上升的溫度值。從而可以建立熱慣性的溫度差值

表,在程序中利用查表法,查出相應設定溫度對應的關斷溫度。通過實驗數據我們可以

看出,當水溫從 0℃加熱到 50℃這段溫度區域,其溫度慣性曲線可近似成線性的直線,

水溫從 50℃加熱到 100℃這段溫度慣性曲線可近似成另壹條線性的直線段。通過對設置

的目標溫度與溫控系統監測溫度進行差值處理就可近似的求出單片機的提前關斷溫度。

程序流程圖如圖 10:

9

4.源程序見附錄[2]

圖 10 模糊控制算法子程序流程圖

設計 總結

我們的溫度控制系統是基於 AT89S52 單片機的設計方案,她能實時顯示當前溫度,

並能根據用戶的要求作出相應的控制。此系統為閉環系統,工作穩定穩定性高,控制精

度高,利用模糊控制算法使超調量大大降低。軟件采用模塊化結構,提高了通用性。本設

計的目的不僅僅是溫度控制本身,主要提供了單片機外圍電路及軟件包括控制算法設計

的思想,應該說,這種思想比控制系統本身更為重要。

1、設計所達到的性能指標

1.1 溫控系統的標度誤差

我們將標準溫度計和溫控系統探頭放人同壹容器中,選定若幹不同的溫度點,記

錄下標準溫度計顯示的溫度和溫控系統顯示的溫度進行比較。測量數據如下表 2 所示:

表 2 標準溫度計測量的溫度和溫控系統顯示的溫度

標準溫度計和溫控系統顯示的溫度(℃)

標準溫度計 16.9 47.7 57.8 63.0 72.8 85.1 90.9

溫控系統 16.5 48.0 58.3 62.9 73.0 85.5 90.5

差值比較 -0.4 0.3 0.5 0.1 0.2 0.4 -0.4

標度誤差 1.5%

10

1.2 溫控系統的靜態誤差

通過測量在不同的溫度點同標準溫度的溫度差來確定溫控系統的靜態誤差。其測量

數據如下表 3:

表 3 標準溫度和溫控系統顯示的溫度

標準溫度和溫控系統顯示的溫度(℃)

標準溫度 26.0 37.0 46.0 60.0 70.0 83.0

系統顯示值 25.7 36.4 46.1 59.6 70.0 83.3

差值 -0.3 -0.6 -0.1 -0.4 0 0.3

靜態誤差 0.18℃

1.3 溫控系統的控制精度

通過設定不同的溫度值,使加熱器加熱,待溫度穩定時記錄各溫度點的溫度計數據

和溫控系統的顯示值。其記錄數據如下表 4:

溫度計讀數和溫控系統顯示的溫度(℃)

設定溫度

值 20.0 28.0 35.0 45.0 55.0 75.0 87.0 91.0

系統顯示

值 20.5 27.7 34.4 45.1 54.1 74.9 86.1 91.2

差值 0.5 -0.3 -0.6 0.1 -0.9 -0.1 -0.9 0.2

控制精度 0.45℃

超調量 0.83%

2、結果分析論述

我們的系統完全滿足設計要求,靜態誤差方面可以達到 0.18℃的誤差,在讀數正確

方面與標準溫度計的讀數誤差為 1.5%,對壹般的工業生產完全可以采用我們的設計。

該系統具有較小的超調值,超調值大約為 0.83%左右。雖然超調為不利結果,但另

壹方面卻減小了系統的調節時間。從其數據表可以看出該系統為穩定系統。

3、設計方案評價

3.1 優點

在硬件方面:本設計方案采用了單總線型數字式的溫度傳感器,提高了溫度的采集

精度,節約了單片機的口線資源。方案還使用僅壹跟口線就可控制的美國生產的固態繼

電器 SSR—40DA 作加熱控制器件,使設計簡單化,且可靠性強。在控制精度方面,本設

計在不能確定執行機構的數學模型的情況下,大膽的假設小心的求證,利用模糊控制的

算法來提高控制精度。

在軟件方面:我們采用模塊化編程,思路清晰,使程序簡潔、可移植性強。

3.2 缺點

本設計方案雖然采用了當前市場最先進的電子器件,使電路設計簡單,但設計方案

造價高。本系統雖然具有較小的超調量,但加大了調節時間。如果需要更高的控制精度,

則我們的模糊控制將不適應,需修改程序。

11

3.3 方案的改進

在不改變加熱器容量的情況下,為減小調節時間,可以實行在加熱快達到設定溫度

時開啟風扇來減小熱慣性對溫度的影響的措施。在控制精度上可采用先進的數字 PID

控制算法,對加熱時間進行控制,提高控制精度。

可以改進控制系統使能同 PC 聯機通信,以利用 PC 的圖形處理功能打印顯示溫度曲

線。AT89S52 串行口為 TTL 電平,PC 串行口為 RS232 電平,使用壹片 MAX232 作為電

平轉換驅動。

參考 文獻

[1] 李廣弟 單片機基礎 北京:北京航空航天大學出版社,2001

[2] 王福瑞 單片微機測控系統設計大全 北京:北京航空航天大學出版社,1997

[3] 趙茂泰 智能儀器原理及應用(第 2 版) 北京:電子工業出版社,2004

[4] 賴壽濤 微型計算機控制技術 北京:機械工業出版社,2000

[5] 沙占友 模擬與數字萬用表檢測及應用技術 北京:電子工業出版社 1999

12

附 錄

附錄[1]使用說明書

按 鍵功能說明

數字鍵:按 SET 鍵後,按相應的數字鍵(0~9)可對溫度進行設置,所設置的溫

度將實時顯示在 LED 顯示器上;

SET 鍵:按 SET 鍵可對溫度的十位、個位以及小數部分進行設置;

YES 鍵:設置好溫度後按 YES 鍵,系統將據妳所設置的溫度(須大於當前實際

溫度)對水進行加熱;

NO 鍵:若誤按了 SET 鍵,或對輸入有誤,可按 NO 鍵進行取消;

RST 鍵:對系統進行復位。

指示 燈及報警器說明

紅 燈:加熱狀態標誌;

綠 燈:溫度傳感器正常工作標誌;

藍 燈:保溫狀態標誌;

報警器:功能①當水溫達到預設值時報警提醒;

功能②當水溫達到或超越上、下限時報警提示。

13

附錄[2]設計總電路

14

附錄[3]程序清單

TEMPER_L EQU 29H ;用於 保存讀出溫度的低 8 位

TEMPER_H EQU 28H ;用於 保存讀出溫度的高 8 位

FLAG EQU 38H ;是否 檢測到 DS 18B20 標誌位

DAYU EQU 44H ;設溫 >實溫

XIYU EQU 45H ;設溫 <實溫

DEYU EQU 46H ;設溫 =實溫

GAOLE EQU 47H ;水溫 高於最高溫度

DILE EQU 48H ;水溫 低於最低溫度

A_bit EQU 79h ;數碼 管個位數存放內存位置

B_bit EQU 7Ah ;數碼 管十位數存放內存位置

C_BIT EQU 78H ;數碼 管小數存放內存位置

ORG 0000H

AJMP START

ORG 0003H

AJMP PITO

ORG 0030H

START: CLR P1.7

CLR P1.3

CLR P1.5

SETB P1.6

MOV R4, #00H

MOV SP, #60H ;確立堆棧區

MOV PSW, #00H ;

MOV R0, #20H ;RAM 區首地址

MOV R7, #60H ;RAM 區單元個數

ML: MOV @R0, #00H

INC R0

DJNZ R7, ML

CLR IT0

MAIN:LCALL GET_TEMPER ;調用讀溫度子程序 進行溫度顯示,這裏我們考

;慮用網站提供的兩位數碼管來顯示溫度

;顯示範圍 00 到 99 度,顯示精度為 1 度

;因為 12 位轉化時每壹位的精度為 0.0625 度,

;我們不要求顯示小數所以可以拋棄 29H 的低 4

;位將 28H 中的低 4 位移入 29H 中的高 4 位,這

;樣獲得壹個新字節,這個字節就是實際測量獲

;得的溫度

LCALL DISPLAY ;調用數碼管顯示 子程序

JNB 00H, MAIN

CLR 00H

15

MOV A, 38H

CJNE A, #00H, SS

AJMP MAIN

SS: LCALL GET_TEMPER

LCALL DISPLAY;調用 數碼管顯示子程序

LCALL BIJIAO

LCALL XIAOYU

LCALL JIXIAN

JNB DEYU ,LOOP

CLR P1.3 ;關加熱器

SETB P1.6 ;關 藍燈

SETB P0.7 ;關風扇

CLR DEYU

LCALL GET_TEMPER

LCALL DISPLAY

AJMP TT2

LOOP:JNB DAYU ,TT

CLR DAYU

SETB P1.3

SETB P1.6

SETB P0.7

CLR P1.7

LCALL GET_TEMPER

LCALL DISPLAY

AJMP TT2

TT:JNB XIYU, TT2

CLR XIYU

CLR P0.7

CLR P1.6

CLR P1.3

CLR P1.7

LCALL GET_TEMPER

LCALL DISPLAY

TT2:MOV A, 29H

CLR C

CJNE A, 50H, JX

MOV A , 30H

CLR C

CJNE A, 51H, JIA1

AJMP YS2

JIA1:JC JX

MOV A, 51H

MOV 52H, A

ADD A, #2

16

MOV 52H, A

CLR C

MOV A, 30H

CJNE A, 52H, JIA2

JIA2:JNC JX

YS2:SETB P1.7

CLR P1.6

MOV R5, #20H

YS:LCALL GET_TEMPER

LCALL DISPLAY

DJNZ R5, YS

CLR P1.7

SETB P1.6

MOV R5, #20H

YS1:LCALL GET_TEMPER

LCALL DISPLAY

DJNZ R5, YS1

YS3:SETB P1.7

CLR P1.6

MOV R5, #20H

YS0:LCALL GET_TEMPER

LCALL DISPLAY

DJNZ R5, YS0

CLR P1.7

SETB P1.6

MOV R5, #20H

YS01:LCALL GET_TEMPER

LCALL DISPLAY

DJNZ R5, YS01

YS4:SETB P1.7

CLR P1.6

MOV R5, #20H

YS02:LCALL GET_TEMPER

LCALL DISPLAY

DJNZ R5, YS02

CLR P1.7

SETB P1.6

MOV R5, #20H

YS03:LCALL GET_TEMPER

LCALL DISPLAY

DJNZ R5, YS03

JX: MOV A, 29H

CJNE A, 31H, JX00

JX01:SETB P1.7

17

CLR C

AJMP LAST

JX00:JC JX01

CLR P1.7

CJNE A,

JX02:SETB P1.7

CLR C

AJMP LAST

JX03:JNC JX02

32H,

JX03

CLR P1.7

LAST:LCALL GET_TEMPER

LCALL DISPLAY

AJMP SS

;***************************常數表格區**** ******************************************

TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8 H,80H ;0-8

DB 90H,88H,83H,0C6H,0A1H,86H,8EH,0FFH ,0CH ;9,A,B,C,D,E,F,滅,p.

TAB1:DB40H,79H,24H,30H,19H,12H,02H,78H,00H ,10H, ;0.--9.

TAB2:DB 0, 0, 1, 2, 3, 3, 4, 4, 5, 5, 6, 7, 8, 8, 9, 9, ;小數點

;*************************1ms 延時程序*************** *********************

;************************* ****中斷服務程序* *********************************

; 完成按鍵識別,鍵值求取,按鍵實時顯示 等功能;

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

PITO: PUSH ACC

PUSH PSW

SETB RS0

CLR RS1

SET B 00H

MAIN1: MOV R7 , #03H ;顯示位數為 2 位

MOV R0, #7AH

MOV 78H, #00H

MOV 79H, #00H

MOV 7AH, #00H

KK: LCALL DIR

LCALL KEY1

LOOP1:CJNE A, #11, LOOP2

AJMP LAST0

LOOP2:CJNE A, #12, LOOP3

LJMP LAST3

LOOP3: CJNE A, #10, L4

MOV A, #00H

L4: MOV @R0, A

LCALL DIR

DEC R0

DJNZ R7, KK

18

SETB 01H

LAST0:JNB 01H, KK

LOOP4:LCALL KEY1

CJNE A, #12, LOOP5

AJMP LAST3

LOOP5:CJNE A, #11, LOOP4

LAST1:LCALL DIR

LCALL MUN

LCALL JD

LCALL BIJIAO

LAST3:POP PSW

POP ACC

RETI

;******************精度控制 子程序********** ******

JD: PUSH ACC

PUSH PSW

CLR C

MOV A, 38H

MOV 50H, A

MOV A, 39H

MOV 51H, A

CJNE A, 29H, L001

L001:JC LAST02 ;設溫<實溫,則跳出

MOV A, 29H

MOV 41H, A

MOV A, 38H

CJNE A, #25, L002

L003:CLR C ;0 <T<25

SUBB A, 41H

CJNE A, #3, L004

L005:MOV A, 30H

ADD A, #5 ;0<T<25, 差值小於 3 度

DA A

JNB ACC.4, L0051

ANL A, #0FH

SETB C

L0051:MOV 39H, A

MOV A, 29H

ADDC A, #1

MOV 38H, A

AJMP LAST2

LAST02: AJMP LAST2

L004:JC L005

MOV A, 39H

19

SUBB A, #0

DA A

MOV 39H, A

JNC L0041

DEC 38H

L0041:MOV A, 38H

SUBB A, #2 ;0<T<25, 差值大 於 3 度

MOV 38H, A

AJMP LAST2

L002:JC L003

CJNE A, #50, L006

L007:CLR C ;25<T<5 0

SUBB A, 41H

CJNE A, #3, L008

L009:MOV A, 30H

ADD A, #1

DA A

JNB ACC.4, L0091

ANL A, #0FH

SETB C

L0091:MOV 39H, A

MOV A, 29H

ADDC A, #1

MOV 38H, A

AJMP LAST2

L008:JC L009

MOV A, 39H

SUBB A, #0

MOV 39H, A

MOV A, 38H

SUBB A, #2

MOV 38H, A

AJMP LAST2

L006:JC L007

CJNE A, #65, L010

L011:CLR C

SUBB A, 41H

CJNE A, #3, L012

L013:MOV A, 30H

ADD A, #2

JNB ACC.4, L00131

ANL A, #0FH

SETB C

L00131:MOV 39H, A

20

MOV A, 29H

ADDC A, #1

MOV 38H, A

AJMP LAST2

L012:JC L013

MOV A, 39H

SUBB A, #0

MOV 39H, A

MOV A, 38H

SUBB A, #2

MOV 38H, A

AJMP LAST2

L010:JC L011

CJNE A, #90, L016

L017:CLR C

SUBB A, 41H

CJNE A, #2, L014

L015:MOV A, 30H

ADD A, #0

JNB ACC.4, L00151

ANL A, #0FH

SETB C

L00151:MOV 39H, A

MOV A, 29H

ADDC A, #1

MOV 38H, A

AJMP LAST2

L014:JC L015

CLR C

MOV A, 38H

SUBB A, #1

MOV 38H, A

AJMP LAST2

L016:JC L017

LAST2:POP PSW

POP ACC

RET

;*******************************鍵掃描** ************************************

KEY1:LCALL KS1 ;鍵 掃描

JNZ LK1

LCALL DIR

AJMP KEY1

LK1:LCALL DIR

LCALL DIR

21

LCALL KS1

JNZ LK2

LCALL DIR

AJMP KEY1

LK2:MOV R2, #0FEH ;確定鍵值

MOV R4, #01H

MOV A, R2

LK4:MOV P0, A

NOP

MOV A, P0

JB ACC.3, LONE

MOV A, #00H

AJMP LKP

LONE:JB ACC.4 , LTWO

MOV A, #03H

AJMP LKP

LTWO:JB ACC.5, LTHR

MOV A, #06H

AJMP LKP

LTHR:JB ACC.6, NEXT5

MOV A, #09H

AJMP LKP

NEXT5:INC R4

MOV A, R2

JNB ACC.2 ,KND

RL A

MOV R2, A

AJMP LK4

KND:AJMP KEY1

LKP: ADD A, R4

PUSH ACC

LK3:LCALL DIR

LCALL KS1

JNZ LK3

POP ACC

RET

KS1: PUSH PSW

MOV P0, #78H

NOP

MOV A, P0 ;判斷有無鍵按下

CPL A

ANL A, #78H

POP PSW

22

RET

;*************求設置溫度的二 進制代碼,值保存在 38H 單元**************

MUN: PUSH PSW

MOV R0, #7AH ;求鍵值

MOV A, @R0

SWAP A

DEC R0

ADD A, @R0

MOV R1, A

ANL A, #0F0 H

SWAP A

MOV B, #10

MUL AB

MOV R2, A

MOV A, R1

ANL A, #0FH

ADD A, R2

MOV 38H, A

MOV R0, #78H

MOV 39H, @R0

POP PSW

RET

;*************比較實際溫度和設置溫度的大小 並設置相應的標誌位***********

BIJIAO:MOV A, 29 H ;實際溫度

MOV 40H, A

  • 上一篇:VBA是什麽語言?
  • 下一篇:高中畢業的女生學計算機編程能學會嗎?
  • copyright 2024編程學習大全網