基于AT89C52的汽车驾驶模拟器单片机系统设计
由于本系统中需要处理的开关量和模拟量较多,因此选用8255对输入输出接口进行了扩展。将AT89C52的P1口作为A/D、D/A转换接口,用于模拟量的输入和输出,A/D、D/A转换芯片分别选用ADC0809和DAC0832,片选信号由高位地址线P2口提供。8255的扩展接口用作开关量的输入和输出,8255的端口选择和片选信号由经74LS373锁存后的低位地址线提供。
另外,AT89C52还提供了一个具有多级 通讯功能的全双工串行接口,可以用作与主控计算机之间进行通讯。由于RS-232串行通信端口是PC机的标准接口,而且RS-232用作双向数据通信时接线十分简洁,因此选用RS-232作为通讯接口[4]。但是,RS-232的输出信号不但有正电压,还有负电压,所以选用半导体公司的RS-232接口芯片MAX232实现信号转换。图2为汽车驾驶模拟器单片机系统硬件电路简图。
图2 系统硬件电路简图
2.3软件系统的设计
汽车驾驶模拟器单片机软件系统需要完成模拟量和开关量的采集和处理、串行数据的发送与接收、控制信号的输出与显示、故障的监控与保护等功能。软件采用模块化设计思想,通过汇编语言编制而成,主要由主程序、定时器中断服务程序、串行口中断服务程序、数据采集和处理程序、信号的输出与显示程序等几部分构成。
图3 软件系统程序流程图
主程序主要完成系统的初始化工作;定时器中断服务程序主要完成看门狗功能,在单片机发生异常情况时,能使程序及时复位,保证单片机系统能够正常工作;串行口中断服务程序主要实现单片机与主控计算机之间的通讯;数据采集和处理程序主要完成模拟量和开关量的采集,获取驾驶员的操控数据;信号的输出与显示程序将主控计算机的控制信息传送给单片机,用于控制指示灯和仪表的显示输出。图3为汽车驾驶模拟器单片机软件系统的程序流程图。
3结论
基于单片机的数据采集系统成本相对较低,接口的可扩展性好,同时,模拟量和开关量的预处理工作也可以由单片机来完成。系统完全可以满足汽车驾驶模拟器的交互性和实时性要求,已在所开发的汽车驾驶模拟器中得到了应用,取得了较好的效果。
模拟信号相关文章:什么是模拟信号
光电开关相关文章:光电开关原理
评论