写点东西吧, 也算是自己的一个总结 .
?? 首先是两个字 "喜欢"!!
??? 一个东西 光有 10 分钟的热度是不够的. 从事单片机工作, 就意味着你以后是和枯燥的程序, 调试, 乱码, 未知的软硬件错误, 熬夜, 脸上的豆豆...... 联系在一起.(有点夸张, 哈哈!)
??? 如果你选择了这种生活, 并且确定你有一种精神能指引你一路走到底, 至于是什么精神, 只有你自己知道. 是满屏幕的 0101, 还是一串串胡乱的 ABCD, 还是成功后的成就感, 还是天生俱来的对电子类东西的痴迷, 还是喜欢别人在外面花天酒地...... 却喜欢独坐电脑面前, 攻克技术的颠峰. 不需要理由, 世界上就有这样一种人. 那么确定了上面的之后, 让我们开始吧! 单片机也叫做单板机, 单片微型计算机. 麻雀虽小, 五脏俱全, 那么如果你学过计算机组成原理, 我相信你应该能更好的理解单片机的内部结构. 如果没有学过, 也不要紧, 那就拿小麻雀开刀, 再一层层自下而上的学习.
??? 刚开始学单片机的时候, 看到厚厚的一本书, 不要一咬牙要一下子把书全部看完. 看得仔仔细细明明白白. 先看看目录, 无非就是介绍单片机的历史, 然后它内部的组成原理, 然后是指令, 然后就是接口. 先说历史, 知道 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 天的时间把程序看懂了, 再干其他的吧.
来源: http://www.bubuko.com/infodetail-3045333.html