馬巍
【摘 要】本系統(tǒng)利用單片機(jī)實(shí)現(xiàn)飲料自動(dòng)裝瓶和加蓋,特殊情況下可按下緊急停止按鈕關(guān)閉整個(gè)系統(tǒng)。該裝置結(jié)構(gòu)簡(jiǎn)單,操作方便,可靠性高,實(shí)用性強(qiáng)。
【關(guān)鍵詞】單片機(jī);裝瓶;加蓋
1 工作原理
單片機(jī)飲料裝瓶系統(tǒng)工作時(shí),由單片機(jī)P1.1口輸出低電平信號(hào),打開飲料罐下方的一個(gè)閥門,飲料罐10s后把一個(gè)空瓶子裝滿,壓瓶蓋機(jī)向下沖壓,完成一個(gè)飲料瓶的加蓋,然后通過(guò)“壓蓋完成信號(hào)”向單片機(jī)的T0(P3.4口)輸出一個(gè)完成計(jì)數(shù)信號(hào),表明一瓶飲料已經(jīng)灌裝完成,單片機(jī)控制兩位共陽(yáng)數(shù)碼管顯示裝瓶數(shù)。接著單片機(jī)P1.0口輸出低電平信號(hào)使傳送帶運(yùn)送下一個(gè)空瓶子到飲料罐下方,準(zhǔn)備下一個(gè)空瓶子的裝瓶和壓蓋。如果有緊急情況發(fā)生,可以按下“緊急停止”按鈕關(guān)閉整個(gè)系統(tǒng)。
2 硬件電路
本設(shè)計(jì)要用的元器件有:芯片AT89S51、芯片7447、按鍵及兩個(gè)共陽(yáng)極七段數(shù)碼管,其它硬件設(shè)備有壓瓶蓋機(jī)、傳送帶、飲料罐、閥門等。
圖1
單片機(jī)P1.1口是飲料罐閥門控制信號(hào),低電平時(shí)飲料罐閥門打開,開始灌裝飲料,高電平時(shí)閥門關(guān)閉停止工作。當(dāng)壓蓋完成后向單片機(jī)內(nèi)部計(jì)數(shù)器T0輸出一個(gè)信號(hào)表明一瓶飲料瓶已經(jīng)灌裝完成,單片機(jī)驅(qū)動(dòng)用于顯示裝瓶數(shù)的七段數(shù)碼管的顯示數(shù)字加1。同時(shí)向P1.0輸出低電平信號(hào),使傳送帶轉(zhuǎn)動(dòng)。當(dāng)出現(xiàn)意外情況時(shí),通過(guò)按下“緊急停止”按鈕向單片機(jī)的外部中斷1申請(qǐng)中斷請(qǐng)求,使系統(tǒng)停止。
飲料瓶個(gè)數(shù)顯示方式采用靜態(tài)顯示,其各位相互獨(dú)立,各自的亮段控制端由一個(gè)獨(dú)立的譯碼器7447控制,只要單片機(jī)的I/O口輸出不變,則受其控制的七段數(shù)碼管顯示數(shù)值也不變。7447是一塊BCD碼轉(zhuǎn)換成7段LED數(shù)碼管的譯碼驅(qū)動(dòng)芯片,7447的主要功能是輸出低電平驅(qū)動(dòng)的顯示碼,用以推動(dòng)共陽(yáng)極7段LED數(shù)碼管顯示相應(yīng)的數(shù)字。由于只使用了兩位七段數(shù)碼管,所以顯示的最大十進(jìn)制值為99。兩位共陽(yáng)極七段數(shù)碼管通過(guò)譯碼器7447與單片機(jī)的P0口相連,P0口的每一位對(duì)七段數(shù)碼管的顯示有直接的作用。例如,當(dāng)(P0)=00H,兩位七段數(shù)碼管顯示00,如果此時(shí)壓蓋完成信號(hào)線輸入一個(gè)計(jì)數(shù)信號(hào)表明,一個(gè)飲料瓶壓蓋完成,顯示數(shù)據(jù)加加1,P0.0的狀態(tài)由0變1,即(P0)=01H,顯示變?yōu)?1。在這種靜態(tài)顯示方式中,其優(yōu)點(diǎn)是控制直觀,程序?qū)崿F(xiàn)比較容易,各位七段數(shù)碼管可獨(dú)立顯示,互不影響。在每一個(gè)數(shù)字的顯示過(guò)程中,每一位七段數(shù)碼管從單片機(jī)的I/O口經(jīng)過(guò)譯碼器7447得到一個(gè)恒定的亮段控制信號(hào),這是一個(gè)恒定的電平信號(hào),所以亮段控制端的電流恒定,七段數(shù)碼管的亮段較高。
3 軟件設(shè)計(jì)
飲料罐的下方有一個(gè)閥門,用于控制飲料的流量,這個(gè)閥門由單片機(jī)的P1.1口控制,低電平使能, 假設(shè)閥門打開10s就能把一個(gè)空瓶子裝滿,則每一次P1.1口輸出一個(gè)持續(xù)10s的低電平。與此同時(shí),壓瓶蓋機(jī)向下沖壓,完成一個(gè)飲料瓶蓋的安裝,然后通過(guò)“壓蓋完成信號(hào)”向單片機(jī)的T0口輸出一個(gè)完成計(jì)數(shù)信號(hào),表明一瓶飲料已經(jīng)灌裝完成。此時(shí),單片機(jī)用于顯示裝瓶數(shù)的七段數(shù)碼管的顯示數(shù)字加1,同時(shí),P1.0口輸出一個(gè)低電平觸發(fā)信號(hào),讓傳送帶帶動(dòng)下一個(gè)空瓶子準(zhǔn)備裝瓶和壓蓋。如果有緊急情況發(fā)生,可以按下“緊急停止”按鈕關(guān)閉整個(gè)系統(tǒng)。
在程序中首先定義了外部中斷服務(wù)子程序的入口為EXT1段程序,并由指令“MOV IE,#84H”打開外部 中斷1。當(dāng)緊急開關(guān)按下后,單片機(jī)轉(zhuǎn)向EXT1段程序執(zhí)行七段數(shù)碼管顯示00,停止傳送帶和關(guān)閉閥門等操作。
在該系統(tǒng)中,使用單片機(jī)定時(shí)器/計(jì)數(shù)器0的計(jì)數(shù)器的功能,每當(dāng)壓蓋完成信號(hào)線輸入一個(gè)計(jì)數(shù)信號(hào)時(shí),表明已經(jīng)裝完一個(gè)飲料瓶,單片機(jī)使能傳送帶帶動(dòng)瓶子移動(dòng),并打開閥門口開始裝的空瓶子。一旦出現(xiàn)意外,使系統(tǒng)中斷。
通過(guò)指令“MOV TMOD,#05H”設(shè)置定時(shí)器/計(jì)數(shù)器0工作在計(jì)數(shù)器模式1下,并裝載計(jì)數(shù)初始值FFFFH,即只需要計(jì)一個(gè)數(shù),定時(shí)器/計(jì)數(shù)器0就溢出(通過(guò)指令“CHECK: JNB TF0,CHECK”檢查)。隨后通過(guò)指令將顯示數(shù)據(jù)更新,并驅(qū)動(dòng)傳送帶和閥門工作。
閥門打開10s的時(shí)間裝滿一瓶飲料,在該系統(tǒng)中,使用單片機(jī)時(shí)器/計(jì)數(shù)器1的定時(shí)器的功能,把定時(shí)器設(shè)為工作方式1,定時(shí)時(shí)間為50ms,則計(jì)數(shù)溢出20次即得到時(shí)鐘計(jì)時(shí)最小單位—1s,那么1s循環(huán)10次即得到10s定時(shí)。本次設(shè)計(jì)中單片機(jī)的晶振為12MHz,則機(jī)器周期T為1μs,選擇工作方式1,利用公式(216-X)T=定時(shí)時(shí)間(X為TH1,TL1的定時(shí)初值),計(jì)算得出TH1=3CH,TL1=0B0H。
程序通過(guò)指令“CLR P1.1” 給P1.1口輸出一個(gè)低電平觸發(fā)信號(hào),讓傳送帶帶動(dòng)下一個(gè)空瓶子準(zhǔn)備裝瓶和壓蓋。低電平觸發(fā)時(shí)間1s可利用延時(shí)子程序完成。延時(shí)1s后,P1.1口置1。
[責(zé)任編輯:楊玉潔]