基于89C52單片機的實(shí)用八路物位測量?jì)x
1總體構成
本文引用地址:http://dyxdggzs.com/article/82349.htm本測量?jì)x的信號采樣通過(guò)P0口的八根輸入線(xiàn)可接受八路經(jīng)過(guò)整形后的標準TTL電平,因此可測量不同傳感器傳來(lái)的脈沖型物位采樣信號,只要在原始信號基礎上加以整形處理即可,每來(lái)一個(gè)脈沖均被P0口捕捉到并可以通過(guò)軟件編制使脈沖計數增一,定時(shí)讀取計數和便可以換算成相應的物位情況。通過(guò)P3.3~P3.5三條線(xiàn)與串行顯示驅動(dòng)器Max7219的連接加以軟件編程可完成八位數碼管顯示驅動(dòng),利用P1.3~P1.6四條口線(xiàn)接入四個(gè)按鍵,完成按鍵操作,利用P2口作為八路輸出控制,可驅動(dòng)八路固態(tài)繼電器。具體組成見(jiàn)圖1。
2硬件線(xiàn)路設計
2.1 資源分配
AT89C52 芯片是基于MCS-51結構的高集成度8位微控制器,其主要特性是具有一個(gè)用于多處理器通訊的增強型串口和一個(gè)增/減定時(shí)器計數器,專(zhuān)門(mén)適用于控制應用。選用89C52的另外一個(gè)重要原因就是在芯片上實(shí)現了256字節的RAM,高端128字節的地址和特殊功能寄存器(SFR)的地址相同,但可以通過(guò)不同尋址方式區分,因此解決了測量?jì)x的軟件編程所用的RAM空間,不必再另外擴展隨機存儲器,節約了硬件資源。
2.2 串行顯示設計
多位LED顯示時(shí),常將所有位的段選線(xiàn)并聯(lián)在一起,由一個(gè)8位I/O口控制,也可采用并行擴展口構成顯示電路,通常,需要擴展器件管腳的較多,價(jià)格較高。在本測量?jì)x中,為了節約I/O口資源,采用了由Max7219芯片構成的串行顯示方式。Max7219是串行輸入,輸出共陰極顯示驅動(dòng)電路,可直接與單片機的3條I/O線(xiàn)接口,特別適用于I/O口線(xiàn)少的系統,并且可以程序控制數碼管的亮度。在本設計中,采用P3.3~P3.4三條線(xiàn)經(jīng)74LS273鎖存后與Max7219相連接,P3.3、P3.4鎖存后分別作為7219串行數據輸入信號DIN和時(shí)鐘信號 CLK,P3.5輸出口鎖存作為L(cháng)OAD信號。具體硬件線(xiàn)路圖見(jiàn)圖2。
圖2 主要硬件連接圖
2.3 軟件計數器的設計
在物位測量?jì)x表中,當傳感器書(shū)送來(lái)的信號為脈沖量時(shí),通常需要通過(guò)專(zhuān)門(mén)計數器芯片如8254等來(lái)完成脈沖的計數,CPU將此變化的計數信號處理后使傳感器送來(lái)的脈沖的個(gè)數與物位信號相對應。而在本設計中,巧妙利用了89C52的P0口資源,將脈沖量整形后直接送至P0口的8條數據線(xiàn),此時(shí)P0口作為數據輸入口使用。通過(guò)軟件設計,每路開(kāi)辟存貯單元(利用片內RAM),當P0口有電平跳變時(shí),相應的計數單元計數加1,通過(guò)軟件設置定時(shí)器,當定時(shí)時(shí)間到時(shí),讀取存儲單元數值并清零,這樣就完成了軟件計數器的功能,節約了硬件資源,降低了硬件成本。
3軟件設計
3.1 128字節內存分配
本測量?jì)x設計的另一大特點(diǎn)就是充分利用了128字節的片內RAM,無(wú)外部擴展存儲芯片。CPU內部地址從15H開(kāi)始算起,直到0C5H全部被開(kāi)辟作標志或存儲單元。具體分配為:15H~1CH為各路采樣時(shí)間, 09H~0FH 為各種標志位, 42H~5BH為與各路計數有關(guān)的計數存儲處理單元,5CH~63H為物位報警域值對應的計數存儲單元,64H~6FH和 3cH~3FH位報警類(lèi)別等存儲單元。通過(guò)合理分配,盡管只有128字節RAM,可以滿(mǎn)足8路物位測量的數據處理要求。
3.2 串行顯示子程序
Max7219驅動(dòng)的顯示部分程序放在DISP顯示子程序中,在程序開(kāi)始完成Max7219的初始化工作,將每次待顯示的數據放置于從20H~27H開(kāi)始的顯示緩沖區地址中,每路需要送顯時(shí),直接調用顯示子程序即可。
其中顯示部分程序如下:
DISP: MOV R0,#20H ;R0指向顯示緩沖區首地址
MOV R1,#01H
MOV R3,#08H
LOOP3: MOV a,@R0
MOV R4,A ;顯示緩沖區數據送R4
MOV A,R1
lCALL WRITE ;數據鎖存到273
INC R1
INC R0
DJNZ R3,LOOP3
3.3 采樣處理子程序
調試過(guò)的部分源代碼如下:
LOOP: MOV A,#0FH ;主程序循環(huán)開(kāi)始
MOV P0,A ;先查詢(xún)P0口,讀取射線(xiàn)計數
MOV A,P0
XCH A,PQ
XRL A,PQ
MOV B,A
JB B.0,JIA1 ;第1路有計數,跳至加1程序
JIA10:JB B.1,JIA2 ;第2路有計數,跳至加1程序
JIA20:JB B.2,JIA3 ;…..
JIA30:JB B.3,JIA4
JIA40:JB B.4,JIA5
JIA50:JB B.5,JIA6
JIA60:JB B.6,JIA7
JIA70:JB B.7,JIA8 ;第8路有計數,跳至加1程序
LJMP LOOP01 ;接著(zhù)處理鍵盤(pán)的查詢(xún)
3.4 主程序部分流程圖
主程序流程圖見(jiàn)圖3
圖3 主程序流程圖
4結束語(yǔ)
本設計的創(chuàng )新點(diǎn)在于充分利用了AT89C52的硬件資源,實(shí)現了軟件計數器,能夠對脈沖量信號所反映的物位信號通過(guò)數碼管來(lái)顯示,顯示部分的處理采用Max7219顯示驅動(dòng)器,與軟件編程相結合,大大節約了硬件資源,減少了通用的單片機擴展芯片,降低了成本。本儀表投入生產(chǎn)后成本比用其它方式組成的系統節約直接硬件成本每臺約300元,投產(chǎn)后產(chǎn)生年經(jīng)濟效益約60萬(wàn)元(按每套儀表利潤0.8萬(wàn)元計)。
參考文獻:
1 吳玉平譯 MCS51微控制器系列用戶(hù)指南 電子工業(yè)出版社 1995
2 王建萍 Max7219串行LED顯示驅動(dòng)器及應用,電子技術(shù)應用,1996,6
3 劉志壯 洪添勝等 一種智能液位檢測儀的設計 微計算機信息 2007年第2-1期 P156-157
4 史源平 于京生等 基于工控機的多路核子秤 微計算機信息 2008年第2-1期
評論