姜云鵬+周連勇+魏巍+張可+張冬杰



摘 要:本系統以AT89C52單片機為主控制器、8255為從控制器,由AD采集模塊,數據處理轉化模塊,數碼管顯示模塊,報警模塊等構成。利用AD轉換電路將電位器對應的電壓模擬信號轉換為數字信號,單片機使用匯編語言設計的數據采集系統,系統可以完成對8路溫度信號的數據采集、處理,整個系統具有測溫、顯示、參數設置、報警功能。
關鍵詞:匯編語言;單片機;溫度采集
DOI:10.16640/j.cnki.37-1222/t.2017.05.115
1 程序設計
主程序代碼如下:MAIN: MOV P1,#0FFH MOV WHZ,#0FFH MOV WLZ,#00H ;最高最低溫度值初始值設置 MOV CLOCK,#0;定時初值設置MOV DPTR,#7FFFH ;8255A 控制口地址 MOV A,#89H ;8255控制字,PA為輸出,PB為輸出,PC口為輸入MOVX @DPTR,A MOV TMOD,#01H;定時器0工作于方式1MOV TL0,#0B0H MOV TH0,#3CH;設定時時間為0.05秒,定時20次則一秒MOV TCON,#15H;對中斷進行設置MOV IE,#87H MOV R1,#RESD MOV R2,#2H MOV R7,#8H MOV 52H,#0F7H MOV 53H,#0BFH。
1.1 測溫功能設計
本設計的測量分辨率為0.5℃,溫度由0-5V電壓信號模擬,每個通道每隔1S采集1次。為了達到對應的分辨率,我們采用相應的數據轉化模塊,主要程序代碼如下:D_1: CLR C MOV A,R4 SUBB A,#255 MOV R4,A MOV A,R6 SUBB A,#0 MOV R6,A JC D_RET INC R3 SJMP D_1雙字節除單字節循環轉化。模擬電壓信號的采集主要包括兩部分代碼如下:MOV DPL,52H MOV DPH,53H MOVX @DPTR,A RET ;AD采集模塊MOV DPL,52H MOV DPH,53H MOVX A,@DPTR MOV @R1,A ;送轉化結果。時間的間隔采用定時器處理,中斷采用軟時鐘。
1.2 顯示功能
可以循環顯示每一路的溫度值,每一路顯示1S;可以固定顯示某一路的溫度值。本設計是基于8255的動態顯示程序,數碼管顯示需要顯示三位數據,主要包括BCD碼轉化和雙字節減法算法和循環顯示。MOV ZHE,R3 MOV A,ZHE MOV B,#100 DIV AB MOV GA,A MOV A,B MOV B,#10 DIV AB MOV ZHO,A;對應十位 MOV DI,B;對應個位 MOV A,ZHE MOV B,#255 MUL AB MOV ZHGO,B MOV ZHDI,A ;BCD碼轉化程序設計CLR C MOV A,CHAO SUBB A,ZHGO MOV A,CHDI SUBB A,ZHDI MOV B,#25 DIV AB MOV XIA,A;對應小數 RET;雙字節減法求余數。XIAOSHUXIANSHI: MOV DPTR,#TAB1 MOV A,@R0 MOVC A,@A+DPTR MOV DPTR,#7FFCH MOVX @DPTR,A ACALL DELAY INC R0 MOV A,R5 JB ACC.3,EXIT RL A MOV R5,A AJMP LOOP 循環顯示。固定顯示數值比較容易,我們是通過采集固定按鍵的狀態決定。
1.3 報警參數設置功能
設置每一個通道的高低限報警值。首先在程序設計的最開始將相應的報警值輸入到相應的存儲器。采集的溫度會和該溫度進行比較,做出判斷。INT_0: PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#7FFEH ;送PC口地址MOVX A,@DPTR;讀PC口狀態 DJNZ R2,DE_SHK MOV WLZ, A SJMP EX;報警值模塊設置。
1.4 溫度超限報警功能
當每路溫度值高于設置高限或低于低限值時,分別控制不同的發光二極管LED報警指示。溫度高用紅LED、低報警值用綠色LED。
PANDUAN: PUSH ACC MOV BAO,@R1 MOV ACC ,WHZ;取出最高報警值 CJNE A,BAO,BAOJINGH;與送到設置最高報警值的單元比較
BAOJINGH: JNB ACC.7,LEDH MOV ACC,WLZ ;取出最低報警值CJNE A,BAO,BAOJINGL;與送到設置報警值的單元比較BAOJINGL: JB ACC.7,LEDL SJMP WUJING LEDH: CLR P1.7;高于最高值報警 SJMP WUJING LEDL:SETB P1.7 CLR P1.6;低于最低值報警WUJING:POP ACC RET;;判讀報警值。
2 仿真設計
Proteus是目前世界上唯一將電路仿真軟件、PCB設計軟件和虛擬模型仿真軟件三合一的設計平臺,本設計基于Proteus仿真軟件使用8051單片機處理。原理圖如圖1:
參考文獻:
[1]李楨楨.淺談單片機匯編程序的編寫技巧[J].華章,2014(16).
[2]趙義強,康靜,郭向亮.Proteus仿真軟件在單片機設計中的應用[J].濟南職業學院學報,2007(01):58-61.
[3]劉文光,張銘銘.單片機擴展8255控制LED數碼管動態顯示仿真教學[J].濟南職業學院學報,2013(01):82-84.