51单片机基本结构详解

发布 2019-05-01 03:59:55 阅读 6178

单片机是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的**处理器cpu、随机存储器ram、只读存储器rom、多种i/o口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调试电路电路、模拟多路转换器、a/d转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统。

图1-1 单片机外形图。

常用的单片机有40个引脚,其排列和功能如图2-1所示。

图2-1单片机的引脚排列和功能。

单片机最小系统是单片机正常工作的最小硬件要求,包括供电电路、时钟电路、复位电路,如图3-1所示。

图3-1 单片机的最小应用系统。

判断单片机芯片及时钟系统是否正常工作有一个简单的办法,就是用万用表测量单片机晶振引脚脚)的对地电压,以正常工作的单片机用数字万用表测量为例:18脚对地约2.24v,19脚对地约2.

09v。对于怀疑是复位电路故障而不能正常工作的单片机也可以采用模拟复位的方法来判断,单片机正常工作时第9脚对地电压为零,可以用导线短时间和+5v连接一下,模拟一下上电复位,如果单片机能正常工作了,说明这个复位电路有问题。

单片机由5个基本部分组成,包括**处理器cpu、存储器、输入/输出口、定时/计数器、中断系统等,如图4-1所示。

图4-1 单片机的内部结构。

51单片机内部有一个8位的cpu,包含运算器,控制器及若干寄存器等,如题4-2所示。

4-2 单片机cpu结构。

从上图中我们可以看到,在虚线框内的就是cpu的内部结构了,8位的mcs-51单片机的cpu内部有数术逻辑单元alu(arithmetic logic unit)、累加器a(8位)、寄存器b(8位)、程序状态字psw(8位)、程序计数器pc(有时也称为指令指针,即ip,16位)、地址寄存器ar(16位)、数据寄存器dr(8位)、指令寄存器ir(8位)、指令译码器id、控制器等部件组成。

1、运算器(alu)的主要功能。

a)算术和逻辑运算,可对半字节(一个字节是8位,半个字节就是4位)和单字节数据进行操作。

b)加、减、乘、除、加1、减1、比较等算术运算。

c)与、或、异或、求补、循环等逻辑运算。

d)位处理功能(即布尔处理器)。

由于alu内部没有寄存器,参加运算的操作数,必须放在累加器a中。累加器a也用于存放运算结果。

例如:执行指令 add a,b

执行这条指令时,累加器a中的内容通过输入口in_1输入alu,寄存器b通过内部数据总线经输入口in_2输入alu,a+b的结果通过alu的输出口out、内部数据总线,送回到累加器a。

2、程序计数器pc

pc的作用是用来存放将要执行的指令地址,共16位,可对64k rom直接寻址,pc低8位经p0口输出,高8位经p2口输出。也就是说,程序执行到什么地方,程序计数器pc就指到**,它始终是跟蹿着程序的执行。我们知道,用户程序是存放在内部的rom中的,我们要执行程序就要从rom中一个个字节的读出来,然后到cpu中去执行,那么rom具体执行到哪一条呢?

这就需要我们的程序计数器pc来指示。

程序计数器pc具有自动加1的功能,即从存储器中读出一个字节的指令码后,pc自动加1(指向下一个存储单元)。

3、指令寄存器ir

指令寄存器的作用就是用来存放即将执行的指令**。

在这里我们先简单的了解下cpu执行指令的过程,首先由程序存储器(rom)中读取指令**送入到指令寄存器,经译码器译码后再由定时与控制电路发出相应的控制信号,从而完成指令的功能。关于指令在单片机内部的执行过程,我们在后面将会以另一节课来进行详细的讲解。

4、指令译码器id

用于对送入指令寄存器中的指令进行译码,所谓译码就是把指令转变成执行此指令所需要的电信号。当指令送入译码器后,由译码器对该指令进行译码,根据译码器输出的信号,cpu控制电路定时地产生执行该指令所需的各种控制信号,使单片机正确的执行程序所需要的各种操作。

5、地址寄存器ar(16位)

ar的作用是用来存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器pc产生,而指令中操作数所在的存储单元地址码,由指令的操作数给定。从上图中我们可以看到,地址寄存器ar通过地址总线ab与外部存储器相连。

6、数据寄存器dr

用于存放写入外部存储器或i/o端口的数据信息。可见,数据寄存器对输出数据具有锁存功能。数据寄存器与外部数据总线db直接相连。

7、程序状态字psw

用于记录运算过程中的状态,如是否溢出、进位等。

例如,累加器a的内容83h,执行:

add a,#8ah ;累加器a与立即数8ah相加,并把结果存放在a中。

指令后,将产生和的结果为[1]0dh,而累加器a只有8位,只能存放低8位,即0dh,元法存放结果中的最高位b8。为些,在cpu内设置一个进位标志位c,当执行加法运算出现进位时,进位标志位c为1。

8、时序部件。

由时钟电路和脉冲分配器组成,用于产生微操作控制部件所需的定时脉冲信号。

存储器是用来存放程序和数据的部件,mcs-51单片机芯片内部存储器包括程序存储器和数据存储器两大类。

程序存储器(rom)

一般用来存放固定程序和数据,特点是程序写入后能长期保存,不会因断电而丢失,msc-51系列单片机内部有4kb的程序存储空间,可以通过外部扩展到64kb,如图4-3所示。

图4-3 内部程序存储器和外部程序存储器。

数据存储器(ram)

主要用于存放各种数据,内部结构如图4-4所示。

优点:可以随机读入或读出,读写速度快,读写方便。

缺点:电源断电后,存储的信息丢失。

图4-4 数据存储器的内部结构。

位寻址区的位地址映象如表1-1所示。

表1-1位寻址区的位地址映象表。

p0口。p0口的口线逻辑电路如图4-5所示。

图4-5 p0口的口线逻辑电路如图。

p1口。p1口的口线逻辑电路如图4-6所示。

图4-6 p1口的口线逻辑电路图。

p2口。p2口的口线逻辑电路如图4-7所示。

图4-7 p2口的口线逻辑电路图。

p3口。p3口的口线逻辑电路如图4-8 所示。

图4-8 p3口的口线逻辑电路图。

时钟电路。单片机时钟电路通常有两种形式:内部振荡方式和外部振荡方式。

mcs-51单片机片内有一个用于构成振荡器的高增益反相放大器,引脚xtal1和xtal2分别是此放大器的输入端和输出端 。把放大器与晶体振荡器连接,就构成了内部自激振荡器并产生振荡时钟脉冲。

外部振荡方式就是把外部已有的时钟信号直接连接到xtal1端引入单片机内,xtal2端悬空不用。

时序。振荡周期:为单片机提供时钟信号的振荡源的周期。

时钟周期:是振荡源信号经二分频后形成的时钟脉冲信号。因此时钟周期是振荡周期的两倍,即一个s周期,被分成两个节拍—p1、p2

指令周期:cpu执行一条指令所需要的时间(用机器周期表示)。

各时序之间的关系如图4-9所示。

图4-9各时序之间的关系。

c语言51单片机实例程序详解大全

实例1 使用累加器进行简单加法运算 mov a,02h a 2 add a,06h a a 06h 实例2 使用b寄存器进行简单乘法运算 mov a,02h a 2 mov b,06h b 6 mul abba a b 6 2 实例3 通过设置rs1,rs0选择工作寄存器区1 clr psw.4 p...

单片机实验小结

这学期的单片机实验课程已经结束了,虽然做的实验是比较简答的,但麻雀虽小五脏俱全,因此自己也通过实验课学到了很多知识。单片机实验课是为了更好的学习单片机使用单片机而开设的一门课程。单片机在实际生活中的应用非常广泛,尤其是在工业控制 网络通信 模块化系统和汽车电子等领域。因此,单片机课程是电子信息类专业...

单片机相关考点

题型 判断,填空,简答题,编程题。一 部分章节分值分布 3 4章 10分。5章 15分。6章 15分。9章 15分。二 部分考点 1.微机和单片机的概念,程序计数器。2.内部清零和外部清零的程序,30页的相关引脚以及输入输出口,38页数据存储空间的两大部分,41页特殊功能寄存器表2 7,复位操作 表...

单片机学习个人总结

个人总结。作为一个初学者,对于单片机我了解了一段时间,但总感觉无从入手,理论性的东西看了几遍也不会把它用到实处,通过这次彩灯控制实验,我也对单片机有了一定的了解。单片机是一门非常重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚 内部结构 寄存器和原理有一定地了解和感官认识,它的是怎样...

单片机实训心得

单片机课程设计实训体会。为期一周的单片机实训让我们受益匪浅。本来还以为编程会很简单的,等到实际操作起来才知道它的复杂性,没有想像中的那么得心应手,理解流程是有思维的前提。单片机是我们上学期开设的课程,所以很多专业知识也都忘记了。不过经过我们一步步的努力,花费的时间与精力终于没有白费,效果渐渐地出现了...

单片机课程设计总结

单片机课程设计心得体会 这个学期的单片机课已经早早的上完了,但是理论纯属理论,没有与实践的结合总让我们学的不踏实,感觉没有达到学以致用的效果。所庆幸的是在课程介绍考试完之后,老师给我们安排了这次单片机课程设计,给了我们学以致用的做好的实践。关于这次课程设计,我们花费了比较多的心思,既是对课程理论内容...