单片机原理及应用 第一章 单片微型计算机概述及预备知识 1.1 单片机的发展历史和发展趋势 1.2 计算机的数制和码制及其数制间转换 1.3 计算机中数的表示方法 1.4 计算机的二进制数运算 1.5 常用的单片机产品 1.6 单片机的应用与选择
第一章 单片微型计算机概述及预备知识 一、计算机的发展概况 电子计算机是一种能够高速而精确地进行数据处理的机器。计算机的发展分为四个时代: 第一代计算机是电子管时代 1946年美国宾夕法尼亚大学发明的ENIAC,用了18800只电子管,150平方米、30t、100kw、运算速度为5000次/秒。 第二代计算机是晶体管时代 1957年美国研制了第一台晶体管计算机TRANSACS- 1000;主存贮器为磁芯存贮器,辅存贮器为磁盘、软件已开始使用高级程序设计语言和操作系统 。
第一章 单片微型计算机概述及预备知识 第三代计算机是中、小规模集成电路时代 1964年IBM推出的IBM360 第四代计算机是大规模、超大规模集成电路时代 1971年IBM370 主要存贮器为半导体存贮器
第一章 单片微型计算机概述及预备知识 二、计算机的系统组成 电子计算机是模仿人脑部分功能的一种工具,故俗称“电脑”。设想一下:人用算盘来计算2436+3748-4569 的过程,把算盘记为R,则计算过程为: 1、0 R 2、2436 R 3、(R)+3748 R 4、(R)- 4569 R 5、记录(R)结果 6、停止计算
第一章 单片微型计算机概述及预备知识 若用电子计算机模拟上述解题过程,计算机必须具备以下条件: 1、机器内必须有相当于算盘的运算器; 2、为了保存和记录原始数据、解题程序和运算的中间结果,机器内必须有容量足够大的存贮器; 3、必须按照解题程序指挥、控制各个部件协同工作的控制器; 4、必须具备将数据和程序送入机器内部的输入设备和给出计算结果的输出设备。
第一章 单片微型计算机概述及预备知识 运算器、控制器、存贮器、输入/输出设备是计算机赖以工作的物质基础,称为硬件。 当然只有硬件,而没有必要的程序,则计算机什么也干不了的,计算机中的程序称为软件。 指令——执行某种操作的命令。 程序——完成某种功能的一组指令。 程序设计——编制解题程序的过程。
第一章 单片微型计算机概述及预备知识 1.1 单片机的发展历史和发展趋势 一、单片机的发展历史 第一阶段(1974~1976): 单片机采用双片形式,即需另加其它外围电路才能构成完整的微型计算机。 eg:仙童公司的F8+3851 第二阶段(1976~1978): 低性能的单片机阶段。单片机由一片芯片构成,性能低。eg: MCS-48(Intel);8048,8035(I/O少,存贮器容量小);
第一章 单片微型计算机概述及预备知识 第三阶段(1978~): 高性能单片机阶段。CPU、并行口、串行口、定时器、RAM、ROM、A/D、多级中断处理,RAM、 ROM容量大,I/O种类数量多,寻址范围大。 eg: MCS-51—8031、Motorona—6801、Zilog—Z8 第四阶段(1982~) 8位单片机巩固发展及16位单片机推出。 eg: MCS-51—8031 , MCS-96—8096(8098)
第一章 单片微型计算机概述及预备知识 二、单片机的发展趋势 (一)CPU功能的增强 1、双CPU提高处理能力。 2、增加数据总线宽度。 NEC PD—7800系列,内部采用16位数据总线。 3、采用流水线结构。指令以队列形式出现在CPU中。 4、串行总线。SPI、I2C 用三条数据总线代替8位数据总线,减少引线,降低成本。 (二)内部资源增多 1、加大存贮容量。
第一章 单片微型计算机概述及预备知识 2、片内EPROM开始EEPROM化。鉴于EEPROM中数 据写入后就能永久保存,因此,有的单片机将它 作为片内RAM使用,有的甚至作片内通用寄存器。 3、I/O数量、能力增强(驱动能力,传输速度、控制能 力) (三)外围电路内装化 (四)低功耗化
第一章 单片微型计算机概述及预备知识 1.2 计算机的数制和码制及其数制间转换 一、计算机的数制 逢r 进位,数的第i个数位对应于一个固定的值rn, rn 称为该位的“权”。小数点左面各位的权是一个基数r 的正次幂,小数点右面各位的权是一个基数r 的负次幂。常用的数制有:二进制(Binary) 、八进制(Octadic) 、十进制(Decimal)和十六进制(Hexadecimal),分别用B、O、D和H表示。 举例说明 eg1:十进制数 r =10 其权为:···,102,101,100,101,102,··· (987.32)10= 9×102 + 8×101 + 7×100 + 3×10-1 + 2×10-2
第一章 单片微型计算机概述及预备知识 eg2:二进制数 r =2 其权为:···,22,21,20,2-1,2-2,··· (1011.101)2 =1×23 +0×22 + 1×21 + 1× 20 + 1× 21 + 0×22+ 1× 23 eg3:八进制数 r =8 其权为:···,82,81,80,8-1,8-2,··· (70613.304)8 =7×84 +0×83 + 6×82 + 1× 81 + 3× 80 + 3× 81+ 0×82 + 4× 83 eg4:十六进制数 r =16 其权为:···,162,161,160,16-1,16-2,··· (-A0.8F)16 = -(10×161 +0×160 + 8×161 + 15×162
第一章 单片微型计算机概述及预备知识 二、计算机的码制 BCD(Binary Coded Decimal)码为用二进制表示的十进制数。 常用二进制编码的十进制数有: 8421码、2421码、5211码 、余3码 常用 表示的十进制数不唯一 eg:7(0111、1101),(1100、1011) ASCII码(American Standard Code for Information Interchange),即美国信息交换标准码。ASCII码为一种8位代码,但采用7位代码编码(一般其最高位为0),共可编码为128个字符编码。
第一章 单片微型计算机概述及预备知识 三、各数制间的转换 1、直接相乘法 数M是r 进制数,转换成十进制数,方法是:将M 的各位数字用十进制数字来表示,然后作乘法和加法。 好麻烦!
第一章 单片微型计算机概述及预备知识 2、余数法 eg:十进制数62转换为二进制数 此方法适合于整数部分转换。 数M 是r 进制数,转换成 t 进制数的整数,除以t , 取余数。 2 62 2 31 2 15 2 7 2 3 2 1 1 低位 高位 同理: (62)10=(76)8 8 62 ··· 6 7 (62)10=(3E)16 16 62 ··· E 3 ∴ (62)10=(111110)2
第一章 单片微型计算机概述及预备知识 3、取整法 eg:十进制数0.375转换为二进制数 此方法适合于小数部分转换。 数M 是 r 进制数,转换成 t 进制数的小数,乘以t , 取整数。 0.375×2=0.75 ······ 整数为0 高位 0.75 ×2=1.5 ······ 整数为1 0.5 ×2=1.0 ······ 整数为1 低位 ∴ (0.375)10=(0.011)2 = 0.(0×2-1+ 1×2-2+1×2-3) 同理: (0.375) 10=(0.3)8= 0.(3×8-1) 0.375×8=3.000 ······ 整数为3 (0.375) 10=(0.6)16= 0.(6×16-1) 0.375×16=6.000 ······ 整数为6
第一章 单片微型计算机概述及预备知识 eg:676.53转换为十六进制数 16 676 0.53×16=8.48 ······ 整数为8 16 676 16 42 ······ 4 16 2 ······ A 0 ······ 2 0.53×16=8.48 ······ 整数为8 0.48×16=7.68 ······ 整数为7 0.68×16=10.88······ 整数为A ∴ (676.49)10 =(2A4.87A)16 4、二进制与十六进制间的转换 1 1 1 0 1 0 1 .1 0 1 0 0 1 1 1 (75.A7)16 (5A.3C)16 0 1 0 1 1 0 1 0 .0 0 1 1 1 1 0 0
第一章 单片微型计算机概述及预备知识 1.3 计算机中数的表示方法 一、真值和机器数 二、带符号数的表示 机器本身只能表示0,1,不能表示 +、-,故一般用“ 0 ”表示“ + ”,用“ 1 ”表示“ - ”。 一个数是由符号和数值两部分组成的。 eg: +74 = +1001010 01001010 -74 = -1001010 11001010 真值 机器数 真值: 直接用正号“ + ”和负号“ - ”来表示的二进制数。 机器数:一个数在机器中的表示形式。 二、带符号数的表示 Dn-1 Dn-2 ... D0 符号位 数 值 部 分
第一章 单片微型计算机概述及预备知识 三、无符号数的表示 eg: 11001010 = -(26 + 23 +21 )= -74 机器数最高位为符号位,用“ 0 ”表示“ + ”,用“ 1 ”表示“ - ”。其余的(n-1)位为数值部分。 三、无符号数的表示 无符号数没有符号位,机器的全部有效位都用来表示数的大小。 Dn-1 ··· Dn-2 D0 例如: D7 D6 ··· D0 1 (11001010 )2= (202)10
第一章 单片微型计算机概述及预备知识 四、数的定点和浮点表示 定点数:小数点固定。 浮点数:小数点不固定(位置不固定)随阶码浮动。 1、定点表示法 符号 . 数值部分 或 符号 数值部分 . 小数点固定在数值部分的最高位之前或最低位之后。 eg:1.101011或1101011. 2、浮点表示法 阶符 阶码 数符 尾数 决定小数点位置
第一章 单片微型计算机概述及预备知识 五、原码、补码、反码 尾数S 15 14 10 9 8 7 1 阶符 阶码 数符 N=S*2P 阶符 阶码 数符 N=S*2P S —— 二进制小数,称 “尾数”,S ≥0 P —— 称为数N的阶码,为非负正数 2 —— 阶码“底” 五、原码、补码、反码 原码、补码、反码都是带符号数在机器中的表示方法 1、原码 原码——把真值的符号部分用0或1表示。 N1 = +1001010 [N ]原 = 01001010 N2 = -1001010 [N ]原 = 11001010
第一章 单片微型计算机概述及预备知识 2、补码 模数—— 一个计量器的容量。 eg:一个n位二进制数它的容量为2n ,所以它的模数为2n。 同余—— 如果两个整数a、b,当用某一个正整数M(模)去除所得余数相等时,则称 a 和 b 对模 M 是同余的。 eg:16 = 4(mod 12) 即:16和4对12是同余,即16点钟和4点钟在以12为模的钟面上,其指示是一样的。 若 x = + xn-2 xn-3···x1x0 则: [x]补 = 2n+x = 0xn-2 xn-3···x1x0
第一章 单片微型计算机概述及预备知识 若 x = - xn-2 xn-3···x1x0 当x为纯小数时,x = x-1x-2···x-n-1 [x]补= x 0 x 2n-1 2n+x -2n-1 x 0 (mod 2n) ①当x为正数时,补码与原码相同。 ②当x为负数时, 2n+x= 2n|x| 性质: [x+y]补= [x]补 + [y]补 [x -y]补= [x]补 - [y]补
第一章 单片微型计算机概述及预备知识 1.4 计算机的二进制数运算 一、算术运算 3、反码 [x]反= 0xn-2 xn-3···x1x0 0 x 2n-1 1xn-2 xn-3···x1x0 -2n-1 x 0 用0代替符号位 符号位为1,其它位按位取反 1.4 计算机的二进制数运算 一、算术运算 1、加法运算 二进制加法法则为: 0+0 = 0;1+0 = 0+1 = 1; 1+1 = 10 ; (向邻近高位有进位) 1+1+1 = 11 ; (向邻近高位有进位)
第一章 单片微型计算机概述及预备知识 例:两个二进制数X=10110110B,Y=11011001B,试求X+Y。 X+Y 110001111B 被加数 加数 和 ∴ X + Y = 10110110B + 11011001B = 110001111B 两个二进制数相加时要注意低位的进位,两个 8 位二进位数的和最大不会超过 9 位。
第一章 单片微型计算机概述及预备知识 ∴ XY = 01000010B 2、减法运算 二进制减法法则为: 0 0 = 0;11 = 0; 1 0 = 1;01 = 1 ; (向邻近高位借1当作2) 例:两个二进制数X= 10010111B,Y= 11011001B,试求XY。 解:由于Y >X,故有XY = (Y X),相应竖式为: 被减数 Y 11011001B 减数 X 10010111B 差数 YX 01000010B ∴ XY = 01000010B
第一章 单片微型计算机概述及预备知识 ∴ X·Y=1101B × 1011B = 10001111B 3、乘法运算 二进制加法法则为: 1×0 = 0×1 = 0;1×1 = 1; 例:两个4位二进制数X = 1101B和Y = 1011B,试用手工算法求出X × Y之值。 被乘数 1 1 0 1 B 乘数 × 1 0 1 1 B 1 1 0 1 0 0 0 0 + 1 1 0 1 乘积 1 0 0 0 1 1 1 1 B ∴ X·Y=1101B × 1011B = 10001111B
第一章 单片微型计算机概述及预备知识 ∴ X÷Y 4、除法运算 除法是乘法的逆运算。与十进制类似,二进制除法也是从被除数最高位开始,查找出够减除数的位数,并在其最高位处上商 1 和完成它对除数的减法运算,然后把被除数的下一位移到余数位置上。若余数不够减除数,则上商 0,并把被除数的再下一位移到余数位置上。若余数够减除数,则上商 1,余数减除数。 例: 设X = 10101011B,Y = 110B, 试求X÷Y之值。 解:X ÷ Y的竖式是: ∴ X÷Y = 10101011B÷110B = 11100B ·········余11B
第一章 单片微型计算机概述及预备知识 二、逻辑运算 1、逻辑乘运算 逻辑乘又称逻辑与,常用“∧”运算符表示,逻辑乘运算法则为: 0∧0 = 0; 1∧0 = 0∧1 = 0; 1∧1 = 1 两个二进制数进行逻辑乘,其运算方法类似于二进制算术运算。 例: 已知X = 01100110B,Y = 11110000B,试求X∧Y的值。 解:X∧Y的运算竖式为: 01100110B ∧ 11110000B 01100000B ∴ X∧Y = 01100000B
第一章 单片微型计算机概述及预备知识 ∴ X∨Y=11110110B 2、逻辑加运算 逻辑加又称逻辑或,常用算符“∨”表示,逻辑加的运算规则为: 0∨0 = 0;1∨0 = 0∨1 = 1;1∨1 = 1 例: 已知X = 01100110B,Y = 11110000B,试求X∨Y的值。 解:X∨Y的运算竖式为: 01100110B ∨ 11110000B 11110110B ∴ X∨Y=11110110B
第一章 单片微型计算机概述及预备知识 3、逻辑非运算 逻辑非运算又称逻辑取反。运算规则为: 0 = 1;1 = 0 例: 已知X = 11000011B,试求X的值。 解:∵X = 11000011B,∴X = 00111100B 4、逻辑异或运算 逻辑异或又称为半加,是不考虑进位的加法,常采用“ ” 算符表示。逻辑异或的运算规则为: 0 0 = 1 1 = 0; 1 0 = 0 1 = 1 例: 已知X = 10110110B,Y = 11110000B,试求X Y的值。 解:X Y的运算竖式为: 10110110B 11110000B 01000110B ∴X Y = 10110110B 11110000B = 01000110B
第一章 单片微型计算机概述及预备知识 1.5 常用的单片机产品 目前生产单片机的厂商主要有Intel公司、Motorola公司、Philips公司、ATMEL公司、WinBond公司、Microchip公司、AMD公司、Zilog公司等,产品型号规格众多,性能各具特色。 型 号 ROM/ EPROM RAM 时钟速度 (MHz) I/O线 定时器/计数器 串行口 中断源 PCA通道 A/D通道 保密位 省电 方式 8031AH 128B 12 32 2 1 5 8051AH 4KB 8751BH 8032AH 256B 3 6 8052AH 8KB 8752BH 87C51 1224 √ 80C32 80C52 87C52 80C54 16KB 87C54 87C58 32KB 80C51GB 12,16 48 15 10 8 87C51GB
第一章 单片微型计算机概述及预备知识 1.6 单片机的应用与选择 一、单片机的特点 二、单片机的应用领域 (2)可靠性高、适用的温度范围宽 (1)小巧灵活、成本低、易于产品化 (2)可靠性高、适用的温度范围宽 (3)易扩展、控制功能强 (4)指令系统相对简单,较易掌握 二、单片机的应用领域 (1)在智能仪表中的应用 (2)在机电一体化中的应用 (3)在实时控制中的应用 (4)在军工领域的应用 (5)在分布式多机系统中应用 (6)民用电子产品中的应用
第一章 单片微型计算机概述及预备知识 三、单片机应用系统的结构 1、基本系统 单片机+输入/输出设备无扩展的ROM,RAM,I/O等。 复位 时钟 单 片 机 输入输出设备 单片机+输入/输出设备无扩展的ROM,RAM,I/O等。 2、扩展系统 单片机内部资源有限,要求较高的单片机系统需外扩展ROM、RAM、I/O,甚至A/D、D/A等。 复位 时钟 电源 单 片 机 ROM RAM A/D 串行接口 并行接口 D/A BUS