单片机学习第一章_第1页
单片机学习第一章_第2页
单片机学习第一章_第3页
单片机学习第一章_第4页
单片机学习第一章_第5页
已阅读5页,还剩89页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、单片机学习第一章第1页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换微型计算机是以二进制形式进行算术运算和逻辑操作的,二进制数是计算机系统能认识、处理的惟一数制。因此,用户在键盘上输入的十进制数字和符号命令,微型计算机都必须先把它们转换成二进制形式进行识别、运算和处理,然后再把运算结果还原成十进制数字和符号在显示器上显示出来。为了使读者弄清机器的这一工作机理,我们先对微型计算机中常用的数制和数制间的转换进行讨论。1.1.1 微型计算机的数制所谓数制是指数的制式,是人们利用符号计数的一种科学方法。数制有很多种,微型计算机中常用的数制有十进制、二进制和十六进制

2、三种。1十进制(Decimal)十进制是大家很熟悉的进位计数制,它共有0、1、2、3、4、5、6、7、8和9十个数字符号。这十个数字符号又称为数码,每个数码在数中最多可有两个值的概念。 下一页返回第2页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换十进制是一种科学的计数方法,它所能表示的数的范围很大,可以从无限小到无限大。十进制数通常具有如下两个主要特点: (1)它有09十个不同的数码,这是构成所有十进制数的基本符号。 (2)它是逢十进位的。十进制数在计数过程中,当它的某位计满10时就要向它邻近高位进一。因此,任何一个十进制数不仅和构成它的每个数码本身的值

3、有关,而且还和这些数码在数中的位置有关。这就是说,任何一个十进制数都可以展开成幂级数形式。 上一页下一页返回第3页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换一般地说,任意一个十进制数均可表示为:2. 二进制(Binary)二进制数的特点是:只有两个数码,即0和1,逢二进一。因此,二进制数同样也可以展开成幂级数形式,任何二进制数的通式为: 上一页下一页返回第4页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换1位二进制数只能表示0和1两个状态,为了表示更多的状态,可用两位或两位以上的二进制数表示。二进制数的位数与它能表

4、示的状态数之间的关系如下:1位二进制数,共有21(即2)个状态,分别编码为0、1;2位二进制数,共有22(即4)个状态,分别编码为00、01、10、11;4位二进制数,共有24(即16)个状态,分别编码为 0000 0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111上一页下一页返回第5页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换8位二进制数,共有28(即256)个状态,分别编码为 00000000 00000001 00000010 00000011 00

5、000100 00000101 00000110 00000111 00001000 00001001 00001010 00001011 11111100 11111101 11111110 11111111上一页下一页返回第6页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换在计算机系统中,寄存器、存储器的本质就是一组触发器。一个触发器,如RS、D型触发器等均有两个稳定的状态,即0态和1态,显然一个触发器可以存储1位二进制数。为了提高数据处理速度,在计算机中往往需要并行处理多位二进制数。习惯上,存储器中一个存储单元通常由8个触发器组成,即一个存储单元可以

6、存放一个8位二进制数。一个8位二进制数称为一个字节(Byte),有256种状态,或者说可以表示256个符号。因此,存储器(包括内存储器和外存储器)容量单位常用字节(或干字节)表示,如某存储器的容量为640KB,即该存储器有6401024个存储单元,每个存储单元的大小为一个字节。上一页下一页返回第7页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换10位二进制数,共有210(1024,在计算机中,“1024”习惯上称为1K)个状态,编码为00000000001111111111。16位二进制数,共有216有些微处理器,如大多数8位的微处理器,就有16根地址线。

7、由于每根地址线有两种可能的状态,所以可以用地址线状态的不同编码寻址不同的存储单元。因此,16根地址线相当于16位二进制数,最多可以寻址64K个存储单元。而存储单元的大小一般是一个字节,所以对于具有16根地址线的微处理器来说,最多可以寻址64KB的存储空间,或者说寻址能力为64KB。 为了不致引起混乱,二进制数用后缀字母作标记,如二进制数1110记为lll0B。上一页下一页返回第8页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换3. 十六进制(Hexadecimal)十六进制数的特点是:逢十六进一,具有16个数码,分别用0、1、2、9和A、B、C、D、E、F

8、表示。1位十六进制数可以表示16种状态,编码从OF;2位十六进制数可以表示 162(256)种状态,编码从00FF;4位十六进制数可以表示164 (65536,即64K)种状态,编码为0000FFFF;而8位十六进制数可以表示168 (4096M)种状态,编码为00000000FFFFFFFF。为了不致引起误解,十六进制数要加后缀字母H,如十六进制数“3F”记为“3FH”;而对于以字母开头的十六进制数,必须带有前缀0(零),以区别于一般字符串,如十六进制数FE记为“0FEH”。与十进制数类似,对于n位十六进制数,可以表示为上一页下一页返回第9页,共94页,2022年,5月20日,2点45分,星

9、期二1.1 微型计算机数制及其转换1.1.2 微型计算机数制间数的转换1. 二进制数与十进制数之间的转换对于位十进制数,可以表示为: 同理,n位二进制数也可以表示为:可见,将二进制数转换为十进制数不难,只要按上式展开即可求出对应的十进制数。而十进制数转换为二进制数时,可以按如下规律进行:上一页下一页返回第10页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换整数部分除以2所得的余数就是对应二进制数的个位,其商再除以2所得的余数就是对应二进制数的十位,依次类推,即可获得对应二进制数的整数部分。小数部分乘以2所得的整数就是对应二进制数小数部分的十分位,乘积中的小

10、数部分再乘以2得到的整数就是对应二进制数小数部分的百分位,依次类推,即可求出所有的小数位。例1.1 1375的整数部分是13,小数部分是0.75,转换为二进制数的过程如下所示 。上一页下一页返回第11页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换13相当于二进制数1101;而0752=15,因此十分位为1;052=10,因此百分位为l,即1375=11011IB。2. 二进制数与十六进制数之间的转换二进制和十六进制数间的转换十分方便,这就是为什么要采用十六进制形式来对二进制数加以表达的内在原因。(1)二进制数转换成十六进制数时,按如下规则进行。对于二进制

11、数的整数部分来说,从个位开始,每4位作为一组,划分整数部分(如果最后一组不足4位,可在前面补13个零);对于二进制数的小数部分来说,从十分位开始,每4位作为一组,划分小数部分(同样,当最后一组不足4位时,可在后面补13个零)。然后把每组中的4位二进制数用对应的十六进制数表示,即可获得相应的十六进制数。上一页下一页返回第12页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换如:111001010110101B =0011 100l 01011010 1000 3 9 5 A 8即111001010110101B=395A8H(2)十六进制数转换为二进制数时,按

12、如下规则进行。将十六进制数的整数部分和小数部分的每一位十六进制数码用对应的4位二进制数表示,然后再删除整数部分前面和小数部分后面多余的零,即可获得对应的二进制数,如:93FE3A3H=1001 0011 1111 11100011 1010 0011B又如:3ECH=0011 111011OOB =11111011B(删除整数部分前面的零和小数部分后面的零)上一页下一页返回第13页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换可见二进制数与十六进制数之间的转换非常方便,只要记住4位二进制数00001111与十六进制数0F之间的对应关系即可。下面是二进制数0

13、0001111对应的十六进制数和十进制数。二进制数 十进制数 十六进制数 二进制数 十进制数 十六进制数0000 0 0 1000 8 80001 1 1 1001 9 90010 2 2 1010 10 A0011 3 3 1011 11 B0100 4 4 1100 12 C0101 5 5 1101 13 D0110 6 6 1110 14 E0111 7 7 1111 15 F上一页下一页返回第14页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换1.1.3 二进制数和十六进制数的运算1二进制数的运算二进制数的四则运算包括加、减、乘、除,在学习单片机

14、原理时,尤其需要掌握其中的加、减和乘法运算规则。(1)二进制数的加法二进制数的加法运算规则为 0+0=0,0+1=1,1+0=1(交换律),1+1=10(二进制数中的“10”就是十进制数的“2”)。例如: 1001 0110B + 0111 0011B 10000 1001B上一页下一页返回第15页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换(2)二进制数的减法二进制数向前借位时,为“10”,例如: 1001 0110B - 0111 0011B 0010 0011B(3)二进制数的乘法二进制数的乘法运算规则为 00=0,01=0,10=0(交换律),1

15、1=1。例如: 1001 0110B 101B 10010110 00000000 + 10010110 1011101110B上一页下一页返回第16页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换2十六进制数的运算十六进制数的四则运算包括加、减、乘、除,在学习单片机原理时,同样需要掌握其中的加、减和乘法运算规则。十六进制数的加法运算规则与十进制数的加法运算规则相同,如3H+4H=7H,7H+4H=0BH(结果是十进制数的11,即十六进制数的0BH),8H+7H=0FH(结果是十进制数的15,即十六进制数的0FH),8H+9H=11H(结果是十进制数的17

16、,即十六进制数的llH)。例如: 3 4 6 A H + 5 8 9 C H 8 D 0 6 H上一页下一页返回第17页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换在上式中,个位的A(10)加C(12),结果为22,即十六进制数的“16”,向十位进1,结果为6;十位的 6+9+1(个位进位),结果为16,即十六进制数中的“10”,向百位进1,结果为0;百位4+8+1(十位进位),结果为13,即十六进制数中的“D”;千位3+5,结果为8。上一页下一页返回第18页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换 7 4 6

17、 A H - 5 8 9 C H 1 B C E H在上式中,个位向十位借1后,变成十六进制数的“1A”,即十进制数的26,再减C(即十进制数的12),结果为14,即十六进制数的“E”;十位原本是“6”,个位借1后变为“5”,十位再向百位借l,变成十六进制数的“15”,即21;减9,结果为12,即十六进制数的“C”;百位原本是“4”,十位借1后变为“3”,百位向千位借1,变成十六进制数的“13”,即19;减8,结果为11,即十六进制数的“B”。上一页下一页返回第19页,共94页,2022年,5月20日,2点45分,星期二1.1 微型计算机数制及其转换 7 4 6 A H 9 C H (进位)3

18、 4 7 5 7 4 F 8 (进位)2 3 5 + 4 1 7 B A 4 6 F 0 9 8可见十六进制数的乘法与十进制数的乘法运算方法类似,但必须注意将十六迸制数乘法运算的中间结果转为十六进制数,例如69的结果为十进制数的54,转化为十六进制数是36H。上一页返回第20页,共94页,2022年,5月20日,2点45分,星期二1.2 码制计算机内部所有的数据均采用二进制代码表示,但通过输入设备(如键盘)输入的信息和通过输出设备(如显示器、打印机)输出的信息却是多种多样的,既有字母、数字,又有各种控制字符,甚至汉字。为了方便,人们对计算机中常用的符号进行了编码。当通过输入设备向计算机输入某个

19、字符时,计算机会自动将该字符转化为对应的二进制数,再进行处理同时计算机也将处理结果还原为对应的字符。于是,字符所对应的二进制数就称为该字符的编码。下一页返回第21页,共94页,2022年,5月20日,2点45分,星期二1.2 码制1.2.1 英文字符的表示方法ASCII码由于计算机只能处理二进制数,因此除了数值本身需要用二进制数形式表示外,字符(包括数码,如0,1,2,3,4,5,6,7,8,9)、字母(如A,B,C,D,X,Y,Z及a,b,C,d, ,x,y,z)、特殊符号(如,!,+,-,=)等也必须用二进制数表示,即在计算机中需将数码、字母、特殊符号等代码化,以便于计算机识别、存储和处理

20、。英文属于典型的拼音文字,由字母、数字、特殊符号等组合而成,但这些字母、数字、特殊符号的数目毕竟有限,不过百余个。我们知道7位二进制数可以表示128种状态,如果每一种状态代表特定的字母或数字,则7位二进制数可表示128个字符。上一页下一页返回第22页,共94页,2022年,5月20日,2点45分,星期二1.2 码制 在计算机系统中,存储单元的长度通常为8位二进制数(一个字节),为了存取方便,规定一个存储单元存放一个ASCII码,其中低7位表示字母本身的编码,第8位(bit7)用作奇偶校验位或规定为零(通常如此)。因此,也可以认为ASCII码的长度为8位(但bit7为0)。128个字符对于某些特

21、殊应用来说,可能不够,因此就采用8位的ASCII,即扩展ASCII码(共有256个代码)。其中前128个(高位为O)编码用于表示基本的ASCII码,基本ASCII码主要用于表示数字、英文字母(大、小写)、标点符号、控制字符等,后128(高位为1)个编码用于表示扩展的ASCII码,扩展ASCII用于表示一些特殊的符号,如希腊字母等。上一页下一页返回第23页,共94页,2022年,5月20日,2点45分,星期二1.2 码制1.2.2 BCD码(二进制编码的十进制数)十进制数毕竟是人们最习惯的计数方式,在向计算机输入数据时,常用十进制数输入,但计算机只认识二进制数,因此每一位十进制数必须用二进制数表

22、示。一位十进制数包含09十个数码,必须用4位二进制数表示,这样就需要确定09与4位二进制数0000B1111B之间的对应关系,其中较常用的8421BCD码规定了十进制数09与4位二进制数编码之间的对应关系如下。上一页下一页返回第24页,共94页,2022年,5月20日,2点45分,星期二1.2 码制上一页下一页返回 十进制数 8421BCD码 十进制数 8421BCD码 0 0000 5 0101 l 0001 6 0110 2 0010 7 0lll 3 00ll 8 1000 4 0100 9 100l第25页,共94页,2022年,5月20日,2点45分,星期二1.2 码制 1.2.3

23、计算机中带符号数的表示方法在计算机中,对于带符号数来说,一般用最高位表示数的正负。对于正数,最高位规定为“0”;对于负数,最高位为“1”。例如:56H可以表示为0 1010110(对于8位二进制数来说,b7位表示数的正负,b6b0表示数的绝对值),-56H可以表示为1 1010110。0256H可以表示为0 000 0010 0101 0110(对于16位二进制数来说,b15位表示数的正负,b14b0表示数的绝对值),-0256H可以表示为1 000 0010 0101 0110。1原码对于带符号数来说,用最高位表示数的正负,其余各位表示该数的绝对值,这种表示方法就称为原码表示法,如上所述。上

24、一页下一页返回第26页,共94页,2022年,5月20日,2点45分,星期二1.2 码制2反码带符号数也可以用反码表示,反码与原码的关系是:正数的反码与原码相同,如56H反=56H原=0 1010110B。负数的反码等于对应正数的原码按位求反。因此,求-56H反码的过程如下:对应正数56H的原码为0 1010110,按位求反后为1 0101001,即-56H的反码为10101001。或者说,正数的反码与原码相同,而负数的反码是对应负数原码除符号位外,绝对值部分按位取反。上一页下一页返回第27页,共94页,2022年,5月20日,2点45分,星期二1.2 码制3补码在计算机内,带符号数并不是用原

25、码或反码表示,而是用补码表示,引入原码、反码的目的只是为了方便理解补码概念而已。不用原码表示的原因是:用原码表示时,0的原码并不惟一,0的原码可以表示为0 0000000(+0),也可以表示为1 0000000(一0),这会造成混乱;再就是用原码表示时,减法并不能转化为加法运算,反码也存在类似问题。在计算机中,带符号数用补码表示后,减法就可以转化为加法运算,例如:上一页下一页返回第28页,共94页,2022年,5月20日,2点45分,星期二1.2 码制56H-23H=56H-23H+100H (100H是8位二进制能表示的最大数,加上100H后,对计算结果没有影响,原因是8位二进制无法存放10

26、0H中的“1”,即b8位) =56H+100H-23H =56H+0DDH =133H =33H(由于8位二进制不能存放b8位,结果133H中最高位“l”自然丢失)可见在8位二进制中,56H-23H的结果与56H+0DDH相同,即引入补码后减法可以用加法来完成。显然在8位二进制中,23H与0DDH互为补码。补码的定义为:正数的补码与反码、原码相同;负数的补码等于它的反码加1。因此,求-23H补码的过程如下:上一页下一页返回第29页,共94页,2022年,5月20日,2点45分,星期二1.2 码制对应正数23H的原码为0 0100011,按位求反后为1 1011100,即-23H的反码,反码加1

27、后为1 1011101,即-23H的补码为1 1011101(相当于无符号数的0DDH)。可见,用补码表示时,最高位为O,表示该数为正数,数值部分就是真值。而最高位为1时是负数,数值部分并不是它的真值,必须再求补后,才得到该数的绝对值,如上例中的一23H的补码为1 1011101,按位取反后为00100010,加1后为00100011,即23H。对于8位二进制数来说,补码表示的范围是-128+127;对于16位二进制数来说,补码表示的范围是-32768+32767。上一页返回第30页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理 迄今为止,所有计算机的组成结构

28、都是冯诺依曼型的,即:它是执行存储器中程序而工作的。计算机执行程序是自动按序进行的,毋需人工干预,控制器在时钟信号的控制下,从存储器中取出计算步骤(指令)和数据,并根据指令操作码内容发出相应的控制信号。程序和数据由输入设备输入存储器,执行程序所获得的运算结果由输出设备输出。因此,计算机通常有运算控制部件、存储器部件、输入设备和输出设备四部分组成,计算机系统的基本结构如图11所示。下一页返回第31页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理在计算机中,往往把运算器、控制器做在一个芯片上,称为中央处理器(Central Processor Unit,简称CPU

29、),有时也称为微处理器(Micro Processor Unit,MPU)。为了进一步减小电路板面积,提高系统可靠性,将输入、输出接口电路、时钟电路,以及存储器、运算器、控制器等部件集成到一个芯片内,就成为单片机(也称为微控制器,即Micro Controller Unit,简称MCU)。这就表示一个芯片就具备了一个完整的计算机系统所必需的基本部件。为了适应不同的需求,将不同功能的外围电路,如定时器、中断控制器、AD及DA转换器、串行通信接口电路等集成在一个芯片内,形成系列化产品,就构成了所谓“嵌入式”单片机控制芯片。上一页下一页返回第32页,共94页,2022年,5月20日,2点45分,星期

30、二1.3 微型计算机组成原理1.3.1 微型计算机的基本结构1CPU的内部结构图1-1中的运算器和控制器等部件往往做在同一芯片内,称为中央处理器(CPU)。8位通用微处理器内部基本结构可用图1-2描述,它由算术逻辑运算单元(Arithmetic Logic Unit,简称ALU)、累加器A(8位)、寄存器B(8位)、程序状态字寄存器PSW(8位)、程序计数器PC(有时也称为指令指针,即IP,16位)、地址寄存器AR(16位)、数据寄存器DR(8位)、指令寄存器IR(8位)、指令译码器ID、控制器等部件组成。上一页下一页返回第33页,共94页,2022年,5月20日,2点45分,星期二1.3 微

31、型计算机组成原理 (1)程序计数器PC是CPU内部的寄存器,用于记录将要执行的指令代码所在存储单元的地址编码。一般说来,PC的长度与CPU地址线数目一致,例如8位机的CPU一般具有16根地址线(A15A0),PC的长度也是16位。复位后,PC具有确定值,例如在MCS一51系列单片机中,复位后,PC=0000H,即复位后将从程序存储器的0000H单元读取第一条指令码。由于复位后,PC的值就是第一条指令代码存放的单元地址,因此设计程序时,必须了解复位后PC的值是什么,以便确定第一条指令码从存储器哪一存储单元开始存放。PC具有自动加1的功能,即从存储器中读出一个字节的指令码后,PC会自动加1(指向下

32、一存储单元)。上一页下一页返回第34页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理(2)地址寄存器AR(Address Register,16位)用于存放将要寻址的外部存储器单元的地址信息,指令码所在存储单元的地址编码,由程序计数器PC产生;而指令中操作数所在存储单元的地址码,由指令的操作数给定。地址寄存器AR通过地址总线AB与外部存储器相连。(3)指令寄存器IR(Instruction Register)用于存放取指阶段读出的指令代码的第一字节,即操作码,使指令译码器ID的输入保持不变。存放在IR中的指令码经指令译码器ID译码后,输入控制器,产生相应的控制

33、信号,使CPU完成指令规定的动作。上一页下一页返回第35页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理(4)数据寄存器DR(Data Register)用于存放写入外部存储器或IO端口的数据信息。可见,数据寄存器DR对输出数据具有锁存功能,数据寄存器与外部数据总线DB直接相连。(5)算术逻辑运算单元ALU主要用于算术(加减乘除)、逻辑(与、或、非、异或) 运算。由于ALU内部没有寄存器,参加运算的操作数必须放在累加器A中(运算结果也存放在累加器A中),例如执行指令:ADD A,B ;AA+B时,累加器A的内容通过输入口In_1输入ALU,寄存器B的内容通过内

34、部数据总线经输入口In_2输入ALU,A+B的结果通过ALU的输出口Out、内部数据总线,送回累加器A。(6)程序状态字寄存器PSW用于记录运算过程中的状态,如是否溢出、进位等。上一页下一页返回第36页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理 2存储器存储器是计算机系统中必不可少的存储设备,主要用于存放程序(指令)和数据。尽管寄存器和存储器均用于存储信息,但CPU内的寄存器数量少,存取速率快,它主要用于临时存放参加运算的操作数和中间结果;而存储器一般在CPU外(但单片机CPU除外,其内部一般均含有一定容量的存储器),单独封装。在存储器芯片内,存储单元数目

35、多,从几千字节到数百兆字节,能存放大量的信息,但存取速率比CPU内的寄存器要慢得多。目前,存储器的存取速率已成为制约计算机运行速率的关键因素之一。上一页下一页返回第37页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理存储器的种类很多,根据存储器能否随机读写,将存储器分为两大类:只读存储器(ReadOnly Memory,简称ROM)和随机读写存储器(Random Access Memory,简称RAM)。根据存储器存储单元结构和信息保存方式的不同,又可以将随机读写存储器分为静态RAM(采用双极型晶体管结构,存取速率快,无需刷新,但构成一个存储单元所需的晶体管数

36、目较多,集成度低,价格略高)和动态RAM(采用CMOS工艺,依靠MOS管栅极与衬底之间的寄生电容保存信息,一般均为单管结构,集成度高,但寄生电容容量小,漏电大,信息保存时间短,仅为毫秒级,需要刷新电路,致使动态RAM存储器系统电路复杂化,不适用于仅需要少量存储容量的单片机系统)。只读存储器中“只读”的含义是信息写入后,只能读出,不能随机修改,适合存放系统监控程序。上一页下一页返回第38页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理在单片机应用系统中,所需的存储器容量不大,外围电路应尽可能简单,因此几乎不使用动态RAM,常使用PROM(可编程的只读存储器)、E

37、PROM(紫外光可擦写的只读存储器)、OTP ROM(一次性编程的只读存储器,内部结构、工作原理与EPROM相似,是一种没有擦写窗口的EPROM)、EEPROM(也称为E2PROM,是一种电可擦写的只读存储器,其结构与EPROM类似,但绝缘栅很薄,高速电子可穿越绝缘层,中和浮栅上的正电荷,起到擦除目的,也就是说可通过高电压擦除)、Flash ROM(电可擦写只读存储器,写入速度比EEPROM快,因此也称为闪烁存储器)等只读存储器作为程序存储器,使用SRAM(静态存储器)作随机读写RAM,使用E2PROM、FRAM(铁电存储器,读写速率快,操作方法与SRAM相似)作非易失的数据存储器。尽管这些存

38、储器工作原理不同,但内部结构基本相同。上一页下一页返回第39页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理(1)内部结构EPROM、EEPROM、Flash ROM、SRAM、FRAM等存储器内部结构可以用图1-3描述,由地址译码器、存储单元、读写控制电路等部分组成。 寄存器或存储器中的一个存储单元,等效于一组触发器,每个触发器有两个稳定状态,可以记录一位二进制数。每一存储单元包含的触发器的个数称为存储单元的字长,对于并行存取的存储器芯片,存储单元内包含的触发器的个数与存储器芯片数据线条数相同。例如,由8个触发器并排在一起构成的存储单元的字长为8位,它可以存

39、放一个8位二进制数(一个字节)。在计算机中,为了提高处理速度,一次操作(如数据传送或运算)要同时处理多位二进制数。因此,在并行存取的存储器芯片中,一个存储单元的容量通常为8位。 上一页下一页返回第40页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理存储器芯片内存储单元数目与存储器芯片地址线条数有关。 存储单元长度也可以大于或小于8位,例如PICl6C56单片机内的程序存储器容量为1K12bit,即共有1024个存储单元,每个存储单元可以存放12位二进制数,即存储单元的字长为12位。存储单元的地址编码与存储单元中的内容是两个不同的概念,存储单元地址编码的长度由存

40、储器芯片所包含的存储单元的个数决定。 上一页下一页返回第41页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理(2)存储器工作状态存储器芯片工作状态由存储器控制信号电平状态决定,如表1-1所示。(3)存储器读操作下面以CPU读取存储器中地址编号为0000H的存储单元的内容为例来说明CPU读存储器中某一存储单元信息的操作过程(如图14所示)。CPU地址寄存器AR给出将要读取的存储单元的地址信息,即0000H。存储单元地址信息通过地址总线A15A0输入到存储器芯片地址线上(CPU地址总线与存储器地址总线相连)。存储器芯片内的地址译码器对存储器地址信号A14A0进行译

41、码,并选中0000H单元。上一页下一页返回第42页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理CPU给出读控制信号 (接存储器的 ),将选中的0000H存储单元内容输出到数据总线D7D0(存储器数据总线与CPU数据总线相连),结果0000H单元的内容12H就通过存储器数据总线输入到CPU内部的数据寄存器DR中,然后送到CPU内部某一特定寄存器或暂存器内,这样便完成了存储器的读操作过程。对于存储器来说,完成读操作后,被读出的存储单元信息将保持不变。(4)存储器写操作把某一数据(如55H)写入存储器内某一存储单元(如0003H单元)的操作过程如下:CPU地址寄存

42、器AR给出待写入的存储单元的地址编码0003H,通过地址总线A15A0输入到存储器芯片地址线A14A0上。上一页下一页返回第43页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理3地址总线、数据总线和控制总线一个电路总是由元器件通过导线连接而成的。在模拟电路中,器件、部件间一般是串行关系,彼此之间的连线并不多,关系也不复杂。但在以微处理器为核心的计算机电路中,器件、部件都要与微处理器相连,需要的连线多,如果仍采用模拟电路的连线方式,在微处理器与各器件间单独连线,则连线数量将多得惊人,为此在计算机电路中引入了总线的概念:即每一器件的数据线连接在一起,构成数据总线;

43、地址线连接在一起,构成地址总线;然后与CPU的数据、地址总线相连。为避免混乱,任何时候只允许一个设备与CPU通信,因此需要控制线进行控制。上一页下一页返回第44页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理存储器芯片内的地址译码器对存储器地址信号A14A0进行译码,并选中0003H单元。在写操作过程中,写入的数据55H存放在CPU内的数据寄存器DR中。当CPU写控制信号有效时(与存储器写允许信号相连),DR寄存器中的内容55H就通过数据总线D7D0传输到存储器中被选中的0003H存储单元,结果0003H单元的内容即刻变为55H,完成了存储器的写操作过程。可见

44、,写操作后,被写入的存储单元原有信息将不复存在。上一页下一页返回第45页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理所有器件的8根数据线全部接到8根公用的数据线上,即相当于各个器件并联起来。但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其他器件中有存储单元,这些存储单元要被分配地址才能使用。分配地址当

45、然也是以电信号的形式给出的,由于存储单元比较多,所以用于地址分配的线也较多,这些线被称为地址总线。上一页下一页返回第46页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理 在计算机系统中,常包含以下几种总线:(1)地址总线(Address Bus,简称AB)。它是单向传输,用于传送地址信息,如图11中运算器与存储器之间的地址线,地址线的数目决定了可以寻址的存储空间。一根地址线有两种状态,即可以区分两个不同的存储单元,或者说可以寻址两个存储单元;两根地址线有四种状态,可以寻址四个存储单元8位微处理器通常有16根地址线,可以寻址216,即64K个存储单元。一般存储单

46、元的大小为一个字节,因此8位微处理器的寻址范围为64KB。上一页下一页返回第47页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理(2)数据总线(Data Bus,简称DB)。它一般为双向传输,用于CPU与存储器、CPU与外设或外设与外设之间传送数据(包括实际意义的数据和指令码)信息。在计算机中,为了提高处理速度,总是一次处理由多位二进制数组成的信息,即在运算器中数据线的数目应与待处理的数据位数相同。因此,运算器数据线的数目往往不止一条,一般为4条、8条、16条,甚至32条。运算器内数据线的多少被称为微处理器的“字长”。字长是衡量微处理器运算速度及精度的重要指标

47、之一,也是划分微处理器档次的重要依据。根据字长,可以将微处理器分为1位机、4位机、8位机、16位机、32位机、64位机等。1位机的运算器只有一根数据线,每次只能处理1位二进制数,工业上常用来取代继电器,用于控制线路的通和断、设备的开和关;4位机有四根数据线,常用于家用电器,如电视机、空调机、洗衣机等的控制电路中;8位机功能强大,不仅可用于工业控制、家用电器,也可作为通用微机系统的中央处理器。上一页下一页返回第48页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理(3)控制总线(Control Bus,简称CB)。它是计算机系统中所有控制信号线的总称,在控制总线中

48、传送的信息是控制信息。4IO接口和外设IO接口是架设在微处理器和外设间的桥梁,是一种过渡的大规模集成电路芯片。由于大多数外部设备都是机电型的,工作速度较慢,因此微处理器MPU通常不和它们直接相连,而是通过IO接口缓冲后再和外设相连,以便实现速度、电平和信号性质的匹配。上一页下一页返回第49页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理1.3.2 微型计算机的基本原理微型计算机是通过执行程序来工作的,机器执行不同程序就能完成不同的运算任务。因此,微型计算机执行程序的过程实际上也体现了微型计算机的基本工作原理。为此,我们先从指令和程序谈起。1微处理器的指令及指令

49、系统将CPU所执行的各种操作(如从指定的存储器单元中取数据,将CPU内特定寄存器的内容写入存储器某一指定的存储单元中,以及算术或逻辑运算等)用命令的形式记录下来,就称为指令(Instruction)。一条指令与计算机的一种基本操作相对应。当然,指令也只能用二进制代码表示,例如在MCS一51系列单片机中,累加器A中的内容除以寄存器B中的内容(AB)的操作用84H作为指令代码。上一页下一页返回第50页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理为使计算机能够准确理解和执行指令所规定的动作,不同操作对应的指令要用不同的指令代码表示;或者说,不同的指令代码表示不同的

50、操作。例如,在MCS一5l系列单片机中,“E4H”表示将累加器Acc清零,“F4H”表示将累加器Acc内容按位取反;又如,用“74H xxH”表示将立即数“xxH”传送到累加器Acc中(这条指令占用两个字节,其中“74H”表示将立即数传送到累加器Acc中,是操作码,而xxH就是要传送的立即数)。在计算机中,所有指令的集合称为指令系统。上一页下一页返回第51页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理一条指令通常由操作码和操作数两部分组成:操作码(Operation code)决定了指令要执行的动作,一般用一个字节表示,除非指令数目很多,才需要用两个字节表示

51、。用一个字节表示指令的操作码时,最多可以表示256种操作,即256条指令,一般已足够。计算机系统所包含的指令数目并不很多,尤其是单片机系统,如PICl6系列单片机系统仅含有几十条指令。操作数(Operand)指定了参加操作的数据或数据所在的存储单元的地址。上一页下一页返回第52页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理不同计算机指令系统所包含的指令种类、数目、指令代码对应的操作由CPU设计人员指定。因此,不同种类的CPU具有不同的指令系统。一般说来,不同系列CPU的指令系统也不一定相同,除非它们彼此兼容。根据计算机指令系统的特征,可以将计算机指令系统分为

52、两大类,即复杂指令系统(Complex Instruction Set Computer,简称CISC指令结构)和精简指令系统(Reduced Instruction Set Computer,简称RISC指令结构)。采用复杂指令结构的计算机系统(如MCS一51系列单片机)具有如下特点:上一页下一页返回第53页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理 (1)指令机器码长短不一。 (2)可选择两条或两条以上指令完成同一操作,程序设计灵活性大,但缺点是指令数目较多(这类CPU一般具有数十条到数百条指令)。 由于指令操作码和操作数均存放在存储器中,而每条指令占

53、用的字节数长短不同。因此,指令中的操作码不仅要指明该指令所要执行的操作,还应指出指令占用的字节数。根据指令代码的长短,可将指令分为:单字节指令这类指令仅有操作码,没有操作数,或操作数隐含在操作码字节中。双字节指令这类指令第一字节为操作码,第二字节为操作数。多字节指令这类指令第一字节为操作码,第二、三字节为操作数或操作数所在的存储单元地址。上一页下一页返回第54页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理采用精简指令技术的计算机指令系统情况刚好相反。完成同一操作,一般只有一条指令可供选择,指令数目相对较少,尤其是采用了精简指令的单片机CPU,如PIC系列、A

54、tmel的AVR系列单片机,指令数目仅为数十条,但程序设计的灵活性相对较差。另外,在采用精简指令技术的系统中,指令机器码长度相同,例如PICl6C54单片机任一指令机器码的长度均为12位(1.5字节)。由于所有指令码长度相同,取指、译码过程中不必做更多的判断,因而指令执行速度较快。上一页下一页返回第55页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理但无论采用何种类型的指令系统,任何CPU的指令系统都会提供数据传送指令、算术逻辑运算指令、控制转移指令等四种基本类型指令。此外,在单片机系统中,还要提供位操作指令,以简化控制系统的程序设计。用二进制代码表示的指令称

55、为机器语言指令,其中的二进制代码称为指令的机器码。机器语言指令是计算机系统中惟一能够理解和执行的指令。正因如此,形象地将二进制代码形式的指令称为机器语言指令。上一页下一页返回第56页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理2程序程序(Program)就是指令的有机组合,是完成特定工作所用到的指令(这些指令当然是某个特定计算机系统的指令)的总称。一段程序通常由多条指令组成,程序中所包含的指令数目及种类由程序功能决定。用机器语言指令编写的程序,就称为机器语言程序,如:74 AAF875 A8 82程序的编制称为程序设计。通常,设计人员是采用指令的汇编符(即助

56、记符)形式编程的,这种程序设计称之为汇编语言程序设计。上一页下一页返回第57页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理3汇编语言及汇编语言程序由于机器语言指令中的操作码和操作数均用二进制数表示、书写,没有明显的特征,一般人很难理解和记忆,使程序编写工作成了一件非常困难和乏味的事。为此,人们想出了一个办法:将每条指令操作码所要完成的动作用特定符号表示,即用指令功能的英文缩写替代指令操作码,形成了指令操作码的助记符;并将机器语言指令中的操作数也用CPU内寄存器名、存储单元地址或IO端口号代替,这样便形成了操作数助记符,于是就获得了“汇编语言指令”。例如,将累

57、加器A内容清零,记为“CLR A”;用“MOV”作为数据传送指令的助记符,于是将立即数23H传送到累加器A中的指令就可以用“MOV A,#23H”(#是立即数标志)表示;将存储器43H单元中的内容传送到累加器A中,可用“MOV A,43H”表示。可见,汇编语言指令比机器语言指令容易理解和记忆。上一页下一页返回第58页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理 用指令助记符(由操作码助记符和操作数助记符组成)表示的指令称为汇编语言指令,由汇编语言指令构成的程序,称为汇编语言程序(有时也称为汇编语言源程序)。可见,汇编语言程序容易理解,可读性强,方便了程序的编

58、写和维护。由于汇编语言指令与机器语言指令一一对应,而机器语言指令中每一指令码的含义由CPU决定,因此不同计算机系统汇编语言指令格式、助记符等不一定相同。例如,在IntelMCS-51系列单片机系统中,将立即数55H送累加器A的汇编语言指令记作“MOV A,#55H”;但在Motorola M6805系列单片机中,却表示为“LDAA $55”;在PIC系列单片机中,写为“MOVLW 0 x55”,其中:“MOVLW”是“MOV Literal to W”的缩写,含义是“操作数传送到工作寄存器W中”(在PIC系列单片机CPU内,工作寄存器W与Intel MCS一51 CPU内累加器A的地位、作用相

59、同);“0 x”表示随后的数是十六进制数。上一页下一页返回第59页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理当然,计算机只能理解和执行二进制代码形式的机器语言指令,不能理解和执行汇编语言指令,但可以通过专门软件或手工查表方式将汇编语言程序中的汇编语言指令逐条翻译成对应的机器语言指令。将汇编语言程序转换为机器语言程序的过程就称为汇编过程,将完成汇编语言指令转换为机器语言指令的程序称为汇编程序。可见汇编程序的功能就是逐一读出汇编语言源程序中的汇编语言指令,再通过查表比较方式,将其中的汇编语言指令逐一转换成机器语言指令。当然这一过程也可以由人工查表完成,即所谓的

60、人工汇编。上一页下一页返回第60页,共94页,2022年,5月20日,2点45分,星期二1.3 微型计算机组成原理4微型计算机执行程序的过程为了弄清微型计算机的工作原理,现以如下的求和程序来说明微型计算机的工作过程。MOV A,0020H ;将存储器0020H单元中的内容传送到累加器中,该指令对应的机器码为;E5 2000。ADD A,0021H ;将存储器0021H单元中的内容与累加器内容相加,和存放在累加器A中,;该指令对应的机器码为25 21 00。MOV 002FH,A ;将结果传送到存储器002FH单元中,该指令对应的机器码为F5 2F 00。上述求和程序完成的操作是将存储器0020

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论