1、计算机硬件技术基础,河北工业大学计算机科学与软件学院,主讲教师李 娟, Tel:13821997977,本课的地位,学习本课对基础知识的要求,本课教学目标,学习本课的方法,本课使用教材,授课章节及学时安排,实验内容及安排,第一讲的重点和难点,本课的地位,计算机软件技术基础,计算机硬件技术基础,计算机硬件技术基础微机原理、微机接口、微机应用,微机运算基础 微机组成、基本工作原理、微机系统初步 了解CPU体系结构 了解存储器系统结构、作用 了解I/O接口基本功能、结构、端口的编址方式和I/O同步控制方式 掌握中断概念、CPU响应中断的条件和处理过程 掌握指令系统和汇编语言程序设计(隐含的),微机
2、原理(重点),了解并行接口与串行接口的共性与区别掌握串行通讯的基本概念 掌握可编程并行接口芯片的工作方式、初始化编程 掌握定时器、计数器的原理、功能、应用与编程 了解键盘、显示器等人机交互设备的作用、原理及接口方法 理解并掌握A/D,D/A转换原理、主要性能参数,了解典型DAC、ADC集成芯片,与MPU的接口方法、应用及编程 了解异步串行通讯协议、应用与编程,微机接口(重点),了解微机在测控系统中的应用 了解计算机测控系统的实时处理概念和一般结构 了解测控系统的分析和设计方法 单片机应用系统的一般分析和设计方法(重点),微机应用,学习本课对基础知识的要求,预先应学习: 1、计算机文化基础 2、
3、计算机软件技术基础 3、数字电路、模拟电路 4、电工基础,本课教学目标,基本知识,基本技能,思路方法,独立分析问题和解决问题的能力 实践能力和创新能力 综合运用能力 独立获取知识的能力,教师讲解,学生“悟”,教学目标,传授知识与能力培养统一,理论与实践统一。,学习本课的方法,1、利用迁移原理将自身积累的知识充分发挥出来,迁移到本课新知识的学习。 2、重视实践,独立思考,认真做实验 3、带着问题学,寻找解决问题的知识、思路、方法,本课使用教材,课堂用教材:天大出版社MCS-51单片机原理及应用 实验指导书:本校印计算机硬件技术基础实验指导书,授课章节及学时安排,实验内容及安排,内容:书P1P28
4、 重点: 难点: “三微”的概念 减法运算的原理机器数与真值 补码 补码、定点补码运算及BCD 码、 ASCII 码 判溢出算术运算与逻辑运算 BCD码运算及调整 作业:消化本讲内容,P33思考习题1 1-11-5消化1.4.3 计算机中的运算P33 1-11、1-12、1-13、1-14 、1-151-16 、1-17、1-18,第一讲,第一章 微型计算机基础,.1 微型计算机系统的概念1、 微处理器、微型计算机、微型计算机系统2、本课主要讲授内容及要求 专题一 计算机中的数、编码及运算1. 微型计算机的运算基础,第一讲,1. “三微”的概念,1、微处理器 (MPU) 算术逻辑单元其核心cp
5、u运算器和控制器 寄存器组是微型计算机的核心部件 控制部件,2、微型计算机MPU 为核心半导体存储器(ROM/RAM)I/O(Input/Output)接口和中断系统系统总线(CB DB AB),集成在一个半导体芯片上,组装在一块或数块印刷电路板上,多板微型计算机 单板微型计算机 单片微型计算机,微型计算机的两大分支,核心器件,微处理器,微控制器,MicroProcessor Unit,embed,MicroController Unit,MPU,MCU,微机组成结构的两大类型,冯.诺依曼型,哈佛型,系统总线,例:PC机,例:MCS-51单片机,3、微型计算机系统,硬件系统,软件系统,硬件系统
6、,微型计算机 微处理器:运算器、控制器 内存储器 ROM:ROM、PROM、EPROM、E2PROM、Flash ROM RAM:SRAM、DRAM、iRAM、NVRAM I/O接口:并行、串行、中断接口、DMA接口 系统总线:数据、地址、控制总线(DB、AB、CB) 外围设备 输入/输出设备 A/D 、D/A转换器 开关量输入/输出 终端,微型计算机(P21) 微处理器:运算器、控制器 内存储器 ROM:ROM、PROM、EPROM、E2PROM、Flash memory RAM: DRAM、 SRAM、iRAM、NVRAM I/O接口:并行、串行、中断接口、DMA接口 系统总线:数据、地址
7、、控制总线(DB、AB、CB) 外围设备 输入/输出设备 A/D 、D/A转换器 开关量输入/输出 终端terminal,软件系统,系统软件 操作系统 编译系统 监控程序 汇编程序 程序设计语言 机器语言 汇编语言 高级语言 应用软件,把汇编语言源程序翻译成机器语言目标程序的语言处理程序 自汇编程序 交叉汇编程序,本课的主要内容及要求,微型计算机,MPU 微处理器,存储器(内存),I/O接口,系统总线,连线,编程,综合应用,器件的 外特性 掌握规律,具体机型:MCS-51单片微型计算机,Single-Chip Microcomputer Micro-Controller,MCS-51 单片机的
8、基本组成 一、中央处理器CPU 二、时钟电路 三、内部存储器 四、定时器/计数器(T/C) 五、并行I/O口 六、串行口 七、中断控制系统,14 微型计算机运算基础(p1)1.4.1 计算机中数的表示方法1.4.2 计算机中的编码 1.4.3 计算机中的运算,重点解决:计算机的重要职能之一处理数在计算机中如何表示一个数?不同性质数的运算规则和算法。,几个重要概念 复习不同进制数之间的互换 3. 机器数与真值 4带符号数的原码、反码、补码 5数的定点与浮点表示,1.4.1 计算机中数的表示方法,1 几个重要概念,重点概念1:计算机中的数据都是以二进制形式进行存储和运算的,重点概念2:在计算机中存
9、储数据时,每类数据占据固定长度的二进制数位,而不管其实际长度。一般长度为字节的整倍数,重点概念3:计算机中不仅要处理无符号数,还要处理带符号和带小数点的数。,例如:在八位微机中,整数216 存储为11011000B整数56 存储为00111000B,重点概念4: 机器数与真值,2 不同进制数之间的互换,4、 用权表示数(2n 2n-1 2n-1 2n-1-1)1) 权 n位二进制数各位的权从高位到低位依次为: n位二进制数:Bn-1Bn-2Bn-3 B1B0 权: 2n-12n-22n-3 21202)用权表示数 例:111111111B = 2n-1,即n个1。011111111B = 2n
10、-1-1 ,即n-1个1最高位的权为:2n-1 例:n=8,11111111B=FFH=28-101111111B=7FH=28-1-1 例: n位二进制数表示无符号数的范围: 02n-1n=8 0 28-1 0 255 n=16 0 216-1 065535,n=32 ? N=64 ?,3. 机器数与真值,1)机器数:能被计算机识别的数称为机器数。 2)真值: 机器数所代表的真实值称为机器数的真值。 3) 对于无符号数其机器数与真值表示方法相同。例:真值: 100=64H=01100100B 对应的机器数:64H=01100100Bn位二进制数可表示的数的范围是:0 2n-18位二进制数可表
11、示的数的范围是:0 28-1,0,FFH,0,25516位二进制数可表示的数的范围是:0 216-1,0,FFFFH,0,65535例: 01100100B 其8位全部为数值位。特点:无符号数的机器数与其真值为等值关系,4) 带符号数的机器数的表示方法(重点和难点)常见的有原码、反码和补码三种表示方式。,特点:带符号数的机器数与其真值表示方法不同,两者的关系不是等值关系,仅是一一对应关系。,例如:在八位微机中, 真值:65可表示成机器数(原码)为01000001B 真值:65可表示成机器数(原码)为11000001B,0,1,1,0,0,0,0,0,符号位,数值位,符号位: “0” 表示正号
12、“1” 表示负号,4 带符号数的原码、反码、补码,(1)原码 定义:在表示带符号数时,正数的符号位为“0”,负数的符号位为“1”,数值位表示数的绝对值,这样就得到了数的原码。 例如在八位微机中: 38原100110原00100110B 38原100110原10100110B,计算公式:对于字长为n位的机器数:当真值X0时,X可表示为Xn-2Xn-3X0; 当真值X0时,X可表示为Xn-2Xn-3X0,则X的原码可定义为:,可见n位原码可表示数的范围为:(2n11)(2n11)则在八位微机中,码可表示数的范围为127至127 求真值:带符号数的原码表示法简单易懂,而且与真值转换方便。,原码的缺点
13、: l “0”的原码有两种形式,这在运算中非常不方便。0原 00000000B0原 10000000B,即分为0和0 l 原码在进行两个异符号数相加或两个同符号数相减时,需做减法运算,由于微机中一般只有加法器而无减法器,所以,为了把减法运算转变为加法运算就引入了反码和补码。 原码的用途: l 原码做乘除法运算方便,两数的符号和数值分别处理积的符号为两数符号位的异或运算结果积的数值部分为两数绝对值相乘的结果,(2)反码 定义:正数的反码表示与原码相同;负数的反码,可将负数原码的符号位保持不变、数值位按位取反得到,或者将负数看作正数求原码,再将所有位按位取反得到。因此,在n位机器数的计算机中,数X
14、的反码定义为:,缺点:“0”的反码也有两种表示法,即0和0。0反00000000B0反11111111B,n位反码表示数的范围与原码相同,八位二进制反码表示的范围仍是127至127。,例如八位微机中:,求真值:由反码求得原码,再由原码求得真值,即可得到反码的真值。 例如:反码11011001B,符号位为1,将数值位按位取反,得到原码10100110B,其真值为0100110B 即十进制数38。,(3)补码(难点) 定义:正数的补码表示与原码相同负数的补码等于它的反码末位加1即X补X反1 例如:,补码的含义: 以时钟对时为例来说明,现由7点钟调到4点钟。,顺时针调: 79 4 (mod 12),
15、逆时针调: 73 4 (mod 12),由于时钟上超过12点时就会自动丢失一个数12,这个自动丢失的数叫做“模”(module,简写为mod),由补码的定义得求补码公式:,l 则n位补码表示数的范围为:2n1(2n11) l 八位二进制补码表示的数值范围是128至127。 优点:0的补码为00000000B,只有这一种形式。,(mod 2n),已知补码求真值: 已知正数的补码求真值 与原码相同,只要将符号位的0变为(正号),即得到它的真值。 已知负数的补码求真值 方法1:将负数补码的数值位按位取反再加1,将符号位的1变为(负号),即得到它的真值。 方法2:用公式:X=-(2n-X补) 已知 补
16、码为 01111111B,其真值为+1111111B=+7FH已知 补码为 11111111B,其真值为:10000000B+1= 10000001B,其真值为01H 或:X= ( 28 11111111B)= (00H-FFH)= 1,小结:已知带符号数的机器数求真值,1. 已知正数的原码、反码、补码求真值,只需将符号位的“0”改为正号“+”即可。 2. 已知负数的原码,其真值只需将原码的符号位的“1”改为负号“-”即可。 3. 已知负数的反码,先将它变为原码,再求真值。或用公式计算: 真值x=-(2n-1-x反) 4. 已知负数的补码,数值位取反加1,符号为改为-号,或 用公式:X=-(2
17、n-X补),例:已知带符号数的机器数为 56H,求其真值。真值=+56H 例:已知带符号数的机器数为 0D6H,求其真值。 若0D6H是原码,则真值为:-56H11010110B -1010110B 若0D6H是反码,则真值为:-29H-(0FFH-0D6H) 若0D6H是补码,则真值为:-2AH -(00H-0D6H),当n=8时, 几种码的 表示范围,当n=16时, 几种码的 表示范围,5 数的定点与浮点表示,计算机中如何表示实数中的小数点呢?,计算机中不用专门的器件表示小数点,而是用数的两种不同的表示法来表示小数点的位置。,根据小数点的位置是否固定,数的表示方法分为定点表示和浮点表示,相
18、应的机器数称为定点数和浮点数。,任意一个二进制数N均可表示为:NS2J其中:S称为数N的尾数,表示数N的全部有效数字,决定了N的精度。J称为数N的阶码,底为2,指明了小数点的位置,决定了数N的大小范围。,(1)定点表示法 计算机在处理定点数时,常把小数点固定在数值位的最后面或最前面,即分为定点纯小数与定点纯整数两类,如图1-6所示。,例如:00011000B,如果看作定点纯整数,其真值为24看作定点纯小数,其真值为0.1875,(2)浮点表示法,在浮点表示法中,小数点的位置是浮动的,阶码J可取不同的数值,则在计算机中除了要表示尾码S,还要表示阶码J。因此,一个浮点数表示为阶码和尾数两部分,尾数
19、一般是定点纯小数,阶码是定点纯整数,其形式如图1-7所示。,(469.375)10(111010101.011)2(0.111010101011)229(0.111010101011)221001B 0. 111010101011补100010101010100000000000B 1001B补00001001B,例如,某计算机用32位表示浮点数,尾数部分占24,为补码定点纯小数;阶码为8位补码定点纯整数。用来表示一个数469.375,先进行变换:,因此,数469.375在该计算机中的浮点表示为:,1.4.2 计算机中的编码,ASCII码:由七位二进制编码组成,共有128个字符编码。包括图形字
20、符(字母、数字、其它可见字符共96个)和控制字符(回车、空格等共32个)其中 数字09的ASCII码为30H39H,差30H字母AF的ASCII码为41H46H, 差37HD7位加奇偶校验位:无校验 D7位补0奇校验 D7位使含1的个数为奇数个偶校验 D7位使含1的个数为偶数个例: 30H 00110000H D7补0为无校验和偶校验10110000H D7补1为奇校验,BCD编码:具有十进制位权的二进制编码。最常见的是8421码。(见书6页)注意:0000B1001B是09的BCD码1010B1111B是非BCD码例:15 的BCD码为0001 0101B=15H15=0FH100=64H1
21、00的BCD码为0001 0000 0000B=100H压缩的BCD码 56H 占一个存储单元非压缩BCD码 05H 06H 占两个单元,逻辑运算1、与 3、非 2、或 4、异或 算术运算 1加/减运算电路及二进制无符号数四则运算 2带符号数补码运算及判OV 3BCD码加/减法及十进制调整 4、算术运算小结,1.4.3 计算机中的运算,计算机中的运算分为两类: 逻辑运算:逻辑“与”、“或”、“非”、“异或”等 算术运算:加、减、乘、除运算,1加/减运算电路及二进制无符号数的四则运算,加/减运算电路,减法的实现,减法时SUB=1, 有取反加1功能 加法时SUB=0 无取反加1功能,求 补电 路,
22、二进制无符号数的四则运算,(1)加法运算 二进制加法法则为: 000 10011 1110 11111,例:二进制无符号数加法,1、求 187+22,结果:11010001B 即209SUB=0,C8=0,CY=0,2、求200+200,结果:SUB=0,C8=1,CY=1和=进位值+8位和值=256+10010000B= 400,1,1,0,0,0,1,0,1,0,0,0,0,0,0,1,1,1,1,1,结果:11010001B 即209SUB=0,C8=0,CY=0,1,0,0,0,0,1,0,0,0,1,0,1,1,0,0,0,1,0,0,结果:SUB=0,C8=1,CY=1和=进位值+
23、8位和值=256+10010000B= 400,(2) 减法运算法则:(借1当2),手算:,例:求 187-22,例:二进制无符号数减法,结果:无借位,差为10100101B 即165,取反,1,1,0,1,0,0,1,0,1,0,0,1,1,0,1,0,1,1,1,机器算:,难点,被减数 10111011B 减 数 00010110B,求补 电路,减法 SUB=1,加1,对减数求补后,加被减数,例:求187-22,结果:10100101B 即165 无借位,SUB=1, C8=1 , CY=0 说明:直接相减无借位,求补相加有进位,反之亦然。,(3) 乘法运算法则00=001=10=011=
24、1,常用算法: 1、左移加 2、右移加 3、连加 P124例4-23,(4)定点整数除法运算,常用算法: 1、移位相减法P125 例1-24 2、连减P131例4-27,2带符号数定点补码运算及判OV,定点补码运算定律:当X,Y,X+Y,X-Y均在2n1(2n11)范围内时,则:补补补补补补如果XY,X-Y的值不在2n1(2n11)范围内(n=8时 -128,127 ),则机器就产生了溢出错误,上式不成立,运算结果无意义。,溢出判别 (overflow),若XY 2n11,为正溢出;若XY 2n1 ,为负溢出。判溢出的方法:1、双进位位法 (本书主要用此法判溢出)OV=C8 C7 C8、C7相
25、同不溢出,不同溢出。2、双符号位法变形码0V=Sf Sf Sf 、 Sf相同不溢出,不同溢出。,(1)定点补码加法 步骤:、将、(或)转换为补码。、进行加法运算,符号位参与运算。,编写出程序片段: MOV A,#76;(A)=4CH=01001100B ADD A,#23 ;(A)=4CH+17H=63HOV=0 或:MOV A ,#4CH;(A)=4CH=01001100B ADD A,#17H ;(A)=63H,真值,补码,两个正数的和为负数,两个负数的和为正数,溢出后,运算结果无意义,需要将两个操作数扩大位数后,再算。例1-5 可将76的补码写成004CH,69得补码写成0049H计算:
26、0 000 0000 0100 1100B+ 0 000 0000 0100 1001B0 000 0000 1001 0101B =0095HC16 C15 OV=0 ,不溢出 例1-6同理,用16位二进制数表示数, -76得补码为FFB4H-69的补码为FFBBH,再算即可。,双符号位法判断溢出变形码用两位来表示符号:00表示正号,11表示负号,称为变形码。用变形码进行加法运算时,两位符号位同数值位一起参加运算,运算后,若运算结果的两个符号位相同,则没有溢出;若运算结果的两个符号位不同,则发生了溢出,运算结果错误。用Sf和Sf表示运算结果的两个符号位,则有:OVSfSf,(2)定点补码减法
27、运算XY补X(Y)补X补Y补 步骤:、将、(或)转换为补码。、进行减法运算,符号位参与运算。 判溢出的方法与加法相同,例1-9 已知X76,Y23,求XY,编写出程序片段: MOV A,#76; (A)=4CH=01001100B MOV B,#-23 ;(B)=0E9H CLR C SUBB A,B;(A)=4CH-0E9H=63HOV=0,4CH,0E9H,典型算法:两个带符号数比较大小用S表示和的符号位,OV为溢出标志位 则: X补 Y补S OV 比较结果0 0 XY0 1 XY,3BCD码加法及十进制调整,编写出程序片段: MOV A,#68H;(A)=68H=01101000B AD
28、D A,#49H ;(A)=B1H DA A ;(A)=B1H+66H=17HCY=1 代表100结果:117,必须写BCD码 不能写真值,说明: 如果指令系统中有BCD码的减法调整指令,即可直接用该指令完成上述调整。如果指令系统中没有BCD码的减法调整指令,则不能用减法指令直接对两个BCD码进行减法运算,而需对减数求补,进行加法运算,然后用加法运算的调整指令进行调整。对八位微机,BCD码的模为100(十进制数),减去减数实现对减数的求补。为在八位加减运算电路中运算,将100表示成9AH,即10011010B,减去减数求补。,例1-17 已知X68,Y49,求XY,求补,编写出程序片段: CL
29、R C MOV A,#9AH ; (A)=9AH MOD SUBB A,#49H; (A)=51H BCD ADD A,#68H ; (A)=B9H 非BCD DA A ; (A)=19H BCD CPL C ; CY=0 无借位,差=19HBCD求补相加有进位,直接相减位无借位, 反之,有借位。,算术运算小结(结合黑板,举例说明) 1、求补码与求补求补码:已知真值求补码求补:已知正数的补码求与之数值相同的负数的补码或已知负数的补码求与之数值相同的正数的补码 2、算术运算与标志位对于运算器来说:只根据加/减命令对送给它的两个操作数进行相应的运算,并不区分是什么性质的数,并且根据运算结果,填写标
30、志位。其运算结果代表什么完全由用户决定。一般情况下:无符号数运算判CY定点带符号补码运算判溢出OVBCD码运算判CY,机器调整判AC、CY,例:求62+98=?1、作无符号数运算,结果0A0H=160,CY=0。一般,CY=0,结果在0255之间,CY=1,代表256,结果在0256+255之间2、做带符号补码运算 ,OV=1,正溢出,结果无意义。一般,结果应在-128127之间,超出则溢出。可扩大位数到16位再重新做。3、做BCD码运算,必须送BCD 码,调整后,CY=1,代表100,(A)=60H,代表 60 ,合成后代表160。一般,CY=0,结果在0099之间CY=1,代表100,结果
31、在00199之间4、位数相同,性质不同的数,表示数的范围不同。,逻辑运算计算机由专门的逻辑电路完成一些逻辑运算。逻辑运算都是位对位运算,即运算中位与位之间互不相关,不存在进位或借位,比算术运算简单。(1)逻辑与运算逻辑与的运算符为“”,其运算规则为:00001l00111,逻辑与运算的真值表,逻辑“与”的作用: 1、将一个字的一部分析取出来,与1 2、将一个字的一部分清0,又称屏蔽与0 3、可用于“拆字” 4、自身相与,不变,析取,清零,例:将56H拆成05H和 06HMOV A,#56H ;(A)=01010110B=56HANL A,#0FH ;(A)=00000110B=06HMOV 3
32、0H,A ;(30H)=06HMOV A,#56H ;(A)=56HANL A,#0F0H ;(A)=01010000B=50HSWAP A ;(A)=00000101B=05H,析取低四位 屏蔽高四位,(2)逻辑或运算 逻辑或的运算符为“”,其运算规则为: 000 01101 111,逻辑或运算的真值表,逻辑“或”的用途1、某位置12、自身相或,不变3、拼字,或0,不变,或1,置1,例: 求9的ASCII码MOV A,#30H ;(A)=00110000BORL A,#09H; (A)=00111001B=39H,(3)逻辑非运算 逻辑非运算的真值表逻辑非又称为“求反”运算, 它的运算规则是:1=00=1这里“0”或“l”上面的“一横”表示“非”运算,或称“求反”,其真值表如表所示。微型机中通常有“求反”(CPL)指令。在机器中求一个数的补码,就是先求该数的“反”,再在末位加1得到的。,例:求-5的补码MOV A,#5 ; (A)=00000101BCPL A ; (A)=11111010BINC A ; (A)=11111011B=0FBH,-5的补码,例:将68H的低四位求反 MOV A,#68H;(A)=01101000B XRL A,#0FH;(A)=01100111B,高四位不变 低四位变反,专题一 结束,