cpubbs论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

LabVIEW+单片机学习套件全套教程资料下载[免费]LabVIEW论坛精华列表贴USB0816数据采集卡《LabVIEW宝典》
LabWindows/CVI论坛精华贴NET0816以太网数据采集卡RC0210远程设备授权系统 关闭关停锁定打开设备 户外分布式数据采集
NET1624低速高精度以太网数据采集卡WIFI0824SD无线WIFI网络数据采集卡脱机运行 SD存储 小尺寸微型 串口采集远程采集 安卓 手持移动采集 纪录仪
查看: 1637|回复: 3

[复制链接]
发表于 2004-11-6 03:56:57 | 显示全部楼层 |阅读模式
前言:

近来在论坛总是见到一些菜鸟们在大叫:“我想学单片机”,“我要学单片机”,“如何
入门啊?”,“你们怎么这么厉害,是怎样学的??”等等等等一系列的问题,实在是看
多了也感到烦了,今天,就由我电子白菜厚着面皮,顶着无数老虾的砖头,在这里写上一
篇单片机学习心得,让菜鸟们勇敢地跨出第一步。


首先解释什么是虾米先,以我个人意见吧,1。来单片机论坛的时候能够看懂大多数家伙在
说什么,(当然不是看懂他们在灌水的帖子啦)并且能适当地提出问题(非弱智的问题)
和讨论,解答别人的问题。 2。当希望自己用单片机开发一个东东,或公司要求开发一个
方案的时候,能够很快地在心中建立一个基本模型,知道应该需要些什么知识,而自己又
掌握多少,并根据一定的灵感开始搜索资料。
就是以上这2点了,如果你满足了,基本下面的东西你就当作是故事来读就可以了。

然后是心态问题,不久前看到有人这么问:“我想学单片机啊,因为听说很有钱途,请问
学那种单片机最有钱途??”这个问题,我看到了就觉得反感,可以这么说,在这个坛子
混的单片机大虾只有两种:第一是一直从事单片机类工作的;第二是爱好者,爱好者包括
从事单片机工作的和非单片机工作的。的确,单片机是有一定的钱途,但对于那些本来不
是从事单片机工作的,而又没有兴趣的,单从钱的角度出发的家伙,想学好单片机??恐
怕是做白日梦。我个人认为,技术,是兴趣、生活需要、和个人目标的结合。而不是单单
的向钱看!要知道,当一个相当艰难的项目完成的时候,开发者那种手舞足动的兴奋,不
是完全来自于项目提成的奖金!所以炼虾米的第一要素是:爱好!!
以上是我认为学单片机应该具备的技术心态。

然后该说到单片机的学习上了,很多人抱怨自己学校没有单片机课上,所以自己不会单片
机。其实并不然,以我为例,我以前在学校的确有单片机的课上,不过直到上完一个学期
的单片机,我还是不知道自己在学什么!!考试的时候老师预先公布资料和答案了,考试
的时候我们就抄上去就是了,结果,到考完试的一刻,我突然有点领悟:“我知道什么是
中断啦”。。。。是的,一个学期的单片机,我就知道了这么多了。后来?后来是完全的
自学,自己研究走出来的,如果靠学校那点所谓单片机,我早捡破烂去了!!所以对于我
们这类非名校的学生哥而言,技术离不开自学。


第一章:偶然

这篇文章叫虾米是怎样炼成的,而不是什么单片机速成,所以我是在写故事,而不是在写
教材。
我单片机起步于2002年10月1号,这个是个重要的日子。但注意,我在2002年9月的时候有
了自己第一台烧写器和简单的实验板,但那时候不叫起步,因为我把这东西买回来了,还
根本不怎么会用。
为什么我记得是2002年10月1号?而没有记错为10月2号?呵呵。。。
2002年国庆前几天,学校开始举办电子设计竞赛了,因为学校每次举办比赛,经费都是问
题,所以这个什么电子竞赛根本不会隆重宣布,其实我当时还不知道的呢。直到有个同学
偶然跟我提起,学校有比赛啊,你有打算参加吗?我当时不知道发了什么疯,就说,好
啊,我参加!这样,一个单片机,甚至是电子白痴的命运就改变了。。。
然后就是出方案啦,我也不知道什么时候发梦梦见个什么古怪产品之类的,总之我就提出
了一个用PC无线控制设备的方案。PC端用VC写的串口程序,传到单片机上,然后单片机启
动无线发射模块,远程设备接收到信号后,由另一个单片机负责处理,控制一个16*2LCD和
4个LED灯。
对于当时的我来说,难度真的很大的,因为我不会VC,不会单片机,不会LCD,无线发射模
块我是买了一对,但没用过。也就是说,白手起家!!
但我还是决定做,不然很没面子。于是和2个MM组合起来,成为3人组报名学校的设计大赛
了。
和MM组有个原因,1。方案是我提出的,我希望自己能够独立完成 2。组男生的话可能会在
设计上有争议等的,随时破坏计划,还是MM听话点。。。。其实在最后,这两位MM的表现
完全是出于我意料,他们实在是强!!很多问题都是他们帮忙解决的呢。


第二章:奋斗的开始

可能这篇故事写的不是很生动,也没什么趣味,有些朋友们或许看到一半就溜了,,但我
依然希望能有人愿意看下去。。。也希望能让一些还没进门的菜鸟有所感悟。
和MM们组队后,‘工程’就要开始了,题目是“计算机远程控制系统”(呵呵,很牛的名
字吧:),但由于我的方案相对于当时我们的实力来说是超前不少的,所以和MM们有个协
议,因为我们都不会VC串口编程(VC也不会),所以VC部分我必须负责全部并在最短时间
内完成,不然整过计划就不用再做了。回应第一章所说的,为什么我记得是2002年10月1
号?因为我是在那天起呆在家里整整7天,干什么?研究VC啊!!!这是我到现在为止,第
一个没有去玩的国庆节。从早到晚,除了睡觉,吃饭上厕所,就是屁股不离座,眼不离电
脑!!你说,我会忘记吗??
当时做了一条串口线把电脑的两个串口连起来,然后串口1发给串口2,一边是用我的程
序,另外一边是用串口调试软件。还有手上的几本VC书,就这样写出我的第一个VC程序出
来。还记得当时成功发送的第一个字节是'r'!!到现在我还记得很清楚,当时真是开心死
了,还马上把串口线和程序带回学校(我是走读生)给MM看,并正式宣布我们的项目开
始。这国庆7天假期个中的困难和痛苦我就不想说了,只知道那是我技术之路的第一个起
点。
人家都说VC难入门,是的,真的很难啊,不过你要知道VC存在并为这么多程序员所用,自
然有他的道理,只要愿意坚持,困难是能够克服的,而且,你并不是第一个面对他的人,
所以没有任何道理退缩。看到别的大虾能够成功,那自己为什么不行呢?所以炼虾米的第
二要素是:坚持!!

第三章:尝试成功

在VC写的串口程序成功后,我们的计算机远程控制系统就要开始了。其实,当时的VC程序
只能发数据,并不能收,因为收的话如果是mscomm要利用消息,如果是API的话要用线程,
上面两个我当时都不懂,不过没问题,我的题目是远程控制,没有说是远程监控,所以单
发就够用了,:)。剩下的就是单片机接收串口数据,然后控制射频模块发射,接收端就
是模块接收后的单片机处理,例如亮LED和控制16*2LCD。
那时侯如何分配51的IO脚也弄了个半天呢,最后和2个MM协调好后,用了张A3纸画了两个大
大的51,然后那个脚做什么,哪个脚接LED,那个脚接16*2LCD,那个脚按键。。。呵呵,
是夸张了点,但当时还是菜鸟阶段啊~~~~
弄好管脚分配了,就做板子,别以为我很有钱,做工业板,我是拿万能板飞线做的,当时
焊个MAX232也焊了半天,勉强焊好了个有串口的最小系统了,发射模块都还没焊上呢。但
这时候要分工合作利用时间,于是开始写程序了,基本上是边看书本边写程序,半猜半
写。用的是汇编。那时侯没有这里的家伙这么幸福,300元就能买个老丁的仿真器来调试程
序,我用的是最纳闷的方法:N片51侍侯,130元的便宜烧写器写程序,编译通过,烧一
片,插上板,上电!!出什么问题?拔下,猜猜原因后改程序,再烧再插拔。(当时没有
S51的,其实那时侯有我也不会用ISP的),于是就是这样调试程序的了,其中多繁琐可能
没多少人明白,因为你们买了个仿真器就插到上面去了,到程序完成了才拔掉。
直到整个项目完成为止,我有一片51烧坏了,估计是寿命到达终点了,1000次的寿命,代
表我至少就这样插拔了1000次单片机。真不知道是什么滋味了。
总之当时就是这样天天写,晚晚写,还得和MM逃课了一个星期,终于搞定,发射距离是30M
左右啦。20M内接收完全没有错误。还能在PC上按键,然后字母发射到远处的16*8LCD显示
出来。(其实现在还想不通这么简单的东西当时居然要花一个多月呢,如果是现在,估计
单片机程序我是一小时就出来了)
电子大赛结束,我的MM组合赢得学校的一等奖(林中无老虎,菜鸟称大王咯:),后来这
东东改进一下就赶着参加了广东省的挑战杯了,蒙混骗了个3等奖。

第四章:真正的开始

比赛是有两个一等奖的,还有一个是我们邻班的家伙,他当时比我牛多了,做的是串口的
电子阅读器,把文章从PC下载他的阅读器上就能阅读了,中文的哦:),其实他当时就已
经会VC的DIRECTX编程了,还喜欢用VC来写游戏,比我牛多了。之后的大学单片机生涯我都
是在和他比拼中度过的,这样进步当然就快啦。现在这个家伙和我住在一起了,呵呵,不
过他向驱动程序的路走,我向嵌入式发展,此为后话。
自从有了第一次尝试成功,我就开始沉迷起来了,特别在放假的时候,更是全情投入,我
戒掉电脑游戏也是从那时侯开始的,现在有多少大学生敢说他不玩游戏??我看没多少
吧?其实现在想来,玩游戏真的浪费了我很多的生命啊。。回头看一看,游戏在你的回忆
中并没有多少残留,也就是不值得去回忆,那我们弄来还有什么用?所以我从不玩游戏。
说回来,我开始沉迷在单片机的研究中,也经常省下点钱上落广州购买点芯片等东西,开
始还是自己用万能板焊电路板的,玩玩键盘扫描,做做动态显示8段管等的。后来买了块
128*64的LCD,学人家搞起汉字显示来了,好象搞了一个多星期才能输出个汉字,呵呵,够
笨吧?后来还做了很多小实验,其实都是自己焊的万能板的。之后从老师中得知有种感光
板,于是就扑上广州买了几块回来弄,第一次弄就失败了2块,合共18大元,我狂倒中
(2002年12月左右吧)~~后来积累经验后,就成功了,之后越做越漂亮:)单面的工艺已
经比美工业板,现在能做到0.25MM的线宽和0.3MM的线距,能够完成大部分的实验需要了。
(如果大家想知道感光板的制作,可以搜索论坛精品中的‘感光板’)

其实那时侯大学阶段做的小实验还是围绕着一些自己的愿望,也就是算创作了,例如做个
计数器,做个电子种;有的是网上看到别人做出来了,自己又想做。不过想做的太多,时
间却太少,那时候还是处于刚进门什么都想学的阶段。但不管时间够不够,做的多少得多
少嘛,结果现在家里就一大堆东西了,呵呵。
后来学会了上论坛问人了,取名字的时候我想想,我是个电子白痴呢,就取个菜点的名字
吧,叫白痴不是很好,于是就叫白菜了,于是我就叫电子白菜,其实就是电子白痴的意
思:)那年是2003年的新年。

有了论坛的帮助,我感觉进步的更快了,好多问题都有人指点,开始发的问题还直被人骂
菜,后来慢慢地积累帖子数百,偶然也就能骂骂别人菜,呵呵,不过论坛是要上,自己的
实验也得做,我觉得在开始阶段,很多东西都要亲身经历过才能积累经验的,单看书上说
的是一回事,自己做起来又是另外一回事。在实践中,我学到的绝对不止是实验中的一个
程序,更加地我学会了如何去解决问题和如何利用实验成果进入下一个更复杂的实验中。
-------------------------------------------------------------------------------
------------


第五章 狂热

2003年开始,大学的课程基本完结,但还没毕业^0^,我是2003年7月毕业的,那么这7个月
就是假期,对的,是7个月的假期,基本除了做毕业设计外是没什么事情做的。我觉得这个
正是我第一个飞跃的阶段。话说回来,我们的同学们啊,真是难得有这7个月假期了,疯狂
的在游戏,电影和睡觉吃饭中度过,直到后来快要把全天下的电影看光了,百般无聊下,
开始看那些有着10年历史的外国肥皂剧(中文语音),那么这7个月他们是白过的了,还连
电费都亏下了!!
当然,我也很快乐地玩了不少时间,这7个月当中,我基本把技术和娱乐1比1地分配下去
了,折算一下我也算下了3个半月去钻研了。其实现在回想一下还是觉得当时应该把更多的
时间下在技术研究上,这样的话我现在的技术应该会更好一些。因为工作后自己研究的时
间就少很多了嘛。。。
说到我这7个月,学会的东西还真不少,主要是不玩游戏啊,就省下了很多很多时间了。我
在不做实验的时候,基本时间都花在网上,找找资料,看看技术类的东西,从网上我得到
了很多新信息,包括很多单片机的应用,重要的是这些应用远超越我自己做的那些小试
验,小电路板。另一个方面,应用思维也很重要,实际的产品跟我们学生比赛弄的东西不
同,他要求的是稳定,实际和可行。举个例子:学生们参加比赛都做过什么红外线水龙头
的东西吧?他们做出来的那东东,红外线不怎么经过调制和编码就射了,接收端当然是抗
干能力扰差啦,如果用在实际上,岂不是水龙头一天自动放水几次??就算一天自动放水
一次而已,这个东西都是卖不出的了。另一方面,他们总觉得电费不是钱,红外线是源源
不断地放,接收端是不停地检测,单片机经常缺乏睡眠。。。再举个例子,温度控制,这
个东西估计大学生的比赛中是常出现的题目了,他们总是有着这样一个概念:你调100度,
那么我的发热管就一直加热,直到AD检测到100度了,就停,然后当温度降低到99度,又开
始加温。同学们,看上去很正常吧??但我不妨跟你说,这样的东西是根本不能用的,如
果用在工控上(一般要求精度为1~2度)是必然闯祸的东西!!为什么?因为学生们都认为
到了100度的时候就关发热管,那么他温度就应该只有下降没有上升的理由是不?但实际
中,关掉发热设备后,发热丝还是火红火红的,温度是以一个曲线形式继续上升的,所以
你到100度才关,到头来实际温度是到110或更高才会开始下降的。同理,温度下降后的加
热上升也有这个问题。关于这类温度控制的算法,是有一门专门的PID学问的。大家可以在
网上多搜索资料。

说回正题,由于在上网中得到了不少启发,我就开始慢慢脱离那些C程序量还不到300行的
小实验了,也就是说,不再点跑马灯,键盘,LED等的东西了。我开始想写大点的程序,但
想归想,可是没有什么题材啊,于是就想不如尝试做个主板的BIOS烧写器如何?其实BIOS
烧写器就只是一个简单的PC下载BIN或HEX程序到FLASH上的东西而已。如果这个东西能做出
来,倒不如再加上一个128*64的LCD上去(之前刚能弄的他显示汉字),再加个键盘(早就
会了,扫描程序是抄回来的:),做个类似PDA的东西,有时间显示(当时刚弄通了
1302),有中文显示,还要有中文阅读器的(因为那位朋友做过的,我不会,当然就想做
出来啦)。于是就这样,心中就有了一大堆的想法了,慢慢就把这个模型拼了出来:要有
一个单片机,一片FLASH,一片RAM,一个串口,LCD,键盘,还有时钟芯片,就这么多!!
(呵呵,说着好象有点象丁丁在卖的实验板了:)
不过很可惜,到现在我还是没有把这个东西完全做出来(倒是给老丁先下了手:),只自
己做了块有FLASH,RAM,串口的板子,也就是先完成了烧写BIOS的部分了,而且这个东西
还是很后期才做出来的,为什么?因为当时有更重要的事情吸引了我。。。

第六章 升级

当时在论坛上,网上看到有人做USB接口的,觉得很牛啊,于是自己也想做,但一直就是没
资料,也不知道如何学。这时候好象又回到了当初认识单片机的时候,好象一切都很新
鲜,全部都不懂一样。感到无从下手。2003年一月,是我大学4年级第一学期末,我们开始
要毕业设计选题了,当时有两个最难的题目USB接口设计和蓝牙协议通信(我的是普通学
校,这样的题目已经是最难的了,呜。。)我选了USB题目(顺便提一下,邻班的那家伙,
就是我现在的室友,选了蓝牙的)。其实我选USB的时候对USB还是完全没有了解的,有时
候想当时真的是勇字当胸了,因为做不出来很可能毕业不了的。但有时候一些技术的研究
当成为了压力和任务的时候,进步反而快。

于是,我的USB就是这样起步的了。。。
有了任务在身,就不象以前那么地边玩边实验了,我放下了很多打算,开始专心研究起USB
来,说是专心,但什么底子都没有。做个P呢!
开始是上驱动开发网的USB专栏的,但一看就傻了眼,哪里除了牛B的虾,就是菜鸟一群,
帖子要么看不懂,看懂的都对我没有帮助。不过上那里我也获得了信息,就是用D12做USB
比较普遍,于是设计就定位在D12了。
正好这个时候周立功哪里出了本USB D12编程的书,虽然我对周X没有什么好感,但无论那
本书是不是真正是他公司出的,在当时的环境下,这本书对于我是有着划时代的意义的
(夸张了),当时是马上到广州买的,要价35元,还是烂纸油印版,不过学懂了就不说亏
了;再要一片D12,20元;之后再买本USB协议的书,再从网上下了USB的相关东西,好了,
就这么多,2本书,一个芯片,放下我的实验和一点点的激情和幻想,静下心来,我开始了
闭门造车。那时候是2003年的农历新年啊,我的快乐的新年,基本就在闭门中度过,幸好
还有拜年,讨了点红包,不然真的穷死了。
说起这个USB,他的确和我之前做的小实验有天渊之别,之前做的东西只是了解一下原理,
动一动脑然后就可以写程序了,但这个是涉及协议,当时我还是第一次接触协议类的东
西,没有什么动脑的空间了,只能老实地看,学。
记得鲁迅在写文章救国家之前呆在屋子里抄了一年的碑文,那一年的工夫练就了鲁迅的坚
韧。之前经常焊万能板飞线的实验板,做多了,除了做出点板子来玩,还让我学会了坚韧
和耐性(不知道多少人试过焊复杂线路的万能板?别以为简单,很烦的呢,要很有耐性,
万一错一跟线,修改是比较痛苦的)有了这么一点耐性一个月的闭关练功,某天我突然领
悟,
发表于 2004-11-7 06:29:39 | 显示全部楼层
<>     好!说出了俺准菜鸟的心声!</P><>          </P>
发表于 2004-11-8 16:33:11 | 显示全部楼层
 楼主| 发表于 2004-11-8 16:37:49 | 显示全部楼层
呵呵,谢谢支持哦![em05]
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|cpubbs论坛. ( 粤ICP备09171248号 )

GMT+8, 2025-5-2 08:55 , Processed in 0.712776 second(s), 7 queries , Gzip On, File On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表