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