
江苏开放大学 JIANGSU OPEN UNIVERSITY 单片机技术及应用 (讲义) tp://wwwjsou.edu.cn/ 顾筠编 2018年11月
单片机技术及应用 (讲义) 顾筠 编 2018 年 11 月


前言与目录 单片机面向控制,在各种机电、电子产品或机电技术中得到广泛应用。单片机误 程融合了数字电子技术、控制技术、软件编程等知识与技能。 木误程围绕MCS5引系列单片机进行学习,课程主要包括有关单片机的基本概念 和基本知识,单片机的组成结构,寻址方式、指令系统和程序设计方法,单片机内部 I/O接口单元及应用,外由设备与接口等。 通过本课程的学习,要求: 1。理解单片机相关的基础知识,单片机最小系统: 2.苹握MCS-51的寻址方式和指令系统: 3。掌握单片机程序设计方法: 4.理解单片机接口应用方法:并行口、中断系统、定时计数器、串行口: 5.了解常用外设的接口方法和程序设计方法:AD和D/A接口、LED显示 本讲义依据单片机的功能应用划分成单元,共有10个单元的学习内容。 第1单元单片机基础概述 第2单元单片机组成结构 第3单元单片机的存储器 第4单元单片机指令系统 第5单元单片机程序设计 第6单元并行接口 第7单元中新系统 第8单元定时器计数器 第9单元串行接口 第10单元外围设备与接口 每个单元都设置有习题,供同学们思考练习,以巩固学习内容
前言与目录 单片机面向控制,在各种机电、电子产品或机电技术中得到广泛应用。单片机课 程融合了数字电子技术、控制技术、软件编程等知识与技能。 本课程围绕 MCS-51 系列单片机进行学习,课程主要包括有关单片机的基本概念 和基本知识,单片机的组成结构,寻址方式、指令系统和程序设计方法,单片机内部 I/O 接口单元及应用,外围设备与接口等。 通过本课程的学习,要求: 1.理解单片机相关的基础知识,单片机最小系统; 2.掌握 MCS-51 的寻址方式和指令系统; 3.掌握单片机程序设计方法; 4.理解单片机接口应用方法:并行口、中断系统、定时计数器、串行口; 5.了解常用外设的接口方法和程序设计方法:A/D 和 D/A 接口、LED 显示。 本讲义依据单片机的功能应用划分成单元,共有 10 个单元的学习内容。 第 1 单元 单片机基础概述 第 2 单元 单片机组成结构 第 3 单元 单片机的存储器 第 4 单元 单片机指令系统 第 5 单元 单片机程序设计 第 6 单元 并行接口 第 7 单元 中断系统 第 8 单元 定时器/计数器 第 9 单元 串行接口 第 10 单元 外围设备与接口 每个单元都设置有习题,供同学们思考练习,以巩固学习内容

单岸机故术及应用 第1单元单片机基础概述 【导言】 木学习单元主要讲透有关单片微型计算机的基木概多和基本知识、单片机的发展、特点 和应用。是学习木课程后续内容的基础。 学习提示:学习本单元要求具备“计算机应用基础”,“电工电子技术”两门课程的基 本概念和基础. 【学习目标】 掌据:有关微型机、单片机的基本概念 单片机的特点、单片机的应用。 理解:数值与编码: 了解:单片徽型计算机的产生和发展历史。 单片机的主要品种及系列: 【学习重点和难点】 1.重点:单片机的基本概念,计算机的组成结构、单片机的特点。 2.难点:二进制、十六进村、十进制转换. 【学习内容】 1,1数制与编码 1,2微型计算机基础 1,3单片机的发展 1,4单片机的特点及应用
单片机技术及应用 1 第 1 单元 单片机基础概述 【导言】 本学习单元主要讲述有关单片微型计算机的基本概念和基本知识、单片机的发展、特点 和应用。是学习本课程后续内容的基础。 学习提示:学习本单元要求具备“计算机应用基础”,“电工电子技术”两门课程的基 本概念和基础。 【学习目标】 掌 握:有关微型机、单片机的基本概念。 单片机的特点、单片机的应用。 理 解:数值与编码。 了 解:单片微型计算机的产生和发展历史。 单片机的主要品种及系列。 【学习重点和难点】 1.重点:单片机的基本概念,计算机的组成结构、单片机的特点。 2.难点:二进制、十六进制、十进制转换。 【学习内容】 1.1 数制与编码 1.2 微型计算机基础 1.3 单片机的发展 1.4 单片机的特点及应用

本1兼元维牛机基陆概越 本单元主要讲述单片微型计算机的产生和发展历史,单片徽型计算机的总体组成、种类、 特点,以及单片微型计算机的应用。首先简单回项本课程经常用到的数制与偏码。 1,1数制与编码 1,1.1计算机中的数制及转换 1,进位计数制 按进位原则进行计数的方法,称为进位计数制。在我们的口常生活中经常用到的是十进 制数,十进刚数的主要特点如下。 (1)有10个不同的数字符号:0、1、2、9。 2.低位向高位进位的规律是“逢十进一”。因此,即使同·个数字符号,若在不同的 数位,它所代表的数值也是不同的.如555.5中4个5分别代表500、50、5和05,这个数 可以写成555.5=5×10+5×10+5×1045×10',式中的10豫为十进制的基数,102、10、10、 10称为各数位的权。 任意一个十进制数、都可以表示成按权展开的多项式: N=d×10-+d2×10-2+.+d:×10++d0×10°+d4×10-++d。×10- 式中,d:是0-9(共0个数字)中的任意一个,i是数位的序数,m是小数点右边的位 数,n是小数点左边的位数,10是基数. 如54321可表示为:543.21-5×102+4×10+3×10°+2×10+1×103 一般而言,对于用R进制表示的数N,可以按权展开为: N=axR+axR+a:xR+.+aoxR+axR+axR- 式中,是数字0、1、,(R1)中的任一个,i是数位的序数,m是小数点右边的位数, 是小数点左边的位数,R是基数。在R进制中,每个数字所表示的值是该数字与它相应的 权R的乘积,计数原则是“逢R进一”, (1)二进制数 当R-2时,称为二进位计数制,简称二进制,在二进数中,只有两个不同数码:0和 1,进位规律为“逢二进一”。任何一个数N,用二进制可以表示为: N=a×2+a2×2-2++a,×2++a0×2"+a1×2++an×2w 2
第 1 单元 单片机基础概述 2 本单元主要讲述单片微型计算机的产生和发展历史,单片微型计算机的总体组成、种类、 特点,以及单片微型计算机的应用。首先简单回顾本课程经常用到的数制与编码。 1.1 数制与编码 1.1.1 计算机中的数制及转换 1.进位计数制 按进位原则进行计数的方法,称为进位计数制。在我们的日常生活中经常用到的是十进 制数,十进制数的主要特点如下。 (1)有 10 个不同的数字符号:0、1、2、...、9。 2.低位向高位进位的规律是“逢十进一”。因此,即使同一个数字符号,若在不同的 数位,它所代表的数值也是不同的。如 555.5 中 4 个 5 分别代表 500、50、5 和 0.5,这个数 可以写成 555.5=5×10 2+5×10 1+5×10 0+5×10 -1,式中的 10 称为十进制的基数,10 2、10 1、10 0、 10 -1称为各数位的权。 任意一个十进制数 N 都可以表示成按权展开的多项式: n n i m N d 10 d 10 ... d 10 ... d 10 d 10 ... d 10 -m 1 -1 0 i 0 2 n-2 1 n-1 式中,di是 0~9(共 10 个数字)中的任意一个,i 是数位的序数,m 是小数点右边的位 数,n 是小数点左边的位数,10 是基数。 如 543.21 可表示为:543.21=5×10 2+4×10 1+3×10 0+2×10 -1+1×10 -2 一般而言,对于用 R 进制表示的数 N,可以按权展开为: n n i m N a R a R ... a R ... a R a R ... a -m R 1 -1 0 i 0 2 n-2 1 n-1 式中,ai是数字 0、1、…、(R-1)中的任一个,i 是数位的序数,m 是小数点右边的位数, n 是小数点左边的位数,R 是基数。在 R 进制中,每个数字所表示的值是该数字与它相应的 权 Ri 的乘积,计数原则是“逢 R 进一”。 (1) 二进制数 当 R=2 时,称为二进位计数制,简称二进制。在二进制数中,只有两个不同数码:0 和 1,进位规律为“逢二进一”。任何一个数 N,用二进制可以表示为: n n i m N a 2 a 2 ... a 2 ... a 2 a 2 ... a 2 -m 1 -1 0 i 0 2 n-2 1 n-1

草岸机技水及应用 例1-1:二进制数1011.01可表示为: (1011.01=1×2+0×22+1×2+1×20+0×21+1*22 (2)八进制数 当R-8时,称为八进制.在八进制中,有0、1、2、、7,共8个不同的数码,采用 “逢八选一”的原测进行计数。 例12:八进村数503可表示为: (503-5×8240×81+3×89 (3)十六进制 当R-16时,称为十六进制,在十六进制中,有0、1、2、…、9、A、B、C、D、E、 F,共16个不同的数码,进位方法是“逢十六进一”。 例1-3:(3A80D)16可表示为: (3A8.0D6-3×16+10x16+8×164H0x16+13×16 一般在书写时,二进制颈的后面加字母“B”,八进制数的后面加字丹“Q”,十进制数 的后面加字丹“D”或什么也不加,十六进制数的后面加字母“H”, 表-1列出了几种常见进制的对应关系。 表【1几种常见透位制的对控关系 十进制P 二进制P 八进制 十六进制P 十进制P 二进制和 几进制和 十六遗制和 0 0P 0- 0e ge 1001e 11e 9 le le le le 10p 10109 12 A 2 10P 20 29 11e 10119 13 Be 3 11 3 3 129 1100+ 14 Ce 4p 100P 4e 4p 139 1101P 15- De Se 101中 5e 5e 14P 1110 16时 Ee 6 110p 6 6 15P 1111e 17e Fe Je 111 Je 1e 16p 100003 20的 10- Se 1000- 10P 8 2.不同进制整数间的相互转换 (1)二,十六进制整数转换成十进制 例1-4:将10101011B与2Dl转换为十进制数. 10101011B=1×2740×241×2540×2+1×23+0×22+1×2+1×2-171 2D1-2×16+13×16=45 3
单片机技术及应用 3 例 1-1:二进制数 1011.01 可表示为: (1011.01)2= 1×2 3+0×2 2+1×2 1+1×2 0+0×2 -1+1×2 -2 (2) 八进制数 当 R=8 时,称为八进制。在八进制中,有 0、1、2、…、7,共 8 个不同的数码,采用 “逢八进一”的原则进行计数。 例 1-2:八进制数 503 可表示为: (503)8 = 5×8 2+0×8 1+3×8 0 (3) 十六进制 当 R=16 时,称为十六进制。在十六进制中,有 0、1、2、…、 9、A、B、C、D、E、 F,共 16 个不同的数码,进位方法是“逢十六进一”。 例 1-3:(3A8.0D)16 可表示为: (3A8.0D)16 = 3×16 2+10×16 1+8×16 0+0×16 -1+ 13×16 -2 一般在书写时,二进制数的后面加字母“B”,八进制数的后面加字母“Q”,十进制数 的后面加字母“D”或什么也不加,十六进制数的后面加字母“H”。 表 1-1 列出了几种常见进制的对应关系。 表 1-1 几种常见进位制的对应关系 2.不同进制整数间的相互转换 (1)二、十六进制整数转换成十进制 例 1-4:将 10101011B 与 2DH 转换为十进制数。 10101011B = 1×2 7+0×2 6+1×2 5+0×2 4+1×2 3 +0×2 2+1×2 1+1×2 0= 171 2DH = 2×16 1+13×16 0 = 45

第1单元单帅机燕概越 (2)十进制数整数转换成二,十六进制数 任意十近制数整数N转换成R进制数时,采用除基取余倒序法,即长除法。 分别用基数(R=2或16)不断地去除N的整数,直到离为零为止,每次所得的余数依次 料列,即为相应进制的数码。最初得到的为最低位有效数字,最后得到的为最高位有效数字。 例1-5:将168分别转换成二、十六进制数. 168=10101000B=A8H (3)二进制整数与十六进制之间的相互转换 由于2=6,故可采用“合四为一”的原则,即从小数点开始,分别向左、右两边各以4 位为一组进行二进制与十六选制之问的换算:若不足4位的以0补足,便可将二进制数转换 为十六选制数。反之,采用“一分为四”的原则,每位十六进制数码用四位二进制数表示, 就可将八(十六)进制数转换为二进制数。 例16:将110101B转换为十六进制数。 00110101 ↓ 3 5 所以,110101B-351H 例17:将4A5H转换为二进制数, A B 01001010 0101 1011 所以,4A5BH-1C0101001011011.011011B 1,1.2带符号数的表示 1,机器数及其真值 数在计算机内的表示形式称为机器数。面这个数本身称为该机器数的真值。例如: 正数+1000101B(+45H)可以表示成01000101B:机器数45H。 负数-1010101B(-55H可以表示成11010101B:机器数D5H。 “45H”和“D5H”为两个机器数,它们的真值分别为“+45H”和“-55H”。 4
第 1 单元 单片机基础概述 4 (2) 十进制数整数转换成二、十六进制数 任意十进制数整数 N 转换成 R 进制数时,采用除基取余倒序法,即长除法。 分别用基数 R(R=2 或 16)不断地去除 N 的整数,直到商为零为止,每次所得的余数依次 排列,即为相应进制的数码。最初得到的为最低位有效数字,最后得到的为最高位有效数字。 例 1-5:将 168 分别转换成二、十六进制数。 168= 10101000B=A8H (3)二进制整数与十六进制之间的相互转换 由于 2 4=16,故可采用“合四为一”的原则,即从小数点开始,分别向左、右两边各以 4 位为一组进行二进制与十六进制之间的换算:若不足 4 位的以 0 补足,便可将二进制数转换 为十六进制数。反之,采用“一分为四”的原则,每位十六进制数码用四位二进制数表示, 就可将八(十六)进制数转换为二进制数。 例 1-6:将 110101B 转换为十六进制数。 0011 0101 ↓ ↓ 3 5 所以,110101B=35H 例 1-7:将 4A5BH 转换为二进制数。 4 A 5 B ↓ ↓ ↓ ↓ 0100 1010 0101 1011 所以,4A5BH=100101001011011.011011B 1.1.2 带符号数的表示 1.机器数及其真值 数在计算机内的表示形式称为机器数。而这个数本身称为该机器数的真值。例如: 正数+100 0101B(+45H)可以表示成 0100 0101B;机器数 45H。 负数-101 0101B(-55H)可以表示成 1101 0101B;机器数 D5H。 “45H”和“D5H”为两个机器数,它们的真值分别为“+45H”和“-55H

草作机技米及应用 2.原码和反码 (1)原码 带符号二进制数(字节、字或双字),直接用最高位表示数的符号,数使用其绝对值表示 的形式称为该数的原码。 (2)反码 正疑的反码与其原码相同:负数的反码符号位为1,数值位为其原码数值位送位取反, 二进制数采用原码和反码表示时,符号位不能同数慎一道参加运算。 3,补码 在计算机中,带符号数的运算均采用补码。正数的补码与其原码相同:负最的补码为其 反码末位加1。 1.1.3 ASCII码和BCD码 1,字符的二进制编码一ASCⅡ码 字符的编码一般采用美国标准信息交换码(American Standard Code for Information Interchange,ASCIl). 一个字节的8位二进制码可以表示256个字符。当最高位为“0”时,所表示的字符为 标准ASC码,共128个,用于表示数字、英文大写字母、英文小写字母、标点符号及控制 字符等,如本书附录2的ASC表所示。当最高位为“1”时,所表示的是扩展ASC码字 符,是一些特殊符号(如希册字母等) A$C码常用于计算机与外国设备的数糕传输。如通过提盘的学符输入,通过打印机或 量示器的字符输出等,常用字符的ASC码如表13所示。 表1-3常用字符的ASC码 字符即 ASCI码 字符即 ASCI码 字符和 ASCI码 字符 ASCI码 30H A的 4IHe 61He SP空格)P 20H形 31H Be 42H be 62H+ CR回车P ODH 2 32H Ce 43H 69 63 LF埃行) OAH B日P 07He 9 39班 Z的 SAHe 2 AHe BS退格)P 08H
单片机技术及应用 5 2.原码和反码 (1) 原码 带符号二进制数(字节、字或双字),直接用最高位表示数的符号,数值用其绝对值表示 的形式称为该数的原码。 (2) 反码 正数的反码与其原码相同;负数的反码符号位为 1,数值位为其原码数值位逐位取反。 二进制数采用原码和反码表示时,符号位不能同数值一道参加运算。 3. 补码 在计算机中,带符号数的运算均采用补码。正数的补码与其原码相同;负数的补码为其 反码末位加 1。 1.1.3 ASCII 码和 BCD 码 1.字符的二进制编码——ASCII 码 字符的编码一般采用美国标准信息交换码(American Standard Code for Information Interchange,ASCII)。 一个字节的 8 位二进制码可以表示 256 个字符。当最高位为“0”时,所表示的字符为 标准 ASCII 码,共 128 个,用于表示数字、英文大写字母、英文小写字母、标点符号及控制 字符等,如本书附录 2 的 ASCII 表所示。当最高位为“1”时,所表示的是扩展 ASCII 码字 符,是一些特殊符号(如希腊字母等)。 ASCII 码常用于计算机与外围设备的数据传输。如通过键盘的字符输入,通过打印机或 显示器的字符输出等,常用字符的 ASCII 码如表 1-3 所示。 表 1-3 常用字符的 ASCII 码

第1兼元单岸机蒸磁概越 2.二进制编码的十进制数8421BCD码 十选材数是人门在生活中敏习惯的数制,人门通过键盘向计算机拍入数搭时,常用十进 制输入。显示器显示数据时,也多采用十选制形式。 由于十进制数有十个不同的数码,因此而要4位二进制数来表示。而4位二进制数 码有16种不同的组合,所以表示0-9这十个数有多种方案。所以,BCD码也有多种方案. 最常用的编码是8421BCD码,它是一种恒权码,8制23)、422)、221)人、1(20)分别是4位二 进制数的权值。用二进制码表示十进制数的代码称为8421BCD码。十进制数0-9所对应的 8421BCD码如表14所示, 表1409所对应的821围1)码表 十选制傲 BCD码 十进制傲和 BCD码H 0000B se 0101B- 1e 0001BP 6p 01108 24 0010B2 le 0111B 3e 0011B 8e 1000B- 40 0100B9 ge 1001B 1.2微型计算机基础 1.2.1电子计算机的结构 1946年2月15日,第一台电子数字计算机ENAC可世,标志着计算机时代的到来。 ENIAC是电子管计算机,时钟颊率仅有100k1z,但能在1秒钟的时间内完成5000次知法运 算,与现代的计算机相比,。有许多不足,但它的问世开创了计算机科学技术的新纪元,对人 类的生产和生活方式产生了巨大的影响。 匈牙利籍数学家冯·诺依曼在方案的设计上数出了重要的页献。1946年6月,位又提出 了“程序存储”和“二进制运算”的思想,进一步构建了计算机由运算器、控制器、存储器、 输入设备和输出设备组成这结构,如图1-1所示
第 1 单元 单片机基础概述 6 2. 二进制编码的十进制数 8421 BCD 码 十进制数是人们在生活中最习惯的数制,人们通过键盘向计算机输入数据时,常用十进 制输入。显示器显示数据时,也多采用十进制形式。 由于十进制数有十个不同的数码,因此需要 4 位二进制数来表示。而 4 位二进制数 码有 16 种不同的组合,所以表示 0~9 这十个数有多种方案。所以,BCD 码也有多种方案。 最常用的编码是 8421 BCD 码,它是一种恒权码,8(23)、4(22)、2(21)、1(20)分别是 4 位二 进制数的权值。用二进制码表示十进制数的代码称为 8421 BCD 码。十进制数 0~9 所对应的 8421 BCD 码如表 1-4 所示。 表 1-4 0~9 所对应的 8421 BCD 码表 1.2 微型计算机基础 1.2.1 电子计算机的结构 1946 年 2 月 15 日,第一台电子数字计算机 ENIAC 问世,标志着计算机时代的到来。 ENIAC 是电子管计算机,时钟频率仅有 100kHz,但能在 1 秒钟的时间内完成 5000 次加法运 算。与现代的计算机相比,有许多不足,但它的问世开创了计算机科学技术的新纪元,对人 类的生产和生活方式产生了巨大的影响。 匈牙利籍数学家冯·诺依曼在方案的设计上做出了重要的贡献。1946 年 6 月,他又提出 了“程序存储”和“二进制运算”的思想,进一步构建了计算机由运算器、控制器、存储器、 输入设备和输出设备组成这一结构,如图 1-1 所示

单岸机故术及应用 输入设备 存储器 输出设备 制器 运算器 图1】电子计算机的站构 1.2.2撤型计算机的组成及其应用 1,微型计算机的短成 计算机的发展经历了从电子管到大规槟集成电路等几个发展阶段,随着大规模集成电路 技术的发展,导致了计算机向性能稳定可靠、微型化、康价方间发展,从而出现了微型计算 机。 19T1年1月,tl公司的特德·霜夫在与日本商业通讯公司合作研制台式计算器时,将 原始方案的十几个芯片压缩成三个集成电路起片,其巾的两个芯片分州用于存储程序和数 据,另一芯片集成了运算器和控制器及一些寄存器,称为微处理器(即1n4D04).微处理器、 存储器加上O接口电路组成微型计算机。各部分通过地址总线(AB)、数据总线DB)和控制 总线(CB)相连,如图12所示。 地址总线AB 微 数据总线DB 处 理 控制总线CB 器 存储器 1O接口 1O设备 图12微华计算机的组成
单片机技术及应用 7 图 1-1 电子计算机的结构 1.2.2 微型计算机的组成及其应用 1. 微型计算机的组成 计算机的发展经历了从电子管到大规模集成电路等几个发展阶段,随着大规模集成电路 技术的发展,导致了计算机向性能稳定可靠、微型化、廉价方向发展,从而出现了微型计算 机。 1971 年 1 月,Intel 公司的特德·霍夫在与日本商业通讯公司合作研制台式计算器时,将 原始方案的十几个芯片压缩成三个集成电路芯片。其中的两个芯片分别用于存储程序和数 据,另一芯片集成了运算器和控制器及一些寄存器,称为微处理器(即 Intel 4004)。微处理器、 存储器加上 I/O 接口电路组成微型计算机。各部分通过地址总线(AB)、数据总线(DB)和控制 总线(CB)相连,如图 1-2 所示。 图 1-2 微型计算机的组成 输入设备 存储器 控制器 运算器 输出设备