基于单片机的停车场计数系统设计
【摘 要】以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);