第一章 计算机基础知识
1-1 计算机发展与组成
1-2 计算机运算基础
1-1 计算机发展与组成
1946-1958 第一代电子管计算机 。磁鼓存储器,机器语言、汇编语言编程。世界上第一台数字计算机 ENIAC。
1-1-1 发展概况
1958-1964 第二代晶体管计算机 。 磁芯作主存储器,
磁盘作外存储器,开始使用高级语言编程。
1964-1971 第三代集成电路计算机 。使用 半导体存储器,出现多终端计算机和计算机网络。
1971- 第四代大规模集成电路计算机 。 出现微型计算机、单片微型计算机,外部设备多样化。
1981- 第五代人工智能计算机 。 模拟人的智能和交流方式。
1946年由美国宾夕法尼亚大学研制 ENIAC( Electronic
Numerical Integrator And calculator),运算速度
5000次 /秒,功耗 150kw/h,占地 170m2,造价 100万美元。
1-1-2 计算机发展趋势
微型化 ─ 便携式、低功耗
巨型化 ─ 尖端科技领域的信息处理,需要超大容量、高速度
智能化 ─ 模拟人类大脑思维和交流方式,多种处理能力
系列化、标准化 ─ 便于各种计算机硬、软件兼容和升级
网络化 ─ 网络计算机和信息高速公路
多机系统 ─ 大型设备、生产流水线集中管理 (独立控制、
故障分散、资源共享 )
1-1-3 微型计算机组成结构微型计算机系统硬件微型计算机
( 主机 )
微处理器
(CPU)
软件外围设备运算器控制器存储器
(内存 )
RAM
ROM
外部设备辅助设备输入设备 (键盘,扫描仪,语音识别仪 … )
输出设备 (显示器,打印机,绘图仪,… )
辅助存储器 (磁带,磁盘,光盘 )
输入 /输出接口 (PIO,SIO,CTC,ADC,DAC…)
(I/O接口 )
总线 (AB,DB,CB)
系统软件 (操作系统,编辑,编译程序,故障诊断,监控程序 …)
应用软件 (科学计算,工业控制,数据处理 …)
程序设计语言 (机器语言,汇编语言,高级语言 )
电源电路时钟电路单片机简介
单片机 即单片机微型计算机,是将计算机主机 (CPU、
内存 和 I/O接口 )集成在一小块硅片上的微型机 。
单片机开发系统 有单片单板机和仿真器。实现单片机应用系统的硬、软件开发。
单片机为工业测控而设计,又称微控制器 。 具有三高优势 (集成度高、可靠性高、性价比高 )。
主要应用于工业检测与控制、计算机外设、智能仪器仪表、通讯设备、家用电器等。 特别适合于嵌入式微型机应用系统。
单片机发展概况
1976-1978 初级 8位单片机 Intel MCS-48 系列
1978- 高档 8位单片机 Intel MCS-51系列,
-51子系列,8031/8051/8751
-52子系列,8032/8052/8752
低功耗型 80C31高性能型 80C252廉价型 89C2051/1051
1983- 16位单片机 Intel MCS-96 系列
8098/8096,80C198/80C196
32位单片机 80960
1-1-4 计算机主要技术指标
字长,CPU并行处理二进制的数据位数
8位机,16位机,32位机和 64位机 。
内存容量,内存存储单元数容量单位,1K=210=1024,1M=220=1KK
8K,64K,16M,64M。
运算速度,CPU处理速度时钟频率、主频、每秒运算次数
6MHz,12MHz,24MHz,100MHz,300MHz。
内存存取周期,内存读写速度
50nS,70nS,200nS 。
1-2 计算机运算基础
一,十进制 ND有十个数码 0~ 9、逢十进一。
十进制用于计算机输入输出,人机交互 。
二,二进制 NB两个数码,0,1,逢二进一 。
二进制为机器中的数据形式。
三,十六进制 NH十六个数码,0~ 9,A~ F,逢十六进一 。
十六进制用于表示二进制数。
不同进位制数以下标或后缀区别,十进制数可不带下标。
如,101,101D,101B,101H,101H
介绍计算机中数的表示方法和基本运算方法。
1-2-1 进位计数制表 1-2-1 不同进位记数制对照表十进制 二进制 十六进制 十进制 二进制 十六进制
0 0000 0 8 1000 8
1 0001 1 9 1001 9
2 0010 2 10 1010 A
3 001 1 3 11 101 1 B
4 0100 4 12 1 100 C
5 0101 5 13 1 101 D
6 01 10 6 14 1 1 10 E
7 01 1 1 7 15 1111 F
1-2 计算机运算基础
一,十进制 ND
有十个数码,0~ 9,逢十进一。
例 1234.5=1× 103 +2× 102 +3× 101 +4× 100 +5× 10-1
加权展开式以 10称为基数,各位系数为 0~ 9。
一般表达式:
ND= dn-1× 10n-1+dn-2× 10n-2 +… +d0× 100 +d-1× 10-1+…
1-2-1 进位计数制
1-2 计算机运算基础
二,二进制 NB
两个数码,0,1,逢二进一 。
例 1101.101=1× 23+1× 22+0× 21+1× 20+1× 2-1+1× 2-3
加权展开式以 2为基数,各位系数为 0,1。
一般表达式:
NB = bn-1× 2n-1 + bn-2× 2n-2 +… +b0× 20 +b-1× 2-1+…
1-2-1 进位计数制
1-2 计算机运算基础
三,十六进制 NH
十六个数码 0~ 9,A~ F,逢十六进一 。
例,DFC.8=13× 162 +15× 161 +12× 160 +8× 16-1
展开式以十六为基数,各位系数为 0~ 9,A~ F。
一般表达式:
NH= hn-1× 16n-1+ hn-2× 16n-2+… + h0× 160+ h-1× 16-1+…
1-2-1 进位计数制
1-2-2 不同进位计数制之间的转换
先展开,然后按照十进制运算法则求和 。
举例,
1011.1010B=1× 23+1× 21+1× 20+1× 2-1+1× 2-3=11.625
DFC.8H =13× 162+15× 161+12× 160+8× 16-1 = 3580.5
(一)二、十六进制数转换成十进制数
进位计数制的一般表达式,
Nr= an-1rn-1+an-2rn-2+ … +a1r1+ a0r0+ a-1r-1… + a-mr-m
一个 r1进制的数转换成 r2进制数的方法:
先展开,然后按 r2进制的运算法则求和计算 。
1-2-2 不同进位计数制之间的转换
( 二 ) 二进制与十六进制数之间的转换
24=16,四位二进制数对应一位十六进制数 。
举例,
3AF.2H = 0011 1010 1111.0010 = 1110101111.001B
3 A F 2
1111101.11B = 0111 1101.1100 = 7D.CH
7 D C
(三) 十进制数转换成二、十六进制数
整数,小数分别转换
1.整数转换法
,除基取余,,十进制整数不断除以转换进制基数,直至商为 0。 每除一次取一个余数,从低位排向高位 。 举例,
1,39转换成二进制数
39 =100111B
2 39 1 ( b0)
2 19 1 ( b1)
2 9 1 ( b2)
2 4 0 ( b3)
2 2 0 ( b4)
2 1 1 ( b5)
0
2,208转换成十六进制数
208 = D0H
16 208 余 0
16 13 余 13 = DH
0
(三)十进制数转换成二、十六进制数
1,小数转换法
,乘基取整,,用转换进制的基数乘以小数部分,直至小数为 0或达到转换精度要求的位数 。 每乘一次取一次整数,从最高位排到最低位 。 举例,
1,0.625转换成二进制数
0.625
× 2
1.250 1 (b-1)
× 2
0.5 0 0 (b-2)
× 2
1.0 1 (b-3)
0.625 = 0.101B
2,0.625转换成十六进制数
0.625 × 16 = 10.0
0.625 = 0.AH
3,208.625 转换成十六进制数
208.625 = D0.AH
1-2-2 带符号数的表示方法
机器数,机器中数的表示形式,其位数通常为 8的倍数
真值,机器数所代表的实际数值。
举例,一个 8位机器数与它的真值对应关系如下:
真值,X1=+84=+1010100B X2=-84=-1010100B
机器数,[X1]机 = 01010100 [X2]机 = 11010100
机器中,数的符号用,0”、,1” 表示。
最高位作符号位,,0”表示,+”,,1”表示,-”。
(一)机器数与真值
1-2-2 带符号数的表示方法
最高位为符号位,0表示,+”,1表示“-”。
数值位与真值数值位相同。
例 8位 原码 机器数:
真值,x1 = +1010100B x2 =- 1010100B
机器数,[x1]原 = 01010100 [x2]原 = 11010100
原码表示简单直观,但 0的表示不唯一,加减运算复杂 。
有符号数通常使用三种表示方法:
(二 )原码 (True Form)
1-2-2 带符号数的表示方法
正数的反码与原码表示相同。
负数反码符号位为 1,数值位为原码数值各位取反。
例 8位 反码 机器数,
x= +4,[x]原 = 00000100 [x]反 = 00000100
x= -4,[x]原 = 10000100 [x]反 = 11111011
(三)反码( One’s Complement)
(四)补码( Two’s Complement)
正数的补码表示与原码相同。
负数补码的符号位为 1,数值位等于反码加 1。
例,求 8位 补码 机器数:
x=+4 [x]原 =[x]反 =[x]补 = 00000100
x=-4 [x]原 = 10000100
[x]反 = 11111011
[x]补 = 11111100
补码表示的优点:
0的表示唯一,加减运算方便。
数的补码与“模”有关
,模,即计数系统的量程。
当 X<0,[X]补 = 模 -| X| 。
举例,钟表对时。
设时钟系统“模”为 12,标准时间为 7点整。
8位二进制数的模为,28 = 256
当 X<0,[X]补 = 28 -| X|
= 256 -| X| = 255 -| X| +1
= [X]反码 + 1
9+[-2]补 = 9+10 = 7+12 = 7(舍弃模 )
8位机器数表示的真值
8 位机器数 有符号数十六进制 二进制无符号数原码 反码 补码
00
01
7F
80
FE
FF
00000000
00000001
01 1 1 1 1 1 1
10000000
1 1 1 1 1 1 10
1 1 1 1 1 1 1 1
0
1
127
128
254
255
+0
+1
+ 127
- 0
- 126
- 127
+0
+1
+ 127
- 127
- 1
- 0
+0
+1
+ 127
- 128
- 2
- 1
1-2-2 带符号数的表示方法四,机器数与真值之间的转换
1)X1=+127,X2=-127,求 [X]原,[X]补
[X1]原 =[X1]补 =01111111= 7FH
[X2]原 =11111111= FFH
[X2]补 =10000001= 81H
2)X1=+255,X2=-255,求 [X]原,[X]补
[X1]原 =[X1]补 =0000000011111111= 00FFH
[X2]原 =1000000011111111= 80FFH
[X2]补 =1111111100000001= FF01H
1,真值?机器数四,机器数与真值之间的转换
1) [X1]原 = 59H,[X2]原 = D9H,求真值?
[X1]原 = [X1]原 =
2,机器数?真值
* 注意机器数表示(原码、补码)
* 注意机器数符号位
01011001 11011001
X1= +1011001B=+89 X2= -1011001B =-89
2) [X1]补 = 59H,[X2]补 = D9H,求真值
X1= +1011001B =+89 X2=-0100111B =-39
1-2-4 定点与浮点表示
1)定点整数:小数点固定在数值位之后。
2)定点小数:小数点固定在数值位之前符号位之后。
举例:求定点机器数 5AH表示的真值 。
用定点整数表示的真值,+ 1011010
用定点小数表示的真值,+0.101101
一,定点数小数点位置固定的机器数。运算简便,表示范围小 。
1-2-4 定点与浮点表示二进制数浮点表示,B = ± S× 2± J
S- 尾数,为小数或整数。 J- 阶码,为整数二,浮点数小数点位置不固定。表示范围大,运算复杂。
举例,求双字节浮点机器数表示的真值
00000101(阶码 ) 00001101(尾数 )
当 S为纯整数,B= +110100000B = +416
当 S为纯小数,B= +11.01B = +3.25
规格化浮点表示:使数值最高位为有效数值位。
例 规格化浮点数,00000010 01101000
1-2-5 运算方法
1.补码加法运算,[X+Y]补 =[X]补 +[Y]补一,补码加减运算符号作为数值直接参与运算,变减法为加法运算。
例 X1=+13,Y1=+6,X2=-13,Y2=-6,求 X1+Y1,X2+Y2
解 求 [X1]补,[Y1]补,[X2]补,[Y2]补
00001101 [+13]补 11110011 [-13]补
+ 00000110 [+6]补 + 11111010 [-6]补
00010011 [+19]补 1 11101101 [-19]补进位为模,舍弃
1-2-5 运算方法例 X1=+6,Y1=+8,X2=-6,Y2=-8,求 X1-Y1,X2-Y2
解 求 [X1]补,[Y1]补,[-Y1]补,[X2]补,[Y2]补,[-Y2]补
00000110 [+6]补 11111010 [-6]补
+ 11111000 [-(+8)]补 + 00001000 [-(-8)]补
11111110 [-2]补 1 00000010 [+2]补进位为模,舍弃
2.补码减法运算,[X-Y]补 =[X]补 -[Y]补 =[X]补 +[-Y]补
1-2-5 运算方法
1,加法运算,直接相加。
2,减法运算,‘变补相加’。
例,X=150=96H,Y=10=0AH,计算 X+Y=? X-Y=?
10010110 150 10010110 150
+ 00001010 + 10 + 11110110 - 10
10100000 160 110001100 140
进位为模,舍弃二,无符号数加减运算变补相加计算减法,
当最高位产生进位,实际无借位;反之有借位 。
1-2-5 运算方法机器数 无符号数 补码:
10010110 150 -106
+ 00001010 + 10 + +10
10100000 160 -96
无符号数与补码运算的溢出判断方法却不同 。
计算机中补码的加减运算与无符号数相同。
1-2-5 运算方法例,X=74= 4AH,Y=216= D8H,求 X+Y=? 和 X-Y=?
01001010 74 01001010 74
+ 11011000 + 216 + 00101000 - 216
1 00100010 34 0 01110010 114
溢出使结果出错。加法有进位,结果应为 290;
减法无进位则有借位,结果负数补码。
三,溢出 ─ 运算过程中数据超出允许表示范围
1,无符号数溢出判断 ─ 最高位是否产生进位或借位。
计算机设置进位标志位 Cy 判断无符号数溢出:
当数据加 /减最高位产生进位 /借位,Cy=1; 否则,Cy=0。
例 X1=+45,Y1=+46,X2=+90,Y2=+107,求 X1+Y1,X2+Y2
2,补码溢出判断 ─ 符号位和最高数值位进位是否相同。
计算机设置溢出标志位 OV 判断补码溢出。
逻辑关系,OV =Cy6?Cy7
当补码加 /减产生溢出 OV=1,否则 OV=0。
例 X1=-5,Y1=-2,X2=-105,Y2=-91,求 X1+Y1、
X2+Y2
11111011 [-5]补 10010111 [-105]补
+ 11111110 [-2]补 + 10100101 [- 91]补
1 11111001 [-7]补 1 00111100 [+ ]
补 正确,无溢出 正数,有溢出。
负数相加,同时有进位,Cy6 =1,Cy7=1,则无溢出;
不同时有进位,则有溢出,结果出错。
解,[X1]补 =2DH,[Y1]补 =2EH,[X2]补 =5AH,[Y2]补 =6BH
00101101 [+45]补 01011010 [+ 90]补
+ 00101110 [+46]补 + 01101011 [+107]补
0 01011011 [+91]补 0 11000101 [- ]补正确,无溢出 负数,有溢出正数相加,同时无进位,Cy6 =0,Cy7=0,则无溢出;
不同时有进位,则有溢出,结果出错。
1-2-6 二 — 十进制编码 BCD码例:求十进制数 876的 BCD码
[876]BCD = 1000 0111 0110
876 = 36CH = 1101101100B
BCD码 (Binary Coded Decimal)
二进制代码表示的十进制数。
一,8421 BCD码二,BCD码运算十进制调整,计算机实际按二进制法则计算,加入十进制调整操作,可计算 BCD码。
十进制调整方法,当计算结果有非 BCD码或产生进位或借位,进行加 6或减 6调整。
例,计算 BCD码 78+69=?
0111 1000 [78]BCD
+ 0110 1001 + [69]BCD
1110 0001 产生非 BCD码和半进位
+ 0110 0110 +66H调整
1 0100 0111 带进位结果,147
例,计算 BCD码 38-29=?
0011 1000 [38]BCD
+ 1 1 0111 - [29]BCD
0 1111 产生非 BCD
+ 1111 1010 -06调整
1 0000 1001 结果无借位,9
1-2-7 字符编码美国标准信息交换码 ASCII码,用于计算机与计算机、计算机与外设之间传递信息。
行列
000 001 010 0 1 1 100 101 1 1 0 111
0 0 0 0 NUL D L E SP 0 @ P,p
0 0 0 1 S O H DC1 ! 1 A Q a q
0 0 1 0 S T X DC2,2 B R b r
0 0 1 1 ETX DC3 # 3 C S c s
0 1 0 0 E O T DC4 $ 4 D T d t
0 1 0 1 E N Q NAK % 5 E U e u
0 1 1 0 ACK 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 CAN ( 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