第2章 51单片机的系统结构

发布 2021-06-01 13:58:28 阅读 2847

mcs是intel公司单片机的系列符号。intel从2023年陆续推出了mcs-48、mcs-51、mcs-96系列单片机。mcs-51系列单片机包括三个基本型,以及对应的低功耗型号80ccc51,因而mcs-51特指intel的这几种型号。

20世纪80年代中期以后,intel以专利转让的形式把8051内核给了许多半导体厂家,如amtel、philips、ananog devices、dallas等。这些厂家生产的芯片是mcs-51系列的兼容产品,准确地说是与mcs-51指令系统兼容的单片机。这些单片机与8051的系统结构(主要是指令系统)相同,采用cmos工艺,因而常用80c51系列来称呼所有具有8051指令系统的单片机。

mcs-51系列单片机的增强系列叫mcs-52系列,ram加大,速度提高,定时器多了一个。

atmel公司生产的51单片机采用了flash rom,便于编程调试,现在成为流行。本教材就一at89c52作为实例讲解。

从图2-1可以看出各种单片机的一般结构:

cpu+总线+存储器+接口电路(外围功能电路)

各种单片机具体型号间的差别仅在于存储器容量大小、接口电路种类数量!

at89c52的结构见教材图2-2。

几十种形式:

dip(dual-in-line package双列直插式封装。

pqfp(plastic quad flat package塑料四方扁平封装。

plcc(plastic leadless chip carrier package 塑料无引线芯片载体封装。

51单片机常见40引脚dip封装或qfp封装。

注意区分:元件逻辑图(逻辑符号)和元件封装图!

40引脚的基本分工——8根功能线,32根i/o线。

8根功能线。

电源线2根:vss(20脚)地线,vcc(40脚)接+5v;

晶振输入2根:xtal1(19脚)xtal2(18脚)接晶振两端;

控制复用4根:

rst/vpd(9脚):复位端,高电平有效,hmos单片机还可以接备用电源(旧教材p.51)。

ale/prog(30脚):地址锁存允许,以1/6主频固定振荡,用于地址锁存;对内含eprom的单片机,写入程序时,此引脚输入编程允许脉冲。

psen(29脚):外部程序存储器选通信号。

ea/vdd(31脚):对内含rom单片机,此引脚接高电平则从内部程序存储器开始访问,地址超出内部则访问外部rom。对无内部rom的单片机,ea接地,只访问外部rom。

对内含eprom的单片机,编程时此引脚接21v编程电源。

32根i/o线。

p0、p1、p2和p3共4个8位并行口,占用了32个引脚。

每个8位口可以整体8位使用,在程序中就是用p0、p1、p2、p3来表示。也可以按位使用,用p0.0~p0.

7、p1.0~p1.7、p2.

0~p2.7、p3.0~p3.

7分别表示每一根口线。

几乎所有口线都有双重身份(双功能=复用),根据线路连接和指令决定使用哪种功能。

也有人说成5个逻辑空间: rom空间。

内ram空间(、寄存器空间)(、位寻址空间)

外ram空间。

计算机中,rom和ram的两种编址方法:

统一编址——地址区别rom或ram空间,指令相同。(8086 cpu就是这种结构)

单独编址——rom或ram两套地址是重叠的,指令不同。(51单片就是这种结构)

注意理解:8086系统──rom和ram统一编址(mov指令)——冯诺依曼结构。

51单片──rom和ram单独编址(movc和movx指令)——哈佛结构。

作用:存放固化程序(包括指令中的立即数)以及程序用到的**常数(固定数据表,供程序查表用)。

容量:不分内外最大64k(地址统一编排),最大地址范围0-ffffh(16位地址)。

访问方法:程序运行时,硬件自动根据程序计数器pc(16位)的值访问rom的相应单元(读取指令)。如果程序中有查固化数据表的操作,才会用到访问rom的指令movc。

rom中有六(七)个特殊地址:(p.28图2-6)

0000h——程序起始地址。系统复位时,程序计数器pc自动变为0000h,所以rom的0000h单元是系统的启动地址,此处必须是程序的第一句指令,通常是一句跳转指令。

0003h——外部中断0(int0)的中断服务程序入口。系统响应引脚int0引起的中断时,pc自动指向0003h单元。

rom的000bh单元是定时器0中断的入口。系统响应引脚int0引起的中断时,pc自动指向000bh单元。

rom的0013h单元是外部中断1的入口。系统响应引脚int0引起的中断时,pc自动指向0013h单元。

rom的001bh单元是定时器1中断的入口。系统响应引脚int0引起的中断时,pc自动指向001bh单元。

rom的0023h单元是串行通讯中断的入口。系统响应引脚int0引起的中断时,pc自动指向0023h单元。

rom的002bh单元是定时器2中断的入口。系统响应引脚int0引起的中断时,pc自动指向002bh单元。(52系列才有!)

具体用法:直观上理解,应该在6个(7个)地址处开始存放相应的程序。但是,这样的用法要求6个地址之间要留有足够的空间,显然这对于有效利用51单片机有限rom空间是不科学的。

现在采用的方案是:6个(7个)地址之间只留有几个字节的空间,主程序和各个中断服务程序集中写在这6个(7个)地址以后的统一空间中,而在这6个(7个)地址分别放上一条ljmp指令,跳转到具体程序所在的位置。

现在请看复印材料:程序框架。

org 0000h

ljmp start在0000地址存放“ljmp start”指令的机器码。

org 0003h

ljmp 外部中断0的服务程序起始标号。

org 000bh

ljmp 定时器t0的服务程序起始标号。

org 0013h

ljmp 外部中断1的服务程序起始标号。

org 001bh

ljmp 定时器t1的服务程序起始标号。

org 0023h

ljmp 串行口中断的服务程序起始标号。

org 002bh

ljmp 定时器2中断的服务程序起始标号。

org 0100h ;这个地址只要大于002fh就可以!

start: 主程序、子程序、中断服务程序、数据表罗列在此。

可以发现,mcs51的中断入口比8086要简单的多,没有中断矢量表,而是每种中断源对应固定的中服入口地址。

51子系列内部数据存储器物理上分为两块:

00h-0ffh是节的内ram块,其中00h-1fh是32个字节通用寄存器区(用r0-r7)表示,20h-2fh是16个可以位寻址的单元;

全部节的内ram可以作为堆栈使用,由栈顶指针sp的数值决定堆栈深度。一般常用的设置是把栈底设在30h地址以上,这样可以把通用工作寄存器排除在堆栈以外,同时把20h-2fh这16个可以位寻址的单元排除在堆栈以外。

mcs-51中集成有节的ram,地址0-31(00h-1fh)的32个字节可以作为通用工作寄存器使用,分为四个区,每区8个单元,分别用r0-r7表示,相当与普通cpu中的ax、bx、cx、dx。

在指令中直接使用地址00h-0ffh,则是对内ram的直接寻址,包括对0-1fh这32个单元。如果用r0~r7访问就是按通用寄存器使用0-1fh这段空间。(p.29表2-1)

在程序状态字psw中专有两位是用于选择工作区的。(p.30表2-2)

mcs-51单片机内部80h-0ffh地址是重叠的地址区。第一部分就是上面说的内ram,第二部分则是片内集成的cpu以及各个接口电路的寄存器占用的区域。所以这个空间称为专用寄存器。

这个区域有128个单元,但是寄存器没有那么多,所以只有部分单元(21个或26个)有定义。有定义的单元可以正常访问。如果访问了没有定义的单元,可能得到一个不确定的随机数。

在21个专用寄存器中有11个可以位寻址。(26个寄存器中,有12个可以位寻址。)

程序计数器pc讨论时也放在这里,实际上它是独立的,所以没有地址。

专用寄存器既有名称也有地址,可以按名称访问,也可按地址访问。(p.31表2-3)

MCS 51单片机中断系统的结构

1 简述中断 中断源 中断源的优先级及中断嵌套的含义。答 当 cpu 正在处理某项事件的时,如果外界或内部发生了紧急情况,要求 cpu 暂停正在处理的工作转而去处理这个紧急情况,待处理完以后再回到原来被中断的地方,继续执行原来被中断了的程序,这样的过程称为中断。单片机采用中断主要有如下几个优点 可以...

51单片机的结构及其组成

在前面的五节课当中,我们讲述的都是一些基础概念的知识,从这节开始,我们就正式的切入到我们所在学习的对象 51单片机。学习单片机的内部结构之前,我们先了解下我们现在正在使用的计算机的几大组成部份 计算机的五个组成部份 运算器 用于实现算术和逻辑运算。计算机的运算和处理都在这里进行 控制器 是计算机的控...

MCS 51系列单片机的结构

mcs 51 系列单片机的结构。mcs 51 系列基本产品型号 称为 51 子系列,采用。40 脚双列直插封装。不同型号 mcs 51 单片机 cpu 处理能力和指令系统完全。兼容,只是存储器和 i o 接口的配置有所不同。一。基本组成 1.基本结构 一个 8 位的微处理器 cpu 片内数据存储器 ...