while(echo&&flag); /*echo为1计数并等待*/
   TR0=0;     /*关闭计数*/
  TR1=0;
high=TH0;
low=TL0;
   temp=1.0*(high*256+low)*0.017;     /*厘米*/
}    

图10 测距子程序流程图
3.3 显示程序设计
程序设计思路:首先给段选和位选信号编码,然后共段选信号,决定数码管显示的内容,然后延时,送位选信号,延时,然后关闭段选与位选,循环[14]。如图11所示。
3.4 Keil软件简介
本设计变成采用C语言编程,但C语言不能直接被单片机直接识别,需要将C语言转化为单片机能识别的机器语言,一般不采用人工编译,所以我们需要用到一款软件Keil。
Keli是一款稳定,可靠,高效的应用开发软件之一,它提供了C编译器,连接器、宏汇编、库管理和一个功能强大的仿真调试器等开发方案,通过一个集成开发环境(uVision)将这些部分组合在一起。它适用于不同层次的用户,基本满足从专业的应用开发工程师到初学软件开发的学生的使用要求。如果使用C语言编程,那么Keil将是不二之选,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会大大的提高工作效率。

图11 显示子程序流程图
3.5 STC_ISP_V480的简介
在我们将程序下载到单片机的时候,需要用到一款软件STC_ISP_V480,在用STC_ISP_V480下载软件之前,应该先给出ISP的C程序源代码ISP.C。要注意的是:此程序是在Keil-C中要建立工程文件,包含IAP.C函数,并且在P.C和ISP.C中都要保留STC的定义。传入用户代码时,需要与计算机进行通信,一般采用RS232串行通信,数据协议采用简单协议[15]。
4 系统的仿真和测试
由于传感器测距在proteus中无法实现仿真,故用三个开关(K1、K2、K3)代替,K1表示所测距离temp<20cm,K2表示所测距离20cm=<temp<=50cm,K3表示所测距离temp>50cm。
当K3闭合时,两个电动机同时正转,也就是直行,象征性的显示与障碍物的距离为60cm。如图12所示。
当K2闭合时,左轮停止,右轮正转,即左转;与障碍物的距离象征性的显示为40cm。如图13所示。
当K1闭合时,距离太近,转不过去,然后就两轮反转,也就是后退,后退一定时间后,右转,直到满足其他距离条件后作出相应的动作,仿真图如图14所示。
 
图12 仿真图k3闭合
5 总结
文介绍了一种基于AT89C52的电动智能小车设计方法,采用C51语言进行软件系统的设计,并通过PROTEUS进行了仿真,仿真结果证明本设计切实可行,很好的实现了预期的功能。同时,另外,在在本系统基础上,不必修改硬件电路,

 
图13 仿真图k2闭合
 
图14 仿真图k1闭合
只需通过对源程序进行相应的修改,就可以实现不同的功能,实现数字系统硬件的软件化。
上一篇:MSP430F413单片机低功耗温度计的设计+源代码+电路图
下一篇:80C52单片机低频数字相位测量仪的设计+仿真电路图+源程序

基于Kinect手势识别的遥操...

冷库GPRS的无线数据采集系统设计

STC89C52单片机盲人用时钟的设计+电路图+程序

PLC物料自动分拣系统的设计+源程序

单相电压型逆变电路的谐...

粉料称重装置的单片机控...

太阳能电站的自动跟踪系...

遥感土地用变化监测国内外研究现状

浅析施工企业保理融资成...

大规模MIMO系统的发展研究现状

从企业eHR建设谈管理信息...

PCI+PID算法直流力矩电机速...

提高小學语文課堂朗读教...

高效课堂教师问卷调查表

《水浒传》中血腥暴力研...

MNL模型历史城区居民活动...

小型通用机器人控制系统设计任务书