《微处理机原理与接口技术》 光电系 徐向东
微处理机原理及接口技术 本学期课程安排 教材:微处理机原理及接口技术 秋学期 授课8周,教材第1—5章内容 1次闭卷测试 答疑或探讨,请发EMAIL: xusong@zju.edu.cn
1 了解微机的基本组成部分 2 了解单片机的特点 3 初步掌握与微机有关的一些基本概念和术语 本讲要点 1 了解微机的基本组成部分 2 了解单片机的特点 3 初步掌握与微机有关的一些基本概念和术语
§1-1 概述 第一章 微处理机概论 A)微型计算机系统 硬件 微型计算机 微处理器 微型计算机 电源 存储器 系统 外围设备 I/O接口 第一章 微处理机概论 §1-1 概述 A)微型计算机系统 硬件 微型计算机 微处理器 微型计算机 电源 存储器 系统 外围设备 I/O接口 总线 软件
通常意义上的微机系统,由硬件和软件组成,而硬件的组成通常指微机,电源和外设.而微机内的主要部件有: 微处理器 MICROPROCESSOR 存储器 MEMORY I/O接口电路 INPUT/OUTPUT PORT 总线 BUS 本课程主要介绍微机部分
微机的产生与发展 数字式电子计算机的产生: 1946年产生第一台数字式电子计算机 电子管→晶体管→集成电路→大规模集成电路→超大规模集成电路 第一代→第二代→第三代→第四代→ (46-57)(58-64)(65-71)(72-今) LSI VLSI SLSI ULSI GLSI
微机的产生与发展 微处理器的产生: 1968年成立Intel公司.1969年日本一公司要求Intel公司为其设计一组用于高性能可编程计算器的芯片,日本客户的原始设计方案至少需要12块专用芯片,Intel公司的Hoff工程师拒绝了这种笨拙的设计方案,代之以四块芯片构成: 4001 RAM、4002 ROM、4003 寄存器、4004 4位CPU 该四块芯片组合即有简单通用计算机的功能。
微机的产生与发展 Intel架构PC机的产生: 1975年美国MITS公司用8080CPU芯片制造了世界上第一台PC机 1981年美国IBM公司用8088CPU芯片制造了世界上第一台Intel架构PC机
B)计算机结构 运 算 器 存 储 器 输入设备 控 制 器 输出设备 外设 主机
冯·诺依曼计算机结构 *迄今为止,所有计算机的组成结构都是冯·诺依曼型的,也就是说计算机总是通过执行存储器中的程序而工作. *组成计算机的五大部分是: 运算器 CPU 中央处理器 控制器 CENTRAL PROCESSING UNIT 存储器 MEMORY 输入设备: 用于输入程序和数据 输出设备: 用于输出结果
冯·诺依曼计算机的五大部件: 运算器、控制器、存储器、输入设备、输出设备 存 储 器 输 入 设 备 输 出 设 备 运 算 器 控 制 器
冯·诺依曼计算机结构 冯·诺依曼计算机的六大特点: ⑴存储器是按地址访问的,按顺序线性编址的一维结构,每个单元的位数固定; ⑵指令由操作码和地址码构成,前者指定指令操作类型,后者指明操作数存放地址; ⑶指令在存储器中按顺序存储,由指令计数器指明取指地址,每取完一指令,指令计数器一般按顺序自动加1; ⑷在存储器中,指令与数据同等对待 本身不能区别;
冯·诺依曼计算机结构 ⑸机器以运算器为中心,输入、输出设备与存储器间数据传送都必须途经运算器,这四者操作及联系都由控制器集中控制; ⑹数据以二进制编码表示,采用二进制运算。 冯·诺依曼计算机的一个根本:存储程序实现控制
通常认为1946年在美国产生第一台数字式电子计算机 这台计算机称为ENIAC ELECTRONIC NUMERICAL INTEGRATOR AND CALCULATOR 电子数字积分器和计算机
第一台数字计算机性能指标 ENIAC 长30.48米,宽1米,占地面积170平方米, 30个操作台,重达30吨,耗电量150千瓦,造价48万美元,6000多个开关,每秒运行5000次加法或400次乘法,是继电器计算机的1000倍,手工计算的20万倍。计算一个算术题只要2分钟,但为此付出的准备工作却要2天.
约翰·冯·诺依曼 JOhn von Neumann,1903年12月28日,出生于匈牙利布达佩斯
冯·诺依曼提出的改进意见 第一、新型计算机不应采用原来的十进制,而应采用二进制。采用十进制不但电路复杂、体积大,而且由于很难找到10个不同稳定状态的机械或电气元件,使得机器的可靠性较低。而采用二进制,运算电路简单、体积小,且实现两个稳定状态的机械或电气元件比比皆是,机器的可靠性明显提高。 第二、采用“存储程序”的思想。即不象以前那样只存储数据,程序用一系列插头、插座连线来实现,而是把程序和数据都以二进制的形式统一存放到存储器中,由机器自动执行。不同的程序解决不同的问题,实现了计算机通用计算的功能。 第三、把计算机从逻辑上划分为五个部分, 即运算器、控制器、存储器、输入设备和 输出设备。
C)通用微机结构 外 设 C P U R O M R A M 定 时 器 中 断 I/O 时 钟 复 位 数据总线 地址总线 控制总线
MCS51系列中的8051芯片的基本性能: 一片40引脚(40PIN) CPU 8位 ROM 4K RAM 128字节 CTC 2X16位 PIO 4X8位 SIO 1 INT 5
单片机麻雀虽小,五脏俱全,只是性能相对弱一些.因此,可将单片机定义为:高度集中了完整微机系统所必需部件的一片集成电路芯片.英文的表述为: One Chip Microprocessor Single chip Microcomputer SCMC Microcomputer Unit MCU Embedded Controller
单片机的出现主要源于两个原因: *为了满足工业测控的要求是来自市场的推动力. *集成电路技术的发展是单片机性能的基本保证.
年 份 型 号 位数 集成度 运算速度 1946 ENIAC (18000个电子管、70000个电阻 0.005 MIPS 1000个电容、1500个继电器) 1970 4004 4位 2000个晶体管 0.06 MIPS 1971 4040 4位 2250个晶体管 1972 8008 8位 3300个晶体管 0.03 MIPS 1974 8080 8位 4500个晶体管 0.2 MIPS 1976 8085A 8位 6200个晶体管 0.3 MIPS 1978 8086 16位 25000个晶体管 1 MIPS 1979 8088 准16位 29000个晶体管 1 MIPS 80186 以8086为核的单片机 80188 以8088为核的单片机 1982 80286 16位 13.4万个晶体管 ≥1.5 MIPS 1985 80386 32位 27.5万个晶体管 ≥5 MIPS 1989 80486 32位 160万个晶体管 ≥7 MIPS 1993 80586 64位 330万个晶体管 ≥90 MIPS 1995 P-Ⅱ 64位 550万个晶体管 ≥300 MIPS 1998 P-Ⅲ 64位 万个晶体管 ≥800 MIPS 2001 P-Ⅳ 64位 4200万个晶体管 ≥2000 MIPS 注:MIPS即为:百万条指令/秒
单片机的应用 单片机在摄影专业中的应用: A、 普通摄影: 摄影器材:电子快门、自动调焦、自动闪光灯、自动测距等 冲印器材:自动冲卷、自动扩印、自动补偿、自动送纸、自动裁切等 B、 数码摄影: 摄影器材:传统器材功能之外还要数码传输、数码压缩、数码存储等 冲印器材:数码还原、数码输出
单片机的应用 构成专用控制器: 家电控制:空调器、电冰箱、洗衣机、电视机等 交通设施:汽车、交通控制等 通讯设施:手机、传呼机、电话机、交换机等 工业控制:温度控制、顺序控制、过程控制等各种 自动控制设施 仪器仪表:测试仪器、计算机外设、各种附加仪表等 医疗设施:保健设备、检查设备、治疗设备等 娱乐设施:音响设备、声像设备、游戏设备等
现阶段单片机发展趋势 ●可靠性及应用水平越来越高,和Internet连接已是一种明显的走向。 ●所集成的部件越来越多。NS(美国国家半导体)公司的单片机已把语音、图象部件也集成到单片机中,也就是说,单片机的意义只是在于单片集成电路,而不在于其功能了。原因是其内部可以集成各种应用电路了。 ●功耗越来越低。 ●和模拟电路结合越来越多。
§1-2 相关概念 1、 微处理机:μP、MPU 数字式电子计算机中的运算器+控制器是其核心,合称为中央处理单元或中央处理器CPU。 §1-2 相关概念 1、 微处理机:μP、MPU 数字式电子计算机中的运算器+控制器是其核心,合称为中央处理单元或中央处理器CPU。 将中央处理单元CPU集成在一块硅芯片上。也称微处理单元MPU或微处理器μP。 2、 主机: 通常将中央处理单元CPU+存储器一起称作计算机的主机。 3、 微型计算机:μC、MC 以微处理器为核心配上半导体存储器、输入输出设备所构成的计算机硬件。
4、 微型计算机系统: 微型计算机配上电源等辅助硬件及合适的软件就构成了能够独立工作的微型计算机系统。 5、 单片机:SCMC、MCU 将计算机主机及部分I/O部件和I/O接口集成在一块硅芯片中。其英文缩写为SCMC即单片微型计算机。 由于单片机常常被用作为控制器,国际上称之为用于控制目的的微型计算机或称微控制器MCU。
6、ROM READ ONLY MEMORY 只读存储器.在计算机运行时,只能执行读操作,掉电后ROM中存放的内容不会丢失. 7、RAM RANDOM ACCESS MEMORY 随机存取存储器. 微机运行时可以读写,掉电后RAM中存放的内容会丢失. 8、堆栈 STACK 是存储器中的一个特殊的区域,是一组按照“先进后出”的方式工作,用于暂存信息的存储单元. 通常配有堆栈指针,用以指明栈顶的位置,起着管理堆栈工作的作用.
9、字长 计算时所用的二进制代码的位数 8位 D7 D6 D5 D4 D3 D2 D1 D0 16位 D15 ------- D0 32位 D31 ------- D0 位: 一位二进制数 称为位. BIT 字节: 8位二进制数 称为字节.BYTE 字: 16位二进制数 称为字. WORD 双字: 32位二进制数 称为双字.
10、总线 BUS 传输信息的一组公共通讯线.如:DB,AB,CB. 总线的宽度通常等于字长,但也有例外. 11、中断 INTERRUPT 中断是指微机暂时停止原程序的执行转而去执行一段新的 程序(中断程序),并在执行完后,返回原中断处继续工作. 12、程序计数器PC PROGRAM COUNTER 是管理程序执行次序的专用寄存器. 一般有按顺序执行和跳转两种方式. 13 、端口地址 I/O接口电路的选通地址. 14、三态门 是常用缓冲器的一种.其输出除了常见的高电平,低电平外, 还能呈现一种高阻状态. 15、OC输出: 三极管集电极开路输出.用于与外接电平相适应.
小结 微机的基本组成部分 冯·诺依曼计算机结构特点 单片机的特点 字长: 计算时所用的二进制代码的位数 字长: 计算时所用的二进制代码的位数 8位 D7 D6 D5 D4 D3 D2 D1 D0 最高位 最低位 MSB LSB 16位 D15 ------- D0 32位 D31 ------- D0 位: 1位二进制数 称为位. BIT 字节: 8位二进制数 称为字节. BYTE
1 熟练掌握十六进制的表达方式及与二进制的 转换关系 2熟练掌握原码反码补码的表示方法及特点 3了解浮点数的表达方式 本讲要点 1 熟练掌握十六进制的表达方式及与二进制的 转换关系 2熟练掌握原码反码补码的表示方法及特点 3了解浮点数的表达方式
§1-3 微机中的数制 *所有微机都是以二进制形式算 术运算和逻辑操作的.
五行八卦中的32卦。
常见的数制 ⑴ 十进制数 Decimal 十个数字符号:0、1、2、3、4、5、6、7、8、9 逢十进位;基数为10; 权为10的N次方; N为正表示为整数部分,N为负表示为小数部分. (1234) 10 =1×103+2×102+3×101+4×100 ⑵ 二进制数 Binary: 只有0 、1二个数字符号; 逢二进位;基数为2,权为2的N次方. (1011.101)2=1×23+0×22+1×21+1×20+1×2-1+0×2-2+1×2-3 =(11.625)10
常见的数制 ⑶ 十六进制数 Hexadecimal: 十六个数字符号:0、1、2、3、4、5、6、7、8、9、A、B、C、D、E、F 逢十六进位;基数为16; 权为16的N次方; 7F=7×161+15×160 = (127) 10
十进制 十六进制 二进制 0 0 0000 1 1 0001 2 2 0010 . . …. 9 9 1001 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111
可见四位二进制数可用一位十六进制数代表; 一位十六进制数,可扩展为四位二进制数.如: 0011 1111 3F 1010 0101 A5 1 0101 0001 1110 1011 0011 1100 151EB3C 1234 0001 0010 0011 0100 A4B2 1010 0100 1011 0010
因此,用晶体管的导通和截止;脉冲的高电平和 低电平,很容易实现这两种状态. 此外二进制运算简单,便于电子线路的实现. B=0V 三极管导通 在微机中采用二进制的原因是: 二进制只有0,1两个数字. 因此,用晶体管的导通和截止;脉冲的高电平和 低电平,很容易实现这两种状态. 此外二进制运算简单,便于电子线路的实现. B=0V 三极管导通 B=VCC 三极管截止 VCC B A 开关管
至于哪种状态称为“0”,哪种状态称为“1”.可以 按某种约定而命名. 比如,微机中RS232口线电平,就是 -12V 称为“1” +12V称为“0” 或理解成: 经RS232输出的数字“1”,会产生-12V电压. 经RS232输出的数字“0”,会产生+12V电压.
所以,二进制中的“0”和“1”是对两种状态的区 别,是对两种状态的记录,没有中间状态. 采用十六进制的合理解释是: 仅仅是用来减轻阅读二进制的负担 和书写二进制时的麻烦. 在微机中并没有按十六进制研制电子线路.
*由于有不同数制数的存在,若不标出标记将 会形成混淆而无法分清.如:书写 11 若不指明,就要引起混淆(主要是汇编时形成混淆) 若为十进制,想表示的是十进制数 11 若为二进制,想表示的是十进制数 3 若为十六进制,想表示的是十进制数 17 因此,书写时必须给出标识!
常见的标识方法有两种 一是用括号后加下标.如 (11) 2 (11) 10 (11) 16 这种标识机器难以识别,一般用于书写. 二是用英文字母加在被标记数的后面.如 11D 11B 11H 这种标识有利于机器识别,常用. 通常对于十进制表示,省略后缀D
正是这一原因,就必须注意指令的书写和输入. 比如,指令 MOV A,#11 汇编成机器码后,会是 74 0B 而指令书写成 MOV A,#11H 汇编成机器码后,将是 74 11 写程序时不注意,很容易产生错误. 所谓机器码是指提供给相应微机识别 的二进制代码.
§1-4 数制间数的转换 *实际工作中,一定要熟记十六进制所代表的十进制值 和其二进制写法,这将会化简许多转换工作. §1-4 数制间数的转换 ⑴ 十进制数→二进制数: 常用的是除2取余法; ⑵ 十进制数→十六进制数: 常用的是除16取余法; ⑶ 二进制数→十进制数: 把二进制数按权计算后相加; ⑷ 十六进制数→十进制数: 把十六进制数按权计算后相加; *实际工作中,一定要熟记十六进制所代表的十进制值 和其二进制写法,这将会化简许多转换工作.
十进制 十六进制 二进制 0 0 0000 1 1 0001 2 2 0010 . . …. 10 A 1010 11 B 1011 12 C 1100 13 D 1101 14 E 1110 15 F 1111
先将该数转换为16进制数 21÷16=1…..5 即 15H 例如:将十进制数21转换为二进制数,可以考虑 2. 将十六进制数展开为二进制 00010101B 例如:将二进制数1111 1111B转换为十进制数 1111 1111B FFH 15X16+15=255D
*要熟记 A) 0—F 与二进制,十进制的对应关系 B) FFH 255D C) 3FFH 1023D D) FFFFH 65535D 微机中为了方便起见,计算单位常常是以K或M来表示 1K=1024D=400H (000—3FFH) 1M=1KX1K=100000H (1048576D) 另外,CRT及液晶屏显示分辨率为640X480,1024X768,1280X1024等, 均是16的倍数,这是为了便于寻址和运算.
§1-5 带符号数的表示 在字长为8位的微机中,若处理的是无符号数,一个数可以用8位二进制数表示.其数值范围为 00H—FFH (0-255D) 换言之,8位二进制数可代表256种状态. 但如何表示一个有符号数,或者说如何表示负数, 习惯上认为有三种方法,即原码 反码 补码. 在对有符号数的表示方法上,必然有一位用于表示符号,这一位称之为符号位.通常规定为最高位. 当最高位为“1”时,表示该数值为负 当最高位为“0”时,表示该数值为正
*对于有符号数中的正数,原码 反码 补码的表示值是相同的. 原码 反码 补码 +2 00000010 00000010 00000010 *对于有符号数中的负数,原码 反码 补码的表示值是不相同的. -2 10000010 11111101 11111110 反码是取反; 补码是取反加1
*当进行有符号数运算时,要通过判断最高位的值来 确定该字节值是正数,还是负数. *对于8位有符号数 A)原码法能表示的范围为-127--+127D B)反码法能表示的范围为-127--+127D C)补码法能表示的范围为-128--+127D
*对于“0”的表示 A)原码有两种不同的表示,称之为+0,-0 分别为0000 0000B 1000 0000B B)反码有两种不同的表示,称之为+0,-0 分别为0000 0000B 1111 1111B C)补码的±0 只有一种表示 0000 0000B
§1-6小数的二进制表示 *任何一个十进制整数都可以用二进制准确地表示.但并不是所有的小数都可以用二进制准确地表示.只能根据精度要求取足够的位数. *十进制 二进制小数的转换方法为“乘2取整法” *小数部分的二进制数,同样可用16进制数表达.
例如:将十进制0.71875转换成二进制和十六进制 0.71875=0.10111B=0.B8H 要注意整数部分和小数部分四位二进制换成一位十六进制的差别 98.65625=62.A8H=1100010.10101B
§1-7 定点数与浮点数 *定点数是指小数点位置固定不变的数. *浮点数是指小数点位置是浮动的,不固定的. 二进制浮点数的表示方法有多种,在不同的微处理机中也可以有不同的表示.但通常采用的是: 阶符 阶码 尾符 尾数 P F P S F S 对于任何一个二进制数N,可以表示成: N=2P×S 式中: S称为N的尾数,P称为N的阶码,2称为阶码的底。 §1-7 定点数与浮点数
若阶码的底为2,阶码P、尾数S都用二进制数表示,则可以构成二进制浮点数。 其所取位数决定了浮点数的有效精度; 阶码P是补码表示的带符号数, 其所取位数决定了浮点数的表达范围。
例如: 101.101B=1000BX0.101101B =2+11BX0.101101B 参照:12.34D= 10+2X0.1234 12345.678=10+5X0.12345678 例如: -0.078125D=-0.000101B =2-11BX-0.101B 在浮点数中,负数一般用补码表示. 于是可写成P F=1 P=01 S F=1 S=011 假如将-0.000101B 写成2-10BX-0.0101B 则有 P F=1 P=10 S F=1 S=1011 可见不同的写法将会引起混淆.
实际应用中,如果整理后的浮点数的尾数S 0.5≤ S ≤1 (十进制表示) 则称该浮点数为规范化浮点数,否则就称非规格化浮点数.在一些微处理器中专门有指令将非规范化浮点数转化为规范化浮点数. 对于16位字长的浮点数,一般P F S F 均为1位 而阶码P和尾数S的位数分别为5位和9位. 这样一来,同样是16位字长,浮点数的表示范围将会是:-231------+231 而16位定点数的范围仅为65536
浮点数的最大优点是可以在同样字长的情况 下,比定点数表达更大范围的数. 浮点数的缺点是运算规则复杂,通常要阶码 和尾数分开运算.
几点说明: *在以控制见长的单片机中,一般按定点数运算见多. *浮点数主要用在数字信号处理,图像处理等场合. *在定点数运算中,带符号运算并不一定要反码补码 的表达.就微机而言,它并不认识反码补码,用户可以 通过相减的运算实现有关运算. *微机也不认识小数,所谓小数运算可以由用户自行 规定解决.
1 熟练掌握十六进制的表达方式及与二进制的 转换关系 2熟练掌握原码反码补码的表示方法及特点 3了解浮点数的表达方式 小结 1 熟练掌握十六进制的表达方式及与二进制的 转换关系 2熟练掌握原码反码补码的表示方法及特点 3了解浮点数的表达方式
练习题 1 把下列十进制数转换成二进制数和十六进制数 a) 135 b) 47.6875 c) 2002.10 2 把下列二进制数转换成十进制数和十六进制数 a) 11010110B b) 0.1011B c) 1011.1011B 3 把下列十六进制数转换成二进制数和十进制数 a) AAH b) ABC.DH c) 128.08H 4 写出下列各十进制数在8位微机中的原码反码和补码形式 a) -54 b) -115 c) 76