| 在眾多的數(shù)控、數(shù)顯智能化器件中,很大一部分是沒日沒液、長年累月地工作著的(如電力部門的智能路燈鐘控器、干式變壓器中的智能溫控儀等),這樣對數(shù)字顯示部件尤其刺能耗較大手工藝LED數(shù)碼管的使用壽命就有很大影響。本文運用單片機的軟件處理,實現(xiàn)類似于微電腦PC機的“靜屏”功能——經(jīng)一設(shè)定時間后自動“消屏”,從而延長了數(shù)據(jù)管等的使用壽命。在“消屏”期間,數(shù)碼管(包括指示燈中的幾個或全部)雖然不亮了,但系統(tǒng)監(jiān)察信號的輸入和控制開關(guān)量的輸出等依然照常進行——所有功能保護不變,只要按動一個任一個輸入鍵,數(shù)碼管及指示燈就會恢復(fù)顯示(顯示當前應(yīng)有的即時信息)。 1 “消屏”的實現(xiàn) 一般來講用單片機處理的顯示器件大多數(shù)是以循環(huán)掃描的方式進行顯示的,而監(jiān)控的輸入輸出及其相應(yīng)的指示,又往往與單片機的輸入輸出端口直接聯(lián)系。因此,既要“消屏”,又要保住輸入輸出端口隨著監(jiān)控的具體情況及時更新,以便一旦由“消屏”恢復(fù)顯示時就能顯示當前應(yīng)有的即時信息。至少要有兩點:①需有兩個循環(huán)程序, 一個是正常顯示時用的主循環(huán)程序,另一個則是“消屏”時用的輔助循環(huán)程序——保證單片機能正常運行工作;②運用可進行“位”操作的內(nèi)存字節(jié)單元,將輸入輸出端口的信息一一對應(yīng)地記錄下來。換個角度來講,就是要想對某端口進行有關(guān)“位”的邏輯操作,首先要對跟其對應(yīng)的內(nèi)存單元進行相關(guān)“位”的邏輯操作,然后再賦值給對應(yīng)的端口。這樣確保了即時信息不會因為“消屏”或偶爾由某種強烈干擾導(dǎo)致程序“跑飛”引起“看門狗”復(fù)位,使所有端口都被置“1”而丟失。只有這樣,設(shè)定的時間一到,MCU才能“無憂無慮”地跳出主循環(huán)而進入輔助循環(huán)程序運行,達到“消屏”的目的。一旦恢復(fù)顯示,應(yīng)有的即時信息也隨之顯示,而監(jiān)控端口能一直處于輸入輸出的即時狀態(tài)。 2 “消屏”運行的程序 實現(xiàn)“消屏”運行要牽涉的程序主要有:用以正常顯示的主循環(huán)程序、用以“消屏”的輔助循環(huán)程序和用以定時設(shè)置的時鐘程序。下面以干式變壓器智能溫控儀為例,給出如圖1所示的電原理方框圖以及實現(xiàn)“消屏”功能的三個主要部分的程序,其主流程如圖2所示。該溫控儀是一個以MCS-51系列的單片機AT89C52為核心,具有溫度監(jiān)察、控制、故障報警、有5位數(shù)碼顯示及與PC機通信等功能的智能化儀器。 3 運行程序 3.1 顯示主循環(huán)程序 部分位及寄存器的定義 FUNCT EQU 95H ;P1.5為功能鍵輸入端口 FANNER EQU 96H ;P1.6為風(fēng)機鍵輸入端口 EYRE EQU 97H ;P1.7為巡回鍵輸入端口 SIGN EQU 2FH ;定時到點“消屏”標志位 DECIMAL EQU 6FH ;小數(shù)點標志位 SEC EQU 46H ;秒計數(shù)寄存器 MIN EQU 47H ;分計數(shù)寄存器 HR EQU 48H ;時計數(shù)寄存器 INIT_0: ORG 0000H ;程序初始化 AJMP INIT_0 ORG 000BH AJMP T0ZD ORG 001BH AJMP T1ZD ORG 0050H DB0 C0H,0F9H,0A4H,0B0H ;字符的段碼 DB 99H,92H,82H,0D8H DB 80H,90H,0C6H,89H DB 88H,80H,0FFH ORG 0070H INIT_1:MOV 45H,#00H MOV 46H,#00H MOV 47H,#00H MOV 48H,#00H MOV TCON,#00H MOV TMOD,#11H MOV 0C8H, #04H MOV 0CAN,#0B4H MOV 0CBH,#3CH MOV 0CCH,#0B4H MOV 0CDH,#3CH MOV SCON,#00H MOV IE,#0BAH CLR SIGN ;初始化清零“消屏”標志位 LOOP0:MOV R1,#51H ;顯示字段的緩沖區(qū)由內(nèi)存51H單元開始 MOV R2,#04H MOV R3,#05H ;顯示數(shù)碼為5位 LOOP1:MOV DPH,#00H MOV DPL,#50H MOV A,@R1 MOVC A,@A+DPTR JNB DECIMAL,LOOP2 ADD A,#02H ;小數(shù)點顯示處理 LOOP2:MOV P0,A MOV A,#03H ADD A,R2 MOV P3,A JNB FUNCT,KSM0 ;跳至鍵解釋子程序 JNB FANNER,KSM0 ;跳至鍵解釋子程序 J |