[分享] 肺腑之言-写给喜欢单片机的初学者
480 查看
2 回复
 楼主 | 发布于 2019-09-25 | 只看楼主
分享到:
解单片机的内部结构。如果没有学过,也不要紧,那就拿小麻雀开刀,再一层层自下而上的学习。
    刚开始学单片机的时候,看到厚厚的一本书,不要一咬牙要一下子把书全部看完。看得仔仔细细明明白白。 先看看目录,无非就是介绍单片机的历史,然后它内部的组成原理,然后是指令,然后就是接口。先说历史,知道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 版本的都有。不要觉得都是几年前的东西,都是人转来转去,老掉牙的东西,先都拿来消化掉,再为自己所用。 
    大家也许也发现了,在百度里找一些程序的时候看到一版的汇编代码,但是没有一点注释,2个字:痛苦! 所以,为了方便大家,也为了以后你能方便别人,刚开始写程序就要习惯,给程序写备注,为了别人能看懂 像一个大的工程,都是团队合作。你几千的代码而且没有备注,别人几千的代码也没备注,那好吧,先花个1天的时间把程序看懂了,再干其他的吧。
(0 ) (0 )
回复 举报

回复于 2019-09-29 沙发

谢谢分享!!!
(0 )
评论 (0) 举报

回复于 2019-10-20 2#

感谢分享
(0 )
评论 (0) 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部