基于AT89C52單片機(jī)的自動(dòng)存取柜的設(shè)計(jì)與實(shí)現(xiàn)
1、需求信息:
本文引用地址:http://butianyuan.cn/article/172198.htm在大型超市、圖書館、火車及汽車站,人們經(jīng)常需要寄存包裹。采用人工方法存取包裹即費(fèi)人工又費(fèi)時(shí)間,與信息社會(huì)格格不入。故而筆者設(shè)計(jì)一套基于單片機(jī)AT89C52的自動(dòng)存取柜(16柜)的微機(jī)系統(tǒng),能夠完全實(shí)現(xiàn)自動(dòng)化。顧客只須按存包鍵,某一柜門自動(dòng)打開,同時(shí)系統(tǒng)打印密碼和柜號(hào)。當(dāng)顧客取包時(shí),按取包鍵,同時(shí)輸入密碼(人機(jī)互動(dòng)),系統(tǒng)確認(rèn)密碼正確后其柜門再次打開,顧客取包離開。
2、自動(dòng)存取柜的硬件系統(tǒng)設(shè)計(jì):
自動(dòng)存取柜的硬件系統(tǒng)設(shè)計(jì)如圖2.1
2.1 本次設(shè)計(jì)采用TM162 162字符液晶點(diǎn)陣式LCD,數(shù)據(jù)線掛接總數(shù)據(jù)線,數(shù)據(jù)或命令端RS接P2.2,讀寫端 R/W接P2.3,使能E接P2.4,命令寫入地址為E3FFH,數(shù)據(jù)寫入地址為E7FFH,讀狀態(tài)地址為EBFFH,不需要生成新的字符,只要使用其內(nèi)部字符庫的字符即可,使用時(shí)送入需顯示數(shù)據(jù)的ASCII碼值即可。
2.2 本次設(shè)計(jì)采用微型打印機(jī)GP16。如圖所示。片選接P2.5,BUSY端接P1.7,數(shù)據(jù)口接總數(shù)據(jù)線,其地址為DFFFH,打印機(jī)可作為外部RAM對(duì)待,向打印機(jī)發(fā)送命令或數(shù)據(jù)時(shí),只要向口地址DFFFH寫入相應(yīng)數(shù)據(jù)字節(jié)即可,BUSY信號(hào)采用查詢P1.7口方式控制打印機(jī)。
2.3 本次設(shè)計(jì)我們采用專用鍵盤管理芯片74C922。74C922為CMOS工藝技術(shù)制造,工作電壓為3—15V,“二鍵鎖定”功能,編碼輸出為三芯輸出,可直接與微處理器數(shù)據(jù)線相連,內(nèi)部振蕩器完成4×4矩形鍵盤掃描,有按鍵時(shí),DA變高,接到AT89C52的INT0口,并且設(shè)INT0為電平觸發(fā),當(dāng)DA 變高時(shí),經(jīng)過非門變低產(chǎn)生INT0外部中斷,通知AT89C52從P1口讀鍵值,從而完成相應(yīng)的散轉(zhuǎn)程序功能。根據(jù)接線圖 及真值表,我們知道,10個(gè)數(shù)字鍵0—9對(duì)應(yīng)ABCD輸出(0000—1001),存包健對(duì)應(yīng)ABCD輸出(1010),取包鍵對(duì)應(yīng)ABCD輸出(1011)。
2.4 本次設(shè)計(jì)采用兩片8255 I/O擴(kuò)展48路I/O口,其地址分別為7FFCH7FFFH和BFFCHBFFFH。PA口設(shè)為輸出,通過驅(qū)動(dòng)芯片7407接16接繼電器開柜鎖,當(dāng)PA口某置1時(shí),產(chǎn)生電磁力吸合鎖舌,使鎖打開,當(dāng)PA口某位置0時(shí),電磁力消失釋放鎖舌。PB口外接16路限位開關(guān),設(shè)為輸入口。在柜門的啟停位置安裝限位開關(guān),當(dāng)柜門被自動(dòng)打開時(shí)或人工關(guān)上時(shí),限位開關(guān)發(fā)出高或低的電平信號(hào)。CPU檢測(cè)柜門關(guān)上與否?PC口外接16路反射紅外傳感器開關(guān),設(shè)為輸入口,紅外傳感器屬于非接觸無損檢測(cè)電子開關(guān),它利用物體對(duì)紅外線的反射現(xiàn)象來檢測(cè)物體有無。它由調(diào)制脈沖發(fā)生器產(chǎn)生的調(diào)制脈沖經(jīng)發(fā)射管G輻射出910—940mm 的紅外線脈沖,當(dāng)被檢測(cè)到物體進(jìn)入傳感器作用范圍時(shí),紅外線脈沖被反射回來進(jìn)入接受管D,由接受管D的光電效應(yīng)和控制器中的解調(diào)放大器,將紅外線脈沖解調(diào)為電脈沖信號(hào),并經(jīng)選通放大,整流為直流電平,再由抗干擾網(wǎng)絡(luò)濾去干擾后,觸發(fā)驅(qū)動(dòng)器,并輸出一開關(guān)信號(hào)。當(dāng)有物為1,無物為0。此信號(hào)通過光電隔離及反相器輸入到8255的PC口,圖2.2 為紅外反射式傳感器開關(guān)原理圖。
3、自動(dòng)存取柜系統(tǒng)的軟件設(shè)計(jì)
本次設(shè)計(jì)有主程序和INT0中斷程序及相關(guān)的子程序組成。設(shè)有兩個(gè)標(biāo)志位,其中一個(gè)標(biāo)志位flag1為存滿標(biāo)志位,當(dāng)PC口輸入為FFH時(shí),紅外反射式傳感器檢測(cè)到所有柜存滿,此時(shí)液晶LCD顯示full!否則顯示welcome!另外一個(gè)標(biāo)志位為flag2,即取包鍵標(biāo)志位。即當(dāng)只有按取包鍵后,flag2置1,液晶LCD顯示Please input code ,當(dāng)取包裹人依次鍵入密碼時(shí),CPU檢測(cè)到flag2為 1,液晶 LCD才逐位顯示密碼,否則在其他時(shí)刻鍵入數(shù)字鍵無效。當(dāng)存包時(shí),flag2被置0。由于篇幅所限,本處給出主程序流程圖圖3.1和外部INT0中斷流程圖3.2。值得注意 的是,本次設(shè)計(jì)為當(dāng)一個(gè)人操作本系統(tǒng)時(shí),應(yīng)保證其他柜門已關(guān)上這一前提,即不允許兩個(gè)人同時(shí)操作本系統(tǒng)。
4、軟硬件抗干擾技術(shù)
復(fù)位看門狗及電源監(jiān)控采用Maxim公司的MAX813芯片.此處不多述。
軟件方面采用:a:在程序中插入空操作指令實(shí)現(xiàn)指令指針PC的容錯(cuò)。插入原則為:在跳轉(zhuǎn)或多字節(jié)指令前插入來保證指令的正確執(zhí)行。在比較重要的指令前插入:如中斷, 圖3.2 外部INT0中斷流程圖
堆棧等及在 程序中每隔若干條指令插一次。b重復(fù)設(shè)置各種工作方式控制字這樣,通過軟硬件雙重監(jiān)控,防止程序跑飛。
5、結(jié)束語
通過以上介紹,我們?nèi)坎捎媒?jīng)典的智能芯片如AT89C52,8255芯片,字符點(diǎn)陣式液晶顯示,GP16打印機(jī),74C922等完成了人機(jī)互動(dòng)能力強(qiáng),軟件硬件簡(jiǎn)單明了,工作可靠的自動(dòng)存取柜系統(tǒng)。經(jīng)實(shí)驗(yàn)證明,完全達(dá)到設(shè)計(jì)目的。
參考文獻(xiàn):
[1] 李昌禧主編。智能儀表原理與設(shè)計(jì) 北京 化學(xué)工業(yè)出版社 2004年
[2] 李華主編 MCS-51系列單片機(jī)實(shí)用接口技術(shù) 北京:北京航天航空大學(xué),2003年
[3] 陳潤泰主編 檢測(cè)技術(shù)與智能儀表 中南工業(yè)大學(xué)出版社 1999年
[4]求是科技 靳達(dá) 編著 單片機(jī)應(yīng)用系統(tǒng)開發(fā)實(shí)例導(dǎo)航 人民郵電出版社 2003年
[5] 求是科技 編著 單片機(jī)典型模塊設(shè)計(jì)實(shí)例導(dǎo)航 人民郵電出版社 2003年
單片機(jī)相關(guān)文章:單片機(jī)教程
單片機(jī)相關(guān)文章:單片機(jī)視頻教程
單片機(jī)相關(guān)文章:單片機(jī)工作原理
負(fù)離子發(fā)生器相關(guān)文章:負(fù)離子發(fā)生器原理
評(píng)論