基于單片機的停車場計數系統設計
【摘 要】以STC89C52單片機為核心,利用紅外對射式傳感器電路作為信號的輸入模塊,設計了一個基于單片機的停車場計數系統。對射式光電傳感器由發射器和接收器組成,當有物體經過發射器和接收器之間阻斷光線時,形成電平信號,經過放大、整流并送入單片機控制模塊進行控制計數。通過液晶顯示電路、繼電器電路和蜂鳴器電路構成系統的輸出模塊,實現了對停車場內汽車數量的計數、顯示、停車場進出門以及報警的控制。
【關鍵詞】:單片機;紅外對射式傳感器;繼電器;液晶顯示;
[Abstract]: In this paper, the STC89C52 microcontroller as the core of the control circuit, the signal output module is used infrared photoelectric couple, designed a parking lot counting system that based on a microcontroller. Infrared photoelectric couple by the transmitter and the receiver is composed of two parts. When an object through the transmitter and the receiver will break the light beams, and produce level signal, amplified, rectified and finally put into microcontroller to control counting. Via Liquid Crystal Display circuit, relay circuit and buzzer circuit form the output module. So this system achieves counting of cars, display, alarm and the controller of pulling or pushing the door in the parking lot.
[Key words]: microcontroller; infrared photoelectric couple; relay; Liquid Crystal Display;
前言
在當今社會經濟飛速發展的格局下,越來越多的廠家采用流水線技術進行產品生產作業,而怎樣對其線上的產品進行實時的、有效率的、精確的計數成為廣大生產廠家十分關注的問題。而基于單片機為核心控制的計數器有著能夠實時,精確,可靠,穩定等計數優點已成為廣大廠家的首選自動計數的裝置。
當今,單片微型計算機技術迅速發展,基于單片機技術開發的計數設備和產品廣泛應用到各個領域,單片機技術產品和設備促進了生產技術水平的提高,企業迫切需要大量熟練掌握單片機技術并能開發、應用和維護管理這些智能化產品的高級工程技術人才。單片機以體積小、功能強、可靠性高、性能價格比高等特點,已成為實現工業生產技術進步和開發機電一體化和智能化測控產品的重要手段。電子計數器是一種多功能的電子測量儀器,它利用電子學的方法測出一定時間內輸入的脈沖數目,并將結果以數字形式顯示出來。而基于單片機的紅外線計數器能夠滿足廣大廠家的要求,它擁有實時,精確,可靠,穩定等特點。
對射式傳感器計數是一種多功能的電子測量儀器。它利用對射式傳感器發射紅外線,當有車輛阻擋紅外線,紅外線中斷并轉換為電脈沖,并由放大電路進行放大,通過單片機分析,計算出進出車輛的次數,通過液晶顯示方式顯示進出車輛數從而進行計數。隨著紅外技術的提高,用于存在狀態的傳感,位置編碼極限傳感,運動檢測和計數(如風速儀、數控機床等)。典型應用:光柵尺、編碼器、邦定機、壓焊機、火花機、醫療儀器、atm取款機、自動售貨機、收款機、復印機、打印機、磁帶驅動、轉球式鼠標、工業設備、膠片感測、郵件存在/分揀、料位監控、輸送帶控制、過程控制、物料的到位監控等。隨著傳感器的不斷改進,抗干擾能力增強,可以在許多惡劣的地方代替科研人員進行科學工作。
本設計主要任務是以STC89C52單片機為核心,利用紅外對射式傳感器電路作為信號的輸入模塊進行車輛計數。基于單片機構成的車輛計數研究的主要內容包括:如對射式傳感器的應用以及發展、STC89C52單片機用何種方式對外部計數脈沖進行計數顯示控制、LCD顯示驅動模塊的選擇、STC89C52單片機的擴展、74LS245如何驅動繼電器與蜂鳴器工作的。
主要技術指標:
1.整個系統的抗干擾能力強
2.計數范圍廣:0000~9999
3.車輛計數值精確
第1章 理論分析及總體方案第1.1節 方案比較
三種不同設計方案:
方案一:如圖1-1所示:
}
}
void LCD_write_number(unsigned char x)
{
switch(x)
{
case 0: LCD_write_char('0');break;
case 1: LCD_write_char('1');break;
case 2: LCD_write_char('2');break;
case 3: LCD_write_char('3');break;
case 4: LCD_write_char('4');break;
case 5: LCD_write_char('5');break;
case 6: LCD_write_char('6');break;
case 7: LCD_write_char('7');break;
case 8: LCD_write_char('8');break;
case 9: LCD_write_char('9');break;
}
}
void number_saved()
{
LCD_set_XY(48,4);
LCD_write_number(x/1000);