单片机论坛—独特的51教程之二.pdfVIP

  • 1
  • 0
  • 约4.06千字
  • 约 5页
  • 2018-05-30 发布于广东
  • 举报
不一样的 51 教程 之二 51的“芯”里 上一篇我讲了几个基本概念,很可惜,它对于你马上点亮LED没有任何帮 助,而这一篇,我要讲的是51芯片内部的东西,比如 存储器,然后我还会讲 一下51,或者说任何CPU是如何工作的——当然只是一个很简单的过程,我的 目的只是让你确切理解我们写入单片机的程序是如何完成预期工作的。(当 然,它不涉及很具体的硬件动作——那东西我不会,也研究不了,也管不 着。) 然后,我想告诉你的是,看了这一篇,对于你马上点亮LED仍然 是没有任何直接帮助 就51单片机而言(别的也是类似的,不要担心。) 它内部的存储器可以分成两部分: 1 程序存储器,书上经常用 ROM 指代它,这是因为程序存储器是 只可 写存储器。 2 数据存储器,书上用 RAM指代它,因为它是 可读可写 的。 请把ROM想象成很多很多个按顺序放好的信封,每个信封里都写着一个 命令。 上边写着 “向左转”,或者“向右转”,“向前走一步”(你不要指望 有什么 走两步,走三步) 然后,想象一下,如果有个人要你从一个正方形点走到它对角线上的另 一个点,并假设,正方形的边长等于两步距离。它该给你写一些什么指令呢? 我们假设你这个正方形在你的左手边,那么,你应该这么走: 先向前走两步,再向左转,再走两步。 于是乎,指令就是: “向前走一步”——“向前走一步”——“向左转”——“向前走一 步”——“向前走一步”。 当然,你也可以有另一条走法,就是先左转,再走,再右转,再走 (解决一件事情的方法是绝对不可能只有一个方法的。) 现在我们进一步考虑,这 写 “向前走一步” 和 “向左转” 太麻烦了 ——最重要的是,我们是麻烦,对于单片机那就是无能为力,它连英语都不 会,更被说中文。 那么,我们就给它们编码吧。 比如说,“向左转” = 01,“向右转” = 02 向前走一步 = 03.现 在事情就简单多了。 只要写这样一组指令,事情就完了。 03 03 01 03 03 如果你把一个51芯片的ROM里的数据全部读出来,你最终会看到的就 是 一连串 这样的数字。虽然说,不是我把03写进去,芯片就会自个走一步, 但是它自有它对应的意思。也就是说,51的程序执行的过程,就像我们读了上 面这5封信以后照着做走了一个90度一样。 请记住一个观点: 单片机做的事情,就是“阅读”存储在其中的程序代码,然后按照每个 代码特定的含义,一五一十照做。除此以外,这家伙什么都不会。 接下来你会问一个问题,假如这个家伙,只会一板一眼做事,就像你一 个月几千块结果只请了一个只会向前走向左转向右转,而且还要你写好一堆信 件让他照着做那我要这样的货色来干嘛? 接着告诉你一个观点: 单片机(数字系统)虽然很蠢,蠢到只能一板一眼照着做,但是它胜在 速度快——快到什么概念呢我想想 我50米最好成绩是7秒2,一秒下来就差不多是8米,而这个家伙可 能就是一秒钟8000米 快又有什么用呢?我再打一个比方 打个比方,我看一眼一个字,就知道这个字是什么字,这一眼大概算他 半秒钟吧。可是,有个老兄,他大字不识一个,偏偏会查字典,但是查字典很 麻烦啊。我们假设查一个字需要完成10个步骤。 看起来他很无能,我就一眼就Ok了,而他呢?我的妈呀,还 1234 但是别忘了他查字典的速度飞快,他完成一个步骤可能只需要 0.001s,那么这样搞下来,他一秒钟可以看懂的字就不知道比我多多少了。 结论:他很蠢,但是他很快。 现在我们来类比一下正规教科书上用专业术语描述的这个过程。 1 我们拆开信封,得到一条命令,这好比单片机的CPU从程序存储器 中,读取一条指令。这个过程叫 取指(取得指令 的意思。) 2 我们读到 03,我们回想起(或者查指

文档评论(0)

1亿VIP精品文档

相关文档