《微机原理与接口技术课件.pptx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课件.pptx(81页珍藏版)》请在三一办公上搜索。
1、微机原理与接口技术,概述,计算机 计算机(computer)俗称电脑,是一种用于高速计算的电子计算机器,可以进行数值计算,又可以进行逻辑计算,还具有存储记忆功能。 能够按照程序运行,自动、高速处理海量数据的现代化智能电子设备。由硬件系统和软件系统所组成,没有安装任何软件的计算机称为裸机。 可分为超级计算机、工业控制计算机、网络计算机、个人计算机、嵌入式计算机五类,较先进的计算机有生物计算机、光子计算机、量子计算机等。,概述,综述-微机原理发展史,微型计算机的发展微型计算机的发展是以微处理器的发展来表征的,微处理器的集成度每18个月就会翻一番,芯片的性能也会随之而提高一倍!,-摩尔定律,综述计算
2、机发展史(发展),第1代:电子管数字机(19461958年),硬件方面:逻辑元件采用的是真空电子管,主存储器采用汞延迟线、阴极射线示波管静电存储器、磁鼓、磁芯;外存储器采用的是磁带。,软件方面:采用的是机器语言、汇编语言。,特点:体积大、功耗高、可靠性差。速度慢(一般为每秒数千次至数万次)、价格昂贵,但为以后的计算机发展奠定了基础。,巨型机,综述-计算机发展史(发明),ENIAC的问世具有划时代的意义,表明电子计算机时代的到来。在以后60多年里,计算机技术以惊人的速度发展,没有任何一门技术的性能价格比能在30年内增长6个数量级。,综述计算机发展史,综述计算机发展史(发展),第2代:晶体管数字机
3、(19581964年)硬件方的操作系统、高级语言及其编译程序。应用领域以科学计算和事务处理为主,并开始进入工业控制领域。特点是体积缩小、能耗降低、可靠性提高、运算速度提高(一般为每秒数10万次,可高达300万次)、性能比第1代计算机有很大的提高。,“晶体管”被1999年微软百科评选为1000年来人类最伟大的十大发明之一,综述计算机发展史(发展),TRADIC,1954年,贝尔实验室第一台晶体管计算机使用了800个晶体管,RCA501,1958年,IBM第一台全部使用晶体管计算机,大型机,综述计算机发展史(发展),第3代:集成电路数字机(19641970年),硬件方面,逻辑元件采用中、小规模集成
4、电路(MSI、SSI),主存储器仍采用磁芯。软件方面出现了分时操作系统以及结构化、规模化程序设计方法。特点是速度更快(一般为每秒数百万次至数千万次),而且,可靠性有了显著提高,价格进一步下降,产品走向了通用化、系列化和标准化等。应用领域开始进入文字处理和图形图像处理领域。,中小型机,综述计算机发展史(发展),大规模集成电路机(1970年至今),硬件:逻辑元件采用大规模和超大规模集成电路(LSI和VLSI)。软件:出现了数据库管理系统、网络管理系统和面向对象语言等。,1971年世界上第一台微处理器在美国硅谷诞生,开创了微型计算机的新时代。应用领域从科学计算、事务管理、过程控制逐步走向家庭。,由于
5、集成技术的发展,半导体芯片的集成度更高,每块芯片可容纳数万乃至数百万个晶体管,并且可以把运算器和控制器都集中在一个芯片上、从而出现了微处理器,并且可以用微处理器和大规模、超大规模集成电路组装成微型计算机,就是我们常说的微电脑或PC机,微机,综述-微型计算机(微处理器)发展史,第一阶段(19711977),1972:Intel 8008世界上第一片8位微处理器,Intel 8008,集成度为3500个晶体管工作频率为200K赫兹,综述-微型计算机(微处理器)发展史,第二阶段(19781992) 80X86时代,1979:Intel 8088世界上第一台PC机的CPU,Intel 8088,数据线
6、为8位,其余与8086相同,16位数据线,20位地址线,5MHz,综述-微型计算机(微处理器)发展史,第二阶段(19781992) 80X86时代,1985:Intel 80386第一个32位微处理器,Intel 80386,16位数据线,24位地址线,6MHz,32位数据线,32位地址线,16MHz275000个晶体管,综述-微型计算机(微处理器)发展史,第二阶段(19781992) 80X86时代,80486由80386作为主处理器,80387作为协处理器,外加一个8KB的高速缓冲存储器组成,综述-微型计算机(微处理器)发展史,第三阶段(19931997),Pentium时代,综述-微型计
7、算机(微处理器)发展史,全新的Core架构制造工艺为65nm或45nm全线产品均为双核心,L2缓存容量提升到4MB晶体管数量达到2.91 亿个,核心尺寸为143平方毫米性能提升40%能耗降低40%,主流产品的平均能耗为65瓦特,顶级的X6800也仅为75瓦特,2006-今,CORE 时代,微型计算机发展总结,(1981-1992),(1993后),第四代,32位机,80386、80486,(1971-1973),(1974-1978),(1978-1981),特点:1、速度越来越快。2、容量越来越大。3、功能越来越强。,字长,微型计算机的发展以微处理器的发展为主要标志,发展方向?字长,主频,指
8、令集,工艺,集成度,架构,智能性,复杂度,总线宽度,引脚数, ,本课程的学习目标内容!,结合Intel 8086/8088系列CPU,介绍计算机组成、CPU内部结构、存储器、常用的I/O接口、指令系统、汇编语言等基本原理,,CPU发展日新月异的今天为什么还以8086为主要讲述对象? 高档CPU兼容低档CPU 内核从386开始基本没变 控制芯片变了,但口地址还兼容以前的 教材以8086为主,基本概念、理论、方法是通用的,综述什么是微型计算机系统,CPU,内存,外设1,外存1,外存2,外设2,外设3,总线,I/O接口电路,系统软件应用软件,综述什么是微型计算机系统,以CPU为核心,采用总线结构,在
9、总线上配置一定容量的内存储器和一定数目的外存储器和外部设备,结合软件系统程序实现相应的功能。 存储器和外设与CPU之间的数据交换管理通过在总线上搭建相应的I/O接口电路实现。,综述本门课学习的内容,CPU,内存,外设1,外存1,外存2,外设2,外设3,总线,I/O接口电路,系统软件应用软件,CPU,CPU:结构,工作原理,寄存器组织,总线:概念,分类,CPU如何实现总线管理,存储器:结构,CPU对存储器的管理,存储器的扩展设计,I/O接口电路:典型I/O 接口电路的工作方式和设计方法,软件编程:汇编语言源程序编写,必备知识,数字电路算法语言,综述本门课学习的内容,第1章 数制与码制第2章 80
10、86CPU结构与功能第3章 8086CPU指令系统第4章 汇编语言程序设计第5章 总线及其形成第6章 存储器设计第7章 常用芯片的接口技术第8章 中断系统与中断控制器8259A第9章 定时/计数器8253应用设计第10章 并行接口芯片8255A应用设计,基础知识,软件编程,硬件设计,综述课程学习的特点及要求,特点内容多,知识庞大50%靠理解,50%靠记忆初学可能碰到很多问题无法解决,留在后面讲解软件硬件齐头并进要求深入了解微机系统的组成和工作原理掌握微型计算机输入输出方法掌握和分析典型的接口电路掌握存储器扩展设计方法掌握汇编语言源程序编写方法,课程要求课程总学时:58+2(考试) 学分:4考察
11、方式:平时测验及作业:20%,期末考试:80%授课老师:王晓甜上机实验指导老师:李甫联系方式:,第一章 数制与码制,Company Logo,1. 计算机中的数制,常用数制-二,十,十六进制,为了区别3种不同数制,约定,目前在计算机中,数几乎全部用二进制表示为书写方便,微机中的二进制数用十六进制数缩写人们最熟悉、最常用的是十进制数,数后加B表示二进制数数后加D或不加表示十进制数数后加H表示十六进制数,1. 十进制,二进制,十六进制之间的关系,1.1 数制的表示,对于n位整数m位小数的任意十进制数N,有:,( =0,1,9),一、 十进制数的表示,10 为 基数,十进制数是大家熟悉的,用0,1,
12、2,8,9十个不同的符号来表示数值,它采用的是“逢十进一,借一当十”的原则。,1.1 数制的表示,二、 二进制数的表示,对于n位整数m位小数的任意二进制数 ,有:,( =0或1),1.1 数制的表示,对于n位整数m位小数的任意十六进制数有:,( =0,1,9,A,B,C,D,E,F),三、 十六进制数的表示,1.1 数制的表示,一、 任意进制数的表示,任意一个数N可以表示成P进制数:,式中i表示数的某一位, 表示第i位的数字,P为基数, 为第i位的权,M、N为正整数。 =0,1P-1。,1.1 数制中的进制表示,二进制表示 十进制表示八进制表示十六进制表示,符号 0、1 集合,尾符 B例000
13、10101B,符号 0 9 集合,尾符 D 或缺省例21D 或 21,符号 0 9、A F 集合,尾符 H例1AH,符号 0 7 集合,尾符 Q例27Q,1.1 数制的表示,二进制数,三位一组合得八进制数,四位一组合得十六进制数,1.2 数制之间的转换,1. 十进制与其他数制的相互转换,(1)整数部分:N 除以P取余数,0 余数为:1=, 301=12DH,1.2 数制之间的转换,0 余数为:1=,例2. 十进制数301 二进制数,转换过程如下:, 301=100101101B,1.2 数制之间的转换,例2. 十进制数301 二进制数,另一种计算方法直接从定义角度出发:,512 256 128
14、 64 32 16 8 4 2 1,301,1,301-256=45,1,45-32=13,1,13-8=5,1,1,0,0,0,0,0, 301=100101101B,1.2 数制之间的转换,十进制与其他进制转换遵循相同的道理,1.2 数制之间的转换,(2)纯小数部分:N乘以P取整数 例1. 十进制小数0.6875 二进制小数,转换过程如下:, 0.6875=0.1011B, 0.6875=0.B H,0.52 =1.0 =1,0.752 =1.5 =1,0.375 2 =0.75 =0,0.68752 =1.375 =1,0.687516 =11.0 =B,1.2 数制之间的转换,(3)整
15、数小数部分都存在的情况,方法、将整数部分和小数部分分别进行转换,然后再把转换结果进行相加。,EG. 将49.6875D 转化为5进制数,2. 二进制数的运算,2. 二进制数的运算,3. 1有符号数的表示,我们假定讨论的数为整数,对8位有符号二进制整数,用下表示:,这种表示方法称为机器数表示法。有符号二进制数的真值为它对应的十进制数。,3. 1有符号数的表示,1. 数的符号表示方法,符号标识数码化,例如: 正二进制数,真值,机器数,3. 1有符号数的表示,一、 有符号二进制数的表示方法,机器数的表达方式不止一种 在将数的符号用数码(0或1)表示后,数值部分究竟是保留原来的形式,还是按照一定的规则
16、做某些变化,这取决于运算方法的需要。 我们常用的机器数有三种形式,1. 原码表示:机器数最直观 ,最基础的表示,2. 反码表示:原码除符号位外,所有位 取反,3. 补码表示:反码+1,3.1 有符号数的表示,3. 1有符号数的表示,2. 原码表示法,3. 1有符号数的表示,优点:表示简单,易于理解,真值转换方便。,缺点:+、-运算麻烦。因为它仅仅是将其值的符号用一位二进制数表示,因而它的原码数的+、-运算完全如同笔算。如两个正数相减,计算机首先要判断被减数的绝对值与减数的绝对值的大小,然后决定是颠倒过来相减,还是直接相减。最后在结果的前面加上正确的正负号。所以,势必增加运行时间,降低速度,使运
17、算器的逻辑复杂化。为了改进它,引进了补码的概念。,有符号二进制数用原码表示的优缺点:,2. 原码表示法,计算机只会计算“加法”,3. 1有符号数的表示,3. 补码表示法,什么是补码,为什么要用补码,将减法转换为加法,计算机中只有加法器,3. 1有符号数的表示,3. 补码表示法,(1)补码的概念,x 当,当,(mod ),3. 1有符号数的表示,(2)一个数的补码的求法,根据定义求补码,= = ,,x0,即负数x的补码等于模 加上其真值(或减去其真值的绝对值)。,3. 1有符号数的表示,利用原码求补码,一个负数的补码等于其原码除符号位保持不变外,其余各位按位取反,再在最低位加1。,值的注意的是:
18、0的补码只有唯一的形式,符号位和数值位 均为0。无正负0之分。,正数:x补= x原负数:除符号位外,取反再加一负数:x补=x反+1,简化算法,3. 1有符号数的表示,如:x=-87, 即|x|=0101 0111B,原,x,=1 1 0 1 0 1 1 1 B,=1 0 1 0 1 0 0 0 B,+) 1,如:x=87, 即|x|=0101 0111B,原,x,=0 1 0 1 0 1 1 1 B,原,x,=0 1 0 1 0 1 1 1 B,反,x,(3)数的补码表示转换为原码表示,一个用补码表示的负数,如将 再求一次补,即将 除符号位外取反加1,就可得到 ,用下式表示:,=,3. 2 有
19、符号数的运算,如:,原,X,= 11010111B,计算机中所有的数字都是补码表示,某内存单元的内容是D2H,为8位二进制数,其所表示的十进制数是多少? X补 = D2H=1 1010010B X = X补补 = 11010010补 = - 0101110B= - 2EH 所以:X = - 46,3. 2 有符号数的运算,补码与原码的对应关系,原码,0 1111111B126 0 1111110B2 0 0000010B1 0 0000001B0 0 0000000B-0 1 0000000B-1 1 0000001B-2 1 0000010B-126 1 1111110B-127 1 111
20、1111B,补码,0 1111111B126 0 1111110B2 0 0000010B1 0 0000001B0 0 0000000B-1 1 1111111 B-2 1 1111110 B-126 1 0000010B-127 1 0000001B-128 1 0000000B,将减法转换为加法,A - B,A + (-B),例如: 2-1,补码中,符号标识作为数值参与运算,2 + (-1),00000010B,11111111 B,00000001B,1,+,3. 2 有符号数的运算,特殊数10000000B,该数在原码中定义为: -0在反码中定义为: -127在补码中定义为: -12
21、8对无符号数:(10000000) = 128,(4)补码的运算规则,第一个公式:,两个n位二进制数之和的补码等于这两数补码之和,即:,3. 2 有符号数的运算,第二个公式:,两个n位二进制数之差的补码等于这两数补码之差,即:,3. 2 有符号数的运算,第三个公式:,补码减法运算时,也可以利用加法基本公式,即:,因为:X-Y = X+(-Y),补,X+(-Y),补,X-Y,=,= +,所以:,一般称已知 ,求得 的过程叫变补或求负。,3. 2 有符号数的运算,如果计算机的字长为n位,n位二进制数的最高位为符号位,其余n-1位为数值位,采用补码表示法时,可表示的数X的范围为:,当n=8时,可表示
22、的有符号数的补码表示范围为:,当n=16时,可表示的有符号数的补码表示范围为:,-32768 +32767,-128 +127,4. 有符号数的溢出问题,两个有符号数进行加减运算时,如果运算结果超出可表示的有符号数的范围时,就会发生溢出,使计算结果出错。 很显然,溢出只能出现在两个同号数相加或两个异号数相减的情况下。,例: (+72)+(+98)=+170+127 溢出,0 1 0 0 1 0 0 0 B,0 1 1 0 0 0 1 0 B,1 0 1 0 1 0 1 0 B,+,有进位 =1,无进位 =0,溢出,结果出错(正溢出),4. 有符号数的溢出问题,异或,例: (-83)+(-80)
23、=-163-128 溢出,1 0 1 0 1 1 0 1 B,1 0 1 1 0 0 0 0 B,0 1 0 1 1 1 0 1 B,+,无进位 =0,有进位 =1,溢出,结果出错(负溢出),1,4. 有符号数的溢出问题,结论:对于加法运算(1)如果次高位有进位而最高位无进位,则结果溢出;(2)如果次高位无进位而最高位有进位,则结果溢出。,这两种情况分别是: (1)两负数相加,结果超出范围,形式上变为正数; (2)两正数相加,结果超出范围,形式上变为负数。,4. 有符号数的溢出问题,同理,我们可得出结论:对于减法运算(1)如果次高位有借位而最高位无借位,则结果溢出;(2)如果次高位无借位而最高
24、位有借位,则结果溢出。,4. 有符号数的溢出问题,溢出问题总结,方法:同号相减或异号相加不会溢出。同号相加或异号相减可能溢出:两种情况:同号相加时,结果符号与加数符号相反溢出;异号相减时,结果符号与减数符号相同溢出。方法:两个8位带符号二进制数相加或相减时,若 C7C61, 则结果产生溢出。 C7为最高位的进(借)位;C为次高位的进(借)位。,一、 8241BCD码Binary Coded Decimal,前面讲过,计算机只认识0、1二进制代码,但人们最习惯的是十进制。为了解决这一矛盾,提出了一个比较适合于十进制系统的二进制代码的特殊形式BCD码。,5. 二进制编码的十进制数(BCD编码),5
25、. 二进制编码的十进制数(BCD编码),5. 二进制编码的十进制数(BCD编码),如:十进制数和BCD码相互转换,75.4 BCD码,75.4 =,BCD码10000101.0101,十进制数,=85.5,同一个8位二进制代码表示的数,当认为它表示的是二进制数和认为它表示的是二进制编码的十进制数,数值是不相同的。如:,=24,=18,在计算机中,BCD码有两种基本格式,a.组合式BCD码,b.分离式BCD码,a.组合式BCD码 两位十进制存放在一个字节中。如:数24的存放格式:,0 0 1 0 0 1 0 0,5. 二进制编码的十进制数(BCD编码),b.分离式BCD码 每位数存放在8位字节的
26、低4位,高4位的内容与数值无关。如:数24的存放格式:,5. 二进制编码的十进制数(BCD编码),如:38+49=87,0 0 1 1 1 0 0 0,0 1 0 0 1 0 0 1,1 0 0 0 0 0 0 1,38,49,87,81,显然,结果出错。,出错原因:十进制相加应逢十进一,但计算机按二进制运算,每四位一组,低四位向高四位进位相当十六进制运算,“逢十六进一”。所以当结果超过9时将比正确值少6。,5. 二进制编码的十进制数(BCD编码),加六修正规则:,(1)如果两个BCD码位相加没有进位,并且结果9,则该位不需修正。,(2)如果两个BCD码位相加有进位,或者其结果10,该位进行加
27、六修正。,(3)低位修正结果使高位9时,高位进行加六修正。,5. 二进制编码的十进制数(BCD编码),1 0 0 1 0 1 0 0 94,1 0 1 0 0 0 0 1 高4位满足法则3,0 0 0 0 0 1 1 1 7,1 0 0 1 1 0 1 1 低4位满足法则1,+,例:94+7=101,BCD,BCD,BCD,BCD,BCD,BCD,BCD,?=101,5. 二进制编码的十进制数(BCD编码),减六修正规则:,(1)如果两个BCD码位相减没有借位,则该位不需修正。,(2)如果两个BCD码位相减有借位,则该位进行减六修正。,5. 二进制编码的十进制数(BCD编码),0 1 0 1
28、0 0 0 0 50,0 0 1 0 0 0 0 1 21结果正确,0 0 1 0 1 0 0 1 29,0 0 1 0 0 1 1 1 低码位有借位,例:5029=21,ASCII 美国国家信息标准交换码,ASCII 用7位二进制代码对任一字符编码,包括:,32个通用控制符,0-9 10个数字,52个英文大小写字母,34个专用符号,共128个,要求掌握常用字符的ASCII码:09, AZ,az, 空格,回车,换行,Esc,6. ASCII码,6. ASCII码,09: 30H39H 回车CR: 0DHAZ: 41H5AH 换行LF: 0AHaz: 61H7AH 退格BS: 08H Tab: 09H,总结,1.数制 十进制,二进制,八进制,十六进制的表示,关系,相互转换2. 二进制运算 数学运算,逻辑运算3. 有符号数的表示 原码,补码,反码4. 有符号数的运算及溢出问题5. BCD数的表示及计算 加6修正,减6修正6. ASCII码,Thank You !,