2.7 通讯模块设计
当小车设计完成时,需要将hex格式的程序烧录到单片机中这就需要MAX232模块完成单片机与计算机之间的通讯。
2.7.1 MAX232介绍
MAX232是德州仪器公司推出的一款芯片,它兼容RS232标准 ,由于电脑串口RS232 电平是+10v-10v ,而一般的单片机应用系统的信号电压是TTL 电平0 +5v, 那么电瓶的转换就需要用到MAX232。
2.7.2 MAX232与单片机的链接
AT89C52片内有一个串行I/O端口,通过引脚RXD和TXD可与外设电路进行全双工的串行异步通信。它的串行端口有4种基本工作方式,工作在哪一方式由编程设置确定,其中方式0主要用于外接移位寄存器,以扩展单片机的I/O电路;方式1多用于双机通信或与外设电路的通信;方式2,3除有方式1的功能外,还可用作多机通信,用来构成分布式多微机系统。串行通信的波特率可以程控设定。在不同工作方式中,由时钟振荡频率的分频值或由定时器T1的定时溢出时间确定,使用起来十分方便灵活。
当小车的设计完成时将编译完成的软件程序通过特定的软件工具下载到单片机中,然后给单片机上电,就可使其按照程序完成相应的功能。
3. 软件设计
本设计中,充分考虑到软硬件电路的结合,采用超声波传感器进行测距。系统软件根据模块化程序设计的思想,将主程序划分为相互独立的功能模块,如测距模块、改变占空比模块、显示模块等。
系统代码采用C语言编写,以Keil为开发环境,与Proteus软件联合调试,实现系统的程序设计。整个程序主要包括主程序、键盘扫描子程序、温湿度采集子程序、液晶显示子程序、报警子程序等部分组成。
3.1 系统主程序设计
程序设计思想:首先要对系统进行初始化,主要完成对单片机初始状态的设置。然后超声波模块开始检测距离[13]。系统的主程序流程图如图9所示。
3.2 测距子程序设计
程序设计思路:首先初始化,标志位清零,然后发送一个触发信号,然后开始等待回响信号,一旦检测到高电平,开始计时,直到信号结束,关闭计时,然后就可以取出计数,进而计算出距离。其程序流程图如图10所示。
void T1_timer() interrupt 1
{
flag=0; TH1=0;
TL1=0;
TR1=0; /*关闭计数器T1*/
}
void sensor()
{图9 系统主程序流程图
TH0=0;
TL0=0;
flag=1;/*先做好在测距范围的准备*/
tri=1;
echo=0;
ET1=1;
TR1=1; /*启动定时器T1*/
tri=0; /*发送触发脉冲*/
delay_xus(1);
tri=1; while((!echo)&&flag); /*当echo为零时等待*/
TR0=1; /*开启定时器T0用于计算时间*/ AT89C52的电动智能小车系统设计+仿真电路图+源码(5):http://www.751com.cn/zidonghua/lunwen_728.html