单片机教程——序言

时间: 2010-03-21 / 分类: 单片机 / 浏览次数: 10 views / 0个评论 发表评论

终于还是下定决心把自己学习51单片机的时候的心得写下来个大家分享,希望我的教程会让你学习单片机的道路上更加的顺利。

对我来说做出这样一个决定应该是需要一定勇气的。因为打算考研了,生活的侧重点已经开始向那边偏移,其他一切太花时间的事情都开始尽量避免了——本打算在这个学期把校网络中心做大做强的,终于不得不放弃了,争取培养出一两个技术过关的接班人吧。

不过一直觉得自己的站内容很空洞,并没有什么实质性的、值得关注的东西。经常带来流量的就那几篇文章而已,其他的基本上除了我自己也没有人要看。终于在一番又一番的犹豫之后果断决定还是把这本应该在寒假完成的教程给写出来,一方面再次温习一下51系列单片机的基础,另一方面考验一下自己管理时间的能力,毕竟偶尔还是会打打dota,就用这些时间来写吧。写教程的同时也让自己的心静下来。呵呵。话不多说,现在就开始了。

本篇主要先讲一些我想说的话,如果你很赶时间,不想看的话,那就跳过吧。这里包含了我大学三年以来的很多学习感悟。或许会对你有很大的帮助,同时如果你在51系列单片机学习中有什么困惑的话请把疑问发送至我的邮箱taotao1624@qq.com

这次讲的主要就是两个方面:一是看书;二是单片机。

可能你会认为你吃的盐比我吃的饭还要多,过的桥比我走的路还要多。像我这样一个二十出头乳臭未干的小毛孩说看书心得显得很夜郎自大。不过我要说的是我比你想的还要嚣张。关于看书,所有人都知道要多看好书,然而什么是好书的标准呢。我看来打开第一页,如果一本书的序言都能“吸引”你的,说明这本书绝对的好。有这样的书吗?答案是肯定的,不过很遗憾,到目前为止所以我看到的这些书都是外国翻译过来的,也就是外国的教材(由于的是学工科的,所以看得书籍主要侧重于这方面)。我不是崇洋媚外的人,然而对于外国教授写书的态度绝对是佩服的,这个也是让我努力完成这一个系列教程的一个原因,态度。真的很朴实,不相信的人可以去自己的书房找找,看有没有外国比较经典一两本教材,打开第一页,看看这本书的序言,作者均会较为详细的说明这本书的梗概,使用人群,以及自己和这本书的故事。你看到的绝对不单单一本叙述工程科学的文字集合体。而是在某个领域内得德高望重而又朴实无华的一个一群人。

所以如果你看一本书的话,真的最好仔细阅读一下前言,虽然很多书籍的前言,或者序言写的很水,没有太多的营养,但不少书籍的前言会给你带来很大的帮助。这种书值得你花时间把他看完。

从真正开始接触外国教材到现在也才几个月的时间,记得最开始是因为老师没有给我们订书,导致自己去网上买,结果买来买去都没找到好了,于是找了一本《信息论与编码理论》(《The Theory of Information and Coding Second Editon》[美]Robert J.McEliece)大约看了几十页开始上瘾了,不过由于当时正值考试复习阶段,不得不作罢。

至此,我自己目前买到的一共有《C和指针》、《C专家编程》、《C陷阱与缺陷》、《linux教程》([美]Syed Mansoor Sarwar,Robert Koretsky,Syed Aqeel Sarwar)、《C++ Primer》、《uC/OS-II嵌入式实时操作系统》、《计算机网络》(Andrew S.Tanebaum)以及一本从图书馆借回来的《通信系统原理》。《uC/OS-II嵌入式实时操作系统》、《计算机网络》正好这个学期有课要用到,而且听起来也觉得很带劲,加上uC/OS-II的课程课件使用原版英文的,觉得这书的作者很可爱~~~这些书虽然里面有很多没有全部看完,但是真的觉得很不错。反正就连我们计算机网络的老师都说看书不要看中国的,什么“十一五”,都是假的。这大概就是为什么我们这学期的使用这本书的原因吧。

不过我觉得老师的话还是有点偏激的,国内不是没有好的教材,而是数量比较少而已,上个学期自学单片机的时候也是三天两头的进图书馆,借书回来看,看来看去觉得都没什么意思,偶然间看到了赵建玲老师的单片机系列丛书,感觉不错,也就去买了一本。我这次的教程主要参考他的教材《51系列单片机开发宝典》和自己以前看书的一些笔记。

第二点关于单片机,可能从小对计算机的原理倍感神秘,关注的多一点,所以当学到单片机时,很多东西理解起来很快了。

首先我想从个人认识的角度来简单讨论一下人和计算机的区别。在你看来这个简直没什么好说的,但是确实还有好多很有意思的东西。

总而言之计算机是SB,而且是大SB。他只会做1+1=2,别喷我哈~如果你说计算机每秒能经行多少多少次运算,比你厉害多了这样的话,那我只好说要不是它有这个功能,鬼才买它回来。如果你每秒能有计算机的运算速度,那你绝对不会买它了。之所以现在的计算机在使用的时候感觉如此的清爽,主要归功于大量智慧而又勤劳的程序员。正式因为他们的辛勤劳动,才使得原本让人感到单调而又枯燥的计算机跑出了这么一个几乎完美的世界。

人脑=不是很快的运算+控制+对事物的判断力(意识);计算机=很快的计算+控制+基本上没有意识。

计算机能做出在短时间内做出判断是因为给了他固定的参考标准,在内部实际实行的还是减法运算,所以当你程序编写能力比较差,程序没有很好的健壮性时,通常体现为没有响应或者直接把计算机弄死了,就是因为计算机得到了一个不知道去哪里对比的信息,即使这个在人脑看来完全可以丢弃不管的信息。而人总是能从过去或者别人的经验教训中得到启示,做出判断,做出灵活的选择。不管现在的智能计算机的学科发展到了什么地步,计算机还是很难从过去的事件中得到一些较为有用的结论,在同样的问题出现时作出正确的判断。因为随着事件的增多,计算机的“对比数据”存储空间将增大,而遍历的时间也将增长。这样使得计算机“反应”将越来越慢。

好了现在也该说说我们今天的主角了,单片机只是其中一个控制器而已,他内部也是有运算器(ALU)的,但是与专业的DSP芯片来说简直没有办法比。我们可以把单片机也就是这个微型的控制单元看成是一个大帅,不用每次亲临战场,只要控制和调度好各各将军就行了。这些将军就是你之后会学到的键盘,显示器等等,包括DSP这一员大将在内。只不过很多时候DSP由于强大的功能,复杂的特性,其风头远远盖过了单片机这个较为老套的东西。

以上只为说明一下单片机个DSP之间的联系和区别,并没有特意区分去孰优孰劣。毕竟综合的产品中这2个部分都是不可或缺的。

所以,学习单片机主要要想到的还是它控制的本职。控制、控制、控制。为了准确的控制,它集成了定时/计数器,一方面可以记录某些状态出现的次数,另一方面可以准确控制某些外设准确的工作时间。为了较好的控制,其中集成了中断系统,以便与多个外设进行交流。自然I/O口才是实现控制的物质基础。

为了能让单片机能和你很好的交流,准确无误的完成你交给他的任务,你必须学一门与机器交流的语言,在单片机中,一般使用C或者汇编。本教程假设你已经有一定的C语言和汇编语言基础了—— 不要整个程序有很好的理解,起码能看懂每句话。具体的程序中将会较为详细的说明。如果你对于C和汇编是零基础,请到相关网站上去转转,找些资料来看看。

教程预计是每周一篇,如果时间允许,我会尽量多写。最后会有多少篇,我自己也不确定。

发表评论

您的昵称 *

您的邮箱 *

您的网站

:wink: :-| :-x :twisted: :) 8-O :( :roll: :-P :oops: :-o :mrgreen: :lol: :idea: :-D :evil: :cry: 8) :arrow: :-? :?: :!: