版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
11.1單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法
11.2土工布滲透率測控系統(tǒng)
11.3無線掌上抄表系統(tǒng)
11.4大屏幕顯示及應(yīng)用
習(xí)題與思考題第11章MCS-51單片機(jī)組成的測控系統(tǒng)應(yīng)用實(shí)例
11.1單片機(jī)應(yīng)用系統(tǒng)的設(shè)計(jì)方法
1.確定系統(tǒng)設(shè)計(jì)的任務(wù)在進(jìn)行系統(tǒng)設(shè)計(jì)之前,必須對設(shè)計(jì)方案進(jìn)行調(diào)研,包括查找資料、進(jìn)行調(diào)查、分析研究,以充分了解單片機(jī)系統(tǒng)應(yīng)具有的技術(shù)要求、功能、使用環(huán)境等指標(biāo)。明確任務(wù),確定系統(tǒng)的性能指標(biāo),包括系統(tǒng)必須具有哪些功能,如鍵盤的定義、顯示方式、待處理信號的種類和控制對象等,這是系統(tǒng)設(shè)計(jì)的依據(jù)和出發(fā)點(diǎn),它將貫穿于系統(tǒng)設(shè)計(jì)的全過程,也是整個(gè)研制工作成敗的關(guān)鍵。因此,必須認(rèn)真做好這項(xiàng)工作。
2.系統(tǒng)方案設(shè)計(jì)
在系統(tǒng)設(shè)計(jì)任務(wù)和技術(shù)指標(biāo)確定以后,即可進(jìn)行系統(tǒng)的總體方案設(shè)計(jì),一般包括兩個(gè)方面:
(1)機(jī)型及支持芯片的選擇。機(jī)型選擇應(yīng)適合于系統(tǒng)的要求。設(shè)計(jì)人員可大體了解市場所能提供的構(gòu)成單片機(jī)系統(tǒng)的功能部件,根據(jù)要求進(jìn)行選擇。若作為批量生產(chǎn)的系統(tǒng),則所選的機(jī)種必須要保證有穩(wěn)定、充足的貨源,從可能提供的多種機(jī)型中選擇最易實(shí)現(xiàn)技術(shù)指標(biāo)的機(jī)型,如字長、指令系統(tǒng)、執(zhí)行速度、中斷功能等。如果要求研制周期短,則應(yīng)選擇熟悉的機(jī)種,并盡量利用現(xiàn)有的開發(fā)工具。
(2)綜合考慮軟、硬件的分工與配合。因?yàn)橄到y(tǒng)中的硬件和軟件具有一定的互換性,一些由硬件實(shí)現(xiàn)的功能也可以用軟件來完成,反之也一樣。因此,在方案設(shè)計(jì)階段要認(rèn)真考慮軟、硬件的分工與配合??紤]的原則是“軟件能實(shí)現(xiàn)的功能盡可能由軟件來實(shí)現(xiàn)”,以簡化硬件結(jié)構(gòu),還可降低成本。但必須注意,這會(huì)增加軟件設(shè)計(jì)的工作量,此外,由軟件實(shí)現(xiàn)的硬件功能,其響應(yīng)時(shí)間要比直接用硬件時(shí)間長,而且還占用了CPU的工作時(shí)間。因此,在設(shè)計(jì)系統(tǒng)時(shí),必須考慮這些因素。
3.系統(tǒng)的硬件和軟件設(shè)計(jì)
1)系統(tǒng)的硬件設(shè)計(jì)
一個(gè)系統(tǒng)的硬件電路設(shè)計(jì)包含兩部分:一是系統(tǒng)擴(kuò)展,即單片機(jī)(或微處理器)內(nèi)部的功能部件,如RAM、ROM、I/O口、定時(shí)器/計(jì)數(shù)器、中斷等不能夠滿足系統(tǒng)的要求時(shí),必須在片外進(jìn)行擴(kuò)展,設(shè)計(jì)時(shí)要選擇相應(yīng)的芯片去實(shí)現(xiàn)系統(tǒng)擴(kuò)展。二是系統(tǒng)配置,即按系統(tǒng)功能要求配置外圍設(shè)備,如鍵盤、顯示器、打印機(jī)、A/D和D/A轉(zhuǎn)換器及驅(qū)動(dòng)電路等,設(shè)計(jì)出合適的接口電路??偟膩碚f,硬件設(shè)計(jì)工作主要是輸入、輸出接口電路設(shè)計(jì)和存儲(chǔ)器的擴(kuò)展。一般的單片機(jī)系統(tǒng)主要由圖11-1所示的幾部分組成。圖11-1MCS-51單片機(jī)組成的測控系統(tǒng)圖11-1所示是一個(gè)由MCS-51單片機(jī)組成的測控系統(tǒng),傳感器將現(xiàn)場采集的各種物理量(如溫度、濕度、壓力等)變成電量,經(jīng)信號調(diào)理電路(如放大器)放大后送入A/D轉(zhuǎn)換器,A/D轉(zhuǎn)換器將模擬量轉(zhuǎn)換成二進(jìn)制數(shù)字量后送MCS-51系列CPU進(jìn)行處理,最后將控制信號經(jīng)D/A轉(zhuǎn)換送給控制的執(zhí)行機(jī)構(gòu)。為監(jiān)視現(xiàn)場的控制一般還設(shè)有鍵盤及顯示器,并通過打印機(jī)將控制情況如實(shí)記錄下來。在有些情況下可以省掉上述組成的某些部分,這要視具體要求來設(shè)計(jì)。單片機(jī)外接電路較多時(shí),必須考慮其驅(qū)動(dòng)能力。因?yàn)轵?qū)動(dòng)能力不足會(huì)影響系統(tǒng)工作的可靠性,所以當(dāng)所設(shè)計(jì)的系統(tǒng)對I/O端口的負(fù)載過重時(shí),必須考慮增加I/O端口的負(fù)載能力,即加接驅(qū)動(dòng)器。如P0口需要加接雙向數(shù)據(jù)總線驅(qū)動(dòng)器74LS245,P2口接單向驅(qū)動(dòng)器74LS244即可。
對于工作環(huán)境惡劣的系統(tǒng),設(shè)計(jì)時(shí)除在每塊板上要有足夠的退耦電容外,每個(gè)芯片的電源與地之間還要加接0.1?μF的退耦電容。電源線和接地線應(yīng)該加粗些,并注意它們的走向(布線),最好沿著數(shù)據(jù)的走向。對某些應(yīng)用場合,I/O端口還要考慮加光電耦合器件,以提高系統(tǒng)的可靠性及抗干擾能力(詳見第13章)。
2)系統(tǒng)的軟件設(shè)計(jì)
系統(tǒng)軟件是根據(jù)系統(tǒng)的功能要求而設(shè)計(jì)的,應(yīng)可靠地實(shí)現(xiàn)系統(tǒng)的各種功能。一個(gè)系統(tǒng)的工作程序?qū)嶋H上就是該系統(tǒng)的監(jiān)控程序,對用于控制系統(tǒng)的應(yīng)用程序,一般是用匯編語言編寫的。編寫程序時(shí)常常與輸入、輸出接口設(shè)計(jì)和存儲(chǔ)器的擴(kuò)展聯(lián)系在一起。因此,軟件設(shè)計(jì)是系統(tǒng)研制過程中最重要也是最困難的任務(wù),因?yàn)樗苯雨P(guān)系到實(shí)現(xiàn)系統(tǒng)的功能和性能。對于一些要求較高的控制系統(tǒng)軟件,還要考慮控制算法、數(shù)據(jù)的格式及軟件抗干擾等問題。通常在編制程序前先畫出流程框圖,要求框圖結(jié)構(gòu)清晰、簡潔、合理。使編制的各功能程序?qū)崿F(xiàn)模塊化、子程序化。這不僅便于調(diào)試、連接,還便于修改和移植。合理地劃分程序存儲(chǔ)區(qū)和數(shù)據(jù)存儲(chǔ)區(qū),既能節(jié)省內(nèi)存容量,也使操作方便。合理分配各模塊占用MCS-51單片機(jī)的內(nèi)部RAM單元、工作寄存器和標(biāo)志位,還要估算子程序和中斷嵌套的最大級數(shù),用以估算程序中的堆棧深度。此外,還應(yīng)把使用頻繁的數(shù)據(jù)緩沖器盡量設(shè)置在內(nèi)部RAM中,以提高系統(tǒng)的工作速度。內(nèi)部RAM不夠時(shí),或選用大容量的單片機(jī),或外擴(kuò)RAM。
完成上述工作之后,就可著手編制軟件。編制好的程序可通過開發(fā)系統(tǒng)自動(dòng)匯編生成或手工匯編成目標(biāo)程序,然后以十六進(jìn)制代碼形式送入開發(fā)系統(tǒng)進(jìn)行軟件調(diào)試。
4.系統(tǒng)調(diào)試
當(dāng)硬件和軟件設(shè)計(jì)好后,就可以進(jìn)行調(diào)試了。硬件電路檢查分為兩步:靜態(tài)檢查和動(dòng)態(tài)檢查。
硬件的靜態(tài)檢查主要檢查電路制作的正確性,例如,電路上電后通過邏輯電平檢測邏輯門電路。
動(dòng)態(tài)檢查是在開發(fā)系統(tǒng)上進(jìn)行的。把開發(fā)系統(tǒng)的仿真頭連接到系統(tǒng)中用以代替系統(tǒng)的單片機(jī),然后向開發(fā)系統(tǒng)輸入各種診斷程序,檢查系統(tǒng)中的各部分工作是否正常。做完上述檢查就可進(jìn)行軟、硬件連調(diào)。先將各模塊程序分別調(diào)試完畢,然后再進(jìn)行連接,待一切連好后,利用編程器將程序固化到EPROM或具有ROM的單片機(jī)中。此時(shí)即可脫離開發(fā)系統(tǒng)進(jìn)行現(xiàn)場調(diào)試,以考驗(yàn)系統(tǒng)在實(shí)際應(yīng)用環(huán)境中是否能正常而可靠地工作,同時(shí)再檢測其功能是否達(dá)到技術(shù)指標(biāo),如果某些功能還未達(dá)到要求,則再對系統(tǒng)進(jìn)行修改,直至滿足要求為止。
綜上所述,單片機(jī)系統(tǒng)的設(shè)計(jì)調(diào)試過程如圖11-2所示。圖11-2單片機(jī)系統(tǒng)設(shè)計(jì)調(diào)試流程圖11.2土工布滲透率測控系統(tǒng)土工布是一種新型建筑材料,它綜合了紡織、化工、塑料等行業(yè)的技術(shù)成就,具有防護(hù)、隔離、過濾及排水等功能,廣泛應(yīng)用于巖石及土木工程等領(lǐng)域。土工布的性能指標(biāo)主要包括物理學(xué)、力學(xué)、水力學(xué)等方面,在土工布所有的性能指標(biāo)中,水力學(xué)的指標(biāo)更為重要,特別在排水工程應(yīng)用中,必須充分考慮土工布平面內(nèi)的滲透率。土工布滲透率的測試裝置要求較高,測試過程復(fù)雜,選取的試樣多,測試數(shù)據(jù)量大,測試時(shí)間長(一周時(shí)間),故會(huì)因停電等多種原因造成測試失敗。因此,在測試過程中需要保護(hù)測試數(shù)據(jù)及測試狀態(tài),并能通過打印機(jī)實(shí)現(xiàn)對測試參數(shù)的報(bào)表打印,繪制試驗(yàn)結(jié)果曲線。已知RT、V和W,只要測出收集體積為V的水所用的時(shí)間t,即可求出一定的壓力和梯度下的土工布滲透率。
由于生產(chǎn)土工布的材料和厚度不同,應(yīng)選取3塊或6塊土工布試樣進(jìn)行測試。每塊試樣應(yīng)在三種壓力(20?kPa,100?kPa,200?kPa)﹑兩個(gè)水力梯度(0.1,1.0)下(共6種測試狀態(tài))分別測試滲透值,在每個(gè)壓力、梯度下,各測3次,再對3次測試結(jié)果取平均值,得到該土工布試樣在此狀態(tài)下的滲透率。最后所有試樣測試完畢后,取相同測試狀態(tài)下滲透率的平均值,以此作為該土工布平面內(nèi)滲透率的測試值。
實(shí)際測試時(shí),各參數(shù)取值分別為V=0.5m3,W=0.2m,RT=1(實(shí)驗(yàn)溫度為20℃)。11.2.2測控系統(tǒng)的硬件電路設(shè)計(jì)
該測控系統(tǒng)由測試裝置和單片機(jī)測試系統(tǒng)兩部分組成。
1)測試裝置
測試裝置主要用來放置試樣,形成規(guī)定的水力梯度及加壓裝置和對溢出水的收集。如圖11-3所示,測試裝置由土工布的試樣層、加壓步進(jìn)電機(jī)及傳動(dòng)裝置、0.1梯度閥、1.0梯度閥、壓力傳感器、進(jìn)水閥及集水器的排水閥等組成。在測試過程中,應(yīng)保證水沿試樣的截面內(nèi)流過,其他與試樣接觸的部分不能漏水。因此上蓋板與試樣之間必須配合嚴(yán)密,移動(dòng)壓板能上下移動(dòng),由步進(jìn)電機(jī)經(jīng)傳動(dòng)裝置驅(qū)動(dòng)。圖11-3土工布平面內(nèi)滲透率測試裝置圖
2)單片機(jī)測試系統(tǒng)硬件電路設(shè)計(jì)
圖11-4所示為測控儀硬件電路圖。圖中選用了89C52單片機(jī),擴(kuò)展了A/D轉(zhuǎn)換接口、微型打印機(jī)接口、并行輸入/輸出接口等電路。
具體的測試電路說明如下:
使用應(yīng)變片式壓力傳感器檢測壓力值,通過8位的ADC0809模/數(shù)轉(zhuǎn)換器輸入到單片機(jī),通過74LS245驅(qū)動(dòng)TP40打印機(jī),打印出測試的數(shù)據(jù)。利用位置傳感器通過P1.0檢測水滿信號;P1.1~P1.4分別控制進(jìn)水閥、0.1梯度閥、1.0梯度閥及集水器的排水閥等相應(yīng)的電磁閥,滿足測試過程對水力梯度及自動(dòng)排水的要求;P1.5~P1.7經(jīng)驅(qū)動(dòng)后連接三相步進(jìn)電機(jī),控制加壓裝置,使壓力保持在所需的恒定值;使用1片8155并行口,分別連接LED顯示和按鍵,測試數(shù)據(jù)存放在8155內(nèi)部的RAM中(外加電池供電)。圖11-4測控儀硬件電路圖滲透率的值可以通過LED顯示,或通過TP40打印機(jī)打印。按鍵用來控制所測土工布的試樣數(shù)目(3塊或6塊)、啟動(dòng)等功能。對于輸出信道中的步進(jìn)電機(jī)和電磁閥的控制回路,采用了光電耦合器,以提高系統(tǒng)的抗干擾性能。
AT89C52單片機(jī)系統(tǒng)中,片內(nèi)和片外RAM、ROM以及I/O口存儲(chǔ)空間的地址編制是統(tǒng)一的,地址分配如下:
堆棧棧頂?shù)刂罚浩瑑?nèi)RAM數(shù)據(jù)緩沖區(qū)60H
顯示緩沖區(qū):片內(nèi)RAM40H~45H單元
8155狀態(tài)口地址:4700H
8155A口:4701H
8155B口:4702H
8155C口:4703H
8155內(nèi)部RAM地址:4600H~46FFH(用于存儲(chǔ)測試結(jié)果等數(shù)據(jù))
打印機(jī)接口地址:07FFH
0809通道地址:2700H~2707H(8路)11.2.3軟件設(shè)計(jì)及部分典型程序
1.單片機(jī)測試系統(tǒng)主程序設(shè)計(jì)
根據(jù)測試工藝過程,主程序框圖如圖11-5所示。在測試裝置中放置好待測試樣,打開進(jìn)水閥及排水閥,控制壓力及梯度,當(dāng)滿足20?kPa、0.1梯度的測試條件時(shí),關(guān)閉集水器的排水閥,利用AT89C52的定時(shí)器T0開始計(jì)時(shí)。其間,實(shí)時(shí)采集壓力信號,將所測數(shù)值經(jīng)過數(shù)字濾波后與該壓力的基準(zhǔn)值比較得到壓力的偏差信號,該偏差信號經(jīng)PI(比例積分)運(yùn)算后,即可得到控制步進(jìn)電機(jī)正(反)轉(zhuǎn)及進(jìn)給步數(shù)的信息。通過控制步進(jìn)電機(jī)便可保證測試過程中的壓力恒定。LED可交替顯示壓力、時(shí)間值。當(dāng)集水器水滿時(shí),完成一次測量。定時(shí)器T0停止計(jì)時(shí),打開集水器的排水閥,計(jì)算出在該狀態(tài)下的滲透率。集水器排空后,關(guān)閉排水閥,在該狀態(tài)下再測兩次,共測3組數(shù)據(jù),取平均值作為該試樣在此狀態(tài)下的滲透率,并打印出測試結(jié)果。圖11-5單片機(jī)測試系統(tǒng)主程序流程圖控制到下一個(gè)測試狀態(tài)(壓力/梯度),同樣測三次,取平均值。依次把該試樣在不同的狀態(tài)下滲透率測試完畢,關(guān)閉進(jìn)水閥。
最后,計(jì)算出試樣在相同壓力/梯度(共6個(gè)測試狀態(tài))下的滲透率平均值,作為該土工布滲透率的測試值。
測試時(shí),這些數(shù)據(jù)存儲(chǔ)在8155內(nèi)部RAM中,以防止掉電時(shí)丟失數(shù)據(jù)。所有的試樣測試完畢后,通過打印機(jī)打印出測試結(jié)果。單片機(jī)的程序?qū)τ跐B透率的計(jì)算采用的是三字節(jié)浮點(diǎn)數(shù)形式。程序清單略。
2.打印機(jī)驅(qū)動(dòng)舉例
1)打印機(jī)的選擇
單片機(jī)系統(tǒng)中,經(jīng)常選用微型打印機(jī),如TPμP40、GP16等。本系統(tǒng)選用TPμP40微型打印機(jī),因其接口簡單,功能強(qiáng),能打印ASCII碼字符。
TPμP40提供了多達(dá)40種打印命令。這些命令規(guī)定了打印機(jī)的定義格式、放大或縮小字符、打印點(diǎn)陣圖形、選擇字符集、定義用戶可定義字符以及打印漢字(可選)等功能。具體來講,TPμP40微型打印機(jī)的主要指標(biāo)如下:
打印行寬:24字符/行,32字符/行,40字符/行,有三種機(jī)型可選。
打印字符:全部96個(gè)5?×?7點(diǎn)陣ASCII字符和352個(gè)5?×?7或6?×?8點(diǎn)陣其他字符或圖符。
行間距:1~255點(diǎn)。
接口:并行接口(CENTRONICS兼容)或串行接口。
2)接口
TPμP40打印機(jī)采用了與CENTRONICS標(biāo)準(zhǔn)兼容的D-25并行接口,接口插座則與IBMPC的打印口相配合,可以直接將打印機(jī)和IBMPC主機(jī)連接起來。對于并行接口,各引腳信號的定義如表11-1所示。
3)時(shí)序
打印機(jī)數(shù)據(jù)、控制信號時(shí)序圖如圖11-6所示。圖11-6打印機(jī)數(shù)據(jù)、控制信號時(shí)序圖
4)打印命令代碼
打印機(jī)接受的代碼分為四類:可打印的標(biāo)準(zhǔn)ASCII代碼20H~7FH、可打印的非標(biāo)準(zhǔn)ASCII代碼80H~FFH、打印的命令代碼01H~0FH和用戶自定義的代碼10H~1FH。
(1)可打印的標(biāo)準(zhǔn)ASCII代碼??梢灾苯哟蛴〕龅膬?nèi)容:①ASCII字符信息,如打印輸出字符45H(E)、62H(b)等;②數(shù)字,如36H(6)、38H(8)、2EH(小數(shù)點(diǎn))等;③命令,如39H、32H、0DH(回車)等。ASCII碼可參閱附錄A。
(2)命令代碼01H~0FH。這些命令是由一字節(jié)控制碼或ESC控制碼序列組成的。ESC控制碼序列是以“ESC”碼開始,后跟其他字符碼。打印機(jī)的控制碼(尤其是ESC控制碼)并不是標(biāo)準(zhǔn)化的。每一個(gè)打印機(jī)制造廠商都有自己的一套控制碼系統(tǒng)。TPμP40的控制碼是在參考了流行的IBM和EPSON打印機(jī)的基礎(chǔ)上設(shè)計(jì)的,因此,它能和大多數(shù)的打印機(jī)兼容。
各個(gè)命令的描述形式如表11-2所示。有效代碼表的編號是從00H~0FFH排列的,其中00H~1FH用于控制碼,20H~0FFH用于字符碼。
5)應(yīng)用舉例
使用TPμP40打印機(jī)打印出測試的土工布滲透率。
設(shè)測試的滲透率值在8155內(nèi)部RAM中,分配情況如圖11-7所示。設(shè)存儲(chǔ)單元中存放的是某試樣在不同梯度、壓力下測得的滲透率值,其格式為ASCII碼表示的浮點(diǎn)數(shù)占6?B,前三字節(jié)為尾數(shù)(小數(shù)點(diǎn)隱含在第一字節(jié)之后,后三字節(jié)表示階碼(含符號))。打印驅(qū)動(dòng)子程序流程圖如圖11-8所示。圖11-7土工布滲透率數(shù)據(jù)在8155RAM中的存儲(chǔ)圖
圖11-8打印驅(qū)動(dòng)子程序流程框圖11.3無線掌上抄表系統(tǒng)傳統(tǒng)電能表的抄表方式是由抄表員逐戶進(jìn)行抄表的,這樣既復(fù)雜又容易出錯(cuò),為此研制出了基于掌上的無線近距離抄表系統(tǒng)。把藍(lán)牙芯片分別嵌入到電能表和掌上抄表器中,可使掌上抄表器具有以無線方式讀取電能表的轉(zhuǎn)數(shù)并控制電能表斷/送電的功能。通過RS-232串行通信口可將掌上抄表器內(nèi)存儲(chǔ)的各用戶的抄表信息傳送到管理計(jì)算機(jī)中,通過計(jì)算機(jī)軟件實(shí)現(xiàn)各個(gè)用戶電量和電費(fèi)的綜合管理。11.3.1系統(tǒng)組成及功能要求本系統(tǒng)由三部分組成:光電采集、掌上抄表器、管理計(jì)算機(jī),如圖11-9所示。圖11-9無線抄表系統(tǒng)組成原理圖
(1)光電采集。使用光電頭改造傳統(tǒng)的電能表,檢測每個(gè)用戶電能表的轉(zhuǎn)數(shù),使用兼看門狗功能的X24C45EEPROM保存每個(gè)電能表內(nèi)的轉(zhuǎn)數(shù)。每一個(gè)電能表經(jīng)一路繼電器控制斷/送電,利用Nordic公司的nRF401芯片收/發(fā)信息。
(2)掌上抄表器。這是系統(tǒng)的核心部分。掌上抄表器運(yùn)行功耗低,工作可靠,存儲(chǔ)數(shù)據(jù)量大且具有LCD顯示、時(shí)鐘、EEPROM存儲(chǔ)、無線收/發(fā)、RS-232通信等功能。
(3)管理計(jì)算機(jī)。這是系統(tǒng)的管理級部分,其運(yùn)行環(huán)境為主頻PⅡ266以上微型計(jì)算機(jī),操作系統(tǒng)Windows98以上,其開發(fā)環(huán)境為VB6.0和SQL2000,標(biāo)準(zhǔn)的Windows操作界面,使用方便。管理計(jì)算機(jī)具有與掌上抄表器通信、存儲(chǔ)數(shù)據(jù)、查詢并打印電量、電費(fèi)等功能。11.3.2硬件電路設(shè)計(jì)
無線掌上抄表器電路原理圖如圖11-10所示,其主要組成如下:
(1)?AT24C512。使用功耗低、工作可靠的AT24C512串行EEPROM存儲(chǔ)器,其存儲(chǔ)容量為64?K?×?8?bit,讀寫次數(shù)100?000次,數(shù)據(jù)可保存10年以上,完全可以滿足設(shè)計(jì)要求和用戶的需要。利用芯片所提供的按頁讀寫功能,可以大大提高芯片對數(shù)據(jù)的訪問速度。按照設(shè)計(jì)要求,每一個(gè)用戶的信息占用16B,使用兩片可以存儲(chǔ)8196個(gè)用戶的信息,基本滿足一個(gè)鄉(xiāng)鎮(zhèn)的用戶數(shù)量。16個(gè)字節(jié)存儲(chǔ)信息分別表示:電表讀數(shù)4個(gè)字節(jié),電表底數(shù)2個(gè)字節(jié),電表常數(shù)4個(gè)字節(jié),互感器倍率3個(gè)字節(jié),抄表日期3個(gè)字節(jié)。圖11-10無線掌上抄表設(shè)備硬件原理圖
(2)?LCD顯示器。通過并行輸出的128?×?64點(diǎn)陣LCD顯示器作為設(shè)備的人機(jī)界面,用來顯示抄表提示等信息。漢字字符采用16?×?16點(diǎn)陣,數(shù)字字符采用12?×?12點(diǎn)陣。每屏可以顯示4?×?8個(gè)漢字。如:用戶信息、抄表信息、電表狀態(tài)、通信狀態(tài)、系統(tǒng)參數(shù)設(shè)置、密碼、日期等信息都可以通過LCD顯示出來。
(3)時(shí)鐘DS1302芯片。通過串行的DS1302芯片來獲得系統(tǒng)時(shí)鐘、抄表時(shí)間等時(shí)間信息。該串行時(shí)鐘芯片具有體積小、功耗低、走時(shí)準(zhǔn)確、接口簡單、占用CPUI/O口線少等特點(diǎn)。另外它可對時(shí)鐘芯片備份電池進(jìn)行涓流充電。
(4)電壓檢測。掌上抄表器正常使用是采用電池供電,為了使掌上抄表器工作可靠(數(shù)據(jù)存儲(chǔ)正確)必須有電壓檢測電路。我們選用MAX813電壓檢測芯片,當(dāng)電壓低于4.70?V時(shí),系統(tǒng)將自動(dòng)進(jìn)入掉電狀態(tài)。此時(shí),系統(tǒng)將顯示“電池電壓低!”且不響應(yīng)任何操作,只有當(dāng)電池電壓恢復(fù)后,系統(tǒng)才會(huì)重新工作。該芯片同時(shí)還具有看門狗的功能。
(5)無線收/發(fā)芯片。nRF401芯片是無線收/發(fā)芯片,是系統(tǒng)的核心器件。它采用了DSS+PLL頻率合成技術(shù),接收、發(fā)射合一,頻率穩(wěn)定性好,載波頻率為433?MHz,最大傳輸速度為20kb/s,抗干擾能力強(qiáng),編程方便。該芯片可以使用RS-232協(xié)議收、發(fā)數(shù)據(jù),采用低功率發(fā)射,高接收靈敏度,無需申請頻段占用許可證。
(6)?RS-232接口。通過MAX232芯片將掌上抄表器的用戶抄表信息傳送到管理計(jì)算機(jī),實(shí)現(xiàn)用戶信息的計(jì)算機(jī)管理。同時(shí)利用電子開關(guān)實(shí)現(xiàn)RS-232與nRF401的切換,實(shí)現(xiàn)雙通信接口的功能。
為了減小功耗及電路板的體積,該抄表器采用內(nèi)置20?KB的AT89C55單片機(jī),擴(kuò)展的2×8鍵盤和LCD顯示器由8255接口驅(qū)動(dòng)。11.3.3軟件設(shè)計(jì)及部分典型程序
1.主程序
主程序設(shè)計(jì)采用模塊化結(jié)構(gòu),主要包含有初始化程序、LCD顯示、讀/寫時(shí)鐘、讀/寫存儲(chǔ)器、無線抄表、無線控制電表的斷/送電狀態(tài)、用戶電表參數(shù)設(shè)置、與微機(jī)管理軟件通信等功能模塊。因LCD顯示字符信息少,因此,可利用菜單方式實(shí)現(xiàn)以上信息的設(shè)置及控制。具體來講,分別可以實(shí)現(xiàn)密碼、電價(jià)、電表參數(shù)、日期/時(shí)鐘等參數(shù)的設(shè)置和修改功能,以及電表的斷/送電和與上位機(jī)的通信控制功能。這些功能分別由對應(yīng)的數(shù)字鍵及上、下移動(dòng)鍵控制實(shí)現(xiàn)。其中,用戶電表參數(shù)主要指電表常數(shù)(每度電所轉(zhuǎn)的轉(zhuǎn)數(shù))、互感器倍率(指大功率用戶,一般用戶為1)及電表底數(shù)等。主程序流程圖如圖11-11所示。限于篇幅,主程序及各個(gè)模塊(除LCD顯示外)的程序略。圖11-11掌上抄表器主程序流程圖
2.點(diǎn)陣LCD顯示程序
LCD近幾年來被廣泛用于單片機(jī)控制的儀器儀表和低功耗電子產(chǎn)品中。本節(jié)介紹點(diǎn)陣式液晶顯示器SMG12864(控制器為KS108B)與單片機(jī)的接口及編程方法,以16?×?16點(diǎn)陣漢字為例,設(shè)計(jì)漢字顯示程序的編程方法。
1)接口信號
SMG12864液晶顯示器采用并口傳送方式,其引腳信號定義如表11-3所示。圖11-12LCD讀操作時(shí)序
(2)寫操作時(shí)序如圖11-13所示。圖11-13LCD寫操作時(shí)序
3)狀態(tài)字、命令代碼及數(shù)據(jù)格式
(1)狀態(tài)字:只有一個(gè),表示LCD顯示當(dāng)前是否開閉及LCD狀態(tài)是否忙。格式如下:
狀態(tài)字只用到兩位:
STA7?=?1,表示LCD忙,不能訪問它;STA7?=?0,表示LCD不忙,允許訪問它。
STA5?=?1,表示LCD當(dāng)前為關(guān)閉狀態(tài);STA5?=?0,表示LCD當(dāng)前為顯示狀態(tài)。
注:每次訪問LCD之前,必須進(jìn)行讀/寫檢測,確保STA7=0,或通過延時(shí)5?ms(不同的LCD控制器有不同的時(shí)間要求)使LCD不忙時(shí)才能訪問LCD。
(2)顯示開/關(guān)設(shè)置命令字:
命令碼功能
3EH關(guān)顯示
3FH開顯示
(3)顯示初始行設(shè)置命令字:
命令碼功能
0C0H設(shè)置顯示初始行命令字
(4)數(shù)據(jù)指針設(shè)置命令字。
控制器內(nèi)部設(shè)有一個(gè)數(shù)據(jù)地址頁指針和一個(gè)數(shù)據(jù)地址列指針,用戶可通過它們來訪問內(nèi)部的全部512?BRAM,其值如下:顯示位置設(shè)置中40H為顯示起始列的首地址,加上0~3FH(1~64列范圍內(nèi)),指明LCD對應(yīng)的內(nèi)部列地址;B8H為顯示起始的頁面地址,外加0~7H,指明LCD對應(yīng)的內(nèi)部頁地址,對應(yīng)0~7頁。
(5)點(diǎn)陣數(shù)據(jù)。
LCD顯示屏由兩片控制器控制,每個(gè)內(nèi)部帶有64×64位(512?B)的RAM緩沖區(qū),這個(gè)緩沖區(qū)與LCD屏對應(yīng)關(guān)系如圖11-14所示。顯示器為128點(diǎn)?×?64點(diǎn),每8點(diǎn)為一字節(jié)數(shù)據(jù),都對應(yīng)著顯示數(shù)據(jù)RAM(在KS108B芯片內(nèi)),一點(diǎn)對應(yīng)一個(gè)bit,計(jì)算機(jī)寫入或輸出顯示存儲(chǔ)器的數(shù)據(jù)代表顯示屏上某一頁中,列上垂直的8點(diǎn)數(shù)據(jù)(D0指向每一頁中最上1行的點(diǎn)數(shù)據(jù),D1指向第2行的點(diǎn)數(shù)據(jù),…,D7指向第八行的點(diǎn)數(shù)據(jù))。該bit?=?1時(shí)該點(diǎn)顯示黑點(diǎn)點(diǎn)亮,該bit?=?0時(shí)該點(diǎn)則消失。另外,LCD指令中有一條控制LCD開/關(guān)(ON/OFF)的指令,ON時(shí)顯示RAM數(shù)據(jù)對應(yīng)顯示的畫面,OFF時(shí)則畫面消失,但RAM中顯示數(shù)據(jù)仍存在。圖11-14LCD內(nèi)部RAM地址映射圖綜上所述,液晶控制器KS108B共有七條指令,從作用上可分為兩類,顯示狀態(tài)設(shè)置指令和命令及數(shù)據(jù)讀/寫操作指令。
4)初始化過程
(1)寫指令3FH:開顯示。
(2)寫指令0C0H:設(shè)置顯示初始行。
(3)輸出指定待顯示位置(頁/列值)。
此時(shí),要按照圖11-13的時(shí)序要求,使數(shù)據(jù)/命令選擇信號D/、片選CS1或CS2(左右屏選擇)、讀/寫控制、使能信號E等輸出相應(yīng)的電平。
(4)之后,便可以向LCD顯示緩沖區(qū)輸出數(shù)據(jù)信息(字符的點(diǎn)陣)。此時(shí),所有的控制信號也要滿足時(shí)序要求。注:指明待顯示位置(頁/列值)后,輸出的數(shù)據(jù)在LCD內(nèi)部RAM對應(yīng)的列值會(huì)自動(dòng)加1。圖11-15單片機(jī)與液晶顯示器硬件電路圖根據(jù)硬件電路圖可知,8255PA口、PB口、PC口和命令字的端口地址分別為00H~03H。
6)軟件設(shè)計(jì)
由于SMG12864液晶顯示器沒有內(nèi)部字符發(fā)生器,所以在屏幕上顯示的任何字符、漢字等須自己建立點(diǎn)陣字模庫,然后按圖形方式進(jìn)行顯示(可將計(jì)算機(jī)內(nèi)的漢字庫和其他字模庫提出直接使用)。用高級語言編寫的讀取UCDOS點(diǎn)陣字庫字模程序以完成字模的讀/取及數(shù)據(jù)重新排列,并按MCS-51匯編程序的要求寫成相應(yīng)格式的文本文件。關(guān)于提取漢字點(diǎn)陣的方法和程序略。所有用到的字模數(shù)據(jù)都存放在單片機(jī)AT89C55的程序存儲(chǔ)器中,如果用到的漢字、圖形較多,可選用較大容量的程序存儲(chǔ)器。
通用子程序分左半屏、右半屏寫指令代碼子程序和寫顯示數(shù)據(jù)子程序。液晶顯示驅(qū)動(dòng)器KS108B內(nèi)部有個(gè)忙標(biāo)志寄存器,當(dāng)該位為1時(shí),表示內(nèi)部操作正在運(yùn)行,不能接收外部數(shù)據(jù)或指令。也可以通過延時(shí)(一般5?ms)使LCD不忙。
下面通過程序?qū)崿F(xiàn)在12864LCD上顯示“無線抄表系統(tǒng)”的字樣,要求采用16?×?16點(diǎn)陣。顯示從LCD的第1行(頁碼為0和1)、第16列(左邊列碼為16)的位置開始,一行顯示,即在LCD左半屏第1行顯示“無線抄”,在LCD右半屏第1行顯示“表系統(tǒng)”。將前面生成的16?×?16點(diǎn)陣庫文件存放在單片機(jī)的存儲(chǔ)器中。
顯示程序中,數(shù)據(jù)的存儲(chǔ)很關(guān)鍵,一般可將一個(gè)漢字(32?B)上半部分(16?B)和下半部分(16?B)分別依次存放在ROM中,顯示時(shí)需要將一個(gè)漢字字模(點(diǎn)陣)的上、下各16個(gè)字節(jié)一個(gè)接一個(gè)地依次寫入相應(yīng)的顯示地址內(nèi)。
也可以采用按左半屏一行漢字的點(diǎn)陣,分上、下行依次存入ROM中,分兩次寫入:先寫一頁的左半屏16?×?3個(gè)字節(jié)(3個(gè)漢字的上半部分),再寫下一頁的16?×?3個(gè)字節(jié)(3個(gè)漢字的下半部分)。顯示一個(gè)漢字則是將漢字的字模分頁、逐個(gè)寫進(jìn)顯示緩沖區(qū)內(nèi),且每次寫之前都要檢測LCD是否處于空閑狀態(tài)(只有處于空閑狀態(tài)時(shí)寫進(jìn)去的數(shù)據(jù)才有效)。本程序采用延時(shí)5?ms方法,保證LCD不忙。
顯示子程序包括左半屏寫指令子程序LWRCMD、左半屏寫數(shù)據(jù)子程序LWRDATA、右半屏寫指令子程序RWRCMD和右半屏寫數(shù)據(jù)子程序RWRDATA。
LCD顯示程序、左半屏寫指令子程序LWRCMD、左半屏寫數(shù)據(jù)子程序LWRDATA流程圖分別如圖11-16、11-17和11-18所示。RWRCMD、RWRDATA的編制與左半屏子程序相同,只是對應(yīng)CS(片選)不同。圖11-16LCD顯示程序流程圖圖11-17LCD左半屏命令輸出子程序流程圖圖11-18LCD左半屏半行數(shù)據(jù)輸出顯示子程序流程圖
RWRDATA、RWRCMD子程序與LWRDATA、LWRCMD子程序類似,只要把CS1改為CS2即可,連同DLY5MS子程序略。 Unsignedcharcodeup[]={……}
Unsignedcharcodedown[]={……}
Unsignedcharcodeup1[]={……}
Unsignedcharcodedown1[]={……}
點(diǎn)陣字庫數(shù)據(jù)同匯編語言程序此處略。
需要說明的是,SMG12864是不帶字庫的LCD顯示器,對于帶字庫的LCD顯示器在顯示漢字時(shí),只需向LCD送入漢字的內(nèi)碼(兩個(gè)字節(jié))即可。
3.鍵盤掃描子程序
判別鍵盤上是否有鍵按下的方法是讓掃描口PC6、PC7輸出全“0”,然后讀PB口的狀態(tài),若PB口為全“1”(鍵盤上行線全為高電平),則鍵盤上沒有鍵按下,若PB口不為全“1”,則有鍵按下。但是,為了排除由于鍵盤上鍵的機(jī)械抖動(dòng)而產(chǎn)生的誤判,可以在判到有鍵按下后,經(jīng)軟件延時(shí)一段時(shí)間再判鍵盤的狀態(tài),若仍有鍵按下,則才認(rèn)為鍵盤有鍵合上,否則就認(rèn)為是鍵的抖動(dòng)(相關(guān)的軟件設(shè)計(jì)請參閱第9章)。11.4大屏幕顯示及應(yīng)用大屏幕顯示以其顯示清晰、更新方便等特點(diǎn)在信息提示中廣泛應(yīng)用,如車站的車次顯示、機(jī)場的航班顯示、證券交易系統(tǒng)中的行情實(shí)時(shí)顯示等,都用到了大屏幕顯示。一些工廠生產(chǎn)車間的產(chǎn)量、效率等實(shí)時(shí)統(tǒng)計(jì)信息,也可以通過大屏幕顯示出來。大屏幕顯示方式分兩種:點(diǎn)陣式和八段碼方式,前者顯示信息靈活,功能強(qiáng)大,但控制較為復(fù)雜,硬件成本較高;后者則應(yīng)用八段碼方式顯示一些數(shù)值信息,方便簡單,價(jià)格低,在數(shù)字顯示中被廣泛應(yīng)用。目前,一般的數(shù)字式LED顯示屏普遍采用單片機(jī)的串行口或其他I/O口通過諸如串行輸入并行輸出芯片(如74LS164、74HC595等)驅(qū)動(dòng)。11.4.1功能要求
本書設(shè)計(jì)的數(shù)字式LED顯示屏是用在某紡織廠紡紗車間的技術(shù)改造過程中,對該車間的240臺(tái)紡紗機(jī)的產(chǎn)量、效率、車速等參數(shù)進(jìn)行實(shí)時(shí)顯示。這樣便于對每臺(tái)機(jī)器進(jìn)行動(dòng)態(tài)管理,同時(shí)也便于工人了解自己當(dāng)班的產(chǎn)量。根據(jù)該車間的240臺(tái)紡紗機(jī)的分布位置不同,我們設(shè)計(jì)了五塊顯示屏,每塊顯示屏由4列?×?12行組成,每個(gè)顯示模塊有5位LED數(shù)碼管,可以分時(shí)顯示48臺(tái)紡紗機(jī)的產(chǎn)量、效率、車速等信息。產(chǎn)量、效率、車速等參數(shù)由上位機(jī)進(jìn)行檢測后,經(jīng)RS-485總線將數(shù)據(jù)傳送給下位機(jī),下位機(jī)進(jìn)行數(shù)據(jù)處理、變換后,把相應(yīng)的參數(shù)顯示出來。利用74HC595(以下簡稱595)芯片直接驅(qū)動(dòng)八段碼,通過AT89C51單片機(jī)I/O口控制,不占用其串行口,可以很方便地構(gòu)成大屏幕顯示電路。11.4.2硬件電路設(shè)計(jì)
一般來講,數(shù)字式LED顯示屏由N行?×?M列組成,共有N?×?M個(gè)顯示模塊(單元),每個(gè)顯示模塊有若干位LED數(shù)碼管(根據(jù)具體需要顯示信息的位數(shù)決定)。
對每個(gè)顯示模塊中的數(shù)據(jù)輸入及每位LED數(shù)碼管的輸出驅(qū)動(dòng),我們采用具有串行移位輸入、8位并行帶鎖存輸出的595芯片,其內(nèi)部由數(shù)據(jù)移位觸發(fā)器和三態(tài)輸出鎖存器組成。如圖11-19所示,595有16個(gè)引腳:
SI:串行輸入數(shù)據(jù);
SCK:移位時(shí)鐘脈沖(輸入);
RCK:鎖存時(shí)鐘脈沖(輸入)輸入;
SCLK:復(fù)位清零信號(輸入);
QA~QH:數(shù)據(jù)輸出;
QH*:向下一片(位)的串行數(shù)據(jù)輸出。
595輸出電流大(35?mA),可以直接驅(qū)動(dòng)八段碼。它的輸出具有鎖存功能,可以有效防止移位輸出時(shí)LED八段碼的閃爍,其移位及鎖存信號頻率高,最大值為55?MHz,這兩個(gè)脈沖信號都采用上升沿觸發(fā)。圖11-19595內(nèi)部結(jié)構(gòu)圖每塊顯示屏由一片AT89C51下位機(jī)控制,其硬件電路如圖11-20所示。
圖中,每個(gè)顯示模塊由5個(gè)595分別驅(qū)動(dòng)5位八段碼,制成一塊PCB電路板,通過程序控制可以分時(shí)顯示48臺(tái)紡紗機(jī)的產(chǎn)量、效率、車速等信息。6264RAM存儲(chǔ)器作為接收數(shù)據(jù)及輸出顯示參數(shù)(LED段碼表示)的緩沖區(qū),MAX485為RS-485通信接口芯片。每塊顯示屏中,第1行顯示模塊第1列的第一個(gè)595的移位數(shù)據(jù)輸入引腳SI分別由89C51的P1.0、P1.1、P1.2、P1.3經(jīng)74HC244驅(qū)動(dòng)后控制,其數(shù)據(jù)輸出引腳QH*?依次接至下一個(gè)595移位數(shù)據(jù)輸入引腳SI,該列顯示模塊中的第5個(gè)(最后一個(gè))595的數(shù)據(jù)輸出引腳QH*?接至該列下一行顯示模塊的第一個(gè)595數(shù)據(jù)輸入引腳SI,以此類推,直至最后一行。而所有595芯片的移位脈沖和鎖存脈沖由P3.4、P3.5經(jīng)244驅(qū)動(dòng)后提供。例如,顯示產(chǎn)量時(shí),把存儲(chǔ)在外部RAM中的產(chǎn)量信息分四組,對應(yīng)于顯示屏上的4列,在移位脈沖(P3.5)的作用下,依次經(jīng)P1.0、P1.1、P1.2、P1.3并行輸出,當(dāng)所有的產(chǎn)量信息都移位輸出后,再發(fā)出鎖存脈沖P3.4。這樣,在該顯示屏相應(yīng)位置(顯示模塊)便顯示出48臺(tái)紡紗機(jī)的產(chǎn)量值,對于效率、車速的顯示方法相同。圖11-20顯示屏硬件電路1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年渦輪螺槳發(fā)動(dòng)機(jī)項(xiàng)目建議書
- 2025建設(shè)項(xiàng)目工程總承包合同書示范文本
- 2025正規(guī)企業(yè)勞動(dòng)合同范例
- 瑜伽館石材裝修施工合同
- 軟件公司水地暖安裝協(xié)議
- 物流配送服務(wù)協(xié)議
- 宗教場所安全防護(hù)欄施工合同
- 2025交通標(biāo)線施工合同
- 電網(wǎng)改造項(xiàng)目招投標(biāo)文件范本
- 留學(xué)合同書范本
- 2024新教科版四年級上冊科學(xué)知識(shí)點(diǎn)總結(jié)精簡版
- 《朝花夕拾》閱讀推進(jìn)課 教學(xué)設(shè)計(jì)-2023-2024學(xué)年統(tǒng)編版語文七年級下冊
- 人工智能在礦產(chǎn)勘探中的應(yīng)用分析篇
- 項(xiàng)目駐場服務(wù)合同協(xié)議書
- 2024山東省招聘社區(qū)工作者試題及答案
- 11SG102-3 鋼吊車梁系統(tǒng)設(shè)計(jì)圖平面表示方法和構(gòu)造詳圖
- DL∕T 5494-2014 電力工程場地地震安全性評價(jià)規(guī)程
- DL∕T 1901-2018 水電站大壩運(yùn)行安全應(yīng)急預(yù)案編制導(dǎo)則
- 三年級上冊100道口算練習(xí)題(各類齊全)
- 全球與中國電動(dòng)旋轉(zhuǎn)夾爪市場格局分析及前景深度研究報(bào)告2024-2030年
- 宋代學(xué)者邵康節(jié)名著《漁樵問答》譯文
評論
0/150
提交評論