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