1、第,1,章 微型计算机基础,单片机原理及应用,教材:,单片机原理及接口技术,余锡存、曹国华编著,主讲:刘红俊(机械原理及机械设计教研室),第,1,章 微型计算机基础,1.1,计算机中的数制及相互转换,1.2,二进制数的运算,1.3,带符号数的表示,1.4,定点数和浮点数,1.5 BCD,码和,ASCII,码,1.6,微型计算机的组成及工作过程,1.1,计算机中的数制及相互转换,1.1.1,进位计数制,按进位原则进行计数的方法,称为进位计数制。十进制数有两个主要特点,:,(,1,)有,10,个不同的数字符号,:0,、,1,、,2,、,、,9;,(,2,)低位向高位进位的规律是,“,逢十进一,”,
2、。,因此,同一个数字符号在不同的数位所代表的数值是不同的。如,555.5,中,4,个,5,分别代表,500,、,50,、,5,和,0.5,这个数可以写成,555.5=510,2,+510,1,+510,0,+510,-1,式中的,10,称为十进制的基数,10,、,10,1,、,10,0,、,10,-1,称为各数位的权。,任意一个十进制数,N,都可以表示成按权展开的多项式,:,其中,d,i,是,0,9,共,10,个数字中的任意一个,m,是小数点右边的位数,n,是小数点左边的位数,i,是数位的序数。例如,543.21,可表示为,543.21=510,2,+410,1,+310,0,+210,-1,
3、+110,-2,一般而言,对于用,R,进制表示的数,N ,可以按权展开为,式中,a,i,是,0,、,1,、,、(,R-1,)中的任一个,m,、,n,是正整数,R,是基数。在,R,进制中,每个数字所表示的值是该数字与它相应的权,R,i,的乘积,计数原则是“逢,R,进一”。,1.,二进制数,当,R=2,时,称为二进位计数制,简称二进制。在二进制数中,只有两个不同数码,:0,和,1,进位规律为“逢二进一”。任何一个数,N,可用二进制表示为,例如,二进制数,1011.01,可表示为,(1011.01),2,=12,3,+02,2,+12,1,+12,0,+02,-1,+12,-2,2.,八进制数,当,
4、R=8,时,称为八进制。在八进制中,有,0,、,1,、,2,、,、,7,共,8,个不同的数码,采用,“,逢八进一,”,的原则进行计数。如(,503),8,可表示为:,(503),8,=58,2,+08,1,+38,0,3.,十六进制,当,R=16,时,称为十六进制。在十六进制中,有,0,、,1,、,2,、,、,9,、,A,、,B,、,C,、,D,、,E,、,F,共,16,个不同的数码,进位方法是,“,逢十六进一,”,。,例如,(,3A8.0D,),16,可表示为:,(,3A8.0D),16,=316,2,+1016,1,+816,0,+016,-1,+1316,-2,表,1.1,各种进位制的对
5、应关系,十进制,二进制,八进制,十六进制,十进制,二进制,八进制,十六进制,0,0,0,0,9,1001,11,9,1,1,1,1,10,1010,12,A,2,10,2,2,11,1011,13,B,3,11,3,3,12,1100,14,C,4,100,4,4,13,1101,15,D,5,101,5,5,14,1110,16,E,6,110,6,6,15,1111,17,F,7,111,7,7,16,10000,20,10,8,1000,10,8,1.1.2,不同进制间的相互转换,1.,二、八、十六进制转换成十进制,例,1,将数,(10.101),2,(46.12),8,(2D.A4),
6、16,转换为十进制。(,10.101),2,=12,1,+02,0,+12,-1,+02,-2,+12,-3,=2.625,(46.12),8,=48,1,+68,0,+18,-1,+28,-2,=38.156 25,(2D.A4),16,=216,1,+1316,0,+1016,-1,+416,-2,=45.640 62,2.,十进制数转换成二、八、十六进制数,任意十进制数,N,转换成,R,进制数,需将整数部分和小数部分分开,采用不同方法分别进行转换,然后用小数点将这两部分连接起来。,(1),整数部分,:,除基取余法。,分别用基数,R,不断地去除,N,的整数,直到商为零为止,每次所得的余数依
7、次排列即为相应进制的数码。最初得到的为最低有效数字,最后得到的为最高有效数字。,例,2,将(,168),10,转换成二、八、十六进制数。,(2),小数部分,:,乘基取整法。,分别用基数,R(R=2,、,8,或,16,)不断地去乘,N,的小数,直到积的小数部分为零(或直到所要求的位数)为止,每次乘得的整数依次排列即为相应进制的数码。最初得到的为最高有效数字,最后得到的为最低有效数字。,故:,(0.645),10,=(0.10100),2,=(0.51217),8,=(0.A51EB),16,例,4,将,(,168.645),10,转换成二、八、十六进制数。,根据例,2,、例,3,可得,(,168
8、.645),10,=(10101000.10100),2,=(250.51217),8,=(A8.A51EB),16,3.,二进制与八进制之间的相互转换,由于,2,3,=8,故可采用,“,合三为一,”,的原则,即从小数点开始分别向左、右两边各以,3,位为一组进行二,八换算,:,若不足,3,位的以,0,补足,便可将二进制数转换为八进制数。反之,采用,“,一分为三,”,的原则,每位八进制数用三位二进制数表示,就可将八进制数转换为二进制数。,例,5,将(,101011.01101),2,转换为八进制数。,101 011 .011 010,5 3 .3 2,即 (,101011.01101),2,=(
9、53.32),8,例,6,将,(123.45),8,转换成二进制数。,1 2 3,.,4 5,001 010 011,.,100 101,即:(,123.45),8,=(1010011.100101),例,7,将(,110101.011),2,转换为十六进制数。,0011 0101 .0110,3 5 .6,即:(,110101.011),2,=(35.6),16,例,8,将(,4A5B.6C),16,转换为二进制数。,4 A 5 B .6 C,0100 1010 0101 1011 .0110 1100,即 (,4A5B.6C),16,=(100101001011011.011011),2,
10、1.2,二进制数的运算,1.2.1,二进制数的算术运算,二进制数只有,0,和,1,两个数字,其算术运算较为简单,加、减法遵循,“,逢二进一,”,、,“,借一当二”的原则。,1.,加法运算,规则,:0+0=0;0+1=1;,1+0=1;1+1=10(,有进位,),例,1,求,1001B+1011B,。,2.,减法运算,规则,:0-0=0;1-1=0;1-0=1;0-1=1(,有借位,),例,2,求,1100B-111B,。,3.,乘法运算,规则,:00=0;01=10=0;11=1,例,3,求,1011B1101B,。,即:,10100101B/1111B=1011B,4.,除法运算,规则,:0
11、/1=0;1/1=1,例,4,求,10100101B/1111B,1.2.2,二进制数的逻辑运算,1.,“,与,”,运算,“,与,”,运算是实现,“,必须都有,否则就没有,”,这种逻辑关系的一种运算。运算符为,“,”,其运算规则如下,:,0,0=0,0,1=1,0=0,1,1=1,例,5,若,X=1011B,Y=1001B,求,XY,。,.,即,XY=1001B,2.,“,或,”,运算,“,或,”,运算是实现,“,只要其中之一有,就有,”,这种逻辑关系的一种运算,其运算符为,“,+,”,。,“,或,”,运算规则如下,:,0+0=0,0+1=1+0=1,1+1=1,例,6,若,X=10101B,
12、Y=01101B,求,X+Y,。,10101,01101,11101,+,即,X+Y=11101B,3.,“,非,”,运算,“,非,”,运算是实现,“,求反,”,这种逻辑的一种运算,如变量,A,的,“,非,”,运算记作 。其运算规则如下,:,A,例,7,若,A=10101B,求 。,A,4.,“,异或,”,运算,“,异或,”,运算是实现,“,必须不同,否则就没有,”,这种逻辑的一种运算,运算符为,“,”,。其运算规则是,:,例,8,若,X=1010B,Y=0110B,求,XY,。,1010,0110,1100,即,XY=1100B,1.3,带符号数的表示,1.3.1,机器数及真值,一个带符号的
13、二进制数的最高位用作符号位,来表示这个数的正负。规定符号位用,“,0,”,表示正,用,“,1,”,表示负。例如:,X=-1101010B,,,Y=+1101010B,,则,X,的二进制数表示为:,11101010B,,,Y,的二进制数表示为,01101010B,。,一个二进制数连同符号位在内,称为机器数;而一般的书写形式的数,称为该机器数的真值,如,-1101010B,、,+1101010B,机器数有三种表示方法:原码、反码、补码,1.3.2,数的码制,1.,原码,当正数的符号位用,0,表示,负数的符号位用,1,表示,数值部分用真值的绝对值来表示的二进制机器数称为原码,用,X,原表示,设,X,
14、为整数。,例如,+115,和,-115,在计算机中(设机器数的位数是,8,)其原码可分别表示为,+115,原,=01110011B;,-115,原,=11110011B,值得注意的是,由于,+0,原,=00000000B,而,-0,原,=10000000B,所以数,0,的原码不唯一。,8,位二进制原码能表示的范围是,:-127+127,。,2.,反码,一个正数的反码,等于该数的原码,;,一个负数的反码,由它的正数的原码按位取反形成。反码用,X,反,表示。,例如,:X=+103,则,X,反,=,X,原,=01100111B;X=-103,X,原,=11100111B,则,X,反,=1001100
15、0B,。,负数的反码等于:符号位不变,数值位取反。,3.,补码,“,模,”,是指一个计量系统的计数量程。如,时钟的模为,12,。任何有模的计量器,均可化减法为加法运算。仍以时钟为例,设当前时钟指向,11,点,而准确时间为,7,点,调整时间的方法有两种,一种是时钟倒拨,4,小时,即,11-4=7;,另一种是时钟正拨,8,小时,即,11+8=12+7=7,。由此可见,在以,12,为模的系统中,加,8,和减,4,的效果是一样的,即,-4=+8,(,mod 12,),对于,n,位计算机来说,数,X,的补码定义为,即,正数的补码就是它本身,负数的补码是真值与模数相加而得。,例如,n=8,时,+75,补,
16、=01001001B,-75,补,=100000000 B-01001001B=10110111B,0,补,=,+0,补,=,-0,补,=00000000B,可见,数,0,的补码表示是唯一的。在用补码定义求负数补码的过程中,由于做减法不方便,一般该法不用。,负数补码的求法,:,用原码求反码,再在数值末位加,1,即,:,X,补,=,X,反,+1,。例如,:,-30,补,=,-30,反,+1=,+30,原,+1=11100001+1=11100010B,。,8,位二进制补码能表示的范围为,:-128+127,若超过此范围,则为溢出。,1.4,定点数和浮点数,1.,定点法,定点法中约定所有数据的小数
17、点隐含在某个固定位置。对于纯小数,小数点固定在数符与数值之间,;,对于整数,则把小数点固定在数值部分的最后面,其格式为,纯小数表示,:,数符,.,尾数,数 符,尾 数,.,小数点,数 符,尾 数,.,小数点,2.,浮点法,浮点法中,数据的小数点位置不是固定不变的,而是可浮动的。因此,可将任意一个二进制数,N,表示成,N=M,2,E,其中,M,为尾数,为纯二进制小数,E,称为阶码。可见,一个浮点数有阶码和尾数两部分,且都带有表示正负的阶码符与数符,其格式为,阶 符,阶码,E,数 符,尾数,M,设阶码,E,的位数为,m,位,尾数,M,的位数为,n,位,则浮点数,N,的取值范围为,2,-n,2,-2
18、,m,+1,|N|(1-2,-n,)2,2,m,-1,为了提高精度,发挥尾数有效位的最大作用,还规定尾数数字部分原码的最高位为,1,叫做规格化表示法。,如,0.000101,表示为,:2,-3,0.101,1.5 BCD,码和,ASCII,码,1.5.1 BCD,码,十进制数,8421BCD,码,十进制数,8421BCD,码,0,0000,5,0101,1,0001,6,0110,2,0010,7,0111,3,0011,8,1000,4,0100,9,1001,表,1.2 8421BCD,编码表,BCD,码:用,4,位二进制数表示,1,位十进制数的编码形式。,例,1.,69.25,的,BCD
19、,码:,69.25=,(,01101001.00100101,),BCD,1.5.2 ASCII,码,表,1.3 ASCII,码 表,1.6,微型计算机的组成及工作过程,1.6.1,基本组成,图,1.1,微型计算机的基本组成,1.,中央处理器,CPU,CPU,(,Central Processing Unit,)是计算机的核心部件,它由运算器和控制器组成,完成计算机的运算和控制功能。,CPU,中还包括若干寄存器(,Register,),它们的作用是存放运算过程中的各种数据、地址或其它信息。这些寄存器主要有:通用寄存器、累加器,A,、程序计数器,PC,等。,运算器又称算术逻辑部件(,ALU,Ar
20、ithmetical Logic Unit,),主要完成对数据的算术运算和逻辑运算。,控制器(,Controller,)是整个计算机的指挥中心,它负责从内部存储器中取出指令并对指令进行分析、判断,并根据指令发出控制信号,使计算机的有关部件及设备有条不紊地协调工作,保证计算机能自动、连续地运行。,2.,存储器,M,存储器(,Memory,)是具有记忆功能的部件,用来存储数据和程序。,存储器(根据用途分类):,程序存储器(硬盘、软盘、光盘、,U,盘、,BIOS,),相当人脑记忆部分,数据存储器(基本内存、显存、内存条),相当于人脑思维部分,存储器(根据固有性质)分类:,只读存储器,ROM,固定掩膜
21、存储器,ROM,可编程存储器,PROM,紫外光可擦除存储器,EPROM,(,2764,、,2732.,),电改写存储器,EEPROM,、,E,2,PROM,(,2864,、闪存,),随机读写存储器,RAM,静态,RAM,(,6264,),(内存条),动态,RAM,;集成度高、价格底、功耗低,但需刷新。,3.,输入,/,输出接口(,I/O,接口),输入,/,输出(,I/O,)接口由大规模集成电路组成的,I/O,器件构成(如:串口、并口、,USB,口、,I/O,扩展插槽、其它,I/O,专用接口,1394,、读卡器,.,),用来连接主机和相应的,I/O,设备(如,:,键盘、鼠标、显示器、打印机、网络
22、设备、音箱、麦克等),使得这些设备和主机之间传送的数据、信息在形式上和速度上都能匹配。不同的,I/O,设备必须配置与其相适应的,I/O,接口。,4.,总线,总线(,BUS,)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。,外部总线有三种(三总线):,数据总线,DB,(,Data Bus,),地址总线,AB,(,Address Bus,),控制总线,CBControl Bus,)。,内部总线是,CPU,内部之间的连线。,外部总线是指,CPU,与其它部件之间的连线。,将中央处理器,(CPU),存储器,(Mem.),和输入输出接口部件,(I/O interface),集成在一
23、个芯片中,单一芯片具备了一台微型计算机的基本功能,这种单芯片的计算机就称谓单片微型计算机,(MCU).,且近年来,单片机的,CPU,速度不断提高,就,51,系列来说,仅时钟频率从,12MHz,提高到,24MHz,40MHz;,存储器不断扩容,(,内部,ROM 4K,8K,12K,60K,内部,RAM);I/O,接口不断丰富,(I,2,C,SPI,USART,CAN),一些单片机将一些功能部件直接集成进去,(A/D,D/A,PWM,Motor-Controller etc.),构成系统芯片,(SoC);,且系列很多,品种很全,可满足几乎所有场合的应用,.,5.,单片微型计算机,1.6.2,基本工
24、作过程,根据冯,诺依曼原理构成的现代计算机的工作原理可概括为,:,存储程序和程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行中所需的数据,通过一定的方式输入并存储在计算机的存储器中。程序控制是指计算机能自动地逐一取出程序中的一条条指令,加以分析并执行规定的操作。,略!,来看,Z=X+Y,的执行过程。,假定我们有一个虚拟机,SAM,主存储器由,4K16,位的字组成,CPU,中有一个可被程序员使用的,16,位累加器,A,。,SAM,指令格式为,操作码,地址码,SAM,中有如下指令,:,假设,X,和,Y,均已存放在存储单元中。注意,X,是个变量名,可以是某个存储单元的地址,该
25、单元中存放的是,X,的值。,(1),从地址为,X,的单元中取出,X,的值送到累加器中。,(2),把累加器中的,X,与地址为,Y,的单元的内容相加,结果存放在累加器中。,(3),把累加器中的内容送到地址为,Z,的单元中。,相应的,SAM,指令是,:,LOAD X,ADD Y,STORE Z,表,1.4,计算,Z=X+Y,的程序,指令被取出后送入指令寄存器,IR,(,Instrction Register,),由控制器中的译码器对指令进行分析,识别不同的指令类别及各种获得操作数的方法。以加法指令,ADD Y,为例,译码器分析后得到如下结果,:,(1),这是一个加法指令,;,(2),一个操作数存放在,Y,(地址为,A01H,)中,另一操作数隐含在累加器,A,中。,接着,操作进入指令执行阶段。仍以,ADD Y,为例,将,Y,与,A,中内容送入,ALU,进行加法运算,结果送入,A,。,