我是在大三的时候正儿八经开始学51单片机。
大二,有了一年焊接各种小电路的经历,对于阻容和二三极管等等器件有了一些粗浅的基础认识以后,我决定迈向一个全新的领域,也是我这一两年经常听说的一个东西——51单片机。
话说回来,那时候,51和单片机对我来说几乎是同义词。
在我买开发板以前,我先花了几个月的时间自学C语言——这件事情从高中开始到大一,我前后尝试了四五次一次都没走到头,这次因为想学51单片机,终于做成了。
然后我想自己焊一个下载器,参考网上伟纳SP200的电路图,前后花费了将近2个月时间——唔,这部分跟51没太大关系,我只是想撑这个机会,学习如何画板和用覆铜板做PCB而已。最后功败垂成,也就算了。
然后没太多废话,110快买了一个开发板,就开始玩了。
当时新学期有开51这门课,但是讲得太慢,讲得太多余,我基本上是自己上课看书,下课了就回到宿舍在笔记本上用keil写程序。那个阶段,写的是各种基本程序,什么定时器,什么外部中断,当时调试得最麻烦的是一个双51的串口通信程序。
然后就没什么事了。因为后来我开始准备考研复习,期间参加论坛里一个MAXIM的活动——现在想起来,原来我接触51也是一年多以前的事情。
去年寒假那段时间,碰巧经宿舍一个同学介绍,一个我们学校其他学院的一个师兄,想找我合作,试着设计一个小产品。当然,这玩意对于51而言就是一个定时器,只是要配合一个简单的传感器,那东西也是我无意做出来的。
不过这东西现在搁浅,据称他在申请专利,我没多留意,因为觉得不是一个太复杂的东西。
然后就是论坛里的DIY,自己组织,自己参与,并有了一个多两个月的纠结时间。不过好歹过去了。就是那个LC测量小工具。这个东西最后完成了,但不是很完美,因为我开始打算拿2051做,后来HEX体积太大,就换了8051,为了快,就在开发板上做。前阵子想把东西独立出来,重新做一个,但是,嘿嘿,出了点故障,该死的LM311没起振。
还有就是毕业设计,做的是DS18B20+无线数传,也是基于51做的。
//========================================================================================
作为入门而言,我觉得,首先要做好一些必要的物质准备。
1 厘清几个概念:
下载器(下载线):
我们是在电脑上写程序,然后通过软件和电脑接口把代码烧进单片机里去。所以我们需要一条下载线或者下载器。
然后,这个东西不像USB,它不标准,也不是通用的。
51的下载器归51用,AVR的归AVR。很多时候,就是同一个系列,不同型号,它使用的下载方法不一样,下载器也不能简单通用。
比如说,AT89C51和S51就不一样。S51可以支持ISP,C51不行。
开发板/最小系统
所谓最小系统就是可以让单片机工作的最小电路系统,我可以告诉你一个最简单的最小系统就是一个单片机,一个晶振,若干个电容电阻,组成晶振电路,复位电路。
甚至,有的单片机自带内部振荡器,无须外部复位电路,那么它本身只要接好相关引脚和上电就已经是一个最小系统了。
当然了,我们说的最小系统通常至少带一路LED,可以看状态。
而开发板就是把我们学习到使用到的一些常见的外围模块和单片机做到一起,方便大家学习,让你不会焊接和电路也可以首先编程,体会一下单片机的神奇的学习环境。
绝大多数开发板都已经集成了下载线路(需要配备下载线或者只需一根USB线就OK了)。
这里,要跟大家提一些自己的看法,纯属个人见解,欢迎拍砖,另,本人不卖开发板,有很多时候有人问我要建议,我只是介绍一个途径——做一个开发板对于我等老手来说撑死就是一个下午的事情,但对于新人,这里面经历的折腾足以让他逃跑,所以购买开发板可以减轻入门难度,所以,请不要再说我是在做广告。下面将会吐槽现在卖开发板的——这种不赚钱的活我才不干。)
先写到这里,和朋友约了出去玩,晚上回来接着写。
[
本帖最后由 辛昕 于 2011-10-2 00:05 编辑 ]