《单片机技术.ppt》由会员分享,可在线阅读,更多相关《单片机技术.ppt(50页珍藏版)》请在三一办公上搜索。
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)低位向高位进位的规律是“逢十进一”。因此,同一个数字符号在不同的数位所代表的数值是不同的。如555.5中 4 个 5分别代表500、50、5 和 0.5,这个数可以写成555.5=5102+5101+5100+510-1
2、式中的10称为十进制的基数,10、101、100、10-1称为各数位的权。,任意一个十进制数N都可以表示成按权展开的多项式:,其中,di是09共10个数字中的任意一个,m是小数点右边的位数,n是小数点左边的位数,i是数位的序数。例如,543.21可表示为543.21=5102+4101+3100+210-1+110-2,一般而言,对于用 R 进制表示的数 N,可以按权展开为,式中,ai 是 0、1、(R-1)中的任一个,m、n是正整数,R是基数。在 R 进制中,每个数字所表示的值是该数字与它相应的权Ri的乘积,计数原则是“逢 R进一”。,1.二进制数 当 R=2 时,称为二进位计数制,简称二进
3、制。在二进制数中,只有两个不同数码:0和1,进位规律为“逢二进一”。任何一个数 N,可用二进制表示为,例如,二进制数 1011.01 可表示为(1011.01)2=123+022+121+120+02-1+12-2,2.八进制数 当R=8 时,称为八进制。在八进制中,有 0、1、2、7 共 8 个不同的数码,采用“逢八进一”的原则进行计数。如(503)8可表示为(503)8=582+081+380,3.十六进制 当R=16时,称为十六进制。在十六进制中,有 0、1、2、9、A、B、C、D、E、F共 16个不同的数码,进位方法是“逢十六进一”。例如,(3A8.0D)16可表示为(3A8.0D)1
4、6=3162+10161+8160+016-1+1316-2,表1.1 各种进位制的对应关系,1.1.2 不同进制间的相互转换,1.二、八、十六进制转换成十进制,例 1 将数(10.101)2,(46.12)8,(2D.A4)16转换为十进制。(10.101)2=121+020+12-1+02-2+12-3=2.625(46.12)8=481+680+18-1+28-2=38.156 25(2D.A4)16=2161+13160+1016-1+416-2=45.640 62,2.十进制数转换成二、八、十六进制数 任意十进制数 N 转换成 R 进制数,需将整数部分和小数部分分开,采用不同方法分别
5、进行转换,然后用小数点将这两部分连接起来。(1)整数部分:除基取余法。分别用基数 R 不断地去除 N 的整数,直到商为零为止,每次所得的余数依次排列即为相应进制的数码。最初得到的为最低有效数字,最后得到的为最高有效数字。,例 2 将(168)10转换成二、八、十六进制数。,(2)小数部分:乘基取整法。分别用基数 R(R=2、8或16)不断地去乘N 的小数,直到积的小数部分为零(或直到所要求的位数)为止,每次乘得的整数依次排列即为相应进制的数码。最初得到的为最高有效数字,最后得到的为最低有效数字。,故:(0.645)10=(0.10100)2=(0.51217)8=(0.A51EB)16,例 4
6、 将(168.645)10转换成二、八、十六进制数。根据例2、例 3 可得(168.645)10=(10101000.10100)2=(250.51217)8=(A8.A51EB)16,3.二进制与八进制之间的相互转换 由于23=8,故可采用“合三为一”的原则,即从小数点开始分别向左、右两边各以3位为一组进行二八换算:若不足 3 位的以 0 补足,便可将二进制数转换为八进制数。反之,采用“一分为三”的原则,每位八进制数用三位二进制数表示,就可将八进制数转换为二进制数。例 5 将(101011.01101)2转换为八进制数。,即(101011.01101)2=(53.32)8,例 6 将(123
7、.45)8转换成二进制数。,即(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转换为二进制数。,即(4A5B.6C)16=(100101001011011.011011)2,1.2 二进制数的运算,1.2.1 二进制数的算术运算 二进制数只有 0和1两个数字,其算术运算较为简单,加、减法遵循“逢二进一”、“借一当二”的原则。,1.加法运算规则:0+0=0;0+1=1;1+0=1;1+1=10(有进位),例 1 求
8、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/1=0;1/1=1例 4 求10100101B/1111B,1.2.2 二进制数的逻辑运算,1.“与”运算“与”运算是实现“必须都有,否则就没有”这种逻辑关系的一种运算。运算符为“”,其运算规则如下:00=0,01=10=0,11=1 例 5 若X=1011B,Y=1001B,求XY。,.,即 XY=100
9、1B,2.“或”运算“或”运算是实现“只要其中之一有,就有”这种逻辑关系的一种运算,其运算符为“+”。“或”运算规则如下:0+0=0,0+1=1+0=1,1+1=1 例 6 若X=10101B,Y=01101B,求X+Y。,101010110111101,+,即 X+Y=11101B,3.“非”运算“非”运算是实现“求反”这种逻辑的一种运算,如变量A的“非”运算记作。其运算规则如下:,例 7 若A=10101B,求。,4.“异或”运算“异或”运算是实现“必须不同,否则就没有”这种逻辑的一种运算,运算符为“”。其运算规则是:,例 8 若X=1010B,Y=0110B,求XY。,101001101
10、100,即 XY=1100B,1.3 带符号数的表示,1.3.1 机器数及真值 计算机在数的运算中,不可避免地会遇到正数和负数,那么正负符号如何表示呢?由于计算机只能识别0和1,因此,我们将一个二进制数的最高位用作符号位来表示这个数的正负。规定符号位用“0”表示正,用“1”表示负。例如,X=-1101010B,Y=+1101010B,则X表示为:11101010B,Y表示为01101010B。,1.3.2 数的码制,1.原码 当正数的符号位用0表示,负数的符号位用1表示,数值部分用真值的绝对值来表示的二进制机器数称为原码,用X原表示,设X为整数。若X=+Xn-2Xn-3X1X0,则X原=0Xn
11、-2Xn-3X1X0=X;若X=-Xn-2Xn-3X1X0,则X原=1Xn-2Xn-3X1X0=2n-1-X。其中,X为n-1位二进制数,Xn-2、Xn-3、X1、X0为二进制数0或1。例如+115和-115在计算机中(设机器数的位数是8)其原码可分别表示为+115原=01110011B;-115原=11110011B,可见,真值X与原码X原的关系为,值得注意的是,由于+0原=00000000B,而-0原=10000000B,所以数 0的原码不唯一。8位二进制原码能表示的范围是:-127+127。,2.反码 一个正数的反码,等于该数的原码;一个负数的反码,由它的正数的原码按位取反形成。反码用X
12、反表示。若X=-Xn-2Xn-3X1X0,则X反=1Xn-2Xn-3X1X0。例如:X=+103,则X反=X原=01100111B;X=-103,X原=11100111B,则X反=10011000B。,3.补码“模”是指一个计量系统的计数量程。如,时钟的模为12。任何有模的计量器,均可化减法为加法运算。仍以时钟为例,设当前时钟指向11点,而准确时间为7点,调整时间的方法有两种,一种是时钟倒拨4小时,即11-4=7;另一种是时钟正拨8小时,即11+8=12+7=7。由此可见,在以12为模的系统中,加8和减4的效果是一样的,即-4=+8(mod 12)对于n位计算机来说,数X的补码定义为,即正数的
13、补码就是它本身,负数的补码是真值与模数相加而得。例如,n=8时,+75补=01001001B-73补=10000000 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.定点法 定点法中约定所有数据的小数点隐含在某
14、个固定位置。对于纯小数,小数点固定在数符与数值之间;对于整数,则把小数点固定在数值部分的最后面,其格式为,纯小数表示:数符.尾数,.小数点,.小数点,2.浮点法 浮点法中,数据的小数点位置不是固定不变的,而是可浮动的。因此,可将任意一个二进制数N表示成N=M2E其中,M为尾数,为纯二进制小数,E称为阶码。可见,一个浮点数有阶码和尾数两部分,且都带有表示正负的阶码符与数符,其格式为,设阶码 E的位数为m位,尾数M的位数为n位,则浮点数N的取值范围为 2-n2-2m+1|N|(1-2-n)22m-1 为了提高精度,发挥尾数有效位的最大作用,还规定尾数数字部分原码的最高位为1,叫做规格化表示法。如0
15、.000101表示为:2-30.101,1.5 BCD码和ASCII 码,1.5.1 BCD码,表1.2 8421BCD编码表,例 1 写出69.25的BCD码。根据表 1.2,可直接写出相应的BCD码: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)是计算机的核心部件,它由运算器和控制器组成,完成计算机的运算和控制功能。运算器又称算术逻辑部件(ALU,Ait
16、hmctieal Logic Unit),主要完成对数据的算术运算和逻辑运算。控制器(Controller)是整个计算机的指挥中心,它负责从内部存储器中取出指令并对指令进行分析、判断,并根据指令发出控制信号,使计算机的有关部件及设备有条不紊地协调工作,保证计算机能自动、连续地运行。,CPU中还包括若干寄存器(Register),它们的作用是存放运算过程中的各种数据、地址或其它信息。寄存器种类很多,主要有:通用寄存器:向 ALU提供运算数据,或保留运算中间或最终的结果。累加器A:这是一个使用相对频繁的特殊的通用寄存器,有重复累加数据的功能。程序计数器PC:存放将要执行的指令地址。指令存储器IR:
17、存放根据PC 的内容从存储器中取出的指令。在微型计算机中,CPU一般集成在一块被称为微处理器(MPU,Micro Processing Unit)的芯片上。,2.存储器M 存储器(Memory)是具有记忆功能的部件,用来存储数据和程序。存储器根据其位置不同可分为两类:内存储器和外存储器。内存储器(简称内存)和CPU直接相连,存放当前要运行的程序和数据,故也称主存储器(简称主存)。它的特点是存取速度快,基本上可与CPU处理速度相匹配,但价格较贵,能存储的信息量较小。外存储器(简称外存)又称辅助存储器,主要用于保存暂时不用但又需长期保留的程序和数据。存放在外存的程序必须调入内存才能进行。外存的存取
18、速度相对较慢,但价格较便宜,可保存的信息量大。,3.输入/输出接口(I/O接口)输入/输出(I/O)接口由大规模集成电路组成的I/O器件构成,用来连接主机和相应的I/O设备(如:键盘、鼠标、显示器、打印机等),使得这些设备和主机之间传送的数据、信息在形式上和速度上都能匹配。不同的I/O设备必须配置与其相适应的I/O接口。,4.总线 总线(BUS)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是CPU内部之间的连线。外部总线是指CPU与其它部件之间的连线。外部总线有三种:数据总线DB(Data Bus),地址总线 AB(Address Bus)和控制总线 CBCo
19、ntrol Bus)。,1.6.2 基本工作过程 根据冯诺依曼原理构成的现代计算机的工作原理可概括为:存储程序和程序控制。存储程序是指人们必须事先把计算机的执行步骤序列(即程序)及运行中所需的数据,通过一定的方式输入并存储在计算机的存储器中。程序控制是指计算机能自动地逐一取出程序中的一条条指令,加以分析并执行规定的操作。,来看Z=X+Y的执行过程。假定我们有一个虚拟机SAM,主存储器由4K16位的字组成,CPU 中有一个可被程序员使用的16位累加器A。SAM指令格式为,SAM中有如下指令:,假设X和Y均已存放在存储单元中。注意,X是个变量名,可以是某个存储单元的地址,该单元中存放的是X的值。(
20、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。,