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