微机原理及接口技术134章.docx
- 文档编号:9954121
- 上传时间:2023-02-07
- 格式:DOCX
- 页数:103
- 大小:3.34MB
微机原理及接口技术134章.docx
《微机原理及接口技术134章.docx》由会员分享,可在线阅读,更多相关《微机原理及接口技术134章.docx(103页珍藏版)》请在冰豆网上搜索。
微机原理及接口技术134章
微机原理及接口技术
一、微型计算机的发展概况
1、微型计算机的发展
微型计算机是第四代计算机,伴随1970年大规模集成电路和微处理器发展。
微处理器:
将传统计算机的运算器和控制器等集成在一起。
第一代:
1971年(4位和8位低档微处理器)典型产品是Intel4004Intel8008微处理器。
第二代微处理器:
1973年(8位中高档微处理器)典型产品是Intel公司的8080/8085等微处理器。
第三代微处理器:
1978年(16位微处理器)典型产品是Intel公司的8086/8088及80286等微处理器。
第四代微处理器:
1983年(32位微处理器)典型产品是Intel公司的80386/80486等微处理器。
第五代微处理器:
1992年(高档的32位及64位微处理)典型产品是Intel公司的Pentium、PentiumII、PentiumIII、Pentium4(安腾)、core(酷睿)。
2、几大定律
(1)摩尔定律(Moor‘sLaw)1965年
集成电路内芯片的晶体管数目,每隔18-24个月,其集成度就要翻一番。
(特定大小的芯片内晶体管数加倍。
)
四大定律主导网络时代:
(2)贝尔定律(Bell‘sLaw):
性能相同的计算机价格将持续下降。
(3)吉尔德定律(Gilder’slaw):
网络的带宽每6个月翻一番。
(4)麦特卡夫定律(Metcalfe'sLaw):
对网络投入N,可以收到的回报是N的平方。
3、微型计算机特点
(1)体积小、重量轻、耗电少。
(2)可靠性高,使用环境要求低
(3)系统外部芯片配套,系统设计灵活。
(4)性能优良,价格低廉
4、微型计算机应用领域
两个主要应用方向:
(1)高性能、多功能:
功能越强越好、使用越方便越好用于数值计算、数据处理及信息管理方向如通用微机,例如:
PC微机、因特网上大量信息检索、处理。
(2)价格低廉、功能专一:
可靠性高、实时性强、程序相对简单、处理数据量小的生产领域、服务领域、生活领域、用于过程控制及嵌入应用方向专用微机,例如:
工控机、单片机、数字信号处理器、仪器仪表等。
二、微型计算机系统
(一)、微型计算机系统的组成
1、微型计算机的组成
(1)CPU(核心)
(2)存储器(RAM、ROM)
(3)输入/输出接口电路
(4)系统总线(CPU和其他部件之间提供数据、地址、控制信息的传输通道。
)分为地址总线、数据总线和控制总线。
2、微型计算机系统的组成
微型计算机(主机)+外部输入/输出设备+系统软件/应用软件
(1)外部设备
外围设备
(2)过程控制I/O通道
键盘、鼠标等输入设备
(1)外部设备显示器、打印机等输出设备
软驱、硬盘及磁带等外存储器
A/D,D/A转换器
(2)过程控制I/O通道
开关量等
系统软件:
操作系统、监控程序、各种语言处理程序(如汇编程序、编译程序、解释程序等)、机器调试程序和诊断程序等。
3、冯.诺依曼结构
特点:
二进制信息表示指令和数据。
五大组成部分
先将程序存入存储器,再由控制器自动读取并执行。
单存储器
4、哈佛结构
双存储器:
指令存储器和数据存储器。
(二)、微处理器
1、微处理器组成:
(1)运算器:
即算术逻辑部件(ALU)。
●一个数来自于累加器A(Accumulator)
●另一个来自于内部数据总线,可以是数据缓冲寄存器DR(DataRegister)中的内容,也可以是寄存器阵列RA(RegisterArray)中某个寄存器的内容。
●结果送回累加器A暂存。
(2)寄存器组(即内部寄存器阵列):
用来存放参加运算的数据、中间结果或地址。
包括:
1)程序计数器PC(ProgramCounter)
也称为指令指针IP(InstructionPointer)。
用来存放下一条要执行指令所在存储单元的地址。
●在程序开始执行前,必须将它的起始地址,即程序的第一条指令所在的存储单元地址送入PC。
●当执行指令时,CPU将自动修改PC内容,以便使其保持的总是将要执行的下一条指令的地址。
大多数指令是按顺序执行的,所以修改的办法通常只是对PC加1。
但遇到跳转等改变程序执行顺序的指令时,后继指令的地址(即PC的内容)将从指令寄存器IR中的地址字段得到。
2)地址寄存器AR(AddressRegister)
地址寄存器用来存放正要取出的指令的地址或操作数的地址。
●由于在内存单元和CPU之间存在着操作速度上的差异,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。
●在取指令时,PC中存放的指令地址送到AR,根据此地址从存储器中取出指令。
●在取操作数时,将操作数地址通过内部数据总线送到AR,再根据此地址从存储器中取出操作数;在向存储器存入数据时,也要先将待写入数据的地址送到AR,再根据此地址向存储器写入数据。
3)数据缓冲寄存器DR(DataRegister)
数据缓冲寄存器用来暂时存放指令或数据。
●从存储器读出时,若读出的是指令,经DR暂存的指令经过内部数据总线送到指令寄存器IR;若读出的是数据,则通过内部数据总线送到运算器或有关的寄存器。
同样,当向存储器写入数据时,也首先将其存放在数据缓冲寄存器DR中,然后再经数据总线送入存储器。
●数据缓冲寄存器DR是CPU和内存、外部设备之间信息传送的中转站,用来补偿CPU和内存、外围设备之间在操作速度上存在的差异。
4)指令寄存器IR(InstructionRegister)
指令寄存器用来保存从存储器取出的将要执行的指令码,以便指令译码器对其操作码字段进行译码,产生执行该指令所需的微操作命令。
5)累加器A(Accumulator)
累加器是使用最频繁的一个寄存器。
在执行算术逻辑运算时,它用来存放一个操作数,而运算结果通常又放回累加器,其中原有信息随即被破坏。
所以,顾名思义,累加器是用来暂时存放ALU运算结果的。
CPU中至少应有一个累加器。
目前CPU中通常有很多个累加器。
当使用多个累加器时,就变成了通用寄存器堆结构,其中任何一个既可存放目的操作数,也可以放源操作数。
本课程介绍的80x86系列CPU就采用了这种累加器结构。
6)标志寄存器FLAGS(FlagRegister)
标志寄存器有时也称为程序状态字PSW(ProgramStatusWord)。
它用来存放执行算术运算指令、逻辑运算指令或测试指令后建立的各种状态码内容以及对CPU操作进行控制的控制信息。
标志位的具体设置及功能随微处理器型号的不同而不同。
编写程序时,可以通过测试有关标志位的状态(0或1)来决定程序的流向。
(3)控制器:
控制逻辑部件。
负责对整机的控制,使CPU内部、外部协调工作。
它是全机的指挥控制中心。
它负责把指令逐条从存储器中取出,经译码分析后向全机发出取数、执行、存数等控制命令,以保证正确完成程序所要求的功能。
其包含三个部分:
1)指令寄存器IR(InstructionRegister):
存放从存储器取出的将要执行的指令码。
2)指令译码器ID(InstructionDecoder):
用来对指令寄存器IR中的指令操作码字段(指令中用来说明指令功能的字段)进行译码,以确定该指令应执行什么操作。
3)可编程逻辑阵列PLA(ProgrammableLogicArray):
用来产生取指令和执行指令所需要的各种微操作控制信号,并经过控制总线CB送往有关部件,从而使计算机完成相应的操作。
(4)内部总线:
用来传送CPU内部的数据及控制信号。
(三)、存储器
1、基本概念:
存储器是微机的存储和记忆部件,用来存放程序和数据(包括原始数据、中间结果与最终结果)。
执行程序时,CPU会自动连续地从内存储器中取出要执行的指令,并执行指令规定的操作。
就是说,计算机每完成一条指令,至少有一次为取指令而访问内存储器的操作。
2、读/写操作过程
(1)从存储器读出信息:
假定CPU要读出存储器04H单元的内容10010111
(2)向存储器写入信息:
假定CPU要把数据寄存器DR中的内容00100110即26H写入存储器08H单元,则:
(四)、总线
各部件之间传送信息的公共通路。
总线为CPU和其他部件之间提供数据、地址、控制信息的传输通道。
总线使得各功能部件之间的关系变为各个部件面向总线的单一关系。
CPU总线包含三种不同功能的总线:
(1)数据总线DB(databus):
传输数据,双向,微处理机数据总线位数和微处理器位数对应。
(2)地址总线AB(addressbus):
传送地址信息,单向,位数决定寻址能力。
(3)控制总线CB(controlbus):
传输控制信号双向:
控制信号:
如CPU送往其他部件的读写、中断响应信号;状态信号:
如其它部件送往CPU的忙闲以及中断请求。
(1)总线分类:
●内部总线:
片内
●元件级总线:
片间
●系统总线:
连接各模块、板之间的总线
●外部总线:
系统与系统之间或系统与外设之间
如:
USB通用串行总线,RS232总线。
PC总线(也称为PC/XT总线)62芯8位1M/s
ISA总线(工业标准体系结构)62+36芯16位8.33M/s
VESA总线(视频电子标准协会)116芯32/64位133M/s
PCI总线(外设互连局部总线)
(2)总线结构:
1)单总线结构
存储器和I/O设备都连在一组总线上
双总线结构
2)存储器总线和I/O总线分开
三、微型计算机的工作过程
微机的工作过程就是不断地从内存中取出指令并执行指令的过程。
1)假定程序已由输入设备存放到内存中。
当计算机从停机状态进入运行状态时,首先把第1条指令所在的地址赋给程序计数器PC,然后机器进入取指阶段。
2)在取指阶段,CPU从内存中读出的内容必为指令,于是,数据寄存器DR便把它送至指令寄存器IR;然后由指令译码器ID译码,控制器就发出相应的控制信号,CPU便知道该条指令要执行什么操作。
3)在取指阶段结束后,机器就进入执指阶段,这时,CPU执行指令所规定的具体操作。
当一条指令执行完毕以后,就转入了下一条指令的取指阶段。
4)这样一直进行到程序中遇到暂停指令时方才结束。
指令形式—指令通常分成操作码(Opcode)和操作数(Operand).
操作码—表示计算机执行什么操作;
操作数—指明参加操作的数本身或操作数所在的内存中的位置
四、微型计算机分类和性能指标
1、分类
(1)按微处理器字长分:
4位、8位、16位、32位和64位
(2)按微机组成形式分:
单片机、单反机、个人计算机
单片机:
:
将CPU、存储器、I/O接口电路全部集成一块芯片上,构成具备基本功能的计算机,称单片机。
特点:
超小型、高可靠性、价廉
应用:
智能仪表、工业实时控制、家用电器等
产品:
Intel的8051、8096/8098系列
单板机:
:
将CPU、存储器、I/O接口及其少量的输入/输出设备(如键盘、显示等)全部装在一块印刷电路板上。
特点:
结构简单、价廉
应用:
过程控制、数据处理、教学实验
产品:
TP-801以Z80CPU为核心的单板机
2、性能
Ø主频:
CPU的时钟频率;
Ø字长:
计算机直接处理的二进制位数;
Ø主存容量:
计算机存取信息的字节数;
Ø存取周期:
完成一次主存储器读/写所需的时间;
Ø运算速度:
计算机每秒所能执行的指令数。
Ø性价比
Ø可靠性
五、计算机中数和字符的表示
1、数制及其转换
(1)、数制
十进制(Decimal)后缀加“D”
例如,25D或25(后缀可略)
二进制(Binary)后缀加“B”
例如,11010001B
八进制(Octonary)后缀加“O”或“Q”
数前需加“0”)
例如,76Q
十六进制(Hexadecimal)后缀加“H”
例如,0F6H(字符开头的)
(2)、数制之间的转换
二-十进制转换
二-八进制转换
二-十六进制转换
2、二进制数运算
(1)二进制数的算术运算
特点:
按一定字长进行,运算结果超过字长则产生进位、借位或自动丢失。
加法运算:
11010011
+10001100
101011111
进位
减法运算:
01110011
-11010010
110100001
借位
(2)二进制数的逻辑运算
特点:
按位进行,无进位或借位
1)逻辑乘(与)AND
11010001
AND11100011
11000001
2)逻辑加(或)OR
11010001
OR11100011
11110011
3)逻辑反(非)NOT
NOT11010011=00101100
4)逻辑异或XOR
11010001
XOR11100101
00110100
3、关于模(MOD)的概念
简单地说,模是能表示的最大数再加1。
例如,8位寄存器能表示的最大数是
11111111B=255,
其模为28=256(MOD28)。
计算机中的运算都是在一定模值下进行的,
例如:
200+85=29(MOD28)
9+4=1(MOD12)
4、无符号数表示
机器字长的所有位都参与表示数值。
若计算机的字长为n位,则n位无符号数可表示的数X的范围是:
0≤X≤2n-1
当n=8时,可表示的无符号数的范围为0~255,当n=16时,可表示的无符号数的范围为0~65535。
在计算机中最常用的无符号整数是表示地址的数
5、有符号数的表示方法
(1)机器数与真值
计算机中的数是用二进制表示的,数的符号也是用二进制表示的。
通常一个数的最高位为符号位,为0表示正数,为1表示负数。
若字长为8位的计算机,则D7为符号位,D6~D0为数值位
D7D6D5D4D3D2D1D0
符号位数值位
例1X=+65在机器中表示为:
X=01000001B
+65
这种符号数码化的数称为机器数。
机器数所代表的实际数值称为真值。
机器数可以用不同的码制来表示,常用的有原码和补码表示法。
(2)原码表示法
最高位为符号位,0表示正数,1表示负数,其余各位为数值位,这种表示法称为原码表示法。
例2若X=+97则[X]原=01100001B
若X=-97则[X]原=11100001B
原码表示数0有两种表示形式:
[+0]原=00000000B
[-0]原=10000000B
注意:
n位原码可表示的数X的范围是:
-2n-1+1≤X≤+2n-1-1
(3)补码表示法
补码表示法中,正数的补码和原码相同;负数的补码可由其原码除符号位保持不变外,其余各位按位取反,再在最末位加1而形成。
例3假设机器字长为8位,则
[X]原=01100001B则[+97]补=01100001B
[X]原=11100001B则[-97]补=10011111B
10011110B+1
补码具有以下特点:
①[+0]补=[-0]补=00000000B
②n位二进制补码所能表示的数值范围为:
-2n-1≤X≤+2n-1-1
若n=8,则8位二进制补码所能表示的数值范围为-128~+127。
③对于一个用补码表示的负数,如果将[X]补再求一次补,即将
[X]补除符号位外取反并在最末位加1就可得到[X]原。
用下式表示为:
[[X]补]补=[X]原
[[-15]补]补=[[10001111B]补]补=[11110001B]补=10001111B=[-15]原
无符号数原码反码补码
0+1+0+0
1+1+1+1
2+2+2+2
:
:
126+126+126+126
127+127+127+127
128-0-127-128
129-1-126-127
130-2-125126
:
254-126-1-2
255-127-0-1
(4)补码的加减运算
1)补码的加法运算规则是:
[X+Y]补=[X]补+[Y]补
该式表明,当有符号的两个数采用补码形式表示时,进行加法运算可以把符号位和数值位一起进行运算(若符号位有进位,则丢掉),结果为两数之和的补码形式。
例4用补码进行下列运算:
(+33)+(+15);
解:
(+33)+(-15)
2)补码的减法运算规则是:
[X-Y]补=[X]补+[-Y]补
该式表明,求[X-Y]补可以用[X]补与[-Y]补相加来实现
[-Y]补是对减数进行求负操作。
一般称已知[Y]补求得[-Y]补的过程叫变补或求负。
例5用补码进行X-Y运算
解:
若X=+33,Y=+15求X-Y
[X]补=00100001B[Y]补=00001111B[-Y]补=11110001B
00100001B[X]补
+11110001B[-Y]补
自然丢失100010010B[+18]补
若X=-33Y=-15求X-Y
则[-33]补=11011111B[-15]补=11110001B
[+15]补=00001111B
11011111B[-33]补
+00001111B[+15]补
11101110[-18]补
3)变补运算(NEG)——已知[+X]补求[-X]补
规则:
全部位(含符号位)按位取反后再加1,
例如:
已知[+15]补=00001111B
则[-15]补=11110000B+1=11110001B
或:
0-[+15]补=0-10001111B=11110001B
(5)补码的作用:
1)、引入补码后,将减法运算转化为易于实现的加法运算,且符号位也当作数据相加,从而可简化运算器的结构,提高运算速度。
因此,在微型计算机中,有符号数通常都用补码表示,得到的是补码表示的结果。
2)、当字长由8位扩展到16位时,对于用补码表示的数,正数的符号扩展应该在前面补0,而负数的符号扩展应该在前面补1。
例如,机器字长为8位,
[+46]补=00101110B,[-46]=11010010B,从8位扩展到16位
[+46]补=0000000000101110B=002EH
[-46]补=1111111111010010B=FFD2H
(6)有符号数运算时的溢出问题
当两个有符号数进行加减运算时,如果运算结果超出可表示的有符号数的范围时,就会发生溢出,使计算结果出错。
显然,只有两个同符号数相加或两个异号数相减时,才会产生溢出
例1.7设机器字长为8位,以下运算都会发生溢出
(+88)+(+65)=+153>127
(+88)-(-65)=+153>127
(-83)-(+80)=-163<-128
1)无符号数的溢出——最高位的进位位CF
CF=CYD7(MOD28)或CF=CYD15(MOD216);
例如,250=11111010B
+50=00110010B
44=100101100B(进位CF=CYD7=1丢失)
CYD7代表最高位进(借位)、CYD6代表次高位进(借位)
2)带符号数的溢出——OF
OF=CYD7CYD6(MOD28)或
OF=CYD15CYD14(MOD216)
例如:
[+65]补=01000001CYD6=1
+[-15]补=11110001CYD7=1
[+50]补=100110010
OF=CYD7CYD6=11=0(无溢出,结果正确)
[+96]补=01100000
+[+65]补=01000001
[-95]补=010100001
OF=CYD7CYD6=01=1(有溢出,结果错误)
如果是正在利用计算机进行无符号运算,想知道是否溢出,那么就应去看CF;如果是正在利用计算机进行有符号运算,想知道是否溢出,那么就应去看OF。
(7)浮点数
浮点数由阶码和尾数两部分组成。
对任意一个有符号的二进制数N的普遍形式可表示为:
N=2E×M
式中E称为N的阶码,是一个有符号的可变整数。
设E=ejek-1……e0
•ej为阶符:
若ej=0,则E是正数;若ej=1,则E为负数。
•ek-1…e0是阶值。
式中M称为N的尾数,是一个有符号的纯小数。
设M=mjm1……mn
•mj为尾符:
若mj=0,则M为正数;若mj=1,则M为负数。
尾数M的符号就是浮点数N的符号。
•m1…mn是尾值。
例如:
科学计数法:
3.14159=0.314159×10+1
高级语言中的格式:
+0.314159E+01
尾符尾数阶符阶码
为了便于浮点数的运算,数采用规格化表示。
对尾数规格化作如下定义:
若mj≠m1,则称尾数M为规格化数;若mj=m1,则称尾数M为非规格化数。
例如,N=2011×0.0010100,显然尾数0.001010为非规格化数。
如果尾数不是规格化数,那么要用移位手段把它变为规格化数。
尾数每左移一位,阶码就减1,尾数每右移一位,阶码就加1,直至mj≠m1为止。
如上例中的N为非规格化数,则将0.0010100左移两位后,变成0.1010000,此数已是规格化数,不再左移,从阶码011中减去010,得001。
所以规格化后的N应为2001×0.1010000。
(8)计算机中的二进制编码
1)BCD码(BinaryCodedDecimal)
压缩型BCD码(组合BCD码):
用一个字节存放2位BCD数,如18的组合BCD码为00011000B
非压缩型BCD码(分离BCD码):
用一个字节低4位存放1位BCD数,高4位任意,18的分离BCD码为xxxx0001B,xxxx1000B
2)ASCII码(AmericanStandardCodeforInformationInterchange)
ASCII码采用7位二进制编码
通常,为便于存储,7位ASCII码在最高位加1位组成8位代码。
最高位常用作奇偶校验位
•奇校验时,每个代码的二进制位应有奇数个1
•偶校验时,每个代码的二进制位应有偶数个1
数字0~9的ASCII码分别为30H~39H,英文大写字母A~Z的ASCII码为41H~5AH,英文小写字母a的ASCII码为61H。
8086微处理器
一、8086CPU概述
8086CPU是Intel公司1978年第3代CPU芯片,16位微处理器,外型为双列直插式,有40个引脚,5V供电,频率5MHz。
8086微处理器的一般特点:
●16根数据线,能并行处理16位数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 接口 技术 134