1、2006.9主讲教师主讲教师:程启明程启明 教授教授1课程目标课程目标 微机原理是学习和掌握微机硬件知识和汇编语言程序设计的入门课程:F微型计算机的基本工作原理F汇编语言软件程序设计F微型计算机硬件接口技术 目的:建立微型计算机系统的整体概念,形成微机系统软、硬件开发的初步能力。2教学内容教学内容第第1 1章章 基础知识基础知识第第2 2章章 微型计算机基础微型计算机基础第第3 3章章 8086/80888086/8088 CPUCPU的指令系统的指令系统第第4 4章章 汇编语言程序设计汇编语言程序设计第第5 5章章 存储器系统存储器系统第第6 6章章 输入输出和中断技术输入输出和中断技术第第
2、7 7章章 常用数字接口电路常用数字接口电路第第8 8章章 模拟量的输入输出模拟量的输入输出 (略讲略讲)第第9 9章章 常用外设及多媒体技术常用外设及多媒体技术 (不讲不讲)补充补充 MCS-51MCS-51单片机原理与嵌入式系统单片机原理与嵌入式系统(简介简介)课程难度“教教”与与“学学”都较难都较难特点:特点:内容多、逻辑联系少、概念抽象、记忆多、内容多、逻辑联系少、概念抽象、记忆多、综合强(软硬结合)、入门难等。综合强(软硬结合)、入门难等。3课程情况学时安排:学时安排:52讲课讲课+16实验实验+1周课程设计(信控系)周课程设计(信控系)47讲程讲程+4实验实验 (动力系(动力系 或
3、或 电力系)电力系)考试成绩:出勤率考试成绩:出勤率10%+作业作业10%+实验实验20%+期末考试期末考试60%作业要求:每章或几章结束交作业本(准备作业要求:每章或几章结束交作业本(准备2本)本)10周后发解答周后发解答考试题型:选择、填空、判断、名词解释、计算、作图、编考试题型:选择、填空、判断、名词解释、计算、作图、编 程等程等考试形式:闭卷、试卷库(任考试形式:闭卷、试卷库(任1套套/10套,黄云峰老师出题套,黄云峰老师出题 将重做将重做)集体统一批改、及格率集体统一批改、及格率5075%(含补考)(含补考)先修课程计算机基础、计算机基础、C语言、电子线路等语言、电子线路等4教材及教
4、学参考书1 1 冯博琴冯博琴主编,微机原理与接口技术,清华大学出版社,主编,微机原理与接口技术,清华大学出版社,2002.22002.22 2 周明德主编周明德主编,微型计算机系统原理及应用微型计算机系统原理及应用(第四版第四版),清华大学出版社清华大学出版社,2003.82003.83 3 龚尚福龚尚福 朱宇主编朱宇主编,微机原理与接口技术微机原理与接口技术,西安电子科技大学出版社西安电子科技大学出版社,2003.8,2003.8答疑辅导 地点:地点:综合实验大楼综合实验大楼305室室 办公电话办公电话:339 将搬到河间路新楼将搬到河间路新楼 电子邮箱电子邮箱: 课程地位 专业基础课,讲课
5、专业基础课,讲课3学分学分+实验实验1学分学分+课程设计课程设计1学分学分=5学分。学分。几乎所有工科(可能是除文科外绝大部分专业)必学,电类各专几乎所有工科(可能是除文科外绝大部分专业)必学,电类各专业必修,自动化专业、测控仪表等专业考研业必修,自动化专业、测控仪表等专业考研(初、复试)(初、复试)必考。必考。与与软件技术基础软件技术基础课程形成硬件与软件配套。课程形成硬件与软件配套。5第第1章章 基础知识基础知识主要内容:主要内容:l各种常用记数制和编码以及它们各种常用记数制和编码以及它们 相互间的转换;相互间的转换;l二进制数的算术运算和逻辑运算;二进制数的算术运算和逻辑运算;l符号数的
6、表示及补码运算;符号数的表示及补码运算;l二进制数运算中的溢出问题二进制数运算中的溢出问题61.1 概 述l电子计算机的发展:l电子管计算机(1946-1956)l晶体管计算机(1957-1964)l中小规模集成电路计算机(1965-1970)l超大规模集成电路计算机(1971-今)l电子计算机按其性能分类:l大中型计算机/巨型计算机(Mainframe Computer)l小型计算机(Minicomputer)l微型计算机(微型计算机(Microcomputer)l单片计算机(Single-Chip Microcomputer)l微型计算机的核心:微处理器(中央处理器CPU)lIntel C
7、PU的发展:见下页表7代发表年份字长(bits)型号线宽(m)晶体管数(万个)时钟频率(MHz)速度(MIPS)一197119724840048008500.20.310.05二197488080200.52-40.5三19781982168086/8088802862-32.9134.77-108-20300七2002?64Itanium?0.08CPU:2.5KCache:30K800(20条指令/时钟周期)300081.2 计算机中的数制计算机中的数制l了解了解l 特点;l 表示方法;l 相互间的转换。9一、常用记数制一、常用记数制 l十进制十进制符合人们的习惯符合人们的习惯l二进制二进
8、制便于物理实现便于物理实现l十六进制十六进制便于识别、书写便于识别、书写l八进制(已很少使用,略去)八进制(已很少使用,略去)l注意注意:它们的数码、基数、权及进位规则的不同。:它们的数码、基数、权及进位规则的不同。101.十进制十进制特点:以十为底,逢十进一;特点:以十为底,逢十进一;共共有有0 0-9 9十个数字符号十个数字符号。表示:表示:120120111101010101010 nnnnmmniiimDDDDDDD112.二进制二进制特点:以特点:以2为底,逢为底,逢2进位;进位;只有只有0和和1两个符号。两个符号。表示:表示:1202n 120111()222222nnnmmnii
9、imBBBBBBB 123.十六进制十六进制特点:以特点:以16为底,逢为底,逢16进位;进位;有0-9及A-F共16个数字符号。表示:表示:1201n 20111()16161616161616nnnmmniiimHHHHHHH 13进位计数制的一般表示进位计数制的一般表示一般地,对任意一个一般地,对任意一个K进制数进制数S都可表示为都可表示为120n 120111()nnknmmniiimSSKSKSKSKSKSK其中:Si-S的第i位数码,可以是K个符号中任何一个;n,m 整数和小数的位数;K-基数;Ki-K进制数的权14如何区分不同进位记数制的数字如何区分不同进位记数制的数字在数字后面
10、加一个字母进行区分:在数字后面加一个字母进行区分:l二进制:数字后面加B,如1001Bl十进制:一般不加,也可加D,如1001l十六进制:数字后面加H,如1001Hl八进制:数字后面加O,如1001Ol在明显可以区分其记数制的情况下,可以省略在明显可以区分其记数制的情况下,可以省略数字后面的字母数字后面的字母15二、各种数制间的转换二、各种数制间的转换1.非十进制数到十进制数的转换非十进制数到十进制数的转换 按相应按相应进位计数制的权表达式展开,进位计数制的权表达式展开,再按十进制求和。再按十进制求和。例:例:1101.101 B1101.101 B =(?)=(?)10 10 参见参见P7P
11、7 64.C H64.C H =(?)=(?)10 10 参见参见P7P7162.十进制到非十进制数的转换十进制到非十进制数的转换l十进制十进制 二进制的转换:二进制的转换:112.25=(?)B 参见参见P7P7 整数部分:除整数部分:除2取余;取余;小数部分:乘小数部分:乘2取整。取整。l十进制十进制 十六进制的转换:十六进制的转换:301.6875=(?)H 参见参见P7P7 整数部分:除整数部分:除16取余;取余;小数部分:乘小数部分:乘16取整。取整。注意注意:以小数点为起点求得整数和小数的各个位。以小数点为起点求得整数和小数的各个位。173.二进制与十六进制间的转换二进制与十六进制
12、间的转换l24=161 4位二进制数表示位二进制数表示1位十六进制数位十六进制数 例:例:10110001001.110B=(?)H 0101 1000 1001.1100 5 8 9 .C 注意:注意:位数不够时要补位数不够时要补0181.3 无符号二进制数的运算无符号二进制数的运算 算术运算算术运算 无符号数无符号数 逻辑运算逻辑运算 有符号数有符号数 算术运算算术运算19一、无符号数的运算一、无符号数的运算201.运算规则运算规则l加法:加法:0+0=0,0+1=1,1+0=1,1+1=0(有进位)(有进位)l减法:减法:0-0=0,1-0=1,1-1=0,0-1=1(有借位)(有借位)
13、乘法:乘法:0X0=0,0X1=0,1X0=0,1X1=1 可转换为可转换为:加法加法+左移位左移位 除法:乘法的逆运算除法:乘法的逆运算,可转换为可转换为:减法减法+右移位右移位 注意注意:一个数乘以一个数乘以2相当于该数左移一位;相当于该数左移一位;除以除以2则相当于该数右移则相当于该数右移1位。位。参见参见P910的例子的例子21例例:l000010110100=00101100B l000010110100=00000010B 11B 即:即:商商=00000010B 余数余数=00000011B222.无符号数的表示范围无符号数的表示范围 一个一个n位的无符号二进制数位的无符号二进制
14、数X,其表示范围为,其表示范围为 0 X 2n-1(当当n=8时时,00000000B11111111B 即在即在0255之间之间)若运算结果超出这个范围,则产生溢出。若运算结果超出这个范围,则产生溢出。(或者说(或者说运算结果运算结果超出超出n n位位,则产生溢出,则产生溢出)判别方法:判别方法:运算时,运算时,当最高位向更高位有当最高位向更高位有进位进位(或(或 借位借位)时则产生溢出时则产生溢出。23例例:1111111111111111 +00000001+00000001 1 1 00000000 00000000结果超出位(最高位有进位),发生溢结果超出位(最高位有进位),发生溢出
15、。(结果为出。(结果为256256,超出位二进制数所能,超出位二进制数所能表示的范围表示的范围255255)243.逻辑运算逻辑运算l与与()、或、或()、非、非()、异或、异或()l特点:按位运算,无进借位特点:按位运算,无进借位l运算规则运算规则.例:例:A=10110110,B=01101011求:求:AB,B,AB,A,B,A,ABB 参见参见P1113254.逻辑门逻辑门逻辑门:完成逻辑运算的电路逻辑门:完成逻辑运算的电路掌握:掌握:l与、或、非门逻辑符号和逻辑关系与、或、非门逻辑符号和逻辑关系(真值表);(真值表);l与非门、或非门的应用。与非门、或非门的应用。26与门(与门(AN
16、D Gate)Y=ABABY000010100111&ABY注意:注意:基本门电路仅完成基本门电路仅完成1位二进制数的运算位二进制数的运算27或门(或门(OR Gate)Y=ABABY000011101111YAB1 128非门(非门(NOT Gate)1AYY=AAY011029异或门(异或门(eXclusive OR Gate)Y=AB =AB+ABYABABY000011101110305.译码器译码器l74LS138译码器:译码器:G1G2AG2BCBAY0Y7 译码输出译码输出译码输入译码输入译码使能译码使能3174LS138真值表真值表 使 能 端输 入 端输 出 端G1#G2A#
17、G2B C B A#Y0#Y1#Y2#Y3#Y4#Y5#Y6#Y7 0 1 1 0 1 1 0 1 0 01 0 01 0 01 0 01 0 01 0 01 0 01 0 0 0 0 0 0 0 1 0 1 0 0 1 1 1 0 0 1 0 1 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1 1 1 1 1 0 1 1 1 1
18、 1 1 1 1 0 1 1 1 1 1 1 1 1 0 321.4 带符号二进制数的运算带符号二进制数的运算l计算机中的带符号二进制数计算机中的带符号二进制数l把二进制数的把二进制数的最高位最高位定义为定义为符号位符号位l符号位为符号位为 0 表示表示正数正数,符号位为,符号位为 1 表示表示负数负数l连同符号位一起数值化了的数,称为连同符号位一起数值化了的数,称为机器数机器数。l机器数所表示的真实的数值,称为机器数所表示的真实的数值,称为真值真值。(在以下讲述中,均以位二进制数为例)33例例:+52=+0110100=0 0110100 符号位符号位数值位数值位 -52=-0110100=
19、1 0110100 真值真值机器数机器数341.符号数的表示符号数的表示l对于符号数,机器数常用的表示对于符号数,机器数常用的表示方法有方法有原码原码、反码反码和和补码补码三种。三种。数数X(真值真值)的原码记作的原码记作 X 原原,反,反码记作码记作 X 反反,补码记作,补码记作 X 补补。注意:注意:对正数,三种表示法均相同。对正数,三种表示法均相同。它们的差别在于对负数的表示。它们的差别在于对负数的表示。35原码原码X原l定定义义符号位:符号位:0表示正,表示正,1表示负;表示负;数值位:真值的绝对值。数值位:真值的绝对值。nnnXXXXX 11122200-即当即当X为正数和为正数和零
20、零(+0)时时即当即当X为负数和为负数和零零(-0)时时36原码的例子原码的例子真值X=+18=+0010010X=-18=-0010010原码X原=0 0010010X原=1 0010010符号符号位n位原码表示数值的范围是位原码表示数值的范围是对应的原码是对应的原码是1111 0111。(当当n=8时时,1 1111111B0 1111111B,即即-127127之间之间)()()nn11212137数数0的原码的原码l8位数位数0的原码:的原码:+0=0 0000000 -0=1 0000000 即:数即:数0的原码的原码不唯一不唯一。38反码反码X反定义定义l 若若X0,则则 X反反=
21、X原原l 若若X0,则则X补补=X反反=X原原l若若X0,则则X补补=X反反+1-nnnXXXXX 11222 00-即当即当X为正数和为正数和零零(+0)时时即当即当X为负数和为负数和零零(-0)时时43例例:lX=52=0110100 X原原=10110100 X反反=11001011 X补补=X反反+1=11001100n位补码表示数值的范围是位补码表示数值的范围是对应的补码是对应的补码是1000 0111。(当当n=8时时,1 0000000B0 1111111B,即即-128127之间之间)()11221nn440的补码:的补码:l+0补补=+0原原=00000000l-0补补=-0
22、反反+1=11111111+1 =1 00000000 对对8 8位字长,进位被舍掉位字长,进位被舍掉l+0补补=-0补补=00000000l数数0的补码的补码是唯一是唯一45特殊数特殊数10000000l该数在原码中定义为:该数在原码中定义为:-0l在反码中定义为:在反码中定义为:-127l在补码中定义为:在补码中定义为:-128l对无符号数:对无符号数:(10000000)=128468位有符号数的表示范围:位有符号数的表示范围:l对对8位位二进制数:二进制数:l原码:-127 +127l反码:-127 +127l补码:-128 +127l想一想:想一想:16位位有符号数的表示范围是多少?
23、有符号数的表示范围是多少?472.有符号二进制数与十进制的转换有符号二进制数与十进制的转换对用补码表示的二进制数:对用补码表示的二进制数:1)求出真值)求出真值 2)进行转换)进行转换48例例:l将一个用补码表示的二进制数转换为十进制数。将一个用补码表示的二进制数转换为十进制数。1)X补补=0 0101110B 真值为:真值为:+0101110B 正数正数 所以:所以:X=+46 2)X补补=1 1010010B 负数负数 X=X补补补补=11010010补补 =-0101110B 所以:所以:X=-46493.补码加减法的运算规则补码加减法的运算规则l通过引进补码,通过引进补码,可将减法运算
24、转换为加法运算可将减法运算转换为加法运算。规则。规则如下:如下:X+Y补补=X补补+Y补补 X-Y补补=X补补+-Y补补 注意注意:其中其中X X,Y Y为正负数均可,为正负数均可,符号位参与运算符号位参与运算。50*补码的运算原理补码的运算原理 模模(module)就是一个计数系统的最大容量就是一个计数系统的最大容量。例如,钟例如,钟表的模为表的模为12,8位二进制数的模为位二进制数的模为28。凡是用器件进行的运算都是有模运算,凡是用器件进行的运算都是有模运算,运算结果超过运算结果超过模的部分模的部分会被运算器会被运算器自动丢弃自动丢弃。因此,当。因此,当器件为器件为n位时,位时,有有X=2
25、n+X (mod 2n)不难验证,不难验证,X补补=2n+X (mod 2n)因此,因此,X Y补补=2n+(X Y)(mod 2n)=(2n+X)+(2n Y)(mod 2n)=X补补+Y补补51例例:lX=-0110100,Y=+1110100,求求X+Y补补lX原原=10110100 lX补补=X反反+1=11001100lY补补=Y原原=01110100l所以:所以:X+Y补补=X补补+Y补补 =11001100+01110100 =01000000524.符号数运算中的符号数运算中的溢出溢出问题问题l进(借)位l在加法过程中,符号位向更高位产生进位;l在减法过程中,符号位向更高位产生
26、借位。l溢出l运算结果超出运算器所能表示的范围。对对8位二进制数:位二进制数:无符号数:0 255 原码:-127 +127 有符号数 反码:-127 +127 补码:-128 +127注意注意:有符号数有符号数运算,有运算,有溢出溢出表示结果是表示结果是错误的错误的 无符号数无符号数运算,有运算,有进位进位表示结果表示结果是是错误的错误的53溢出溢出的判断方法的判断方法l方法:方法:l同号相减或异号相加不会溢出。l同号相加或异号相减可能溢出:l两种情况:两种情况:同号相加时,结果符号与加数符号相反溢出;异号相减时,结果符号与减数符号相同溢出。l方法:方法:l两个8位带符号二进制数相加或相减时
27、,若 C7C61,则结果产生溢出。C7为最高位的进(借)位;C为次高位的进(借)位。54例例:有符号数有符号数运算,有运算,有溢出溢出表示结果是错误的表示结果是错误的无符号数无符号数运算,有运算,有进位进位表示结果表示结果是是错误的错误的 1 0 1 1 0 1 0 1 +1 0 0 0 1 1 1 1 1 0 1 0 0 0 1 0 0 0 1 0 0 0 0 1 0 +0 1 1 0 0 0 1 1 1 0 1 0 0 1 0 1 0 1 0 0 0 0 1 0 +1 1 0 0 1 1 0 1 1 0 0 0 0 1 1 1 1CASE1:CASE2:CASE3:参见参见P2122例子例
28、子551.5 二进制编码二进制编码一、十进制数的表示一、十进制数的表示BCD码l用用4位二进制数表示一位十进制数。一般用位二进制数表示一位十进制数。一般用8421BCD码码(简称简称BCD码码)有两种表示法:有两种表示法:压缩压缩BCD码码和和非压缩非压缩BCD码码。l压缩压缩BCD码码的每一位用的每一位用4位二进制表示,位二进制表示,00001001表示表示09,一个字节表示两位十进制,一个字节表示两位十进制数。数。l非压缩非压缩BCD码码(扩展扩展BCD码码)用一个字节表示一位用一个字节表示一位十进制数,高十进制数,高4位总是位总是0000,低,低4位的位的00001001表示表示09。5
29、6l计算机中除了能够处理数值数据以外,还可以处理文字、语音、图像(汉字)等各种信息,这些信息统称为非数值数据非数值数据。l非数值数据在计算机中也必须以二进制形式二进制形式表示,非数值数据的表示本质上是编码的过程。l最常用的数据编码:美国标准信息交换代码(American Standard Code for Information Interchange,ASCII码码)(见下页ASCII编码表,教材中的附录A)二、非数值数据的表示二、非数值数据的表示57ASCII码美国标准信息交换代码美国标准信息交换代码58 ASCII码码l采用采用7位二进制代码对字符进行编码位二进制代码对字符进行编码l数字
30、数字09的编码是的编码是0110000(30H)0111001(39H),它们的高,它们的高3位位均是均是011,后,后4位正好与其对应的二进制代码(位正好与其对应的二进制代码(BCD码)相符。码)相符。l英文字母英文字母AZ的的ASCII码从码从1000001(41H)开始顺序递增,字)开始顺序递增,字母母az的的ASCII码从码从1100001(61H)开始顺序递增,这样的排列)开始顺序递增,这样的排列对信息检索十分有利。对信息检索十分有利。l最高位通常总为最高位通常总为0,有时也用作奇、偶校验位。,有时也用作奇、偶校验位。偶校验偶校验:包括校验位在内的包括校验位在内的8位二进制码中位二进
31、制码中1的个数为偶数的个数为偶数;奇校验奇校验:包括校验位在内的包括校验位在内的8位二进制码中位二进制码中1的个数为奇数。的个数为奇数。591.6 计算机中常用数据单位计算机中常用数据单位lbit 1 Mb=1024 1024 bit=220 bit 1 Gb=230 bit=1024 Mb 1 Tb=240 bit=1024 GblByte 1 Byte=8bit,1KB=1024 Byte,lWord 表示字长,有表示字长,有1bit、4bit,、8bit,、16bit、32bit、64bit等等 一般情况下为一般情况下为 2Byte(16bit)。60第第1章难点章难点l补码的概念及其运算补码的概念及其运算l有符号数运算的溢出问题有符号数运算的溢出问题 61作业作业l第一章第一章 习题习题(p26)l1.3(注意第3小题,二进制数取小数后12位)l1.5l1.7l1.8l1.1062