反过来,c2点产生的脉冲时序是相反的,信号送至单片机进行减计数,单片机即可通过程序模拟把车厢内的实际人数计算出来并寄存在寄存器中。表3-2客人上车时的各点逻辑关系表传感器工作状态a1a2b1b2c1c21无人状态0000002遮挡E11010003遮挡E1,E21111104遮挡E20101005人离去0000003.2单片机最小系统的设计3.2.1单片机的选择单片机模块主要用来处理检测电路收集的信息,实现对上、下车人数的加、减计数,并把处理的数据信息传递给控制电路用以监控客车是否超载,以及超载时的操作。选择设计单片机模块时,考虑到系统中的程序量和数据量比较简单,需要的I/O口资源也不多,因此,选择ATMEL公司生产的AT89C51芯片就能很好的满足系统需求,故本设计选择使用芯片AT89C51。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位单片机[8]。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性:与MCS-51兼容、4K字节可编程闪烁存储器、寿命1000写/擦循环、数据保留时间10年、全静态工作0Hz-24Hz、三级程序存储器锁定、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、可编程串行通道、低功耗的闲置和掉电模式、片内振荡器和时钟电路。3.2.2单片机外围电路设计晶振电路:单片机内部有一个用于构成振荡器的高增益反向放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器和作为反馈原件的片外晶体或陶瓷振荡器一起构成一个自激振荡器[9]。图3-7是89C51片内振荡器电路