单片原理及应用(第)课件_第1页
单片原理及应用(第)课件_第2页
单片原理及应用(第)课件_第3页
单片原理及应用(第)课件_第4页
单片原理及应用(第)课件_第5页
已阅读5页,还剩257页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 单片机原理及应用单片机原理及应用(第(第3版)版)电子工业出版社电子工业出版社(2013(2013年年8 8月)月)本课程的目的:本课程的目的: 介绍:介绍: 以单片机为核心的自动化产品的数以单片机为核心的自动化产品的数字部分的设计基础。字部分的设计基础。基本内容:基本内容: 第第1 1章章 概述概述 第第2 2章章 单片机硬件结构单片机硬件结构 第第3 3章章 指令系统指令系统 第第4 4章章 程序设计程序设计 第第5 5章章 硬件资源的应用硬件资源的应用 第第6 6章章 并行扩展接口技术并行扩展接口技术 第第7 7章章 串行总线扩展技术串行总线扩展技术 第第8 8章章 应用系统设计概述应

2、用系统设计概述 第第9 9章章 单片机的单片机的C C语言设计概述语言设计概述第第1 1章章 概述概述共分两大部分:共分两大部分:1.1 1.1 微型计算机(微型计算机(MCMC)的)的 基础知识概述基础知识概述 1.2 1.2 单片机概述单片机概述 1.1 MC1.1 MC基础知识概述基础知识概述 一、一、MCMC的基本概念的基本概念 二、二、MCMC的基本结构的基本结构 三、计算机中数制三、计算机中数制 四、计算机中常用的编码四、计算机中常用的编码一、一、MCMC的基本概念的基本概念 冯冯诺依曼体系:诺依曼体系: 采用二进制代码表示数据和指令。采用二进制代码表示数据和指令。 采用存储程序的

3、工作方式。采用存储程序的工作方式。 计算机硬件系统由运算器、存储器计算机硬件系统由运算器、存储器、控制器、输入设备和输出设备组成。、控制器、输入设备和输出设备组成。 计算机是一种能够存储程序,并自动连计算机是一种能够存储程序,并自动连续地执行程序,对各种数字化信息进行续地执行程序,对各种数字化信息进行运算的现代化电子设备。运算的现代化电子设备。二、二、MCMC结构结构 1 1、硬件结构、硬件结构 运算器运算器+ +控制器控制器+ +存储器存储器= =主机主机; 输入输入+ +输出设备则称为计算机的外输出设备则称为计算机的外围设备(简称围设备(简称“外设外设”);); 运算器运算器+ +控制器控

4、制器= =中央处理单元中央处理单元CPUCPU(Central Process UnitCentral Process Unit)。)。CPUCPU、存储器、存储器、I/OI/O口、总线口、总线2 2、软件、软件 软件软件是指使用和管理计算机的各种程序是指使用和管理计算机的各种程序(ProgramProgram),),而程序是由一条条指令而程序是由一条条指令(InstructionInstruction)组成的。组成的。 (1 1)指令)指令 (2 2)程序)程序 (3 3)机器语言、汇编语言和高级语言)机器语言、汇编语言和高级语言 汇编语言与机器语言的对照:汇编语言与机器语言的对照: MOV

5、 AMOV A,#63 #63 0111 0100 0111 0100 0011 1111 0011 1111 ADD AADD A,#56 #56 0010 0100 0010 0100 0011 1000 0011 1000 ADD AADD A,#36 #36 0010 0100 0010 0100 0010 0100 0010 0100 ADD AADD A,#14 #14 0010 0100 0010 0100 0000 1110 0000 1110 3 3、硬件与软件的关系、硬件与软件的关系 有机结合的整体有机结合的整体 硬件是基础硬件是基础 软件是灵魂软件是灵魂三、计算机中的数制

6、三、计算机中的数制 进位计数制与转换:进位计数制与转换: 二进制(二进制(B B) 十六进制(十六进制(H H) 十进制(十进制(D D) 带符号数的表示:带符号数的表示: 原码、反码、补码、溢出原码、反码、补码、溢出四、常用的编码四、常用的编码 1 1、ASCIIASCII码:码: 美国信息交换标准代码美国信息交换标准代码 2 2、BCDBCD码码 二进制编码的十进制数二进制编码的十进制数强调:强调: 计算机只认二进制数,并不认什么十六、十、计算机只认二进制数,并不认什么十六、十、ASCIIASCII、BCDBCD码等码等 其他数的大小和性质需要人来分析其他数的大小和性质需要人来分析 111

7、1 1111B 1111 1111B 多大?什么性质的数?多大?什么性质的数? 无符号:无符号:255255 带符号:负数带符号:负数-1-1 BCDBCD码:无效码:无效 ASCIIASCII码:码: “DELDEL”键的键的ASCIIASCII码码1.2 1.2 单片机概述单片机概述 采用一定的采用一定的工艺手段工艺手段将将CPUCPU、存储器、存储器、I/OI/O口集成口集成在一个芯片上。在一个芯片上。 一、单片机特点及应用一、单片机特点及应用 二、单片机技术现状及发展趁势二、单片机技术现状及发展趁势 三、常用的单片机产品三、常用的单片机产品 四、单片机应用系统开发概述四、单片机应用系统

8、开发概述 一、特点及应用一、特点及应用 1 1、特点:、特点: 抗干扰性强,工作温度范围宽抗干扰性强,工作温度范围宽 ; 可靠性高;可靠性高; 控制功能很强,数值计算能力较差;控制功能很强,数值计算能力较差; 指令系统比通用微机系统简单;指令系统比通用微机系统简单; 更新换代速度比通用微机处理器慢多。更新换代速度比通用微机处理器慢多。 2 2、应用:、应用: 智能仪表中的应用智能仪表中的应用 机电一体化中的应用机电一体化中的应用 实时控制中的应用实时控制中的应用 军工领域的应用军工领域的应用 分布式多机系统中的应用分布式多机系统中的应用 民用电子产品中的应用民用电子产品中的应用 二、技术现状及

9、二、技术现状及发展趁势发展趁势 1 1、技术现状、技术现状 (1 1)单片机)单片机系列单片机、种类多系列单片机、种类多 (2 2)8 8位、位、1616位、位、3232位并存位并存 (3 3)结构、功能有很多相似)结构、功能有很多相似掌握一掌握一种就可以触类旁通种就可以触类旁通 (4 4)MCS-51MCS-51单片机已成为国际经典。单片机已成为国际经典。2 2、发展趋势、发展趋势 CPUCPU的改进的改进 存储器的发展存储器的发展 片内片内I/OI/O的改进的改进 外围电路内装化外围电路内装化 低功耗与工作电压范围加宽低功耗与工作电压范围加宽 低噪声与高可靠性技术低噪声与高可靠性技术 IS

10、PISP及及IAP IAP 三、常用的单片机产品三、常用的单片机产品 MCSMCS单片机单片机 AVRAVR单片机单片机 PICPIC单片机单片机 MSPMSP单片机单片机 ARMARM处理器处理器 DSPDSP处理器处理器 四、单片机应用系统开发概述四、单片机应用系统开发概述 开发环境的软硬件构成开发环境的软硬件构成 有关的软件平台:有关的软件平台: PROTELPROTEL、PROTEUSPROTEUS、WAVEWAVE、KEIL C51KEIL C51 单片机的在线编程单片机的在线编程 ISP-ISP-在线系统编程在线系统编程 IAP-IAP-在线应用编程在线应用编程第第2 2章章 MC

11、S-51MCS-51系列单片机硬系列单片机硬件结构件结构 2.1 2.1 总体结构总体结构2.2 CPU2.2 CPU2.3 2.3 存储器存储器2.4 2.4 辅助电路及时序辅助电路及时序2.1 2.1 总体结构总体结构 包括三个问题:包括三个问题: 一、一、MCS-51MCS-51系列系列 二、主要组成二、主要组成 三、外部引脚三、外部引脚 四、总线图四、总线图一、系列问题一、系列问题 讲到单片机都有个系列问题讲到单片机都有个系列问题 MCS-51MCS-51: 基本型基本型 5151子系列子系列(803180518751)(803180518751) 增强型增强型 5252子系列子系列(

12、803280528752)(803280528752) 特殊型特殊型 所有的基础都是所有的基础都是基本型。基本型。二、主要组成二、主要组成 8 8位的位的CPUCPU; 128128个字节的片内个字节的片内RAMRAM; 4 4K K字节的片内字节的片内ROMROM程序存储器程序存储器(8031(8031无无) ) 外部的外部的RAMRAM和和ROMROM的寻址范围为的寻址范围为6464K K 2121个字节的专用寄存器个字节的专用寄存器 4 4个个8 8位并行位并行I/OI/O口口 1 1个全双工的串行口个全双工的串行口 2 2个个1616位的定时器位的定时器/ /计数器计数器 5 5个中断

13、源、个中断源、2 2个中断优先级个中断优先级 111111条指令。条指令。内部结构框图:内部结构框图:三、外部引脚及说明三、外部引脚及说明 四、总线图四、总线图2.2 CPU2.2 CPU CPU CPU是单片机内部的核心部件,它决是单片机内部的核心部件,它决定了单片机的重要功能特性。它由定了单片机的重要功能特性。它由运算运算器器和和控制器控制器两大部分组成。两大部分组成。对对CPUCPU的使用是:的使用是: 对对CPUCPU中的寄存器的使用中的寄存器的使用。有关的寄存器有关的寄存器 累加器累加器ACCACC 寄存器寄存器B B 程序状态字程序状态字PSWPSW 布尔处理器布尔处理器C C 程

14、序计数器程序计数器PCPC 数据指针数据指针DPTRDPTR 堆栈指针堆栈指针SPSP2.3 2.3 存储器存储器 从物理结构上可分为从物理结构上可分为2 2部分:部分: 一、程序存储器一、程序存储器 1 1、编址与访问、编址与访问 2 2、几个特殊入口地址、几个特殊入口地址 二、数据存储器二、数据存储器 1 1、编址与访问、编址与访问 2 2、片内数据存储器、片内数据存储器 3 3、特殊功能寄存器块、特殊功能寄存器块 一、程序存储器一、程序存储器 程序存储器通常存放程序指令、常数及程序存储器通常存放程序指令、常数及表格等,系统在运行过程中不能修改其表格等,系统在运行过程中不能修改其中的数据中

15、的数据 。说明:说明: 现在使用的单片机基本上都是采用片内现在使用的单片机基本上都是采用片内ROMROM,不需要使用片外,不需要使用片外ROMROM,因此在,因此在MCS-MCS-5151单片机应用系统中,外部引脚中的单片机应用系统中,外部引脚中的/EA/EA、/PSEN/PSEN都没有实际意义了。都没有实际意义了。几个特殊入口地址几个特殊入口地址: : 复位复位 0000 0000H H 外部中断外部中断0 00030 0003H H 定时器定时器/ /计数器计数器0 0溢出溢出 000 000BHBH 外部中断外部中断1 00131 0013H H 定时器定时器/ /计数器计数器0 0溢出

16、溢出 001 001BHBH 串行口中断串行口中断 0023 0023H H (定时器(定时器/ /计数器计数器2 2溢出溢出 002 002BHBH)二、数据存储器二、数据存储器 数据存储器则存放缓冲数据,系统在运数据存储器则存放缓冲数据,系统在运行过程中可修改其中的数据。行过程中可修改其中的数据。 包括包括: : 1 1、编址与访问、编址与访问 2 2、片内数据存储器、片内数据存储器 3 3、特殊功能寄存器块、特殊功能寄存器块1 1、编址与访问、编址与访问2 2、片内数据存储器、片内数据存储器 00H00H1FH1FH 20H20H2FH2FH 30H30H7FH7FH 堆栈:堆栈: 片内

17、片内RAMRAM、初始化时、初始化时SP=07HSP=07H 向上生长的向上生长的 一般程序的开始:一般程序的开始: MOV SP MOV SP,#60H#60H3 3、特殊功能寄存器块、特殊功能寄存器块 特殊功能寄存器又称为特殊功能寄存器又称为专用寄存器专用寄存器 专用于控制、管理片内算术逻辑部件、专用于控制、管理片内算术逻辑部件、并行并行I/OI/O口、串行口、串行I/OI/O口、定时器口、定时器/ /计数计数器、中断系统等功能模块的工作。器、中断系统等功能模块的工作。2.4 2.4 辅助电路及时序辅助电路及时序 包括:时钟电路、复位电路、时序包括:时钟电路、复位电路、时序 一、时钟电路一

18、、时钟电路二、复位电路二、复位电路三、时序三、时序 (1 1)振荡周期)振荡周期 (2 2)状态周期)状态周期 (3 3)机器周期)机器周期 (4 4)指令周期)指令周期 外部晶振的外部晶振的2 2分频是分频是MCS-51MCS-51单片机的内单片机的内部部时钟周期时钟周期,6 6个时钟周期个时钟周期构成了单片构成了单片机的机的1 1个机器周期个机器周期 。第第3 3章章 MCS-51MCS-51单片机指令系单片机指令系统统 3.1 3.1 概述概述3.2 3.2 寻址方式寻址方式3.3 3.3 指令系统指令系统3.4 3.4 伪指令伪指令3.1 3.1 概述概述 一、指令格式一、指令格式 标

19、号标号: : 操作码操作码 操作数操作数1, 1, 操作数操作数2, 2, 操作数操作数3; 3; 注释注释 二、操作数类型二、操作数类型 立即数、寄存器操作数、存储器操作数立即数、寄存器操作数、存储器操作数三、指令描述约定三、指令描述约定 Rn、direct、Ri #data、#data16 addr16、addr11、rel bit、 /bit DPTR、 A、 B、C (X)、(X)3.2 3.2 寻址方式寻址方式 1 1、概述、概述 寻址寻址就是寻找指令中操作数或操作数所就是寻找指令中操作数或操作数所在的地址。在的地址。 所谓所谓寻址方式寻址方式就是如何找到存放操作数就是如何找到存放操

20、作数的地址,把操作数提取出来的方法的地址,把操作数提取出来的方法 。它是计算机的重要性能指标之一,也是它是计算机的重要性能指标之一,也是汇编语言程序设计中最基本的内容之一。汇编语言程序设计中最基本的内容之一。2 2、寻址方式说明、寻址方式说明 立即寻址立即寻址 寄存器器寻址寄存器器寻址 直接寻址直接寻址 寄存器间接寻址寄存器间接寻址 基寄存器加变址寄存器间接寻址基寄存器加变址寄存器间接寻址 相对寻址相对寻址 位寻址位寻址 3.3 3.3 指令系统指令系统 111条指令,42种操作助记符,描述33种操作功能 。 从功能从功能:数据传送(29)、算术运算(24)、逻辑操作(24)、控制转移(17)

21、、位操作(17); 从空间从空间:单字节(49)、双字节(45条)、三字节(17条); 从时间从时间:单机器周期(64条)、双机器周期(45条)、四机器周期(2)一、数据传送类一、数据传送类 共共2929条。条。 按其操作方式,又可把它们分为三种:按其操作方式,又可把它们分为三种:数据传送、数据交换和栈操作。数据传送、数据交换和栈操作。 助记符:助记符:MOVMOV、MOVXMOVX、MOVCMOVC、 XCH XCH、XCHDXCHD、SWAPSWAP、 PUSH PUSH、POPPOP。应用举例:应用举例: 1 1、把片内、把片内RAM6AHRAM6AH单元内容传送到片外单元内容传送到片外

22、RAM300HRAM300H单元。单元。 2 2、把片外、把片外I/OI/O口口2000H2000H数据读入片内数据读入片内RAM40HRAM40H单元。单元。 3 3、把片外、把片外I/OI/O口口2000H2000H数据读入片外数据读入片外RAM4000HRAM4000H单元。单元。 4 4、把外部数据存储器、把外部数据存储器2040H2040H单元内容和单元内容和片外片外RAM2230HRAM2230H单元互换。单元互换。 5 5、已知片内、已知片内RAM50HRAM50H单元中存放数据为单元中存放数据为0AAH0AAH,设堆栈指针为,设堆栈指针为30H30H,把此数据值,把此数据值压入

23、堆栈,然后再弹回到压入堆栈,然后再弹回到40H40H单元中。单元中。二、算术运算类(二、算术运算类(2424条)条) 加、减、乘、除基本四则运算和增量加、减、乘、除基本四则运算和增量(加(加1 1)、减量(减)、减量(减1 1)运算。)运算。 助记符助记符: :ADDADD、ADDCADDC、INCINC、DADA SUBB SUBB、DECDEC、 MUL MUL、DIVDIV 共共8 8种操作助记符。种操作助记符。应用举例:应用举例: 1 1、将片内、将片内RAM40HRAM40H和和41H41H单元内容相加,单元内容相加,结果放结果放42H42H。 2 2、将片外、将片外RAM2000H

24、RAM2000H和和2001H2001H单元两单元两BCDBCD码内容相加,结果放码内容相加,结果放2002H2002H。 3 3、试编写计算、试编写计算1234H+0FE7H1234H+0FE7H的程序,将的程序,将和的高和的高8 8位存入片内位存入片内RAM41HRAM41H,低,低8 8位存入位存入40H40H。 4 4、把上例中的加法运算改为减法,其他要求、把上例中的加法运算改为减法,其他要求相同相同 。 5 5、设被加数存入片内、设被加数存入片内RAM30HRAM30H32H32H单元中,单元中,加数存入片内加数存入片内RAM40HRAM40H42H42H,低位在前,高位,低位在前,

25、高位在后,各单元中均为压缩的在后,各单元中均为压缩的BCDBCD码。将结果之码。将结果之和分别存入和分别存入50H50H52H52H单元中。单元中。 6 6、把、把R1R0R1R0和和R3R2R3R2中的两个中的两个4 4位位BCDBCD码数相加,码数相加,结果送结果送R5R4R5R4中,如有进位存入进位位中,如有进位存入进位位C C中。中。三、逻辑运算类(三、逻辑运算类(2424条)条) 包括清除、求反、移位及与、或、异或包括清除、求反、移位及与、或、异或等操作。等操作。 这类指令有:这类指令有:CLRCLR、CPLCPL、RLRL、RLCRLC、RRRR、RRCRRC、ANLANL、ORL

26、ORL、XRLXRL,共共9 9种操作助记种操作助记符。符。 应用举例:应用举例: 1 1、把累加器、把累加器A A中低中低4 4位(高位(高4 4位清位清0 0)送)送入外部数据存储器的入外部数据存储器的3000H3000H单元。单元。 2 2、将累加器、将累加器A A的低的低4 4位的状态通过位的状态通过P1P1口口的高的高4 4位输出。位输出。 3 3、编程将片内、编程将片内RAM21HRAM21H单元的低单元的低3 3位和位和20H20H单元的低单元的低5 5位合并为一个字节送片内位合并为一个字节送片内RAM30HRAM30H,要求,要求21H21H的低的低3 3位放在高位上。位放在高

27、位上。四、控制转移类(四、控制转移类(1717条)条) 计算机在运行过程中,有时因为操作的需要计算机在运行过程中,有时因为操作的需要或程序较复杂,程序指令往往不能按顺序逐或程序较复杂,程序指令往往不能按顺序逐条执行,需要改变程序运行的方向。控制转条执行,需要改变程序运行的方向。控制转移类指令包括无条件转移、条件转移、调用移类指令包括无条件转移、条件转移、调用和返回指令等。和返回指令等。 指令有:指令有: AJMPAJMP、LJMPLJMP、SJMPSJMP、JMPJMP、JZJZ、JNZJNZ、CJNZCJNZ、DJNZDJNZ、ACALLACALL、LCALLLCALL、RETRET、RET

28、IRETI、NOPNOP 共共1313种操作助记符。种操作助记符。应用举例:应用举例: 1 1、将累加器、将累加器A A的低的低4 4位取反位取反4 4次,高次,高4 4位位不变,每变换一次从不变,每变换一次从P1P1口输出。口输出。 2 2、如果累加器、如果累加器A A中存放待处理命令编号中存放待处理命令编号(0707),程序存储器中存放着标号为),程序存储器中存放着标号为PMTBPMTB的转移表首地址,则执行下面的程的转移表首地址,则执行下面的程序,将根据序,将根据A A中命令编号转向相应的处中命令编号转向相应的处理程序。理程序。五、位操作类(五、位操作类(1717条)条) 以进位标志以进

29、位标志C C作为累加器作为累加器C C 在使用位操作类指令时要和字节操作类指令在使用位操作类指令时要和字节操作类指令区别开来,因为它们的助记符是相同的。这区别开来,因为它们的助记符是相同的。这类指令的助记符有:类指令的助记符有: MOVMOV、CLRCLR、CPLCPL、SETBSETB、ANLANL、ORLORL、JCJC、JNCJNC、JBJB、JNBJNB、JBCJBC 共共1111种操作助记符。种操作助记符。应用举例:应用举例: 1 1、将累加器的、将累加器的ACC.5ACC.5与与00H00H位相与后,位相与后,通过通过P1.4P1.4输出。输出。 2 2、比较片内、比较片内RAM4

30、0HRAM40H、50H50H中两个无符号中两个无符号数的大小,若数的大小,若40H40H中的数小则把片内中的数小则把片内RAMRAM中的位地址中的位地址40H40H置置1 1;若;若50H50H中数小,则中数小,则把片内把片内RAMRAM中的位地址中的位地址50H50H置置1 1;若相等;若相等则把片内则把片内RAMRAM中的位地址中的位地址20H20H置置1 1。3.4 3.4 伪指令伪指令 汇编程序对用汇编语言写的源程序进行汇编程序对用汇编语言写的源程序进行汇编时,还要提供一些汇编用的指令,汇编时,还要提供一些汇编用的指令,例如要指定程序或数据存放的起始地址;例如要指定程序或数据存放的起

31、始地址;要给一些连续存放的数据确定单元等等。要给一些连续存放的数据确定单元等等。但是,这些指令在汇编时并不产生目标但是,这些指令在汇编时并不产生目标代码,不影响程序的执行,所以称为伪代码,不影响程序的执行,所以称为伪指令指令 ORG定位伪指令定位伪指令 DB定义字节伪指令定义字节伪指令 DW定义字伪指令定义字伪指令 EQU赋值伪指令赋值伪指令 END汇编结束伪指令汇编结束伪指令第第4 4章章 MCS-51MCS-51单片机汇编语单片机汇编语言程序设计言程序设计 指令的有序罗列。指令的有序罗列。4.1 4.1 程序设计概述程序设计概述 4.2 4.2 基本程序设计基本程序设计4.3 4.3 基本

32、功能程序设计基本功能程序设计 4.1 4.1 程序设计概述程序设计概述 4.2 4.2 基本程序基本程序设计 1 1、顺序结构程序、顺序结构程序 是一种最简单、最基本的程序,按照程是一种最简单、最基本的程序,按照程序编写的顺序逐条依次执行,直到程序序编写的顺序逐条依次执行,直到程序结束。这是程序的最基本的形式,任何结束。这是程序的最基本的形式,任何程序都离不开这种形式。程序都离不开这种形式。 例例4-14-1: 将片内将片内RAM 20HRAM 20H单元中单元中 的数拆成两段,每段的数拆成两段,每段4 4位,位, 并将其分别存入并将其分别存入21H21H、 22H22H单元中。低单元中。低4

33、 4位存位存 在在21H21H单元,高单元,高4 4位存位存 在在22H22H单元单元 2、分支结构的程序分支结构的程序 分支结构程序是利用条件转移指令,使分支结构程序是利用条件转移指令,使程序执行到某一指令时,根据条件是否程序执行到某一指令时,根据条件是否满足,来改变程序执行的顺序。满足,来改变程序执行的顺序。 编写分支结构的程序主要在于编写分支结构的程序主要在于正确使用正确使用转移指令转移指令。 编写分支结构的程序的关键是编写分支结构的程序的关键是确定好分确定好分支条件支条件。用于分支结构程序中的语句有用于分支结构程序中的语句有: :JZ/JNZJZ/JNZ、CJNECJNE、DJNZDJ

34、NZ、JC/JNCJC/JNC、JB/JNBJB/JNB、JBCJBC例例 编制程序使编制程序使y y按下式赋值按下式赋值: 0, 10, 00, 1xxxy例 设外部存储器单元设外部存储器单元 ST1ST1和和ST2ST2存放两个存放两个 不带符号的二进制不带符号的二进制 数,找出其中的大数,找出其中的大 数存入数存入ST3ST3单元。单元。 3 3、循环结构的程序、循环结构的程序 是强制是强制CPUCPU重复执行某一指令序列的一重复执行某一指令序列的一种程序结构形式。种程序结构形式。 循环结构的程序一般由循环结构的程序一般由5 5部分组成:部分组成: 初始化,循环体、循环修改、循环控制初始

35、化,循环体、循环修改、循环控制和结束部分。和结束部分。 例:例: 1 1、工作单元清、工作单元清0 0。 2 2、多个单字节数据求和。、多个单字节数据求和。 3 3、设在、设在DATDAT开始的片内开始的片内RAMRAM中存放中存放8 8个无个无符号字节数,找出最大值符号字节数,找出最大值, ,并暂存在并暂存在A A中。中。 1010个数,去掉一个最大值、一个最小值,个数,去掉一个最大值、一个最小值,求剩余求剩余8 8个数的平均值。个数的平均值。4.3 4.3 基本功能程序的设计基本功能程序的设计 一、查表程序一、查表程序 二、子程序二、子程序 三、算数立即运算程序三、算数立即运算程序 四、数

36、制转换程序四、数制转换程序一、查表程序的设计一、查表程序的设计 查表法是对一些复杂的函数运算如查表法是对一些复杂的函数运算如sinxsinx等,等,事先把其全部可能范围的函数值按一定的规事先把其全部可能范围的函数值按一定的规律编成表格存放在计算机的程序存储器中。律编成表格存放在计算机的程序存储器中。当用户程序中需要用到这些函数时,直接按当用户程序中需要用到这些函数时,直接按编排好的索引值(或程序号)寻找答案。编排好的索引值(或程序号)寻找答案。 在控制应用场合或智能仪器仪表中,经常使在控制应用场合或智能仪器仪表中,经常使用查表法。用查表法。 这种方法的不足是要占用较多的存储单元。这种方法的不足

37、是要占用较多的存储单元。例:例: 1 1、已知数据、已知数据0 09 9的平方,设变量的平方,设变量x x的值的值在累加器在累加器A A中,查表后求中,查表后求x2x2的值放回累的值放回累加器,试编制程序。加器,试编制程序。 2 2、设计一个将十六进制数转换成、设计一个将十六进制数转换成ASCIIASCII码的子程序。设十六进制数存放在码的子程序。设十六进制数存放在R0R0的的低低4 4位,要求转换后的位,要求转换后的ASCIIASCII码送回码送回R0R0中。中。二、子程序设计二、子程序设计 在实际问题中,常常会遇到在一个程序中有在实际问题中,常常会遇到在一个程序中有许多相同的运算或操作,例

38、如多字节的加、许多相同的运算或操作,例如多字节的加、减、字符处理等。如果每遇到这些运算和操减、字符处理等。如果每遇到这些运算和操作,都从头做起,则使程序非常繁琐且浪费作,都从头做起,则使程序非常繁琐且浪费内存。内存。 因此在实际应用中,通常把这些多次使用的因此在实际应用中,通常把这些多次使用的程序段,按一定结构编好,存放在内存中,程序段,按一定结构编好,存放在内存中,当需要时,程序可以去调用这些独立的程序当需要时,程序可以去调用这些独立的程序段。段。 通常将这种可以被调用的程序段称为子程序。通常将这种可以被调用的程序段称为子程序。 调用子程序的程序称为主程序。调用子程序的程序称为主程序。 使用

39、子程序的过程称为调用子程序;使用子程序的过程称为调用子程序; 子程序执行完毕后返回主程序的过程称子程序执行完毕后返回主程序的过程称为子程序返回。为子程序返回。例:例: 1 1、用程序实现、用程序实现c=a2+b2c=a2+b2。设。设a a、b b均小于均小于1010,a a存在片内存在片内RAM31HRAM31H单元中,单元中,b b存在存在32H32H单元中,把单元中,把c c存入存入33H33H单元中。单元中。 2 2、求两个无符号数据块中的最大值。、求两个无符号数据块中的最大值。数据块的首地址分别为片内数据块的首地址分别为片内RAM60HRAM60H和和70H70H,每个数据块的第,每

40、个数据块的第1 1个字节都存放数个字节都存放数据块的长度,结果存入据块的长度,结果存入5FH5FH单元。单元。 三、算术逻辑运算程序 多字节二进制数加法多字节二进制数加法 多字节压缩多字节压缩BCDBCD码加法码加法 多字节数求补多字节数求补 除以除以2 2的倍数的处理的倍数的处理 双字节无符号数整数相乘双字节无符号数整数相乘四、数制转化程序四、数制转化程序 二进制数转换为十进制数二进制数转换为十进制数 十进制数转换为二进制数十进制数转换为二进制数 二进制数转换为十六进制数的二进制数转换为十六进制数的ASCIIASCII码码 ASCIIASCII字符串转换为十六进制数,两两字符串转换为十六进制

41、数,两两组合成组合成1 1个字节个字节第第5 5章章 MCS-51MCS-51单片机硬件资单片机硬件资源的应用源的应用本章从应用的角度介绍以下内容本章从应用的角度介绍以下内容: :5.1 5.1 P0P3口5.2 5.2 中断系统中断系统 5.3 5.3 定时器定时器/ /计数器计数器 5.4 5.4 串行接口串行接口5.1 5.1 P0P3口 在在MCS-51MCS-51单片机内部包含有四个并单片机内部包含有四个并行的行的I/OI/O口口P0P0口、口、P1P1口、口、P2P2口和口和P3P3口口 一、结构与操作一、结构与操作 二、应用举例二、应用举例一、结构与操作一、结构与操作 1 1、P

42、1P1口口 P1P1口作为通用的口作为通用的I/OI/O口使用,具有口使用,具有输出、输出、读引脚、读锁存器读引脚、读锁存器三种工作方式。三种工作方式。 注意:是读引脚还是读锁存器,其过程注意:是读引脚还是读锁存器,其过程CPUCPU内部会自动处理,读者不必在意。内部会自动处理,读者不必在意。但应注意,当作为读引脚方式使用时,但应注意,当作为读引脚方式使用时,应先对该口写应先对该口写“1 1”。 P1P1口作为一般的口作为一般的I/OI/O口使用时记作口使用时记作P1P17 7P1P10 0。2 2、P3P3口口: P3P3口为多功能口。作为第二功能口使用时是口为多功能口。作为第二功能口使用时

43、是提供一个全双工的串行口、提供一个全双工的串行口、2 2个外部中断源的个外部中断源的中断输入、中断输入、2 2个计数器的计数脉冲输入、两个个计数器的计数脉冲输入、两个对外部对外部RAMRAM及及I/OI/O的读的读/ /写控制信号。写控制信号。 在应用中,在应用中,P3P3口的各位如不设置为第二功能,口的各位如不设置为第二功能,则自动处于第一功能。则自动处于第一功能。 P3P3口作为一般的口作为一般的I/OI/O口使用时记作口使用时记作P3P37 7P3P30 0 3 3、P0P0口:口: POPO口既可以作为通用的口既可以作为通用的I/OI/O口进行数据口进行数据的输入的输入/ /输出,也可

44、以作为单片机系统输出,也可以作为单片机系统的地址的地址/ /数据线使用数据线使用 。 作为一般的作为一般的I/OI/O口使用时记作口使用时记作P0P07 7P0P00 0;作为数据口使用时记作;作为数据口使用时记作D7D7D0D0;作为地址线使用时要增加一个锁存器,作为地址线使用时要增加一个锁存器,锁存器的输出是地址线的低锁存器的输出是地址线的低8 8位,记作位,记作A7A7A0A0。4 4P2P2口口 P2P2口既可以作为通用的口既可以作为通用的I/OI/O口使用也可口使用也可以作为地址总线使用以作为地址总线使用 。 P2P2口作为一般的口作为一般的I/OI/O口使用时记作口使用时记作P2P

45、27 7P2P20 0;作为地址口使用时是地;作为地址口使用时是地址的高址的高8 8位,记作位,记作A15A15A8A8。 二、应用举例二、应用举例 1 1、电路如图电路如图 所示,编程将所示,编程将 开关开关K0K0K3K3的的 状态通过指示状态通过指示 灯灯L0L0L3L3表示表示 出来,开关闭出来,开关闭 合时灯亮。合时灯亮。 2 2、电路如所示。编制一个灯光循环闪电路如所示。编制一个灯光循环闪烁程序,通过烁程序,通过P3P3口连接口连接8 8个发光二极管。个发光二极管。其中一个其中一个 发光二极管闪发光二极管闪 烁烁3 3次后,转移次后,转移 到下一个发光到下一个发光 二极管闪烁二极管

46、闪烁3 3次,次, 如此循环不止。如此循环不止。 3 3、设计一电路,监视某按键设计一电路,监视某按键S S,用发光,用发光二极管二极管LEDLED显示按键状态。如果按键闭显示按键状态。如果按键闭合,则合,则LEDLED亮,亮, 并发出声音报并发出声音报 警信号;如果警信号;如果 按键按键S S断开,断开, 则则LEDLED熄灭,熄灭, 无声音报警信号。无声音报警信号。5.2 5.2 中断系统中断系统 一、中断系统结构与控制一、中断系统结构与控制 二、中断优先级结构与中断响应二、中断优先级结构与中断响应 三、中断请求的撤除三、中断请求的撤除 四、中断系统应用举例四、中断系统应用举例 一、中断系

47、统结构与控制一、中断系统结构与控制1 1、中断源、中断源 外部中断:外部中断:外部中断外部中断0 0 /INT0/INT0 外部中断外部中断1 1 /INT1/INT1 定时器定时器/ /计数器溢出中断:计数器溢出中断: 定时器定时器/ /计数器计数器0 0 TF0TF0 定时器定时器/ /计数器计数器1 1 TF1 TF1 串行口中断:串行口中断:串行口串行口 RIRI、TITI2 2、中断控制、中断控制 设置了设置了4 4个专用寄存器用于中断控制,个专用寄存器用于中断控制,用户通过设置其状态来管理中断系统。用户通过设置其状态来管理中断系统。 (1 1)定时器控制寄存器()定时器控制寄存器(

48、TCONTCON)(2 2)串行口控制寄存器(串行口控制寄存器(SCONSCON) (3 3)中断允许控制寄存器(中断允许控制寄存器(IEIE)(4 4)中断优先级控制寄存器(中断优先级控制寄存器(IPIP)二、中断优先级结构与中断响应二、中断优先级结构与中断响应 1 1、中断优先级结构、中断优先级结构 优先级排列如下优先级排列如下( (从高到低从高到低):): 外部中断外部中断0 0 定时器定时器/ /计数器计数器0 0溢出溢出 外部中断外部中断1 1 定时器定时器/ /计数器计数器1 1溢出溢出 串行口中断串行口中断 中断服务程序入口地址:中断服务程序入口地址: 外部中断外部中断0 000

49、3H0 0003H 定时器定时器/ /计数器计数器0 0溢出溢出 000BH000BH 外部中断外部中断1 0013H1 0013H 定时器定时器/ /计数器计数器1 1溢出溢出 001BH001BH 串行口串行口 0023H0023H2 2、中断响应、中断响应 中断服务程序入口地址:中断服务程序入口地址: 0003H0003H 000BH000BH 0013H0013H 001BH001BH 0023H0023H三、中断请求的撤除三、中断请求的撤除5 5个中断源,实际上只分属于三种中断类个中断源,实际上只分属于三种中断类型。这三种类型是:型。这三种类型是:外部中断、定时器外部中断、定时器/

50、/计数器溢出中断和串计数器溢出中断和串行口中断行口中断。对于这三种中断类型的中断请求,其撤除对于这三种中断类型的中断请求,其撤除方法是不同的。方法是不同的。1 1、定时器溢出中断请求的撤除、定时器溢出中断请求的撤除 TF0TF0和和TF1TF1是定时器是定时器/ /计数器溢出中断标计数器溢出中断标志位,它们因定时器志位,它们因定时器/ /计数器溢出中断计数器溢出中断请求的输入而置位,因定时器请求的输入而置位,因定时器/ /计数器计数器溢出中断得到响应而自动复位成溢出中断得到响应而自动复位成0 0状态。状态。因此因此定时器定时器/ /计数器溢出中断源的中断计数器溢出中断源的中断请求是自动撤除的,

51、用户根本不必专门请求是自动撤除的,用户根本不必专门为它们撤除。为它们撤除。2 2、串行口中断请求的撤除、串行口中断请求的撤除 TITI和和RIRI是串行口中断的标志位,中断系是串行口中断的标志位,中断系统不能自动将它们撤除。为了防止统不能自动将它们撤除。为了防止CPUCPU再次响应这类中断,用户应在中断服务再次响应这类中断,用户应在中断服务程序的适当位置处程序的适当位置处通过指令将它们撤除:通过指令将它们撤除: CLRCLRTITI;撤除发送中断;撤除发送中断 CLRCLRRIRI;撤除接收中断;撤除接收中断3 3、外部中断的撤除、外部中断的撤除 外部中断请求有两种触发方式:电平触外部中断请求

52、有两种触发方式:电平触发和脉冲触发。对于这两种不同的中断发和脉冲触发。对于这两种不同的中断触发方式,触发方式,MCS-51MCS-51单片机撤除它们的中单片机撤除它们的中断请求的方法是不相同的。断请求的方法是不相同的。 (1 1)脉冲触发:)脉冲触发: 自动复位自动复位(2 2)电平触发:)电平触发:四、中断系统的应用举例四、中断系统的应用举例 对中断系统的使用,实际是对对中断系统的使用,实际是对4 4个与中断有关个与中断有关的寄存器的寄存器IEIE、TCONTCON、SCONSCON、IPIP进行控制与管进行控制与管理。在中断程序的编制中应注意:理。在中断程序的编制中应注意: IEIE寄存器

53、:寄存器:开中断总开关开中断总开关EAEA,置位各中断,置位各中断源的中断允许位。源的中断允许位。 对于外部中断应通过对于外部中断应通过TCONTCON寄存器的寄存器的ITIT位位选选择中断触发方式择中断触发方式- -电平或脉冲。电平或脉冲。 如果有多个中断源,要通过如果有多个中断源,要通过IPIP寄存器寄存器指定指定其中断优先级。其中断优先级。例例1 1:外部中断:外部中断 在本实例中,首先在本实例中,首先 通过通过P1.7P1.7口点亮发口点亮发 光二极管,然后外光二极管,然后外 部输入一脉冲串,部输入一脉冲串, 则发光二极管亮、则发光二极管亮、 暗交替。暗交替。 电路如图所示。电路如图所

54、示。 例例 利用定时器利用定时器/ /计数器扩展外计数器扩展外部中断部中断 (放在下一节讲)(放在下一节讲)。例例 利用外部中断和查询相结利用外部中断和查询相结合的方法扩展外部中断合的方法扩展外部中断例例 利用优先编码器扩展外部中断利用优先编码器扩展外部中断5 53 3 MCS-51MCS-51的定时器的定时器/ /计数器计数器 一、结构一、结构 二、控制寄存器二、控制寄存器 三、工作方式三、工作方式 四、应用举例四、应用举例一、结构一、结构 计数功能计数功能是指对外部事件进行计数是指对外部事件进行计数: :计计数信号来自数信号来自T0T0、T1T1引脚。引脚。 定时功能定时功能也是通过计数器

55、的计数功能来也是通过计数器的计数功能来完成的,不过此时的计数脉冲来自单片完成的,不过此时的计数脉冲来自单片机内部:机器周期。机内部:机器周期。二、控制寄存器二、控制寄存器 与定时器与定时器/ /计数器应用有关的控制寄存计数器应用有关的控制寄存器有三个,分别为器有三个,分别为TCONTCON、TMODTMOD、IEIE。 (1 1)定时控制寄存器()定时控制寄存器(TCONTCON)(2 2)工作方式控制寄存器()工作方式控制寄存器(TMODTMOD) (3 3)中断允许控制寄存器()中断允许控制寄存器(IEIE)三、工作方式三、工作方式 1 1方式方式0 0 定时和计数范围:定时和计数范围:

56、计数器的计数值范围是:计数器的计数值范围是:1 181928192(2 21313) 当为计数器工作方式时:当为计数器工作方式时: 计数器的初值范围为:计数器的初值范围为:0 02 21313-1-1; 定时时间的计算公式为:定时时间的计算公式为: 定时时间定时时间= =(2 21313- -计数初值)计数初值)定时周期定时周期 若晶振频率为若晶振频率为6MHz6MHz,其定时周期,其定时周期2s2s: 则最短定时时间为:则最短定时时间为: Tmin=2Tmin=21313-(2-(21313-1) -1) 2s =2(s)2s =2(s) 最长定时时间为:最长定时时间为: Tmax=(2Tm

57、ax=(21313-0) -0) 2s =16384(s)2s =16384(s)2 2方式方式1 1:定时与计数范围:定时与计数范围: 计数器的计数值范围是:计数器的计数值范围是:1 16553665536(2 21616)。)。 当为计数器工作方式时:当为计数器工作方式时: 计数器的初值范围为:计数器的初值范围为: 0 02 21616-1-1; 当为定时工作方式时:当为定时工作方式时:定时时间定时时间= =(2 21616- -计数初值)计数初值)定时周期定时周期 若晶振频率为若晶振频率为12MHz12MHz,其定时周期,其定时周期1s1s: 则最短定时时间为:则最短定时时间为: Tmi

58、n=2Tmin=21616-(2-(21616-1) -1) 1s =1(s)1s =1(s) 最长定时时间为:最长定时时间为: Tmax=(2Tmax=(21616-0) -0) 1s =65536(s)1s =65536(s)3 3方式方式2 2:计数与定时范围:计数与定时范围: 计数器的计数值范围是:计数器的计数值范围是:1 1256256(2 28 8) 当为计数器工作方式时:当为计数器工作方式时: 计数器的初值范围为:计数器的初值范围为:0 02 28 8-1-1; 当为定时工作方式时:当为定时工作方式时:定时时间定时时间= =(2 28 8- -计数初值)计数初值)定时周期定时周期

59、 若晶振频率为若晶振频率为12MHz12MHz,其定时周期,其定时周期1s1s: 则最短定时时间为:则最短定时时间为: Tmin=Tmin=28-28-(2(28 8-1) -1) 2s =2(s)2s =2(s) 最长定时时间为:最长定时时间为: Tmax=(2Tmax=(28 8-0) -0) 2s =512(s)2s =512(s)4 4方式方式3 3:四、应用举例四、应用举例 使用时应重点考虑下面的问题:使用时应重点考虑下面的问题:结构、有关结构、有关的寄存器、的寄存器、 工作方式工作方式(重点是方式(重点是方式1 1、方式、方式2 2)、)、 初始化初始化(工作方式、计数初值、中断(

60、工作方式、计数初值、中断管理、启动定时器管理、启动定时器/ /计数器)计数器) 计数初值的计算:计数初值的计算: 方式方式1 1: 1616位计数器的最大计数值为位计数器的最大计数值为2 21616=65536=65536; 方式方式2 2: 8 8位计数器的最大计数值为位计数器的最大计数值为2 28 8=256=256。 例例1 1 设系统时钟频率为设系统时钟频率为12MHz12MHz,用定时,用定时器器/ /计数器计数器T0T0编程实现从编程实现从P1.0P1.0输出周期输出周期为为500s500s的方波。的方波。 (中断、查询)(中断、查询) (10ms 10ms 可以采用方式可以采用方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论