自己动手做个智能小车(3)

自己动手做个智能小车(3)

——让小电脑运行程序吧

通了电源,也有了初步的规划,我们就把主芯片给接上,并让其工作起来。

这个主芯片就是89C52单片机,有人说,单片机没学过啊,怎么没,没关系,在里,我们就从最简单的入手,然后再慢慢加功能。我们知道学个新程序,一般从HelloWord开始,那单片机同样,也从其本的开始。

51单片机,有40个引脚,其中,芯片从一个U口的左侧开始计数,然后一圈编号,40脚与20脚接电源的正负极。其中,1~8 0~17 39~32 1~28 为单片机的P1 P3 P0 P2口,所谓P口,可以理解为与外界面进行交互的接口,当接口输出1则用万用表接上可以量到5v,当输出0时,则输出0v。同样输入也一样,即可把数字指令,变成电压输出或输入。

好了,简单介绍后,如何让芯片工作呢,简单电路如下即可:

注意点:

18、19 口接上晶振、和两个磁片电容后,再接负极

9口,接上电容后,再接个开关,这个为重启健,当然这块电路可以不接,可以直接开关电源来重启么。

31、40口需接上电源正极5v。

当然,芯片要运行的话,还要写入程序,写程序当然在电脑上,如何存入51芯片,这里我们自制一个烧写器,通过串口方式,电路如下:

 

开工焊板:

先找好元件,排列好:

 

这么大芯片,可不能直接焊上去,所以得焊上底坐,就可以方便插拨了。

排好元件,反过来,焊吧,焊接时,40个脚不用所有的都焊上,可以只选择要用的先焊。

 

主板焊好后,就可以焊编程器,这里就不再详细描述焊接过程,比较容易:

注意点:

 

 

 

调试:

    写程序,小步快跑,写一段试运行一段,同样,做到这,我们也要运行一下了:

  1. 我们知道,编程器,就是一个串口转换器,于是调试,就采用串口调试工具咯,但没有被测的串口设备,怎么办?从自的同时编程器中我们知道,有4根线,2根是电源,正负极,还有2根是数据线,当然就是一个进一个出,于是我们这样做,把编程器的数据线连接上。

这样,即发出的数据,就立即可以收到了。将USB转串口线插上电脑,安装上驱动,然后在设备管理器中就可以看到:

记下其串口编号:

启动串口调试工具:

在里面输入信息后,点发送,发现立即收到,好,证明完全OK了。

 

  1. 单片机,直接通电肯定没用,得有程序,所以得先编程。准备开发工具,常用的采用uVersion Keil c51。

    一、安装并启动 (这里略)

    二、新建工程

输入名称"智能小车",然后点确定:

选择AT89S52,再点OK:

这里点NO:

再点工具栏上的New:

新建后,会出现一个空白内容页,再按下Ctrl+S 弹保存,名称为main.c:

再右健SourceGropu1 ,选Add Files to Group "source Group1",在弹出的窗口中选择刚才保存的main.c。

为了正常生成烧写文件,还需要修改一下,在Target1 右健菜单中,先Options for… 在弹出窗口上,第三页,勾上Create Hex File:

这样,工程就建好了,就可以编入代码,如下:

按下F7,编译,在下面可以看到0 Error 0Warnings 表示已经编译成功。

 

这是个简单的测试程序,功能P0口每秒后值变化一下,0~5~0~5… 这样变。

附代码如下:

#include<reg52.h>

 

/*****************************************************

* 函数功能:延时若干毫秒

* 入口参数:j

***************************************************/

void Delay(unsigned int i)

{

unsigned int j;

for(;i>0;i--) //变量i由实际参数传入一个值,因此i不能赋初值

for(j=0;j<125;j++)

{;}

}

 

void main()

{

while(1)

{

P0 = 0xFF;

Delay(1000);

P0 = 0x00;

Delay(1000);

}

}

    好了,这段代码应该比较容易看懂,不多解释了,还是赶紧让CPU跑这段代码吧。 按下F7,编译生成,最后,在工程文件夹中,可以看到一个"智能小车.hex"的文件这个就是烧写用的。那烧写用什么软件呢,我这里用的是"stc-ispv4.79" 网上可以方便下载到。

将USB转串口线,连接到电脑上,找到串口几,串口头接上自制烧写器,用杜邦线将烧写器连接到主板上串口上。然后启动软件:

 

好了,写入成功后,小车主板上的单片机就立即运行了。但如何看出来结果呢,别急,有2个办法:

方式一:拿个万用表,一头接电池负极,一头接单片机39口,扳到直流电压档,可以看到,万用表的指示,一会儿5v, 一会儿0v。 -----OK 看到这效果,说明运行成功了。

方式二:拿根导线,拿个LED,一头焊上个1K的电阻,电阻另一头接上电池负极,另一头接到单片机39口上,就可以看到小灯一闪一灭的。 ---这样也就说明单片机在运行了。 接小灯时注意正负极,新的可以看出,长脚的是接正极,即要接单片机。

原文地址:https://www.cnblogs.com/zjfstudio/p/3764797.html