范昭君
(陜西國防工業職業技術學院,陜西西安 710300)
隨著社會的進步和發展,人民日益注重個人的健康問題,藥品的種類和數量需求急劇加大,接踵而至的是藥品的包裝問題。據統計,社會上藥品中瓶裝藥品的占比大概在40%。瓶裝藥丸的個數是衡量藥品質量的一個重要的指標,目前在藥品生產線中常采用人工計數法和電子計數法完成藥丸的計數,若只采用人工計數不能滿足國家藥品監督管理局頒發的藥品生產質量管理規范,采用人工計數準確率、工作效率低。如果可以對傳統的藥物生產線進行改造升級,選取能夠滿足條件的檢測裝置,就能提高藥廠的工作效率和藥品質量,從而提升工廠的效益??焖倬_地對自動生產線上的藥品進行個數檢測技術成為一個亟待解決的問題。
伴隨科技的進步,越來越多的基于單片機的計數系統用其直觀、精確的特點,被越來越多的應用于自動生產線中[1,2]。設計的計數器以STC89C51為核心控制單元,用于測量藥丸流水線上的生產的數量,采用紅外對射式方式,紅外發射管發出紅外光線,當有藥丸擋住紅外光線時,接收管沒有接收到紅外光信號,放大器將輸出低電平,同時將這個電平信號作為外部中斷0的觸發信號,送入單片機進行計數控制,當計數滿30,則驅動數碼顯示電路更新數值。
藥丸生產線的結構如圖1所示,其主要功能模塊包括4個部分,分別是:閥門控制電路、履帶電機控制電路、藥丸檢測電路以及顯示電路。在藥丸生產線中的重要組成部分是藥丸檢測電路,其主要的檢測元件是紅外傳感器,當有藥丸通過漏斗頸時,就會觸發紅外光電傳感器,從而完成計數;當計數的值為30時,控制閥門閉合,藥丸瓶數計數值加1,已裝好藥丸的瓶數顯示數值更新,再來控制履帶動作,目的是運送空瓶到漏斗下,當生產完100瓶之后,顯示數值回零,從而進入下一個生產周期。

圖1 藥丸生產線
藥丸瓶裝生產線檢測系統在數據處理上速度要求不是很高,所以可以選擇使用較為普遍的8位機,即美國ATMEL公司開發的AT89C51單片機,它與由Intel公司開發80C51引腳和指令系統完全兼容,是一種低功耗、高性能的單片機。
(1)主要性能。①與由Intel公司開發80C51引腳和指令系統完全兼容;②有4 kB可在線重復編程的片內flash EPROM;③數據可以保存10年;④單片機的供電電壓選擇范圍為2.7~6 V;⑤內部RAM是128×8位;⑥3級加密保護的ROM;⑦4組可編程的I/O接口;⑧兩個16位的加法定時器/計數器(T0/T1);⑨有5個中斷源和2個優先級。
(2)AT89C51引腳定義。AT89C51有40個引腳,如圖2所示。設計中的主要使用的引腳說明如下:VCC:40號引腳,為單片機電源的+5 V的高電平接口;P0:P0口32~39引腳是單片機的一組I/O端口;P2:P2口21~28引腳是單片機的一組具有內部提升電路的雙向I/O端口;P1:P1口1~8引腳是單片機的一組具有內部提升電路的雙向I/O端口;P3:P3口10~17引腳是具有內部提升電路的雙向I/0端口(準雙向并行I/O口),它還提供復選功能,主要有串行口通信、外部中斷0(INT0)控制、外部中斷1(INT1)控制、定時和計數器(T0/T1),計時和計數控制及外部隨機存儲器內容的讀取或寫入控制等功能;XTAL1(19)/XTAL2(18):接外部晶振的引腳,系統中采用的晶振頻率為12 MHz;GND:20號引腳,為單片機電源的0 V的低電平接口。

圖2 AT89C51引腳圖
藥丸計數系統中用到單片機的計數功能,計數器為遞增計數器,采用的是外部中斷0(INT0)觸發計數器,當紅外光電傳感器檢測到信號時(下降沿),計數器數值自動加1,當計數寄存器溢出時,計數完成,一瓶藥品裝滿,進入下一個周期。
藥丸生產線計數硬件電路如圖3所示,包括單片機,復位電路,時鐘電路,電源電路、數碼顯示電路和檢測電路。采用P0口控制1個7段共陽極LED數碼管的段選控制端,采用P2口控制1個7段共陽極LED數碼管的段選控制端,紅外光電傳感器用于檢測藥丸的個數,連接到P3.2端口(外部中斷請求0,INT0)引腳上。檢測到藥丸的個數為30,觸發中斷,顯示的數字加1,在本例中采用晶振頻率是12 MHz。

圖3 藥丸計數電路
單片機控制藥丸生產線的器件清單見表1。

表1 實物清單
主要包括3個函數,主函數、藥丸瓶數顯示函數、計數函數。
(1)主函數。

(2)藥丸瓶數顯示函數。采用P0口控制1個7段共陽極LED數碼管的段選控制端,用于顯示藥丸瓶數的高位。采用P2口控制1個7段共陽極LED數碼管的段選控制端,用于顯示藥丸瓶數的低位。采用二維數組來存放LED要顯示的數字“0~9”的字形編碼,計數值整除10是瓶數的十位,對10取余是瓶數的個位。
(3)計數函數。紅外光電傳感器用于檢測藥丸的個數,連接到P3.2端口(外部中斷請求0,)引腳上,當有藥丸落下,P3.2端口檢測到下降沿,觸發中斷,藥丸計數個數加1,檢測到藥丸的個數為30,瓶數count顯示的數字加1。

設計出一種基于AT89C51單片機的藥丸自動檢測系統,采用一對紅外接收管和紅外發射管作為藥丸的檢測裝置,利用外部中斷實時計數并顯示在LED屏幕。經仿真測試該系統能夠實現數據采集、藥丸的實時顯示和計數等功能,效果良好,具有很高的應用價值和現實意義。