如何用單片機(jī)代替專用I/O接口芯片方法簡(jiǎn)介
?、莅存I部分采用常規(guī)的非編碼鍵盤方式即可;
⑥為了提高人機(jī)的交互能力,顯示部分采用了GXM12864SL大屏幕LCD,這樣屏幕上可顯示自編的漢字、數(shù)字、等式及簡(jiǎn)單的圖案;
?、叽蛴/O端口,可根據(jù)要求進(jìn)行相應(yīng)的連接配置即可;
?、嗄M開關(guān)選用多片CD4051,它們與單片機(jī)配合,用于選擇多路液位模擬量中的1路液位的模擬量,然后進(jìn)行A/D轉(zhuǎn)換。
由于選用了3個(gè)單片機(jī),有效地解決了I/O端口不夠用的問(wèn)題,也使得在設(shè)計(jì)上簡(jiǎn)化了許多,只要按照常規(guī)的連接芯片方式即可,省去了很多的過(guò)渡芯片,如74LS244、74LS245、74LS73等,也使得軟件設(shè)計(jì)變得簡(jiǎn)單容易。因硬件連接變得簡(jiǎn)單而且均為常規(guī)連接,所以本文沒(méi)有提供詳細(xì)的線路連接圖。3個(gè)單片機(jī)之間的數(shù)據(jù)交換采用了串行口通信方式。本設(shè)計(jì)中,3個(gè)單片機(jī)采用同時(shí)復(fù)位,當(dāng)然也可采用分開復(fù)位方式,但按鍵要增加,此種情況視要求而定。
3 軟件結(jié)構(gòu)設(shè)計(jì)
由于3個(gè)單片機(jī)同時(shí)復(fù)位,所以復(fù)位后3個(gè)單片機(jī)是處于并行工作狀態(tài)的。1#單片機(jī)的主要工作是將所有路液位模擬量轉(zhuǎn)換成數(shù)字量保存起來(lái)。它可根據(jù)鍵盤命令或系統(tǒng)默認(rèn)格式將采集加工后的結(jié)果傳送給2#單片機(jī)顯示及3#單片機(jī)輸出控制,也可根據(jù)命令只監(jiān)測(cè)指定的某1路或某幾路的液位變化。2#單片機(jī)的主要工作是讀入鍵盤命令,加工處理后,向1#和3#發(fā)布命令,然后根據(jù)反饋結(jié)果在LCD上顯示出來(lái)。也可根據(jù)1#單片要同采集到的數(shù)據(jù),不斷更新其顯示內(nèi)容。LCD顯示方式可多種多樣,可循環(huán)顯示指定的某幾路液位,或固定顯示某1路液位,或循環(huán)顯示某1個(gè)月的每天或某天的每班輸入輸出量等。每1路液體的比重、計(jì)算修正值、液位上下限高度設(shè)定等都可通過(guò)鍵盤輸入并保存起來(lái)。也可通過(guò)鍵盤設(shè)定密碼,防止別人或誤操作破壞設(shè)定內(nèi)容,鍵入方式應(yīng)設(shè)計(jì)成無(wú)須看說(shuō)明書,只要按照LCD顯示上的提示進(jìn)行選擇即可。3#單片機(jī)的主要工作是根據(jù)鍵盤命令或1#單片機(jī)及時(shí)采集到的數(shù)據(jù),發(fā)出控制信號(hào)或打印輸出結(jié)果,打印輸出格式可根據(jù)鍵盤命令進(jìn)行選擇。
3個(gè)單片機(jī)之間通過(guò)串行口,除傳送正常的數(shù)據(jù)、命令外,3者之間還要進(jìn)行互相監(jiān)督(這是I/O擴(kuò)展芯片很難做到的)。
?、傧嗷ブg傳送信息后一定要進(jìn)行印證,也就是發(fā)送者要及時(shí)收到接收者的回執(zhí);
?、?者之間定時(shí)互訪,確保相安無(wú)事;
③每次上電復(fù)位除自檢外,還要互檢。
互相監(jiān)督的目的是為提高整個(gè)系統(tǒng)的性能,為系統(tǒng)維護(hù)提供方便。1#和3#單片機(jī)上都配有2個(gè)發(fā)送二極管,用于監(jiān)測(cè)指示另外兩個(gè)單片機(jī)工作是否正常。2#單片機(jī)本身有LCD顯示,無(wú)需發(fā)光二極管。串行通信中斷服務(wù)程序、發(fā)送程序流程圖及定時(shí)互訪程序流程圖等因比較簡(jiǎn)單沒(méi)有給出。
4 調(diào)試
在一個(gè)系統(tǒng)中,使用多個(gè)單片機(jī)對(duì)整個(gè)系統(tǒng)調(diào)試確實(shí)會(huì)帶來(lái)一些不便。系統(tǒng)中有多少個(gè)單片機(jī)最好就有多少個(gè)單片機(jī)開發(fā)裝置,這對(duì)調(diào)試是有極大幫助的,因?yàn)樵谡{(diào)試中可隨時(shí)查看每個(gè)單片機(jī)的狀態(tài),但實(shí)際當(dāng)中往往不會(huì)有多個(gè),只有1個(gè)。
每個(gè)單片機(jī)的程序基本上是由兩部分組成的,一部分是與其它單片機(jī)沒(méi)有任何聯(lián)系的獨(dú)立部分,另一部分是單片機(jī)之間相互通信聯(lián)系的部分(這部分程序量較小)。調(diào)試時(shí)先把單片機(jī)各自獨(dú)立部分調(diào)試出來(lái),這部分對(duì)單片機(jī)應(yīng)用人員來(lái)說(shuō)不會(huì)有問(wèn)題。然后調(diào)試單片機(jī)相互之間的串行通信程序,先把相互之間的簡(jiǎn)單通信建立起來(lái),相互之間能識(shí)別傳遞數(shù)據(jù)后,再逐步把完整的程序一步一步添加進(jìn)去。在設(shè)計(jì)、編制程序時(shí)要想到如何調(diào)試,這樣在編制程序時(shí)就會(huì)有意識(shí)地程序分成有效的塊,調(diào)試時(shí)就可以一塊一塊地調(diào)試。多單片機(jī)調(diào)試方法較多,此是一孔之見(jiàn)。
結(jié)語(yǔ)
在一個(gè)液位監(jiān)控系統(tǒng)中采用多個(gè)單片機(jī)是一種嘗試,但它確實(shí)簡(jiǎn)化了系統(tǒng)設(shè)計(jì),便于分工和多人投入?yún)f(xié)作,也便于產(chǎn)品改進(jìn)更新。其最顯著的效果是縮短了產(chǎn)品的設(shè)計(jì)、調(diào)試和生產(chǎn)的周期。
評(píng)論