張慧 徐琛



摘 要:文章基于STC89C52單片機設計了一種具有記憶功能的紅外計數器,該計數器性能穩定、抗干擾能力強,具有防掉電數據丟失,閾值設置和超閾值報警等功能。系統由按鍵單元、顯示單元、紅外傳感器單元、存儲器單元和報警單元五個主要部分組成。
關鍵詞:STC89C52;紅外計數器;AT24C02;閾值
引言
隨著社會的發展,流水線技術在企業生產中應用日益廣泛,如何實時、有效、準確地對線上產品進行計數,成為了人們普遍關心的問題。傳統的計數器電路復雜,元件量多,故障率高,維修不方便,且掉電數據就會丟失。而以單片機作為核心控制芯片的紅外線電子計數器能夠大幅度提高產品的穩定性、實時性。文章就是基于STC89C52單片機設計了一種具有記憶功能的紅外計數器,其不光具有計數、閾值設置和超閾值報警功能,還增加了防掉電數據丟失功能。
1 系統整體設計
本系統核心控制部分為STC89C52單片機,系統由報警電路、時鐘與復位電路、電源電路、按鍵輸入電路、數碼管和LED顯示部分、紅外傳感器和EEPROM存儲單元組成(圖1)。
時鐘與復位電路、電源電路構成單片機的最小系統;按鍵的主要功能是預設閾值、清零;報警電路主要作用為當計數值超過預設閾值時進行報警;數碼管主要用來顯示設定閾值和計數值;發光二極管用于指示工作狀態,閃爍時為計數狀態;紅外傳感器作用是采集物件通過信號,實現計數;EEPROM存儲單元選用AT24C02芯片完成存儲功能,可以在掉電時保存數據。(圖1)
2 主要電路設計
2.1 揚聲器報警電路設計
揚聲器報警電路如圖2所示。電路由單片機通過P3.5口進行控制,當計數值超過上限值時,P3.5輸出方波信號,并經三極管放大,讓揚聲器產生“滴滴”的報警聲,以達到報警的目的。
2.2 EEPROM存儲電路
系統選用AT24C02 芯片存儲預設閾值和計數值,電路如圖3所示。AT24C02內部存儲地址的0x00和0x01單元用于存儲計數值,地址0x02和0x03用于存儲預設閾值。AT24C02通過6和5號腳分別與單片機的P2.5和P2.6連接,用I2C的串行通信方式與單片機傳輸數據。
2.3 紅外傳感器模塊
本系統選用 E18-D80NK型號的紅外光電開關,該傳感器集發射與接收于一體,檢測距離可以根據要求進行調節,有探測距離遠、受可見光干擾小、價格便宜、易于裝配、使用方便等特點。該傳感器有三個引線,其中紅色線接5V電源,綠色線接地,黃色線用于輸出采集信號,通過單片機P1.4口傳入計數信號。
2.4 按鍵輸入電路(圖4)
按鍵輸入電路包括4個按鍵,選用輕觸開關,按下時輸入低電平。4個按鍵的主要功能為:K1為預置數按鍵,K2為加按鍵,K3為減按鍵,K4為清零按鍵。4個按鍵分別接在單片機的P1.0、P1.1、P1.2和P1.3引腳上。
3 程序設計
程序設計包括主程序(main)、計數子函數(jishu)、按鍵掃描子函數(keyscan)、顯示子函數(display)、T0初始化函數(InitTimer0)、T0中斷服務函數(timer0)等幾個部分。
計數子函數主要采集紅外傳感器信號,每有物體通過則計數值加1,并把計數值存入AT24C02中。按鍵掃描子函數,主要完成對四個按鍵的信息讀取,并根據按下的按鍵執行相應的功能。顯示子函數,完成對4位數碼管的顯示控制,首先通過計算獲取要顯示數據的個、十、百、千位,然后通過動態顯示的編程方法分別向P0和P2口送各個位的段碼和位碼。T0初始化函數完成對T0計數器的初始化,設置工作方式和計數初值。T0中斷服務函數完成500ms的定時,用于控制發光二極管進行一秒閃爍以及揚聲器的滴滴報警。主程序主要功能是開機讀取24C02的計數和閾值信息,調用子函數,完成計數器功能。
4 結束語
文章設計的紅外計數器采用單片機控制、紅外線遮光方式,抗干擾性好,可靠性高;可調整閾值,具有超過閾值報警功能;設計了EEPROM存儲部分,有效防止掉電丟失數據。
參考文獻
[1]應玉明.基于單片機控制的工件自動計數系統設計[J].機電工程技術,2011,40(7):47-49.
[2]盧旭錦.基于Keil c的AT24c02串行EEPROM的編程[J].現代電子技術,2007(8):154-160.
[3]李朝青.單片機原理及接口技術[M].北京:航空航天大學出版社,2010:17-40.