肺腑之言-写给喜欢单片机的初学者

今晚又是写程序 睡不着 写点东西吧  也算是自己的一个总结
   首先是两个字 “喜欢”!!
   一个东西 光有10分钟的热度是不够的

从事单片机 就意味着你以后是和枯燥的程序  调试 乱码 未知的软硬件错误  熬夜 脸上的豆豆 什么什么的联系在一起(有点夸张 哈哈)

如果你选择了这种生活 并且确定你有一种精神能指引你一路走到底  至于什么精神 只有你自己知道 是满屏幕的 0101 还是 一串串胡乱的ABCD

还是 成功后的成就感 还是天生俱来的对电子类东西的 痴迷   还是喜欢别人在外面花天酒地 却喜欢独坐电脑面前 攻克技术的颠峰 不需要理由

世界上就有这样一种人 不需要理由
       那么确定了上面的之后 让我们开始吧  单片机 也叫做单板机 单片微型计算机 麻雀虽小 五脏俱全 那么如果你学过计算机组成原理 我相信你应该能更好的理解 单片机的内部结构 如果没有学过 也不要紧 那就拿小麻雀开刀 再一层层 自下而上的 到我们所用的PC
         刚开始学单片机的时候 看到厚厚的一本书 不要一咬牙 要一下子把书全部看完  看得仔仔细细  明明白白 先看看目录 无非就是 介绍单片机的历史 然后它内部的组成原理  然后是指令 然后就是接口  先说历史 知道51单片机是现在资料最丰富 最适合上手拿来开刀的就是了 不要觉得书上的 知识老 这都 N多年前的了 现在是不是都不一样了    兼容这个词  比如你用 ATC51 写的程序 拿到 ATS51 52 STC 都能用  只是 后续的片子 在一些地方更加完善 功能更强大

比如  在书上来掉牙的 2051 上的 MOV A,#00H  到其他 51系列的 上也是一样的 你看它的片子的介绍上 写了一句 “完全兼容51系列单片机” 那么OK
 别管那么多 只管用就是了   我发觉我废话多了 这不知道写到那去了。。抽跟烟 继续。。。

上面的意思是说 面前是一坐山 很高 然后我就一咬牙 吗的 慢慢爬吧 我不信我爬不上去了  或许爬到一半就退缩了   退而再攻之

我拿个测量仪来 噢 原来这山总共7000米 半山腰有个亭子 到那是3500米 刚开始那1000米 坡度很小 2000米的时候有个 茅房(^_^) 6000米的时候有个美女正在洗澡 山顶有个和尚庙    行 心中有了底   上!!

刚开始的时候初学一定要用汇编 可能大家也看到了 关与C和汇编的讨论  各有各的说法 我个人觉得初学者 完全没有必要去追求什么飘逸的风格

就用笨拙的汇编 虽然它像一头大苯熊一样 但是 当你能和大笨熊 亲切的交流 屈驾自如的时候 再去和 漂亮的兔子MM 鸳鸯戏水  会更加的得心应手

汇编刚开始你会觉得很烦 就是 在那 MOV 过去 MOV 过来 JB  JC JNB  JNC  DJNZ  很难记 不像C 一个 IF  一个 DO WHILE  就搞定的事

但是 用汇编你能更加了解 一条指令在 CPU 内存 的执行过程 能更加亲切的和 P0 P1 P2 P3  的每一个 口线 交流  不需要C 的屏蔽底层 而是直接的就和底层 亲密接触  这里有人要说我了 什么什么的 还是那句话 个人意见 仅供参考  在写延时程序的时候 DJNZ  是双周期指令 比如12M的 那么 一条指令是1US 那么你要精确的知道自己这段延时 能延时多少US 多少MS  那么你对 51单片机内部的 指令 周期 对以后写有严格时序操作的程序 就更加得心应手 比如 看到一个片子的PDF 数据总线 要拉低多少MS 地址总线 要拉高多少US  等待周期要等待多少US/MS 那么 不要怀疑 自己写 指令 搞定它  成功以后 你会发现你从 最底层的了解了 一个片子是怎么传送数据 怎么通信 这样的经历 对你以后再接触其他 片子的时候是莫大的帮助

像关于书上的内容 指令不用记得那么死 或者说完全不需要记   需要的时候 马上查  在查的过程中 会更加加深你的印象(说点丢人的话 JC  JB JNB JB 这些 指令我到现在都从来不记 我又不应付考试 我书随时就在旁边 用的时候去翻就是了 )
   这也就提到了练习

程序 和指令 不要只看不用  实践是检验真理的唯一标准 实践出真知  这都是老话了 不过用在单片机的学习上是太贴切了 单片机 本来就是实践性很强的
    像我在学校的时候 每次实验课 都认真的做 抓住每次上机的机会  板子很贵 自己买不现实 而上机的时候能接触到的每一次都很宝贵

LED流水灯  十字口 交通灯  这些程序很基础   在一次 一次的小程序成功的过程中 你会更加喜欢上单片机 并且坚定继续为之不离不弃的决心

熟能生巧 我还记得我刚开始的时候 经常是 把指令写错 把 跳转的标号写错 经常用系统 的关键字 变量未定一存储空间就用  等等等等。。  但是 一次  又一次错误 下来  得到的是程序的正确性的大大的提高

在这里我建议 刚开始先多读别人的程序 而且是完整的 备注多的   格式规范的 从最开始就养成良好的 编程风格 而不是随意的乱添乱加 胡乱的复制粘贴

看懂 别人程序里的每一句代码的意思 为什么要加这条 这条指令的作用是什么 如果不清楚 马上翻书去查    在查的过程中 更加加深对这条指令 或者这段子程序的用法的深刻的记忆  下次自己用的时候 才能像自己一样的拿来 得心应手 这也是为什么要选择51系列的单片机 应该它的示例代码 网上铺天盖地 而且高手也不会吝啬的把 初学要用的代码 还设置成什么自动回复 才能看才能下载 得到这些 代码的途径是很方面的 得到的有用的信息也是最多的 像 1302 1602 DS18B20 LED 串口 DA AD 常用的接口与51的驱动程序 这些网上都有很多 汇编版本 的 C 版本的 不要觉得都是几年前的东西  都是人转来转去 老掉牙的东西 先都拿来消化掉  再为自己所用

大家也许也发现了 在BAIDU 里找一些程序的时候看到一版的汇编 代码 但是没有一点注释 2个字 痛苦  所以 为了方便大家 也位了以后你能方便别人

刚开始写程序就要习惯 给程序写备注 为了别人能看懂  像一个大的工程 都是团队合作 你几千的代码 没有备注 别人几千的代码也没备注 那好吧 先花个1天的时间把程序看懂了 再干其他的吧

程序中像子程序的说名 入口参数 出口参数 内存的分配 关键语句的 单条备注 标号的顶格 代码的 缩进 等等  良好的编程风格绝对会让你在以后的工作和学习过程中事半功倍
;-------------------------
;****子程序
;-------------------------

next:                                      
           mov a,th0                      ;//读取计数值TH0
           swap a                           ;//高4位与低4位对换
           mov r1,a                        ;//保存到R1
           anl tl0,#0f0h                  ;//取TL0高4位,低4位忽略不计
 
  写了一些小程序之后 那么 就是做完整的小实验  参照别人的程序比如写一个接口芯片的驱动  不再是点亮一个灯 又点另外一个灯

这种的完整的验证型的实验非常重要  不要希望上课的时候老师给你的程序能让你突飞猛进 只有自己不断的做实验 写程序 才能让自己学得更快

像买到的板子 都有完整的代码  这对于学习是很好的资料  因为它能所见即所得 不再是书上  的纸上谈兵 那么程序是正确的 看懂了以后 自己可有试着改以下里面的某
个地方  你能找到它的核心的那几条 或一段代码 那么说明你对这段程序的理解已经更上一层楼了

初学者买板子很重要 而板子上的示例代码 和 技术支持 更重要  通过这个板子你能接触到一个平台 供你学习 那么这个板子就是值的 如果板子买来了就闭门造车
那么 板子再好 不是件好事  功能旋目的板子 强大大可以怎么样怎么样的板子 没有必要去买 当你强大到要用到它上面的什么 激光 设想头的时候 我想你也已经不会再用那块板子开发东西了   基本的 液晶 数码管(是个很强大的东西 像我不喜欢什么软件仿真 在有问题的地方 设置个断点 程序执行到这一步 把值读出来 显示到LED上 简单方便 )常用的51的接口有就够了  说到自己做实验板 买来的板子都有完整的电路图  对于电子基本共不扎实的朋友 买来后看懂原理图 再慢慢的 自己做板子好一点  
 
  买了同一种板子的 能有个交流区 是最好的 各个问题和程序 拿出来大家交流 能起到很大的作用  也会少走很多弯路 目前这个正在筹划当中 我会尽快和站长联系 开个专区 供大家交流和学习用   上面提到了 基本功 这才记起。。(不好意思^_^) 像搞单片机 分几种  上层的 和底层的 上下通吃 的

不过刚开始的 都不是很复杂 我建议大家上下通吃  还是那句话 有不懂的 马上查资料 电容 3级管 2级管 放大 整流 稳压 滤波 上拉 /限流电阻 还有Protel 99 SE 自己画电路图 等等 这些基本功 随着学习的深入 都要一点一点的累积起来 不懂不要紧 问题是不能让一个问题一直捆饶着你 要有一种精神 不搞懂它 我就不罢休的精神 那么我相信任何困难都不会成为阻止你成功的绊脚石。

又说到那来了 夜深了 瞌睡来了 **

单片机 要天天碰 调程序就到板子上结合着硬件环境调  像DA AD 我刚开始学的时候那一章的内容根本都没看  直到后来要做个东西 需要AD转换 去翻了下TLC1543D 的PDF 然后看了下 它的时序 去网上找了下 示例代码 然后写的程序 像书上的 ADC0809  DAC0832 我是在用了其他转换片子后 回过头去看的时候 发现这片子缺陷确实太多 然后再去看它的程序和使用方法 很简单 这里的意思并不是说 书上的 ADC0809  DAC0832  不重要 而是说大家学一个东西的时候 如果能结合板子学的话 或者说能马上用到 那么是最好 成效也是最快的  实践的力量确实是不能小窥的 而现在普遍的大学生的高分低能 学软件工程的 让用VB 写个小程序 不会写 单片机90多分的 写个LED连单片机是具体的单片机的什么样子都没见过    找工作的时候一大堆的奖  一大堆的废话。拿出自己做的成品 随意的和招聘的人聊各个单片机的优缺点 正确的说出每种常用的片子的用途 用法 证明自己的实际的动手能里 找工作是难 但是分人。我相信 在大学实验室里呆2年 的人  和在大学里 谈2年恋爱的人 打2年网游 看2年小说  聊2年QQ 打2年CS的人的结果绝对是不一样的  乱78糟的写了 很多 大家能看完不甚感激 如果有什么地方不对的 还请大家多多指正 我也是个学习者 深切的感到刚学单片机的时候的困惑

希望写下的东西 对大家能有少许的帮助  写的不好 请大家见晾了
在最后这里引用下 <周立功写给年轻人的一封信>我觉得写的很好 是一种鼓励  和激励 人才在那里 人才就是有一种精神为之从不放弃的人 .就是将来的你.大家加油!!!!

周立功写给年轻人的一封信
    
  作为过来人思前想后,我感到完全有责任将发自心底的感受传递给年轻一代,“一个企业家心灵深处渴望优秀人才的卓越追求和深层次的叹息、痛苦和感受”。您们千万不要等到毕业求职时才觉得自己能力太差,世界上从来就没有后悔药。当然,如果您现在看了我写的这篇文章可能还不算晚,因为您还有机会在以后的岁月里奋起直追——“亡羊补牢,尤未为晚”。对于现在刚进入大学的学生,您应该更加珍惜这美好的求学机会,因为眨眼之间几年就过去了,您很快就会感到来自全社会生存竞争的压力,您面临的对手再也不仅仅是您身边的同学,今天您在班上的成绩的确是前几名,但一走到社会上去才感到是多么地脆弱而又多么地不堪一击。

在面试大多数本科生时,我仅仅是询问了一些有关MCS-51 系列单片机的基本原理,但却几乎很少有人能够完全答对,简直是五花八门。很多作为一个即将毕业的自动化专业本科生,至今还不知道单片机是这个专业的核心基础,难道不可悲吗?您的水平不高我完全心中有底,其实我只要求这些学生能够掌握单片机应用开发的基本技能,用汇编和C51 写过一些基本的程序,真正动手做过一些简单的项目,然后将自己做过的项目写成比较规范的文档。我想,这种形式的“自我介绍”肯定要比让别人看您那写的千遍一律的“八股文”简历不知要强多少倍,古人言:“一叶知秋”其实讲的就是这个道理。平心而论只有具备这样基础的学生才配得上企业花钱对您进行二次“开发” 事实上,很多学生根本就不管老师平时是多么地劝导都听不进去,我认为您只要平时善于做一个有心人,主动一些多找老师请教,然后从大三开始帮老师打打下手干一些活。还有一个途径就是自己花钱购买一些学习开发实验板,加强动手能力的训练。但也有很多学生说没有钱,可事实上并非如此,现在的学生购买手机成风,我不知道手机对您们现在来说到底有多大的用途?事实上,现在的学生家庭条件普遍都不太好,可这些孩子们的攀比心里却十分地严重和可怕。到今天即将毕业之际才感到找工作太难。父母一个子儿地攒下一些辛苦钱给您购买电脑容易吗?“望子成龙――可怜天下父母心”!他们是希望您能够学到一些真本事,而您可能很多时间都在玩游戏,上网聊天,实际上对于您来说仅仅是举手之劳,只要花几百元买一块实验板,辛苦一个暑假的时间强化实践,可能您就会与众不同。与此同时,可能您的信心大增,前途一片光明。俗话说得好:仓库有粮,心中不慌!如果您平时没有准备,那么临时匆匆忙忙地上阵面试肯定是要败下来的。从2003 年开始是全国第一次扩招之后毕业人数最多的第一年,以后的毕业生还会更多,同时还有更多的研究生与本科生抢饭碗,面对就业的困境压力不能说不大,痛苦在其中。
还有就是我每天都要面临那些看不完的自我介绍简历,很可惜几乎都是清一色的“八股文”令人讨厌。其实只要您的成绩不是太差,分数不是应聘成功的关键,重要的是做人要踏实,不要有水分,实际上,只要将您平时做过的小制作写成一篇心得,再带上您的作品,“事实胜于雄辩”这样更能打动人。

{O2\n.Wy,_?0还有很多经历了四年本科又三年研究生阶段学习行将毕业的硕士生,不仅不知道嵌入式操作系统是什么东西,而且连C++都不能熟练掌握,驱动程序开发的能力就更不容提了,仅仅做了一个单片机的应用设计就拿到硕士文凭了,术业缺乏专攻泛泛而谈,说句实在话,怎么样也教人无法接受啊!对于我来说,如果您没有特别的才能,我宁愿用三年时间培养一个好的本科生给更高的待遇,他肯定不比一般的硕士生差。所以,考上了研究生之后,您要时刻明白加强动手能力的培养和前沿科学技术的学习至关重要的,这是您将来面试的“杀手涧”,因为您毕业之后要求的工资待遇起码是一般本科生的两倍,但是这个钱不是那么好拿。的顶多3-5 年的时间,大家肯定能够看到一个现实,那就是如果您还不能熟练地掌握嵌入式操作系应用开发技术的话,您只能拿2000 元的月薪。即便您是研究生或是博士,那又有什么稀奇的呢?邓伯伯有句名言,不管白猫还是黑猫,抓住老鼠就是好猫!我们知道企业家是要赚钱的,否则这个企业就留不住人才,无情的市场竞争机制将会毫不犹豫地将这个老板淘汰出局。一个可持续发展的企业,如果离开了富有聪明才智的优秀人才,那是不可想象的。光有几个还不行,而是要有一个卓越的军团。

其实就业的问题,对于一个努力的人来说是何等地简单,我面试了300 多本科生,我只对其中几个成绩中等的本科生感兴趣,他们主要是参加过2001 年全国电子大赛,有的是平时业余时间,暑假及其寒假都在跟老师干活的学生,与他们聊天真是一种莫大的享受和欣慰,对于我来说真的是如获至宝。于是,我就立即劝他们,您的成绩中等确实难以考上好的学校和导师还不如不考研究生以免浪费时间,同时也充满自信告诉他们,“我就是伯乐!我愿意给您机会和花钱培养您”。事实上,即便您考上研究生,如果没有遇上具有超前眼光和经费充足的导师,您读了也白读,更何况现在的研究生扩招的这么多?一个导师带那么多研究生,有那么多课题吗?即便有的话,他应付得过来吗?可能残酷的现实将会让您看到,毕业之后回头一看还远远不如当年同您一道毕业的同班同学。确实也是,人家的机会比您好得多,关键是人家对待机会比您把握得好,可以说:恰到火候。难道非要读研究生理论水平才高吗?这是何等地荒谬啊!我们知道电子与计算机技术的发展日新月异。大学的更新速度一定就要快吗?回答是否定的,比如说推广PHILIPS 的最新单片机和USB 技术吧!他们的更新速度肯定比一个可持续发展的企业要慢得多,难道说我们的人才水平不够高吗?我们公司就有一批这样在各个领域里出类拔萃的“年轻专家”从 2003 年开始,我们将会有一系列的专著在北京航空航天大学出版社出版,大多数的著作都来自于我们长期的基础研究和应用开发,可以毫不夸张地说这些都是我们这个年轻团队合作的结晶。他们是优秀和卓越的人才,他们没有就业的压力,他们不怕炒鱿鱼,相反我倒时刻要想尽办法加强公司的管理,从工资,奖金,福利,生活和事业成就感等各个方面绞尽脑际善待人才和留住人才,这么努力的人才根本就不需要过多地为工作和生活发愁,对于这个问题当然是仁者见仁智者见智,也就是下面我要讲到的问题,一个人如何根据自己的特点、条件和机遇对自己如何定位的问题,也是至关重要的。

比如说,如果您对单片机的理解仅仅是入门水平的话,那么您首先就应该低调一些,因为您主要的任务是为了寻找一个可以学习的机会,说句实在话,此刻此刻您一定要清醒地意识到:寻找伯乐比眼前的利益更加重要!因为您现在确实还没有可以骄傲的资本,您一定要想尽办法取得第一次正式踏入社会的入场卷,这对您来说是何等地重要啊!俗话说得好,“万丈高楼从地起”您一定要寻找机会通过业绩表现出您的能力,您确实与众不同之处。这样您就可能在一个公司里树立您的“信用”,有了信用之后随之而来的机会将会越来越多,到那时您根本就不用不愁自己的待遇和地位问题了。所以对于一个刚刚步入社会的年轻人来说,您能够做到以“诚信” 打天下,您将来的前途肯定是无限光明。千万不要感到自己在班上的成绩是前几名或者相对来说自己的动手能力相比之下比同学强多少、多少,或者自己在读书期间贷了多少款,或者家里是多么地缺钱,因为当您加入整个社会的竞争之后,这些都不是您要求高薪的理由,这个时候您的心态将可能会决定您的命运,因此对自己要有充分的认识和正确的估价,经常是很多学生用这些理由向我开出高价,我无话可说只好“摇头和叹息”。     如果您的水平还不够,我认为也不要自卑,要知道机会是时刻属于有准备的年轻人,但也不可掉以轻心,此时此刻,您应该振作起来,立即拿起书本努力学习和加强实战的训练,待到羽翼丰满之时大胆地走出去闯荡,让社会来对您做一个恰当的评价,然后再根据现实的情况不断地调整自己,继续学习和实践,由于电子和计算机科学的高速发展呈现日新月异的变化局势,您一定要明白:您距离失败永远只有6 个月!

(0)

相关推荐