新闻中心

EEPW首页 > 汽车电子 > 设计应用 > 计算机控制智能小车的软件设计

计算机控制智能小车的软件设计

作者:时间:2016-10-29来源:网络收藏

摘要:本设计是采用作为从机(也称下位机),而作为中央控制机的主从式系统。主机同时根据从从机接收的过程参数进行判断处理并给从机发送各种控制命令。利用的串行口与的串行口进行可对远程前端进行控制,将单片机采集的数据传送到PC中去,由PC机对数据进行处理和显示,同时把反馈信号发到单片机,实现闭环控制和管理。本设计在VC++6.0的环境下,编写使用C++语言,SQL数据库的串口通信程序,控制由单片机控制的

本文引用地址:http://www.eepw.com.cn/article/201610/309949.htm

0 引言

随着多微机系统的应用和微机网络的发展,通信功能越来越显得重要。在工业控制系统(尤其是多点现场工业控制系统)设计实践中,单片机与PC机组合构成分布式控制系统便是一个重要的应用;主控计算机通过485网络监督管理下位分机的运行状况。在以单片机为基础的数据采集和实时控制系统中,通过计算机中的RS-232接口进行计算机与单片机之间的命令和数据传送,就可以利用计算机对生产现场进行监测和控制。本文设计是以单片机AT89C51为控制核心,附以外围电路,采用反射光耦(1550-01)检测黑白线,霍尔传感器(A04E)+磁钢来实现智能车行驶的计程,采用四位共阴LED实现行驶计程和时间的交替计数显示。同时还充分利用单片机的串口、并口资源和运算、处理能力,来实现小车的按轨迹直线行走、按轨迹转弯、计数小车行驶的距离,最后停车等智能控制系统。避免了当前的电动小汽车基本上只能采取的是基于纯硬件电路的一种开环控制方法,或者是直线行驶,或者是在遥控下做出前进、后退、转弯、停车等基本功能。

1 系统的设计思路

本文设计是采用PC机做上位机和单片机(作为的外围电路的设计)做下位机的主从式系统。PC机控制小车的模拟框图如图1所示。利用单片机的串行口与PC机的串行口进行,通过设置PC机的控制界面(运行的各种控制功能)来实现上位机的数据采集,并由上位机不断发送握手协议(通信协议)信号,直到下位机回应“发送下一帧”为止。之后上位机开始发送正常数据。若下位机反馈“发送下一帧”信息,则继续发送下一帧;若下位机反馈“重发上一帧”,则重发刚刚发送过的那一帧数据;若下位机反馈“无效地址”,则继续发送下一帧数据,从而实现PC机对远程前端单片机的控制。同时将单片机采集的数据通过判断握手协议(通信协议)传送到PC中去,由PC(主)机同时根据从从机接收的过程参数进行判断处理并给从机(单片机)发送各种控制命令。从而实现PC机(上位机)对智能小车外围电路(下位机)的控制。

计算机控制智能小车的软件设计

下位机设计采用AT89C51单片机芯片来实现智能车模型的自动寻迹、自动控制等功能,利用反射光耦(1550-01)检测黑白线来实现;采用霍尔传感器(A04E)+磁钢来实现智能车行驶的计程;同时采用四位共阴LED实现行驶计程和时间的交替计数显示。本文上位机设计采用在Visu al C++环境中,直接使用Windows提供的API函数实现一个动态链接库(DLL),通过编程工具(VC)设计一个与智能小车通信的上位机控制界面,在上位机和下位机之间通过MAX485接口芯片与控制软件结合来监测。MAX485是半双工的,可以先检测/RE和DE的电平,判断芯片是处于接收信号还是发送信号,然后再检测AB的电平,当A引脚的电平高于B端时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。从而实现上位机与下位机(由AT89C51单片机控制的智能小车)的半双工串行通信。

2 系统的软件设计

单片机的通信软件采用AT89C51的汇编语言编写,单片机的发送和接收采用中断程序。准备发送的数据存放在以内存50H为首地址的连续10个单元中。本设计采用单片机芯片AT89C51为核心控制器,通过编写控制程序(汇编语言)来控制小车的正常行驶、左右转弯、后退行驶、停止行驶、检测金属、计程、行驶时间、告警和上位机与下位机的通信等。

2.1 系统的下位机软件设计

2.1.1 控制主程序设计

单片机主程序图如图2所示。控制主程序是通过中断服务程序实现的,采用外部中断0、外部中断1和T0中断来实现主程序的控制,使各中断子程序交替运行,显示不会产生干扰,且能在显示部分交替进行显示。

计算机控制智能小车的软件设计

2.1.2 小车行驶程序设计

小车行驶流程图如图3所示。小车行驶控制程序启动后程序进入5S的倒计时状态,并开启四位数码显示工作;5S倒计时结束后程序开始运行黑带检测程序,由通过光电传感器(1550-01)检测到通过LM324放大电路放大的信号输入来判断小车是否正常行驶,若否,则由相应的程序来控制小车的左转或右转来达到正常行驶;当传感器检测到停止线时小车立即停止。

计算机控制智能小车的软件设计

2.1.3 时间计数程序设计

时间计数子程序图如图4所示。小车行驶的时间长短需要通过时间计数程序来控制。时间计数程序通过累加器每秒钟计数一次来实现计数功能,并由十进制调整指令(DA A)来进行个位转换为十位的功能,同时特定的检测控制指令(CJNEA.#59H.JJX1)来判断是否达59S,若否,则进行高低位分别存储并送显示部分显示;若是,则分位加1秒位清0并送显示部分显示。

计算机控制智能小车的软件设计

2.1.4 行驶距离记录程序设计

距离中断子程序图如图5所示。小车行驶距离的记录通过霍尔传感器来检测小车车轮行驶转动的圈数,并通过中断服务子程序来进行换算成相应的十进制的(距离)数据,再特殊的换算控制指令:


上一页 1 2 下一页

评论


相关推荐

技术专区

关闭