基于AT89C51單片機(jī)的電子計價秤的設(shè)計與實現(xiàn)
3.4、鍵盤專用芯片74C922及12個按鍵矩陣組設(shè)置。
在電子計價秤中,帶有12個按鍵矩陣組設(shè)置,其中0—9數(shù)字鍵用于輸入單價,DEL用于單價清空,累計鍵用于費用累計,鑒于此,我們采用專用鍵盤管理芯片74C922。74C922為CMOS工藝技術(shù)制造,工作電壓為3—15V,“二鍵鎖定”功能,編碼輸出為三芯輸出,可直接與微處理器數(shù)據(jù)線相連,內(nèi)部振蕩器完成4×4矩形鍵盤掃描,有 按鍵時,DA變高,通過非門接到AT89C51的INT0口,并且設(shè)INT0為邊沿觸發(fā)方式,當(dāng)DA變高時,經(jīng)過非門變?yōu)榈碗娖教儺a(chǎn)生INT0外部中斷,通知AT89C51從數(shù)據(jù)總線讀鍵值,判斷鍵值從而完成相應(yīng)的散轉(zhuǎn)程序功能。根據(jù)接線圖及74C922芯片真值表,我們知道,鍵0—9對應(yīng)ABCD 輸出(0000—1001),鍵DEL對應(yīng)ABCD輸出(1010),鍵累計對應(yīng)ABCD輸出(1011),接線圖見圖3.4另外在電子計價秤的面盤上有電源開關(guān)POWER和手動復(fù)位按鍵RESET,此外不多述。
3.5 越限(超出6kg)報警電路和看門狗自動復(fù)位電路。
當(dāng)承重越限(超出6kg)時,全橋放大電路輸出電壓大于6V,報警電路由電壓比較電路和三級管驅(qū)動蜂鳴器電路組成,此處不多贅述??撮T狗自動復(fù)位電路由可重觸發(fā)單穩(wěn)觸發(fā)器4538設(shè)計而成,4538內(nèi)部有兩個單穩(wěn)觸發(fā)器功能部件,采用軟件置位AT89C51的P1.7管腳定時喂狗,如軟件跑飛,則軟件不能及時喂狗,第一個單穩(wěn)觸發(fā)器不能及時觸發(fā),延時τ=RC秒后,其達(dá)穩(wěn)態(tài),利用此下降沿觸發(fā)另外一個單穩(wěn)觸發(fā)器(其輸出接AT89C51的RESET 端),只要有10秒的暫穩(wěn)態(tài)高電平,即可復(fù)位單片機(jī)??梢?,本次設(shè)計的電子計價秤除設(shè)手動復(fù)位鍵外,還配備看門狗自動復(fù)位電路, 防止軟件跑飛,雙重保險,抗干擾性能強(qiáng).
電子計價秤軟件設(shè)計均采用模塊化設(shè)計,整個程序包括主程序、定時中斷程序、INT0中斷程序按鍵散轉(zhuǎn)程序、數(shù)據(jù)處理子程序(雙字節(jié)乘法、二—十進(jìn)制轉(zhuǎn)換程序及逆轉(zhuǎn)換程序)、LCD十六位液晶靜態(tài)顯示子程序等模塊。所有程序均采用匯編語言編寫。電子計價秤的軟件設(shè)計思路說明如下:主程序的作用為程序初始化,計算單價*單重(單價和單重分別在定時中斷程序和INT0外部中斷程序中獲得),并時時顯示十進(jìn)制的單重,單價,總價。設(shè)定T0為計數(shù)工作方式,T1為定時工作方式。其中R0為標(biāo)志位寄存器當(dāng)為00H時為正常顯示方式,當(dāng)為01H時為累計顯示方式,在T1定時中斷程序中,一秒鐘采樣物料重量(已轉(zhuǎn)成脈沖頻率),并賦值重量計算RAM區(qū)和顯示 RAM區(qū)。在INT0外部中斷程序中,采樣單價并賦值單價計算RAM區(qū)和顯示RAM區(qū)。其中設(shè)R1為標(biāo)志位寄存器,表示單價最大為99.9元,最多只能送三位,若再按鍵,則無效。設(shè)R2為標(biāo)志位寄存器,表示累計金額時為最多50次,超過50次最后的顯示為第50次累計金額。內(nèi)部30H-5FHRAM分配為單價,單重,總價,累計總價的計算和顯示RAM區(qū),此處不多贅述。由于篇幅所限,此處只給出主程序流程圖如圖4.1所示:
評論