自己动手做个智能小车(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. 背面的连接,一般直接用元件剪下来的引脚,然后焊接连接,这样比较牢固。

  2. 为了方便插拨,所以在出口出,采用一个排插,然后采用杜邦线连接。同时另一端,在主板上,同样P3.1
    P3.0引出,加上正负电源,采用排插引出,方便连入:

调试:

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

  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(unsignedint i)

{

unsignedint 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转串口线,连接到电脑上,找到串口几,串口头接上自制烧写器,用杜邦线将烧写器连接到主板上串口上。然后启动软件:

  • 选择CPU:STC89C52

  • 点打开文件,选择"智能小车.hex "

  • 下拉选择COM口

  • 点"Download/下载"按钮

  • 这时,软件等待供电,按下小车主板的电源,就可以看到软件中进度条提示。

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

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

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

自己动手做个智能小车(3),布布扣,bubuko.com

时间: 2024-10-10 09:17:52

自己动手做个智能小车(3)的相关文章

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

自己动手做个智能小车(1) --介绍及工具材料准备 目前物联网发展很迅速,软硬结合也越来越流行.对硬件有些兴趣的我,也想来做点业余玩具. 这是个业余小作品,可以学习一些基本硬件.单片机,底层软件,Android编程等知识,同时不失趣味性. 直接上图: 怎么每张图有个手机?-- 哈哈那是遥控器. 介绍: 这个小车是一个三轮车,为啥采用三轮:方便.灵活.控制简单,比如要转个弯,只需要把这边的轮子速度降下来,就转过去了:还可以原地旋转,两个轮子速度相同,方向相反即可,这是四轮车办不到的. 问,边上的手

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

自己动手做个智能小车(5) --用程序来控制轮子 PWM控制电路完工了,接下来得把电路接到单片机,由单片机进行控制了.回想电路图: 这个图中,输入有3根组,A,B,C,其中,A入口,我们可以当成PWM控制线,B,C为正反转.停止控制线,整个状态可以罗列为下面表格: A控制 B控制 C控制 Q1 Q2 Q3 Q4 电机状态 X 0 0 0/导通 0/导通 0/截止 0/截止 刹车 PWM 1 0 1/截止 0/导通 PWM 0/截止 正转 PWM 0 1 0/导通 1/截止 0/截止 PWM 反转

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

自己动手做个智能小车(2) --基本布局及电源部份 上一章中,我们逻列出所有需要的零件,接下来就是我们开始拼装的时候了.电路图... 没有, 没有完整的,我们就一步步做吧,纯手工,焊到哪就是哪,不通了就飞线(注:正常电路从板子下面走,但如果实在有交叉过不去时,就可以在上面用一导线直接相联,叫飞线,正式design好的板子一般都不用飞的咯). 虽说焊到哪是哪,但是还是得稍微布局设计一下. 观察一下小车,电机分布在两边,前面一轮子,后面空, 所以后面空地方肯定不能压重物,不然会压翻掉. 电路板100

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

自己动手做个智能小车(4) --电机控制电路 CPU是接通了,程序也可以跑了,现在得让程序可以控制电机才行. 前面我们知道,单片机是一个运行程序的芯片,当程序里把变量P0.0变成1时,芯片39接口就变成高电位(5v),变量赋值为0时,接口就变成了低电位(0v),很是方便. 但问题来了,这个如何控制电机呢? 先理一下,我们电机有几种功能:正转.反转.刹车.滑行.调速,这几大功能.现在的问题就是考虑如何用0和1来实现这些功能. 正转.反转,小时候玩过电动机的朋友都知道,将电机的两个引线反过来接,那电

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

自己动手做个智能小车(8)[终]

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

(原)动手造遥控智能小车

序)我只是传感器的组装者 在入职之后,一直比较轻松,等着大数据项目的启动,然后这段时间正好优化下自己的硬件方面的东西,曾经的自己还是c51的编程高手(好吧,高手是瞎吹的,会玩而已),后来放弃去参加周立功杯,继续玩的是java,因为硬件只是兴趣,就是兴趣,业余玩玩而已. 这次做了什么,在这几天终于动手完善一下这些东西,之前一直是挤时间做,现在有的是时间干脆把东西搬到公司,方便多了,经过这些年多积攒,自己还是有近百个传感器,应有尽有,个个曾经都测过,还有多支开发版,c52,树莓b+等,这次主要是做了

stm32智能小车之路

       最近学习了stm32,带着兴趣想做一个智能小车.不得不承认自己还是一个实实在在的菜鸟,好多知识到了用处都不会了,看了半天,才看懂.在网上看了下,全是关于51的,stm32的很少,而且也是很详细,看了还是不懂,自己既然做完了,拿出来和大家分享下,互相学习,希望大家提出点意见.         非常感谢CSDN,让我学到了很多的知识,里面的牛人太多了,给我提供了丰富的资源,作为回报,我也把自己的想法和一些经验(我自认为的)写出来,给没有头绪或不会的人来学习下,希望你们不要走我走过的弯路