单片机原理及接口技术
本章内容: 本章主要介绍单片机的概念、单片机的发展、基本的结构和特点、单片机的应用模式和领域以及MCS-51单片机等。 第1章 基础知识 本章内容: 本章主要介绍单片机的概念、单片机的发展、基本的结构和特点、单片机的应用模式和领域以及MCS-51单片机等。
1.1 计算机的一些概念 计算机由运算器、控制器、存储器、输入设备和输出设备五个部分组成。 计算机的结构
1.1 计算机的一些概念 8位计算机每个单元可存放一个8位二进制数,即一个字节,每一位的状态是0或1。 1.1 计算机的一些概念 8位计算机每个单元可存放一个8位二进制数,即一个字节,每一位的状态是0或1。 存储单元保存的8位二进制数称为单元的内容。 存储单元示意图 如图地址为0110单元的内容为10101001,表示为(06H)=A9H。
1.2 单片机 1.2.1单片机的概念及特点 单片机即单片机微型计算机,就是将CPU、RAM、ROM、定时/计数器和多种接口都集成到一块集成电路芯片上的微型计算机。 单片机也称为微控制器(Microcontroller unit ,MCU), 嵌入式控制器(Embedded Microcontroller unit,EMCU ) 单片机分为通用型和专用型,通用型单片机把可开发的内部资源全部提供给用户。 内部资源丰富、性能全面、适应性强。专用型单片机针对某些产品的特定用途而制作的单片机,是MCU发展的一个趋势。
1.2 单片机 1.2.1单片机的概念及特点 单片机有以下特点: 1.2 单片机 1.2.1单片机的概念及特点 单片机有以下特点: (1)集成度高,功能强。单片机在一块芯片上集成了CPU、RAM、ROM、I/O接口等资源,在芯片上还包含了中断系统、串行通信接口、定时器/计数器等功能部件,芯片功能强、体积小、集成度高。 (2)具有较高的性能价格比。单片机尽可能地把应用所需的各种资源集成在一块芯片内,性能高,但是价格却相对较低廉。 (3)抗干扰能力强。单片机是面向工业检测控制环境设计的,因此,抗噪声干扰能力较强。程序固化在ROM类型的存储器中不易被破坏;许多资源集成在一个芯片,可靠性高。
1.2 单片机 1.2.2 单片机的发展 第1阶段(1971~1976):单片机萌芽阶段。 第2阶段(1976~1980):初级单片机阶段。 1.2 单片机 1.2.2 单片机的发展 第1阶段(1971~1976):单片机萌芽阶段。 第2阶段(1976~1980):初级单片机阶段。 第3阶段(1980~1983):高性能单片机阶段。 第4阶段(1983~1990):8位单片机巩固发展及16 位单片机推出阶段。 第5阶段(1990~):单片机在集成度、功能、速度、可靠性、应用领域等方面全方位地向更高水平发展。
1.2 单片机 1.2.3 MCS-51系列单片机及其兼容单片机 (1) MCS-51单片机的第一代产品: 1.2 单片机 1.2.3 MCS-51系列单片机及其兼容单片机 (1) MCS-51单片机的第一代产品: Intel MCS-51 8031/ 8051/ 8751 (2)第二代产品系列采用了CMOS技术制造而成,集成度高,速度快,功耗低: ATMEL MCS-51兼容系列 89C51/ 89C52、89C2051/ 89C2052; (3) 第三代80C51产品的单片机内核SoC(System On Chip, SoC)化。 CYGNAL C8051Fxxxx(SilabC8051F )
1.2 单片机 1.2.4 单片机的应用 (2)办公自动化 (3)商业领域 (4)工业领域 (5)汽车电子 (6)航空航天与军事 1.2 单片机 1.2.4 单片机的应用 (1)家用电器 (2)办公自动化 (3)商业领域 (4)工业领域 (5)汽车电子 (6)航空航天与军事 单片机应用从根本上改变了传统的控制系统设计思想和设计方法。以前必须由硬件(模拟电路或数字电路)实现的控制功能,现在可以用单片机的软件方法实现,这种以软件取代硬件并能提高系统性能的控制技术,称之为微控制技术。随着单片机应用技术的推广普及,微控制技术将发挥将越来越重要的作用。
1.3 计算机的数学基础 1.3.1 数制及转换 一. 数制 (1) 十进制 十个数符:0~9,逢十进一。加权展开式以10称为基数,各位系数为0~9。 一般表达式: ND= dn-1×10n-1+dn-2×10n-2 +…+d0×100 +d-1×10-1+… 1234.5=1×103 +2×102 +3×101 +4×100 +5×10-1
1.3 计算机的数学基础 1.3.1 数制及转换 一. 数制 两个数符:0、1, 逢二进一。加权展开式以2为基数,各位系数为0、1。 (2) 二进制 两个数符:0、1, 逢二进一。加权展开式以2为基数,各位系数为0、1。 一般表达式: NB = dn-1×2n-1 + dn-2×2n-2 +…+d0×20 +d-1×2-1+… 1101.101=1×23+1×22+0×21+1×20+1×2-1+1×2-3
1.3 计算机的数学基础 1.3.1 数制及转换 一. 数制 (3) 十六进制 十六个数符0~9、A~F,逢十六进一。展开式以十六为基数,各位系数为0~9,A~F。 一般表达式: NH= hn-1×16n-1+ hn-2×16n-2+…+ h0×160+ h-1×16-1+… DFC.8=13×162 +15×161 +12×160 +8×16-1
1.3 计算机的数学基础 1.3.1 数制及转换 二. 数制之间的转换 进位计数制的一般表达式: N= an-1×Rn-1+an-2×Rn-2+ … +a1×R1+a0×R0+ a-1×R-1…+a-mR-m 一种进制的数转换成另一种进制数的方法: 按权展开,求和计算。
1.3 计算机的数学基础 1.3.1 数制及转换 (一)十六进制数转换成十进制数 按权展开,然后按照十进制运算法则求和。 举例: 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
1.3 计算机的数学基础 1.3.1 数制及转换 (二)二进制与十六进制数之间的转换 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.3 计算机的数学基础 1.3.1 数制及转换 整数、小数分别转换 1. 整数转换法 (三)十进制数转换成二、十六进制数 整数、小数分别转换 1. 整数转换法 “除基取余”:十进制整数不断除以转换进制基数,直至商为0。每除一次取一个余数,从低位排向高位。
1.3 计算机的数学基础 1.3.1 数制及转换 2. 小数转换法 “乘基取整”:用转换进制的基数乘以小数部分,直至小数为0或达到转换精度要求的位数。每乘一次取一次整数,从最高位排到最低位。
1.3 计算机的数学基础 1.3.2 计算机中数的表示方法 一. 带符号数的表示 机器数与真值 机器中,数的最高位作符号位,“0”表示“+”,“1”表示“-” 。 机器数:机器中数的表示形式,其位数通常为8的倍数 真值: 机器数所代表的实际数值。 一个8位机器数+84和-84与它们的真值对应关系 真值: X1=+84=+1010100B X2=-84= -1010100B 机器数:[X1]机= 01010100 [X2]机= 11010100
1.3 计算机的数学基础 1.3.2 计算机中数的表示方法 带符号数通常有三种表示方法:原码、反码、补码 (1)原码 最高位为符号位,0表示 “+”,1表示“-”。 数值位与真值数值位相同。 x1 = +1010100B [x1]原 = 01010100 x2 =- 1010100B [x2]原 = 11010100 在计算机中,0 可表示为+0和-0,故0 在原码中有两种表示法: [+0]原=00000000B [-0]原=10000000B。
1.3 计算机的数学基础 1.3.2 计算机中数的表示方法 (2)反码 正数的反码与原码表示相同。 负数反码符号位为 1,数值位为原码数值各位取反。 x= +4 [x]原= 00000100 [x]反= 00000100 x= -4 [x]原= 10000100 [x]反= 11111011 负数的反码
1.3 计算机的数学基础 1.3.2 计算机中数的表示方法 (3)补码 正数的补码表示与原码相同。 负数的补码等于其反码加1。 x=+4, [x]原=[x]反=[x]补= 00000100 x=-4 [x]原 = 10000100 [x]反 = 11111011 [x]补 = 11111100 负数的补码 补码表示的优点:0的表示唯一。
1.3 计算机的数学基础 1.3.2 计算机中数的表示方法 (4)真值与机器数之间的转换 1)正数的原码、反码、补码相同,无需转换; 2)负数原码的最高位为符号位,其余位为数值位,由数值位可以获取真值; 负数反码的数值位按位取反,可转换为原码,即一个负数反码的反码为该负数的原码; 负数补码的数值位按位取反后,末位再加1,可转换为原码,即一个负数补码的补码为原码。 3) 由原码求真值。用“+” 、“-”代替原码的符号位0和1。 推论:一个数的绝对值等于原码的符号位清0。
1.3 计算机的数学基础 1.3.2 计算机中数的表示方法 (4)真值与机器数之间的转换 X1=+127,X2=-127,求[X]原 、[X]补 [X1]原=[X1]补=01111111= 7FH [X2]原=11111111= FFH [X2]补=10000001= 81H X1=+255,X2=-255 ,求[X]原 、[X]补 [X1]原=[X1]补=0000000011111111= 00FFH [X2]原=1000000011111111= 80FFH [X2]补=1111111100000001= FF01H
1.3 计算机的数学基础 1.3.2 计算机中数的表示方法 (二) 定点数浮点数的表示 (1)定点数 小数点位置固定的机器数。运算简便,表示范围小。 数据用2字节整数和1字节小数表示,小数点位于两部分之间,表示如下:
1.3 计算机的数学基础 1.3.2 计算机中数的表示方法 (2 )浮点数 二进制数也可以表示为类似于科学计数法的形式,一个二进制数浮点表示为: S为尾数,J为阶码,它们均为整数。通常,有 2字节浮点数、3字节浮点数、4字节浮点数。 3字节浮点数
1.3 计算机的数学基础 1.3.3 编码 (一)二进制代码 计算机只能处理二进制数和二进制编码,任何进入计算机的信息必须转化为二进制数或二进制编码。 由0和1组成的二进制数码用来表示数值的大小,或用来表示特定的信息,这种具有特定含义的二进制数码称为二进制代码。
1.3.3 编码 二. 十进制数四位二进制编码(BCD 码) 8421 BCD码 例:求十进制数876的BCD码 1.3.3 编码 二. 十进制数四位二进制编码(BCD 码) BCD码(Binary Coded Decimal) 二进制代码表示的十进制数。 8421 BCD码 例:求十进制数876的BCD码 [876]BCD = 1000 0111 0110 876 = 36CH = 1101101100B
1.3 计算机的数学基础 1.3.3 编码 (二)十进制数四位二进制编码 1.3.3 编码 (二)十进制数四位二进制编码 十进制数四位二进制编码就是用四位二进制数来表示0~9 这十个十进制符号,简称为BCD 码。
1.3 计算机的数学基础 1.3.3 编码 用于计算机与计算机、计算机与外设之间传递信息。 1.3.3 编码 (三) ASCII码【美国标准信息交换码】 用于计算机与计算机、计算机与外设之间传递信息。 ASCII码用一个7位二进制数来表示一个特定的字符,可表示27=128个符号。这128个符号共分为两类:一类是图形字符,共96个;一类是控制字符,共32个。