折腾来折腾去

pikipity的blog

单片机原理及程序设计 第一章 单片机简介

这个《单片机原理及程序设计》系列主要是简单介绍8051系列单片机的基本原理及功能,并附带一些小程序作为应用的范例,为了便于程序理解,大多程序以C的形式出现,但是也会包括一部分的汇编,因为汇编是用来学习单片机结构与原理的最好语言了。这个系列主要抄录自《單晶片原理與程式設計》《單晶片原理與程式設計》虽然介绍得已经很全面了,但是由于过于简略,以至于一个新手如果只看这一份材料很难明白它在说什么,所以这里作进一步的归纳、总结和补充。

什么是单片机

单片机 AT89C51

上面这幅图就是8051系列的一种单片机AT89C51了,是的,单片机就是一块芯片而已,但是这块芯片里面可以说是包含了大半个你用的PC机或是ipad吧。需要注意的是,下面这幅图是单片机学习板,不要再指着整块学习板说是单片机了,学习板包是一整套完整的电路,包含了你要学习的原件,只要将单片机插入到上面,正确编程就可以使用了,使初学者专注于编程学习,可以忽略掉复杂的电路设计部分。但是单片机的编程是硬件编程(在后面的编程部分你就能深刻的体会到硬件编程和平常的编程有什么不同了),硬件部分的学习是绝对不可以忽略的。所以我建议,学习单片机不要只是编程,有条件,就买实体元件,自己搭建电路,可以学习的更加透彻,没有条件,可以下载仿真程序,例如Proteus(点我下载Proteus)。Proteus是一个简单易用的可以仿真单片机系统的软件,里面包含了大部分的8051系列芯片,和大量的常用原件,有了这个“妈妈再也不用花钱给我买学习版了” o(≧v≦)o~~

开发板

对单片机有了实感接触以后,就可以开始单片机的学习了

单片机结构

这部分其实是废话,因为如果不准备做单片机开发,太过深入了解单片机结构根本就没有什么用,但是话又说回来,如果一点都不了解的话,对于初学者心里又不踏实,总而言之还是需要了解的,仅仅是了解而已。

单片机的结构及结构间的关系如下图所示。

单片机的结构及结构间的关系

  1. 运算单元:可以从输入单元或是记忆单元提取数据,还可以将数据输送到输出或是记忆单元

    $$\mbox{运算单元}\left{\begin{array}{l} \mbox{算术运算:加减乘除等}\ \mbox{逻辑运算:与或非等} \end{array}\right.$$

  2. 控制单元:协调各部分之间的工作,使单片机按照编写的程序逐步执行。在执行一条命令的时候,单片机先解码,了解意思后再执行,一条条命令逐一执行,知道命令结束。

  3. 输入与输出单元:单片机上只提供了I/O口,具体输入输出设备是什么,如何驱动使其工作,就需要自己电路设计和软件编程了,这应该是与普通编程最大的区别了
  4. 记忆单元:

    $$\mbox{记忆单元}\left{\begin{array}{l} \mbox{主记忆体}:\left{\begin{array}{l} \mbox{ROM}\ \mbox{RAM} \end{array}\right.\ \mbox{辅助记忆体} \end{array}\right.$$

    • ROM:只读内存,可以理解为存储程序的地方,在单片机运行期间只可以读取,不可以写入。存储的内容断电不会丢失
    • RAM:随机存取存储器,在单片机运行期间可读可写,但是保存的内容断电就消失
    • 辅助记忆体:单片机的外设记忆体,例如硬盘之类的,在地址(“地址”在下一章中具体介绍)允许范围内可以无限扩充

8051单片机结构

上面介绍的是笼统的单片机结构,无论是我们将介绍的8051还是ipad的A5芯片都是这个样子的。现在要具体介绍8051单片机的更具体的结构

8051单片机结构

这其中的具体词汇可能还不了解,但是不要紧,后面章节会提到,到时候再来看就明白了

8051单片机引脚图

8051单片机结构

上图是标准Intel的8051芯片引脚图,对于不同厂家的不同型号,不同之处就是引脚的排列顺序和I/O口的数量(I/O口就是"Px.x"的引脚)

各个引脚的功能如下:

  1. P0 ~ P3:I/O口。注意:P0口本身不具有提升电路,需要外接提升电路来提供足够的电压给被控制元件。提升电路如图:

    提升电路

    电阻大小需要具体情况具体分析。也可直接连接driver chip,再连接被控制元件。

  2. Vcc:电源。GND:接地。
  3. EA:控制是否读取外部程式记忆体。为低时,读取;为高时,不读取
  4. ALE:位置锁住置能。平常每个时钟周期都会出现。如果此处接外部电路,则可以认为是外部时脉
  5. PSEN:外部程式记忆体读取信号
  6. RXD:串列传输输入端
  7. TXD:串列传输输出端
  8. INT0与INT1:外部中断输入端
  9. T0与T1:计数器外部输入端
  10. RD:外部资料记忆体读取激发信号
  11. WR:外部资料记忆体写入激发信号
  12. XTAL1与XTAL2:反向振荡器输入与输出端。与内部时脉结合形成时钟电路。

单片机最小系统

单片机本身是无法直接工作的,需要最小系统的支持才能正常工作,最小系统包括三部分电路:

  1. 电源:不同型号,需要的电压不同,一般8051是+5V。Vcc引脚接+5V,GND引脚接地。
  2. 时钟电路:单片机需要一个可以震荡的电路,为其产生一个震荡频率稳定的时钟信号来计时,从而同步各部分的工作。一般的8051已经集成了振荡电路,需要我们提供晶振给这个振荡电路稳定的振荡频率,连接方法如图。有的型号的8051系列单片机可能连外部晶振都不需要,自己就可以产生稳定的时钟信号,例如C8051f340

    时钟电路

    如果需要12MHz,就将晶振换为12MHz,两个电容换为30pF

  3. 复位电路:复位电路使单片机除了ROM的内容全部恢复到初始状态。电路(RST就是单片机的RST引脚)如下,这个电路断电自动复位,并且还有按钮可以在运行期间复位。

    复位电路



Comments