一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 3
2 系统的工作原理与结构
2.1 系统的工作原理
本设计是一种防酒驾和防疲劳功能的汽车安全系统设计,是以两块STC89C51单片机作为控制器,其具体的工作原理为:
2.2 系统的结构
系统控制启动系统处于工作状态部分防止疲劳驾驶部分图2-1 系统结构框图
防止酒后驾驶部分
图2-2 系统原理框图
2.3 系统的结构特点
一种防酒驾和防疲劳功能的汽车安全系统设计,具有如下结构特点:
(1) 数据采集系统以STC89C51单片机为控制核心,外围电路带有LCD显示、复位电路、晶振电路等,不需要其他计算机,用户便可以与其进行交互工作,完成对数据的采集、计算、分析、判断、处理、存储等过程。
(2) 系统具有小型化、低功耗、高性价比、高灵敏度等特点。
(3) 从便携式的角度出发,系统通过微动开关设置时间阈值和酒精浓度阀值,结合单片机的控制,有效的实现了人机交互操作、界面友好。
(4) 软件系统都采用C语言进行编写,在兼顾实时性处理的同时,也方便了对数据的处理。
(5) 可以实现防止酒后驾驶和防止瞌睡驾驶的功能,且对汽车点火及报警具有相对独立的控制。
(6) 能够有效的模拟现实中的情况,具有很强的实际效果和应用价值。
一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 4
3 系统的硬件设计
本系统由四个1.5V的干电池对防止疲劳驾驶部分进行电源供电,由防止疲劳驾驶部分的单片机和霍尔传感器共同控制防止酒后驾驶部分的电源供电
3.1 元器件的选择
3.1.1 单片机的选择
单片机是单片微型计算机译名的简称,在国内也被常称为“单片机”或“单片微机”。其包括中央处理器CPU、只读存储器ROM、随机存储器RAM、串行口和I/O口、中断系统、定时器/计数器等。现在的单片微机已不仅指单片微型计算机,还包括微计算机、微控制器、微处理器和嵌入式控制器[26]。
本次设计选用的单片机是STC89C51单片机,属于STC系列单片机。该系列单片机是由美国STC公司最新推出的一种新型51内核的单片机。片内含有UART、SPI、A/D、Flash程序存储器、PWM、SRAM等模块。
STC89C51是高性能、低功耗、超强抗干扰的CMOS 8位微控制器,是采用8051核的ISP在系统可编程芯片。其最高的工作时钟频率为80MHz,片内含有4KB可反复擦写1000次的Flash只读程序存储器,片上的Flash可允许程序存储器在系统上编程,亦适于常规编器。在芯片内,集成了ISP Flash存储单元和通用的8位中央处理器,配合PC端的控制程序可以将用户的程序代码直接下载到单片机的内部,速度更快,为用户省去了购买通用编程器的麻烦。
STC89C51具有以下标准功能:看门狗定时器、全双工串行口、4字节的Flash、片内晶振及时钟电路、2个数据指针、512字节的RAM、3个16位定时器/计数器、32位的I/O口线、通用异步串行口等。
STC89C51单片机作为控制核心,该单片机的I/O口控制图如下图3-1所示:
一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 5
图3-1 STC89C51的接口控制图
图3-2 STC89C51的实物图
3.1.1.1 工作模式
(1) 空闲模式:典型功耗2mA。
(2) 掉电模式:典型功耗<0.1μA,可由外部中断唤醒,中断返回后,继续执行原程 序。
(3) 掉电模式:其可由外部中断唤醒,适用于气表、水表等电池供电系统及便携设 备。
(4) 正常工作模式:典型功耗4mA~7mA。 3.1.1.2 STC89C51的引脚说明 VCC(40引脚):电源电压。
一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 6
VSS(20引脚):接地。
P0端口(P0.0~P0.7,39~32引脚):P0口既可以作为输入/输出口,也可以作为地址/数据服用总线使用。当为输入/输出口时,其是一个8位准双向I/O口,上电复位后处于开漏模式,这个时候需要外接10K-4.7K的上拉电阻。作为输出端口时,每个引脚能驱动8个TTL负载,即能够以吸引电流的方式驱动8个TTL逻辑门电路,并对端口P0写入“1”时,可以作为高阻抗输入端用。此外,在访问数据存储器和外部程序时,P0口也可以提供低8位地址[A0~A7]和8位数据[D0~D7]的复用总线。此时,P0口无需外接上拉电阻,其内部的上拉电阻有效。
P1端口(P1.0~P1.7,1~8引脚):P1口是一个内部带上拉电阻的8位双向I/O口。P1的输出缓冲器可以驱动(吸收或者是输出电流方式)4个TTL负载。对端口写入“1”时,通过内部上拉电阻把端口拉到高电位,此时可用作输入口。当P1口作为输入端口使用时,因为有内部存在的上拉电阻,所以被外部拉低的那些引脚会输出一个ILL。
此外,P1.0和P1.1还具有第二功能,具体参见下图3-3:
图3-3 P1.0/P1.1第二功能
P2端口(P2.0~P2.7,28~21引脚):P2口是一个内部带上拉电阻的8位双向I/O端口。P2的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL负载。对端口写入“1”时,通过内部上拉电阻把端口拉到高电位,此时可用作输入口。当P2口作为输入端口使用时,因为有内部存在的上拉电阻,所以被外部拉低的那些引脚会输出一个ILL。
当在访问8位地址的外部数据存储器(例如,执行“MOVX @R1”指令)时,P2端口输出P2锁存器的内容,在整个访问期间不会改变。当在访问外部程序存储器或者16位地址的外部数据存储器(例如,执行“MOVX @DPTR”指令)时,P2端口输出高8位地址[A8~A15]。
P3端口(P3.0~P3.7,10~17引脚):P3是一个内部带上拉电阻的8位双向I/O端口。P3的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL负载。对端口写入“1”时,通过内部上拉电阻把端口拉到高电位,此时可用作输入口。当P3口作为输入端口使用时,因为有内部存在的上拉电阻,所以被外部拉低的那些引脚会输出一个ILL。P3口除了作为一般I/O口之外,还具有一些第二功能,如下图3-4所示:
一种防酒驾和防疲劳功能的汽车安全系统设计—朱正清 7
图3-4 P3引脚第二功能
RST(9引脚):复位输入脚。当看门狗计时完成之后,RST引脚就会输出96个晶振周期的高电平。特殊寄存器AUXR上的DISRTO位可使该功能无效。而DISRTO默认状态下,复位在高电平有效。当连续输入两个机器周期以上的高电平时,该引脚为有效,这可以用来完成单片机复位初始化的操作。
XTAL1(19引脚):振荡器内部时钟反相放大器输入端口和外部时钟源的输入端口。
XTAL2(18引脚):振荡器内部时钟反相放大器输出端口,接外部晶振另一端。当直接使用外部时钟源时,可浮空。
PSEN(29引脚):可作为标准I/0口,也是外部程序存储器选通信号输出引脚。 ALE(30引脚):可作为标准I/0口,也是地址锁存允许信号输出引脚/编程脉冲输入引脚。在Flash编程时,该引脚可用作编程输入脉冲。
EA(31引脚):可作为标准I/0口,也是访问外部程序存储器控制信号。当需要
从0000H到FFFFH的外部程序存储器读取指令时,接地。
其他引脚功能,如下图3-5所示:
图3-5 其他引脚功能