1
微型计算机原理与接口技术主讲:王咏宁
2
本课程的内容与要求
1、地位计算机相关专业的必修基础课,内容相近的课程:,微机原理,,,计算机组成原理,,,计算机接口技术,,,汇编语言,,
,微机原理与应用,等课程关系紧密,是一门重要的专业基础课。
先修知识:数字电路,计算机文化基础,C
语言或其它高级语言、二进制及十六进制的运算
3
2、内容:
第 1章:基础知识第 2章:计算机( CPU)的基本工作原理第 3,4章:汇编语言第 5章:计算机(存储器)的基本工作原理第 6-9章:接口技术
3、要求:
不缺课、不迟到,认真听课、勤于思考、温故知新。
独立完成作业、实验。
培养兴趣,了解最新发展动态及应用、阅读参考书
(非习题书)
4、考核,作业,考勤、考试
4
主要参考书
1,计算机等级考试 ( 三级 ) PC技术
2,Intel微处理器全系列,
结构,编程与接口 ( 第五版 )
电子工业出版社 ( 中文版 )
3,汇编语言 王爽 清华大学出版社
5
第 1章 基础知识
概述
计算机中的数制
无符号二进制数的算术运算和逻辑运算
带符号二进制数的表示及运算
二进制编码
常用术语解释
6
1.1.1 计算机的发展概况
1.1 概 述世界上第一台现代意义的电子计算机是 1946年美国宾夕法尼亚大学设计制造的 ENIAC
1946年由美国宾夕法尼亚大学研制 ENIAC( Electronic
Numerical Integrator And calculator),装有 18,000个电子管,总重量达 30吨,运算速度 5000次 /秒,功耗 150kw/h,占地 170m2,
造价 100万美元。 不过它还没有引入 CPU的概念
7
电子计算机的发展,
电子管计算机时代( 1946-1956)
晶体管计算机时代( 1957-1964)
中小规模集成电路计算机时代( 1965-1970)
超大规模集成电路计算机时代( 1971-今)
电子计算机的功能:
数据、文字、字符、图形图像、声音、视频 …
微型计算机是第四代计算机的典型代表
1.1.1 计算机的发展概况
“我认为全世界大概有 5台计算机的市场。,
——IBM董事长 Thomas,1943
8
微型计算机的发展微型计算机的发展是以微处理器的发展来表征的微处理器的集成度每隔 18个月就会翻一番,芯片的性能也随之提高一倍
------摩尔定律
Gordon E,Moore,Intel公司的创始人之一
9
第一代 1971年~ 1973年是微处理器发展的早期阶段,
字长为 4位或低档 8位,集成度约为 2000晶体管 /片,微处理器的主频为 1MHz。
1971年,Intel 4004,是世界上第一片单片微处理器
4位微处理器,寻址空间为 4096个半字节,指令系统包括
45条指令微处理器的发展
Intel 4004
10
1972年,Intel 8008,是世界上第一片 8位微处理器。
8008采用了 10?m生产工艺,集成度为 3500个晶体管,工作频率为 200KHz。
微处理器的发展
Intel 8008
采用机器语言编程,价格低,主要应用于各种袖珍计算器、家电、交通灯控制等简单控制领域。
第二代 1973—1978(成熟的 8位微处理器时代)
11
1974年,Intel 8080采用了 6?m生产工艺,集成度为 6000个晶体管,主频为 2MHz。
1976年,Intel 8085——Intel公司生产的最后一种 8位通用微处理器,8085的工作频率提高到 5MHz,指令系统的指令数上升到 246条。
可使用汇编语言及高级语言编程,广泛应用于数据处理,工业控制智能仪器仪表及家电等各个领域。
微处理器的发展
12
第三代:( 1978年 -1983年) 16位微处理器时代
1978年 --8086
采用了 3?m工艺,集成了 29,000个晶体管,工作频率为 4.77 MHz。它的寄存器和数据总线均为 16位,地址总线为 20位,从而使寻址空间达 1MB。同时,
CPU的内部结构也有很大的改进,采用了流水线结构,并设置了 6字节的指令预取队列微处理器的发展
13
1979年 — 8088(准 16位机)
除了它的数据总线为 8位以外,其余均与
8086相同。 8088采用 8位数据总线是为了利用当时现有的 8位设备控制芯片。由于 8088
内部支持 16位运算,而与 I/O之间传输为 8位
,故 8088称为准 16位微处理器。
1981年 8月,IBM公司推出以 8088为 CPU的世界上第一台 16位微型计算机 IBM 5150 Personal
Computer,即著名的 IBM PC。
14
80286( 1982年 -1984年)
采用 1.5?m工艺,集成了 134,000个晶体管,工作频率为 6MHz。 80286的数据总线仍然为 16位,但是地址总线增加到 24位,使存储器寻址空间达到 16MB。
1985年 IBM公司推出以 80286为 CPU的微型计算机
IBM PC/AT
80年代中期到 90年代初,
80286一直是微型计算机的主流 CPU。
微处理器的发展
15
第四代:( 1983年 -1993年) 32位微处理器时代
80386
第一个实用的 32位微处理器,
采用了 1.5?m工艺,集成了
275,000个晶体管,工作频率达到 16MHz。 80386的内部寄存器、数据总线和地址总线都是
32位的。通过 32位的地址总线
,80386的可寻址空间达到 4GB
。这时由 32位微处理器组成的微型计算机已经达到超级小型机的水平。
微处理器的发展
16
80486( 1989年 -1992年)
采用 1?m 工艺,集成了 120 万个 晶体管,工作频率为
25MHz。 80486微处理器由三个部件组成:一个 80386体系结构的主处理器,一个与 80387相兼容的数学协处理器和一个
8KB容量的高速缓冲存储器 。 80486把 80386的内部结构做了修改,大约有一半的指令在一个时钟周期内完成,而不是原来的两个,这样 80486的处理速度一般比 80386快 2到 3倍 。
微处理器的发展
17
第 1代 Pentium处理器 ( 以 P5代称,1993年 ) 采用
0.8?m工艺技术,集成了 310万个晶体管,工作频率为
60MHz/66MHz。
第 2代 Pentium处理器 ( 以 P54C代称,1994年 ) 采用
0.6?m工艺,工作频率为 90MHz/100MHz。
微处理器的发展
18
第 3代 Pentium MMX(以 P55C代称 1997年)增加了 57条多媒体指令
在体系结构上,Pentium在内核中采用了 RISC技术,可以说它是 CISC和 RISC技术相结合的产物
19
20
计算机的分类按照微处理器可以处理的字长分类:
4位,8位,16位,32位和 64位机
4位机多做成单片机形式:
1—4KB ROM 64—256B RAM
I/O接口 时钟发生器特点:运算能力弱,存储能力小,无软件开发能力,价格低,使用方便,广泛用于各类袖珍或台式计算器、家用电器、娱乐产品或简单过程控制。
21
按照微处理器处理的字长分类:
8位机具有较强的通用性,有典型的计算机体系结构以及中断,DMA等控制功能,
接口标准化,有较齐备的外围配套电路。
广泛应用于:工业自动化控制、事物管理、
通信、教育、仪器仪表、家用电器等领域; 8位单片机还被应用于汽车、电子、
智能终端等产品中。
22
按照微处理器处理的字长分类:
16位机( Intel 8088/8086 80286)
广泛应用于科学计算机、实时数据处理、
分布式计算机控制、企业管理、网络和多处理机系统中。
32位机( Intel 80386,80486)
广泛应用于科研、生产、办公自动化、
教育管理、网络等社会各领域。
23
1.2 计算机中的数制
进位计数制
不同进制数之间的相互转换
24
一 计数制一个数值,可以用不同进制的数表示 。
通常用数字后面跟一个英文字母来表示该数的数制 。
十进制数,D D可以省略不用,
二进制数,B
八进制数,Q
十六进制数,H
例,1011B=0BH=11
25
1、十进制数主要特点:
1,有十个不同的数字符号,0,1,2,… 9 。
2,逢十进位。
基数:数制所使用的数码的个数权:数制中每一位所具有的值,
10)56.1 2 3 4(56.1 2 3 456.1 2 3 4 D
210123 106105104103102101
十进制数的基数为 10,第 i位的权为 10i,
26
2、二进制数主要特点:
1,有两个不同的数码,0,1。
2,逢二进位。
二进制数的基数为 2,第 i位的权为 2i.
1101.001B= (1101.001)2
= 1× 23+1× 22 + 0× 21 + 1× 20+0× 2-1+0× 2-2 + 1× 2-3
= (13.125)10= 13.125
27
计算机采用二进制数的原因:
1,物理上容易实现
2,运算规则简单
3,可以用逻辑代数作为设计工具在计算机中使用二进制数,而书写时用十六进制数表示。
28
3、十六进制数主要特点:
1,有十六个不同的数字符号,0,1,2,… 9,
A,B,C,D,E,F。
2,逢十六进位。
1 8 7 5.1 6 216316216103.2 101HA
8 0 71671621633 2 7 012H
十六进制数的基数为 16,第 i位的权为 16i.
29
数值 =Dn-1Rn-1+Dn-2Rn-2+……+D 0R0+D-1R-1+….+
在任一数制中,某一数的值等于每位数字 (D)
乘以其权 (Ri)所得到的乘积之和 。
其中 R,基数 Di:第 i位数值
4、数制的通用表达式

i
权数码数值
30
十进制数、二进制数、十六进制数之间的关系如下表所示十进制 二进制十六进制
0
1
2
3
4
5
6
7
8
0
1
2
3
4
5
6
7
8
0000
0001
0010
0011
0100
0101
0110
0111
1000
十进制 二进制十六进制
9
10
11
12
13
14
15
9
A
B
C
D
E
F
1001
1010
1011
1100
1101
1110
1111
返回
31
二、数制转换
1 二进制数? 十进制数
D
B
6 2 5.11
21212121211 0 1.1 0 1 1 31013

D
B
45
21212121101101 0235

方法:按权展开相加法。
32
2、十进制数? 二进制数
1),整数转换 方法:除 2取余法。
DN 25?
N=25D=11001B
余数
6
2
25
12
2
3
1
2
2
2
0
1
0
0
1
1
a0
a1
a2
a3
a4
2),小数转换
DN 6 2 5.0?
N=0.625D = 0.101B
0.625
2
1.250
0.25
2
0.50
0.5
2
1.0
整数部分
1
0
1
a–1
a–2
a–3
BBBD 1 0 1.1 1 0 0 11 0 1.01 1 0 0 16 2 5.25
方法,乘 2取整法
34
推广:
将十进制数转换为 N(二,十六,八 )进制数时,整数与小数分别按,除 N取余法,与
,乘 N取整法,进行转换 。
而 N进制数转换为十进制数均可按权展开相加得到 。
例:将十进制数 725转换为十六进制数。
16 725 余 5
16 45 余 13
16 2 余 2
0
725D=2D5H
例:将八进制数 312Q转换为十进制数。
312Q=3× 82+1× 81+2 × 80
=3 × 64+8+2
=202
35
3、二进制与八进制的转换每 3位二进制数转 1位八进制数。
例,1 100 011 010 110 B=14326Q
7105 Q = 111 001 000 101 B
4、二进制与十六进制的转换每 4位二进制数转 1位十六进制数例,1011 1001,0110 1 B= B9.68 H
5F.7A5H= 101 1111.0111 1010 0101 B
36
1.3 无符号二进制数的算术和逻辑运算
二进制的算术运算
无符号二进制数的表示范围
二进制数的逻辑运算
基本的逻辑门及常用逻辑部件
37
一、二进制的算术运算
加法运算
0+0=0 0+1=1 1+1=0(有进位)
减法运算
0-0=0 1-0=1 1-1=0 0-1=1(有借位)
乘法运算左移一位相当于乘 2,左移 N位 =乘 2N
除法运算右移一位相当于除 2,左移 N位 =除 2N
38
二、无符号数的表示范围
1、无符号数的表示范围 0—2N-1
例,8位二进制数( 0—255)
溢出:当数值超出所能表示的范围时称为 ~
2、无符号二进制数的溢出判断两数相加(减),最高位有进位(借位)
39
三、二进制数的逻辑运算
1、“与”(逻辑乘)
特点,任何数和 0相与结果为 0,任何数和 1相与结果不变。
2、“或”(逻辑加)
特点,任何数和 0相或结果不变,任何数和 1相或结果为 1。
3、“非”(取反)
4、“异或”
特点,相异为 1,相同为 0
40
四、基本逻辑门及常用逻辑部件
1、与门( AND)
2、或门( OR)
A
B F
逻辑符号
A
B F
1
逻辑符号
41
3、非门( NOT)
4、组合逻辑门逻辑符号
A F1
与非逻辑运算
F1=AB
或非逻辑运算
F2=A+B
与或非逻辑运算
F3=AB+CD
42
6、译码器
地址译码器 74LS138
A
B
C
G2A
G2B
G1
Y7
GND
















VCC
Y0
Y1
Y2
Y3
Y4
Y5
Y6
1 16
2 15
3 14
4 13
5 12
6 11
7 10
8 9
43
44
OE
CS
3 #
A
i
CS
2 #
D
i
OE
CS
1 #
A
i
CS
0 #
D
i
地址译码器
Y
3
Y
2
Y
1
Y
0
片选
A
1 5
~ A
11
A
1 0
~ A
0
D
7
~ D
0
DB
C B ( M R e a d )
AB
片选译码共 2
5
= 32 线
45
1-4、带符号二进制数的表示及运算
1、机器数和真值机器数:连同其符号在一起在机器内部的表示形式 。
真 值:机器数的数值 。
带符号数的最高位表示符号,0为正数,
1为负数。
46
8位微机中的带符号数:
D7 D6 D5 D4 D3 D2 D1 D0
符号位 数值位
D7 = 0 正数
1 负数机器数 真值
00011001B = +25
10011001B =?25
47
2、带符号数的三种表示方法
1,原码最高位为符号位 0 正数
1 负数
[+4]原 = 0 000 0100B
[?4]原 = 1 000 0100B
后面 n-1位是数值。
8位二进制原码表示的数的范围为 –127~ +127,
+0与 –0表示法不相同。
48
2,反码
[+4]原 = [+4]反 = 0 000 0100B
[?4]原 = 1 000 0100B
正数的反码与其原码相同。
负数的反码除符号位外将原码求反。
[?4]反 = 1111 1011B
49
3,补码
[?4]原 = 1000 0100B
正数的补码与其原码相同。
负数的补码是其反码 +1,即相应正数按位求反后在末位加 1。
[?4]反 = 1111 1011B
[?4]补 = 1111 1100B
50
[–1]补 = 1111 1111B= FFH
例,机器字长为 8位,求 N= –1的补码表示 。
按位求反 1111 1110B
末位 +1 1111 1111B
[-1]原 = 1000 0001B
+0 [+0]原 =[+0]补 =0000 0000B
-0 [-0]原 =1000 0000B [-0]补 =0000 0000B=[+0]补
51
补码的特点:
(1) 8位二进制补码表示的数的范围,–128 ~ +127
(2) [+0]补 = [?0]补 = 0000 0000B
(3) 对负数补码求反加 1,恢复为该数的绝对值。
(4) 采用补码后,可将减法运算转换成加法运算。
52
4、补码的加法和减法:
(1) 求补运算:对一个二进制数按位求反后在末位加 1的运算。
[4]补 = 0000 0100B
[–4]补 = 1111 1100B
[[–4]补 ]补 = 0000 0100B
[?]补 [–?]补求补 [?]补求补
[4]补 [–4]补求补 [4]补求补
53
(2) 补码的加法规则:
[x + y]补 = [x]补 + [y]补
[x- y]补 = [x]补 + [- y]补
( 3)补码的减法规则:
例 1,计算 y = 99? 58 (用 8位二进制表示 )
99? 58 = 99 + (? 58)=41
[y]补 = [99? 58]补 = [99]补 + [? 58]补
01100011[99]补
+ 11000110[? 58]补
[99]补 = 0110 0011B
[? 58]补 = 1100 0110B
y = [y]补 = 0010 1001B = 41
1 00101001[41]补自动丢失例 2,机器字长为 8位。
25
– 32
[25]补 = 0001 1001B
[? 32]补 =1110 0000B
十进制
– 7 [? 7]补 =1111 1001B
二进制
0001 1001
1110 0000
1111 1001
+
– 57
– 25
– 32
[? 25]补 = 1110 0001B
[? 32]补 =1110 0000B
[?57]补 =1100 0111B
1110 0111
1110 0000
1 1100 0111
+
自动丢失
56
4,溢出判断
8位二进制补码表示数的范围,?128 ~ +127
n位二进制补码表示数的范围,?2n?1 ~ +(2n?1?1)
若运算结果超过了计算机所能表示数的范围,称为 溢出 。 此时运算结果出错 。
57
01111111
00000101+
10000100
+127
+5
124
例 3,
结果溢出!
结果出错。
58
10000100
11111011+
01111111 +127
5
124例 4,
结果溢出!
1
结果出错。
返回只有当两个同符号数相加时才会有溢出!
溢出的判断方法:
由参与运算的两数及结果的符号位进行判断,如果
符号相同的两数相加,所得结果的符号与之相反,结果溢出。
其他情况,不会产生溢出。
59
四 二进制编码
1、数字编码
BCD码是一种常用的数字编码。
BCD码,Binary-Coded Decimal,即二进制编码的十进制数。用 [… ] BCD表示。
标准 BCD码表示法
0
十进制数
0000
标准 BCD码
0000
二进制数
1
2
3
4
5
6
7
8
9
10
11
12
94
0001
0010
0011
0100
0101
0110
0111
1000
1001
0001 0000
0001 0001
0001 0010
1001 0100
0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1011110
1010(非法 )
1011(非法 )
1100(非法 )
1101(非法 )
1110(非法 )
1111(非法 )
61
[0100 1001 0001.0101 1000]BCD = 491.58
0100 0011B = 67D = [0110 0111]BCD
BCD码与二进制之间通常要经过十进制实现相互转换。
62
2、字符编码
ASCII 码是常用的字符编码。
ASCII,American Standard Code for
Information Interchange,
即美国信息交换标准代码。
63
ASCII 码用 7位二进制编码表示数字,字母和符号 。 在字长 8位微型计算机中,用低 7位表示 ASCII码,最高位 D7可用作奇偶校验位 。
― C ‖ 100 0011 (七位 ASCII码 )
1100 0011 (带偶校验的 8位编码 )
0100 0011 (带奇校验的 8位编码 )
例如,
64
A S C I I 字符表
0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1
0 0 0 0 NUL D L E SP 0 @ P ` p
0 0 0 1 S O H D C 1 ! 1 A Q a q
0 0 1 0 S T X D C 2 " 2 B R b r
0 0 1 1 E T X D C 3 # 3 C S c s
0 1 0 0 E O T D C 4 $ 4 D T d t
0 1 0 1 E N G N A K % 5 E U e u
0 1 1 0 A C K S Y N & 6 F V f v
0 1 1 1 B E L ETB ' 7 G W g w
1 0 0 0 BS C A N ( 8 H X h x
1 0 0 1 HT EM ) 9 I Y i y
1 0 1 0 LF S U B *,J Z j z
1 0 1 1 VT E S C + ; K [ k {
1 1 0 0 FF FS,< L \ l |
1 1 0 1 CR GS - = M ] m }
1 1 1 0 SO RS,> N? n ~
1 1 1 1 SI US /? O? o D E L
注,H 表示高 3 位,L 表示低 4 位。
H
L
65
汉字编码
汉字的输入编码是为了使用西文标准键盘把汉字输入到计算机中,其编码方法主要有数字编码、拼音码和字形编码三类。
除了键盘输入以外,利用语音或图象识别技术自动将汉字输入到计算机内的方法也已经实现
汉字内码是用于汉字信息的存储、交换、检索等操作的机内代码,它 采用两个字节的二进制形式表示一个汉字。为了与英文字符能相互区别,汉字机内代码中两个字节的最高位均规定为 l。
汉字字模编码是用来描述汉字字形的代码,它是汉字的输出形式。
汉字库有点阵字库,TrueType字库、矢量字库等类型