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