




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、精選優(yōu)質(zhì)文檔-傾情為你奉上基于51單片機(jī)的多路溫度采集控制系統(tǒng)設(shè)計(jì)言:隨著現(xiàn)代信息技術(shù)的飛速發(fā)展,溫度測(cè)量控制系統(tǒng)在工業(yè)、農(nóng)業(yè)及人們的日常生活中扮演著一個(gè)越來(lái)越重要的角色,它對(duì)人們的生活具有很大的影響,所以溫度采集控制系統(tǒng)的設(shè)計(jì)與研究有十分重要的意義。本次設(shè)計(jì)的目的在于學(xué)習(xí)基于51單片機(jī)的多路溫度采集控制系統(tǒng)設(shè)計(jì)的基本流程。本設(shè)計(jì)采用單片機(jī)作為數(shù)據(jù)處理與控制單元,為了進(jìn)行數(shù)據(jù)處理,單片機(jī)控制數(shù)字溫度傳感器,把溫度信號(hào)通過(guò)單總線從數(shù)字溫度傳感器傳遞到單片機(jī)上。單片機(jī)數(shù)據(jù)處理之后,發(fā)出控制信息改變報(bào)警和控制執(zhí)行模塊的狀態(tài),同時(shí)將當(dāng)前溫度信息發(fā)送到LED進(jìn)行顯示。本系統(tǒng)可以實(shí)現(xiàn)多路溫度信號(hào)采集與顯示
2、,可以使用按鍵來(lái)設(shè)置溫度限定值,通過(guò)進(jìn)行溫度數(shù)據(jù)的運(yùn)算處理,發(fā)出控制信號(hào)達(dá)到控制蜂鳴器和繼電器的目的。我所采用的控制芯片為AT89c51,此芯片功能較為強(qiáng)大,能夠滿足設(shè)計(jì)要求。通過(guò)對(duì)電路的設(shè)計(jì),對(duì)芯片的外圍擴(kuò)展,來(lái)達(dá)到對(duì)某一車(chē)間溫度的控制和調(diào)節(jié)功能。 關(guān)鍵詞:溫度 多路溫度采集 驅(qū)動(dòng)電路 正文 :1、溫度控制器電路設(shè)計(jì)本電路由89C51單片機(jī)溫度傳感器、模數(shù)轉(zhuǎn)換器ADC0809、竄入并出移位寄存器74LS164、數(shù)碼管、和LED顯示電路等組成。由熱敏電阻溫度傳感器測(cè)量環(huán)境溫度,將其電壓值送入ADC0809的IN0通道進(jìn)行模數(shù)轉(zhuǎn)換,轉(zhuǎn)換所得的數(shù)字量由數(shù)據(jù)端D7-D0輸出到89C51的P0口,經(jīng)軟
3、件處理后將測(cè)量的溫度值經(jīng)單片機(jī)的RXD端竄行輸出到74LS164,經(jīng)74LS164 竄并轉(zhuǎn)換后,輸出到數(shù)碼管的7個(gè)顯示段,用數(shù)字形式顯示出當(dāng)前的溫度值。89C51的P2.0、P2.1、P2.2分別接入ADC0809通道地址選擇端A、B、C,因此ADC0809的IN0通道的地址為F0FFH。輸出驅(qū)動(dòng)控制信號(hào)由p1.0輸出,4個(gè)LED為狀態(tài)指示,其中,LED1為輸出驅(qū)動(dòng)指示,LED2為溫度正常指示,LED3為高于上限溫度指示,LED4為低于下限溫度指示。當(dāng)溫度高于上限溫度值時(shí),有p1.0輸出驅(qū)動(dòng)信號(hào),驅(qū)動(dòng)外設(shè)電路工作,同時(shí)LED1亮、LED2滅、LED3亮、LED4滅。外設(shè)電路工作后,溫度下降,當(dāng)
4、溫度降到正常溫度后,LED1亮、LED2亮、LED3滅、LED4滅。溫度繼續(xù)下降,當(dāng)溫度降到下限溫度值時(shí),p1.0信號(hào)停止輸出,外設(shè)電路停止工作,同時(shí)LED1滅、LED2滅、LED3滅、LED4亮。當(dāng)外設(shè)電路停止工作后,溫度開(kāi)始上升,接著進(jìn)行下一工作周期。2、 溫度控制器程序設(shè)計(jì) 本軟件系統(tǒng)有1個(gè)主程序,6個(gè)子程序組成。6個(gè)子程序?yàn)槎〞r(shí)/計(jì)數(shù)器0中斷服務(wù)程序、溫度采集及模數(shù)轉(zhuǎn)換子程序ADCON、溫度計(jì)算子程序CALCU、驅(qū)動(dòng)控制子程序DRVCON、十進(jìn)制轉(zhuǎn)換子程序METRICCON及數(shù)碼管顯示子程序DISP。(1) 主程序主程序進(jìn)行系統(tǒng)初始化操作,主要是進(jìn)行定時(shí)/計(jì)數(shù)器的初始化。(2) 定時(shí)/
5、計(jì)數(shù)器0中斷服務(wù)程序應(yīng)用定時(shí)計(jì)數(shù)器0中斷的目的是進(jìn)行定時(shí)采樣,消除數(shù)碼管溫度顯示的閃爍現(xiàn)象,用戶可以根據(jù)實(shí)際環(huán)境溫度變化率進(jìn)行采樣時(shí)間調(diào)整。每當(dāng)定時(shí)時(shí)間到,調(diào)用溫度采集機(jī)模數(shù)轉(zhuǎn)換子程序ADCON,得到一個(gè)溫度樣本,并將其轉(zhuǎn)換為數(shù)字量,傳送給89C51單片機(jī),然后在調(diào)用溫度計(jì)算子程序CALCU,驅(qū)動(dòng)控制子程序DRVCON,十進(jìn)制轉(zhuǎn)換子程序MERTRICCON,溫度數(shù)碼顯示子程序DISP。(3) 溫度采集及模數(shù)轉(zhuǎn)換子程序ADCON該子程序進(jìn)行溫度采樣并將其轉(zhuǎn)換為8位數(shù)字量傳送給89C51的P0口。采樣得到的溫度數(shù)據(jù)存放在片內(nèi)RAM的20H單元中。(4) 溫度計(jì)算子程序CALCU根據(jù)熱敏電阻的分度值
6、和電路參數(shù)計(jì)算出出一張溫度表,存放在DATATAB數(shù)據(jù)表中,由于篇幅關(guān)系,本程序只給出0-49的溫度數(shù)據(jù)。一個(gè)溫度有兩個(gè)字節(jié)組成,前一字節(jié)為溫度值,后一字節(jié)為該溫度所對(duì)應(yīng)的熱敏電阻上的電壓的數(shù)字量。根據(jù)采樣值,通過(guò)查表及比較的方法計(jì)算出當(dāng)前的溫度值,并將其存入片內(nèi)RAM的21H單元。采用查表法計(jì)算溫度值時(shí)為了克服熱敏電阻的阻值溫度特性曲線的非線性,提高測(cè)量精度。(5) 驅(qū)動(dòng)控制子程序DRVCON該子程序調(diào)節(jié)溫度,當(dāng)溫度高于上限溫度時(shí)(本程序設(shè)為30), P1.0輸出驅(qū)動(dòng)控制信號(hào),驅(qū)動(dòng)外設(shè)工作降溫;當(dāng)溫度下降到下限溫度時(shí)(本程序設(shè)為25),P1.0停止輸出,溫度上升,周而復(fù)始;工作狀態(tài)有LED1
7、-LED4指示。(6) 十進(jìn)制轉(zhuǎn)換子程序METRICCON將存放于內(nèi)部RAM21H單元的當(dāng)前溫度值得二進(jìn)制數(shù)形式轉(zhuǎn)換為十進(jìn)制數(shù)(BCD碼)形式,以便輸出顯示,轉(zhuǎn)換結(jié)果存放在片內(nèi)RAM的32H單元(百位)、31H(十位)、30H單元(個(gè)位)。(7) 數(shù)碼顯示子程序DISP該子程序利用89C51串口的方式0串行移位寄存器工作方式,將片內(nèi)RAM的30H、31H、32H單元的BCD碼查表轉(zhuǎn)換為七段碼后由RXD端串行發(fā)出去,然后經(jīng)74LS164串并轉(zhuǎn)換,將七段值傳送給數(shù)碼管,以十進(jìn)制形式顯示出當(dāng)前溫度值。根據(jù)以上分析畫(huà)出的部分程序設(shè)計(jì)流程圖如圖1-0至圖1-4所示。開(kāi)始在0000H處放置一條長(zhǎng)跳轉(zhuǎn)指令L
8、JMP MAIN跳轉(zhuǎn)到主程序在0000H處放置一條長(zhǎng)跳轉(zhuǎn)指令LJMP T0INT跳轉(zhuǎn)到T0中斷服務(wù)程序圖1-0 部分程序設(shè)計(jì)流程圖的設(shè)計(jì)框架主程序計(jì)數(shù)寄存器R1賦初值10TMOD賦初值01HT0工作于定時(shí)方式1軟啟動(dòng)堆棧指針SP賦初值60HSETB TR0啟動(dòng)T0工作P1口賦初值FFH,所有指示燈全滅TH0賦初值3CH,TL0賦初值B0H,T0定時(shí)100msIE賦初值82H,T0允許中斷動(dòng)態(tài)停機(jī)圖1-1 主程序流程圖T0中斷服務(wù)程序溫度采樣時(shí)間間隔到否T0重裝初值調(diào)用數(shù)碼管顯示子程序DISP調(diào)用十進(jìn)制轉(zhuǎn)換子程序METRICCON調(diào)用驅(qū)動(dòng)控制子程序DRVCON調(diào)用溫度計(jì)算子程序CALCU調(diào)用溫度
9、采用及模數(shù)轉(zhuǎn)換子程序ADCON中斷返回YN圖1-2 T0中斷服務(wù)程序流程圖溫度采樣及模數(shù)轉(zhuǎn)換子程序?qū)DC0809啟動(dòng)A/D轉(zhuǎn)換讀取轉(zhuǎn)換數(shù)據(jù)將轉(zhuǎn)換數(shù)據(jù)存于片內(nèi)RAM20H單元返回轉(zhuǎn)換結(jié)束否圖1-3 溫度采樣及模數(shù)轉(zhuǎn)換子程序流程圖溫度數(shù)據(jù)表索引值寄存器R2賦初值01H溫度數(shù)據(jù)表首地址送DPTR查表取出某一溫度的電壓數(shù)據(jù)取出表中前一溫度值將該溫度值存于21H單元查表取出該溫度值將該溫度值存于21H單元索引值加2返回返回當(dāng)前溫度電壓值與查表取得的某一溫度電壓值比較溫度計(jì)算子程序相等小于大于圖1-4 溫度計(jì)算子程序流程圖3、具體內(nèi)容(1)溫度控制器電器原理圖設(shè)計(jì)按以上分析及相關(guān)知識(shí)設(shè)計(jì)出的溫度控制器電
10、路原理圖如圖1-5所示。圖1-5 溫度控制電路原理圖(2)溫度數(shù)據(jù)表在圖1-5所示的電路中,熱敏電阻的連接如圖1-6所示。R8100kD0D1 VR(+)D2D3D4D5 VR(-)D6D7 IC2ABC ADC0809 IN0OE IN1ALE IN2SC IN3 IN4EOC IN5 IN6CLK IN71714158181920212524239226710121626272812345VccR720kRTR9圖1-6 熱敏電阻的連接本設(shè)計(jì)所使用的熱敏電阻的分度表及ADC0809轉(zhuǎn)換后的電壓數(shù)字量見(jiàn)附表1-1所示轉(zhuǎn)換后的電壓數(shù)字量的計(jì)算方法為:熱敏電阻與R8并并聯(lián)后的總電阻:R=(Rt*
11、R8)/(Rt+R8)R與R7串聯(lián)電路中R的分壓值(即輸入ADC0809的模擬量):V=5R/(R+R7)5V被分成256等分(8位量化),則每份的電壓值:=5/256輸入的模擬量電壓經(jīng)8位量化后的數(shù)字量:D=V/例如,熱敏電阻在溫度為20時(shí)的阻值為62.254千歐,則根據(jù)上述方法計(jì)算出的電壓數(shù)字量為169,注意在計(jì)算中R7用實(shí)測(cè)值19.6千歐代入進(jìn)入計(jì)算。在實(shí)際做該電路時(shí),可根據(jù)自己所選擇的熱敏電阻的分度表計(jì)相關(guān)電路參數(shù),按上述方法計(jì)算出ADC0809轉(zhuǎn)換后的各溫度對(duì)應(yīng)的電壓數(shù)字量。程序中的溫度數(shù)據(jù)表構(gòu)成:1個(gè)溫度數(shù)據(jù)占2個(gè)字節(jié),前一字為溫度值,后一個(gè)字節(jié)為該溫度下熱敏電阻上的模擬電壓轉(zhuǎn)換成
12、德8位數(shù)字量。如在20時(shí),熱敏電阻對(duì)應(yīng)的電壓數(shù)字量為169,則20,169組成一個(gè)溫度為20的溫度數(shù)據(jù)。按這樣方法組成的0-49的溫度數(shù)據(jù)表如下:DATATAB:DB 0,194,1 ,193 ,2 ,192, 3, 191,4,190 DB 5,189,6, 188, 7 ,187, 8, 186,9,185 DB10,184,11,182,12,181,13,180,14,178 DB 15,177,16,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,156,2
13、9,154DB 30,152,31,150,32,149,33,147,34,145DB 35,143,36,141,37,139,38,147,39,135DB 40,133,41,131,42,129,43,127,44,125DB 45,123,46,121,47,118,48,116,49,114在溫度采樣機(jī)模數(shù)轉(zhuǎn)換子程序中,采樣得到的當(dāng)前溫度下熱敏電阻上的數(shù)字電壓存于20H單元,在溫度計(jì)算子程序中通過(guò)查表的方法從表中的第一個(gè)溫度(0)下熱敏電阻上的數(shù)字電壓開(kāi)始,依次取出各溫度下熱敏電阻上的十字電壓,與與存于20H單元的當(dāng)前溫度下熱敏電阻上的的數(shù)字電壓比較,如小于當(dāng)前溫度的數(shù)字電壓,則
14、在取出下一溫度的數(shù)字電壓與當(dāng)前溫度的數(shù)字電壓比較;直到大于或等于當(dāng)前的溫度數(shù)字電壓,比較結(jié)束。如大于則取出前一溫度作為當(dāng)前溫度存于21H單元,如等于則將該溫度作為但前溫度存于20H單元。這種溫度計(jì)算方法,避免了溫度特性曲線的非線性對(duì)溫度計(jì)算精確性的影響,計(jì)算出的溫度非常精確。(3)溫度控制程序設(shè)計(jì)在本設(shè)計(jì)中,晶體振蕩器頻率為6MHz,T0定時(shí)時(shí)間為100ms,T0工作于方式1,則T0的初值為:X=(最大計(jì)數(shù)值M定時(shí)時(shí)間t/及其周期Tm)=216 -100ms/2us=15536=3CB0H按以上任務(wù)分析設(shè)計(jì)出的源程序如下:ORG 0000H;跳轉(zhuǎn)到主程序LJMP MAIN;ORG 000BH;
15、LJMP T0INT;跳轉(zhuǎn)到T0中斷服務(wù)程序;主程序ORG 0100H;MAIN:MOV R1,#10; T0 100馬上定時(shí)溢出計(jì)數(shù)寄存器R1賦初值10MOV P1,#0FFH; 所有指示燈滅MOV SP,#60H; 堆棧指針賦初值60HMOV TMOD,#01H; T0定時(shí)、方式1、軟啟動(dòng)MOV TL0,#0B0H; T0賦初值MOV TH0,#3CH;MOV IE,#82H; 開(kāi)放T0中斷SETB TR0; 啟動(dòng)T0SJMP $;定時(shí)/計(jì)數(shù)器0中斷服務(wù)程序ORG 0200H;T0INT:DJNZ R1,NEXT; T0溢出10次,即1s進(jìn)一次采樣處理LCALL ADCON; 調(diào)用溫度采樣
16、及模數(shù)轉(zhuǎn)換子程序LCALL CALCU; 調(diào)用溫度計(jì)算子程序LCALL DRVCON; 調(diào)用驅(qū)動(dòng)控制子程序LCALL METRICCON; 調(diào)用十進(jìn)制轉(zhuǎn)換子程序LCALL DISP; 調(diào)用數(shù)碼管顯示子程序MOV R1,#10; R1重賦值10NEXT:MOV TL0,#0B0H; T0重裝初值MOV TH0,#3CH;RETI;溫度采樣及模數(shù)轉(zhuǎn)換子程序ORG 0300H;ADCON:MOV DPTR,#0F0FFH; 選通ADC0809通道0MOV A,#00H;MOVX DPTR,A; 啟動(dòng)A/D轉(zhuǎn)換HERE:JNB P3.3,HERE; 判斷數(shù)據(jù)轉(zhuǎn)換是否結(jié)束,沒(méi)結(jié)束則等待MOVX A,DP
17、TR; 讀取轉(zhuǎn)換后的數(shù)據(jù)MOV 20H,A; 將從ADC0809中讀取的當(dāng)前溫度下熱敏電阻上的電壓值存于20H單元RET ;溫度計(jì)算子程序ORG 0400H;CALCU:MOV R2,#01H; R2為數(shù)據(jù)表的索引值寄存器MOV DPTR,#DATATAB; 溫度數(shù)據(jù)表首地址送DPTRNEXT1:MOV A,R2; 索引值送AMOVC A,A+DPTR; 查表取出某一溫度的數(shù)字電壓值CJNE A,20H,K1; 與當(dāng)前溫度的數(shù)字電壓值比較DEC R2; 等于當(dāng)前溫度的數(shù)字電壓值,則查表取出該溫度值作為當(dāng)前溫度值MOV A,R2;MOVC A,A+DPTR;LJMP K3;K1:JNC K2;
18、大于當(dāng)前溫度的數(shù)字電壓值,則繼續(xù)取出下一溫度的數(shù)字電壓進(jìn)行比較DEC R2; 小于當(dāng)前溫度的數(shù)字電壓值,則查表取出前一個(gè)溫度值作為當(dāng)前溫度值DEC R2DEC R2MOV A,R2;MOVC A,A+DPTR;LJMP K3;K2:INC R2;INC R2;LJMP NEXT1;K3:MOV 21H,A; 將當(dāng)前溫度值存于21H單元RET;DATATAB;DB 0,194,1,193,2,192,3,191,4,190;溫度數(shù)據(jù)表 DB 5,189,6,188,7,187,8,186,9,185DB 10,184,11,182,12,181,13,180,14,178DB 15,177,16
19、,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,156,29,154DB 30,152,31,150,32,149,33,147,34,145DB 35,143,36,141,37,139,38,137,39,135DB 40,133,41,131,42,129,43,127,44,125DB 45,123,46,121,47,118,48,116,49,114驅(qū)動(dòng)控制子程序ORG 0500H;DRVCON:MOV A,21H; 取出當(dāng)前溫度值CJNE A,#30,
20、J1; 與上限溫度值(30)比較LJMP GO;J1:JNC DRV1; 若高于上限溫度,則輸出驅(qū)動(dòng)信號(hào),同時(shí)高于上限溫度指示燈點(diǎn)亮CJNE A,#25,J2; 與顯現(xiàn)溫度(25)比較LJMP GO;J2:JC DRV2; 弱低于下限溫度,則驅(qū)動(dòng)信號(hào)停止輸出,同時(shí)點(diǎn)亮低于下限溫度的指示燈LJMP GO;DRV1:CLR P1.0;SETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0SETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0;SETB P1.1;SETB P1.1;SETB P1
21、.2;CLR P1.3;LJMP OVER;GO:CLR P1.1; 在下線溫度(25)至上限溫度(30)之間,則驅(qū)動(dòng)信號(hào)保持前面狀態(tài),同時(shí)溫度正常指示燈點(diǎn)亮SETB P1.2;SETB P1.3;OVER:RET;;十進(jìn)制轉(zhuǎn)換子程序ORG 0600H;METRICCON:MOV R3,#00H; 將存于21H單元中的當(dāng)前溫度轉(zhuǎn)換為BCD碼MOV R4,#00H; 百位存于32H單元,十位存于31H單元,個(gè)位存于30H單元MOV A,21H;CLR C;W1:SUBB A,#100;JC W2;INC R4;AJMP W1;W2:ADD A,#100;CLR C;W3:SUBB A,#10;J
22、C W4;INC R3;AJMP W3;W4:ADD A,#10;MOV 30H,A;MOV 31H,R3;MOV 32H,R4;RET;;數(shù)碼管顯示子程序ORG 0700H;DISP:MOV R5,#03H; 將存于32H單元、31H單元、30H單元中的溫度BCD碼查表轉(zhuǎn)換為七段碼MOV R0,#30H; 通過(guò)串行ORG 0100H;MAIN:MOV R1,#10; T0 100馬上定時(shí)溢出計(jì)數(shù)寄存器R1賦初值10MOV P1,#0FFH; 所有指示燈滅MOV SP,#60H; 堆棧指針賦初值60HMOV TMOD,#01H; T0定時(shí)、方式1、軟啟動(dòng)MOV TL0,#0B0H; T0賦初值
23、MOV TH0,#3CH;MOV IE,#82H; 開(kāi)放T0中斷SETB TR0; 啟動(dòng)T0SJMP $;定時(shí)/計(jì)數(shù)器0中斷服務(wù)程序ORG 0200H;T0INT:DJNZ R1,NEXT; T0溢出10次,即1s進(jìn)一次采樣處理LCALL ADCON; 調(diào)用溫度采樣及模數(shù)轉(zhuǎn)換子程序LCALL CALCU; 調(diào)用溫度計(jì)算子程序LCALL DRVCON; 調(diào)用驅(qū)動(dòng)控制子程序LCALL METRICCON; 調(diào)用十進(jìn)制轉(zhuǎn)換子程序LCALL DISP; 調(diào)用數(shù)碼管顯示子程序MOV R1,#10; R1重賦值10NEXT:MOV TL0,#0B0H; T0重裝初值MOV TH0,#3CH;RETI;溫度
24、采樣及模數(shù)轉(zhuǎn)換子程序ORG 0300H;ADCON:MOV DPTR,#0F0FFH; 選通ADC0809通道0MOV A,#00H;MOVX DPTR,A; 啟動(dòng)A/D轉(zhuǎn)換HERE:JNB P3.3,HERE; 判斷數(shù)據(jù)轉(zhuǎn)換是否結(jié)束,沒(méi)結(jié)束則等待MOVX A,DPTR; 讀取轉(zhuǎn)換后的數(shù)據(jù)MOV 20H,A; 將從ADC0809中讀取的當(dāng)前溫度下熱敏電阻上的電壓值存于20H單元RET ;溫度計(jì)算子程序ORG 0400H;CALCU:MOV R2,#01H; R2為數(shù)據(jù)表的索引值寄存器MOV DPTR,#DATATAB; 溫度數(shù)據(jù)表首地址送DPTRNEXT1:MOV A,R2; 索引值送AMOV
25、C A,A+DPTR; 查表取出某一溫度的數(shù)字電壓值CJNE A,20H,K1; 與當(dāng)前溫度的數(shù)字電壓值比較DEC R2; 等于當(dāng)前溫度的數(shù)字電壓值,則查表取出該溫度值作為當(dāng)前溫度值MOV A,R2;MOVC A,A+DPTR;LJMP K3;K1:JNC K2; 大于當(dāng)前溫度的數(shù)字電壓值,則繼續(xù)取出下一溫度的數(shù)字電壓進(jìn)行比較DEC R2; 小于當(dāng)前溫度的數(shù)字電壓值,則查表取出前一個(gè)溫度值作為當(dāng)前溫度值DEC R2DEC R2MOV A,R2;MOVC A,A+DPTR;LJMP K3;K2:INC R2;INC R2;LJMP NEXT1;K3:MOV 21H,A; 將當(dāng)前溫度值存于21H單
26、元RET;DATATAB;DB 0,194,1,193,2,192,3,191,4,190;溫度數(shù)據(jù)表 DB 5,189,6,188,7,187,8,186,9,185DB 10,184,11,182,12,181,13,180,14,178DB 15,177,16,175,17,174,18,173,19,171DB 20,169,21,168,22,166,23,165,24,163DB 25,161,26,159,27,158,28,156,29,154DB 30,152,31,150,32,149,33,147,34,145DB 35,143,36,141,37,139,38,137,
27、39,135DB 40,133,41,131,42,129,43,127,44,125DB 45,123,46,121,47,118,48,116,49,114驅(qū)動(dòng)控制子程序ORG 0500H;DRVCON:MOV A,21H; 取出當(dāng)前溫度值CJNE A,#30,J1; 與上限溫度值(30)比較LJMP GO;J1:JNC DRV1; 若高于上限溫度,則輸出驅(qū)動(dòng)信號(hào),同時(shí)高于上限溫度指示燈點(diǎn)亮CJNE A,#25,J2; 與顯現(xiàn)溫度(25)比較LJMP GO;J2:JC DRV2; 弱低于下限溫度,則驅(qū)動(dòng)信號(hào)停止輸出,同時(shí)點(diǎn)亮低于下限溫度的指示燈LJMP GO;DRV1:CLR P1.0;S
28、ETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0SETB P1.1;CLR P1.2;SETB P1.3;LJMP OVER;DRV2:SETB P1.0;SETB P1.1;SETB P1.1;SETB P1.2;CLR P1.3;LJMP OVER;GO:CLR P1.1; 在下線溫度(25)至上限溫度(30)之間,則驅(qū)動(dòng)信號(hào)保持前面狀態(tài),同時(shí)溫度正常指示燈點(diǎn)亮SETB P1.2;SETB P1.3;OVER:RET;;十進(jìn)制轉(zhuǎn)換子程序ORG 0600H;METRICCON:MOV R3,#00H; 將存于21H單元中的當(dāng)前溫度轉(zhuǎn)換為
29、BCD碼MOV R4,#00H; 百位存于32H單元,十位存于31H單元,個(gè)位存于30H單元MOV A,21H;CLR C;W1:SUBB A,#100;JC W2;INC R4;AJMP W1;W2:ADD A,#100;CLR C;W3:SUBB A,#10;JC W4;INC R3;AJMP W3;W4:ADD A,#10;MOV 30H,A;MOV 31H,R3;MOV 32H,R4;RET;;數(shù)碼管顯示子程序ORG 0700H;DISP:MOV R5,#03H; 將存于32H單元、31H單元、30H單元中的溫度BCD碼查表轉(zhuǎn)換為七段碼MOV R0,#30H; 通過(guò)串行通信方式0輸出驅(qū)動(dòng)3個(gè)數(shù)碼管,顯示當(dāng)前溫度MOV DPTR,#TAB;LOOP:MOV A,R0;MOVC A,A+DPTR;MOV SBUF,A;WAIT:JNB T1,WAIT;CLR T1;INC R0;DJNZ R5,LOOP;RET;TAB:DB 3FH,06H,5
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 英語(yǔ)-山東省淄博市濱州市2024-2025學(xué)年度2025屆高三模擬考試(淄博濱州一模)試題和答案
- (一模)萍鄉(xiāng)市2025年高三第一次模擬考試語(yǔ)文試卷(含答案解析)
- 防撞護(hù)角施工方案
- 第十課 《數(shù)據(jù)可視化》教學(xué)設(shè)計(jì) 2023-2024學(xué)年浙教版(2020)初中信息技術(shù)七年級(jí)上冊(cè)
- 分揀工人勞務(wù)合同范本
- 認(rèn)知治療模式
- 鄉(xiāng)下老宅轉(zhuǎn)讓合同范例
- 班級(jí)社會(huì)實(shí)踐活動(dòng)的總結(jié)與反思計(jì)劃
- 班級(jí)合作項(xiàng)目實(shí)施計(jì)劃
- 后勤保障部服務(wù)質(zhì)量提升總結(jié)計(jì)劃
- 枯死松樹(shù)清理服務(wù)投標(biāo)方案(完整技術(shù)標(biāo))
- MOOC 針灸學(xué)-經(jīng)絡(luò)養(yǎng)生與康復(fù)-暨南大學(xué) 中國(guó)大學(xué)慕課答案
- 第4課 中古時(shí)期的亞洲(教學(xué)課件)-【中職專(zhuān)用】《世界歷史》同步課堂(同課異構(gòu))(高教版2023?基礎(chǔ)模塊)
- 《監(jiān)理企業(yè)安全責(zé)任清單(2.0版)參考模板》
- 團(tuán)隊(duì)統(tǒng)一思想培訓(xùn)
- 小區(qū)停車(chē)收費(fèi)方案
- 經(jīng)橈動(dòng)脈腦血管造影術(shù)前術(shù)后護(hù)理
- 《讓我們的家更美好》教學(xué)設(shè)計(jì)
- 提升漁業(yè)與水產(chǎn)養(yǎng)殖技術(shù)的高效養(yǎng)殖模式
- 裝飾公司小區(qū)團(tuán)購(gòu)活動(dòng)策劃
- 曲率系數(shù)不均勻系數(shù)自動(dòng)計(jì)算
評(píng)論
0/150
提交評(píng)論