下车方向 车厢内 传感器2 车 门 传感器1 上车方向 车厢外 图3.3 检测传感器安放图
本系统对方向识别电路的设计采用了双D触发器,实现了对乘客方向的识别。方向识别电路如图3.4所示。 74F04 +5V 74F04 R1 /Q1 CLK1 Q1 D1 S1 INT1 传感器1 74F04 传感器2 Q2 CLK2 D2 S2 INT0 74F04 /Q2 R2 图3.4 辨别方向电路图 如图3.4所示,将双D触发器的复位端分别与74F04相连。由于双D触发器
的置位端为低电平有效,将置位端接+5V电压,从而对置位信号进行屏蔽。将D触
11
发器的Q端与Q端连接起来,这样D触发器的特征方程为Qn?D。当时钟信号CLK=0时,D触发器的Q端和Q端保持逻辑状态不变;当CLK=1时,即D触发器时钟信号的上升沿到达时,Q端和Q端的状态要进行翻转,转变成相反的逻辑状态。其特性表如表3.2所示。
表3.2 边沿触发器特性表
C × × ↓ ↑ ↑ R 0 1 0 1 1 S 1 0 1 1 1 D × × × 0 1 Qn?1 0 1 Qn 0 1
当没有乘客经过车门时,传感器1、2均输出为高电平,经74F04 反相处理后,输出为低电平。触发器的复位端和置位端为低电平有效,在本设计中对触发器的置位端接入+5V进行屏蔽。在没有乘客上车时,两个D触发器的时钟信号CLK1、CLK2均等于0, Q1=0,Q2=0,D1=0,D2=0。如图3.3所示,当有乘客上车时,乘客先经过1号传感器,此时传感器1输出信号为低电平,经第一个74F04后变为高电平,CLK1=0,CLK2=1;D1=0,D2=1;Q1=0,Q2=1,即Q2的状态发生翻转。当乘客离开1号传感器时,由于此时CLK1=0, D1=0,R1=1,D1触发器的Q1和Q1端状态将会保持不变,CLK2=0, R2=1,Q2=1也保持为高电平状态。当乘客进入2号传感器的检测范围时,传感器2输出信号为低电平,这样CLK1=1,CLK2=0;D1=1,D2=1;R1=1,R2=0;Q2和Q2逻辑状态要进行翻转Q2=0,Q1的状态仍保持不变。
在上车这一过程中,只有Q2和Q2状态发生了变化,从低电平变为高电平再变为低电平。这样就产生了一个可由单片机T0端识别的脉冲信号。根据本电路的设计,T0端为乘客上车动作信号的输入端,从而实现了辨别乘客运动方向的功能。同理,当乘客下车时也会产生一个相应的脉冲信号接入T1端,在本设计中T1端是乘客下车动作信号的输入端。
12
3.2单片机最小系统的设计
3.2.1单片机的选择
单片机模块主要用来实现对上、下车人数的加、减计数。单片机模块在设计中,考虑到系统中的程序量和数据量较少,需要I/O口资源也相对较少,AT2MEL公司的AT89C51芯片的资源就能很好的满足系统的需求,所以在系统设计中采用了MCS-51系列单片机AT89C51芯片的最小系统来实现。我们选用ATMEL公司89系类的标准型单片机AT89C51,AT89C51是一种低功耗、高性能的8位单片机,片内带有一个4K字节的FLASH可编程可擦除只读存储器(EPROM),它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器(NURAM)技术,而且其输出引脚和指令系统都与MCS-51兼容。另外,AT89C51还具有MCS-51系类单片机的所有优点。128*8位内部RAM,32位双向输入输出线,两个十六位定时/计时器,5个中断源,两级中断优先级,一个全双工异步串行口及时钟发生器等。片内的FLASH存储器允许在系统内改编程序或用常规的非易失性存储器来编程。因此AT89C51是一种功能强、灵活性高且价格合理的单片机,它可方便地应用在各个领域。89C51引脚图如图3.5所示。
图3.5 89C51芯片引脚图
13
AT89C51
下面介绍89C51的主要引脚功能如下: (1)VCC(40):电源+5V; (2)VSS(20):接地;
(3)P0口(32-39):双向I/O口,既可作低8位地址和8位数据总线使用,也可作普通I/O口;
(4)P3口(10-17):多用途端口,既可作普通I/O口,也可按每位定义的第二功能操作;
(5)P2口(21-28):既可作高8位地址总线,也可作普通I/O口; (6)P1口(1-8): 准双向通用I/O口; (7)PSEN:内外程序存储器选择线;
(8)XTAL1(19)和XTAL2(18):外接石英晶体振荡器; (9)RST(9):复位信号输入端,高电平有效; (10)ALE/PROG(30):地址锁存允许信号; (11)EA(31):内、外程序存储器控制端;
由于本系统需要用到单片机内部的计数器,所以在这里有必要介绍定时/计数器的工作原理,定时/计数器的结构图如图3.6所示。
图3.6 定时/计数器的结构原理图
从定时/计数器的结构图中我们可以看出,16位的定时/计数器分别由两个8位
14
专用寄存器组成,即:T0由TH0和TL0构成;T1由TH1和TL1构成。其访问地址依次为8AH-8DH。每个寄存器均可单独访问。这些寄存器是用于存放定时或计数初值的。此外,其内部还有一个8位的定时器方式寄存器TMOD和一个8位的定时控制寄存器TCON。这些寄存器之间是通过内部总线和控制逻辑电路连接起来的。TMOD主要是用于选定定时器的工作方式;TCON主要是用于控制定时器的启动停止,此外TCON还可以保存T0、T1的溢出和中断标志。
当定时/计数器用作计数器时,计数脉冲来自相应的外部输入引脚T0或T1。当输入信号产生由1到0的负跳变时,计数器的值加1。每个机器周期的S5P2期间,对外部输入引脚进行采样。如在第一个机器周期中采得的值为1,而在下一个周期中采得的值为0,则在紧跟着的再下一个周期S3P1的期间,计数器加1。由于确认一次负跳变要花两个机器周期,即24个振荡周期,因此外部输入的计数脉冲的最高频率为系统振荡器频率的1/24。本课题选用11.0592MHz频率的晶体,允许输入的脉冲频率为500MHz。由于本课题所利用的是计数器T0、T1,并且是工作在工作方式2。所以以下重点介绍工作方式2的特点。
工作方式2是自动恢复初值的8位计数器,可以将计数器的计数初值设为0FFFFH,当计数器加1产生溢出中断后执行中断子程序,TLX作为常数缓冲器,当TLX计数溢出时,在置“ 1”溢出标志TFX的同时,还自动地将THX中的初值送至TLX,以便TLX从初值重新开始计数。这种工作方式可以省去用户软件中重装初值的程序,所以,工作方式2是一种不需重装初值的计数器,这就给软件系统中T0、T1中断子程序中反复利用计数溢出产生中断带来了方便。
3.2.2单片机外围电路的设计
由单片机硬件设计原理可知:第一,尽可能采用功能强的芯片,以简化电路;第二,留有余地。在设计硬件电路时,要考虑到将来修改、扩展的方便。
(1)晶振电路
89C51单片机的时钟可以两种方式产生,一种是内部方式,利用芯片内部的振荡电路;另一种方式为外部方式。本系统采用内部时钟电路。
单片机内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与作为反馈元件的片外晶
15