单片机原理及应用教案.doc

上传人:创****公 文档编号:77781873 上传时间:2023-03-16 格式:DOC 页数:55 大小:1.87MB
返回 下载 相关 举报
单片机原理及应用教案.doc_第1页
第1页 / 共55页
单片机原理及应用教案.doc_第2页
第2页 / 共55页
点击查看更多>>
资源描述

《单片机原理及应用教案.doc》由会员分享,可在线阅读,更多相关《单片机原理及应用教案.doc(55页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、单 片 机 原 理 及 应 用教案第一章 绪论第一节 单片机单片机即单片机微型计算机,是将计算机主机(CPU、内存和 I/O 接口)集成在一小块硅片上的微型机。第二节 单片机的历史与现状第一阶段(19761978 年):低性能单片机的探索阶段。以 Intel 公司的 MCS-48 为代表,采用了单片结构,即在一块芯片内含有 8 位 CPU、定时/计数器、并行 I/O 口、RAM和 ROM 等。主要用于工业领域。第二阶段(19781982 年):高性能单片机阶段,这一类单片机带有串行 I/O 口,8位数据线、16 位地址线可以寻址的范围达到 64K 字节、控制总线、较丰富的指令系统等。这类单片机

2、的应用范围较广,并在不断的改进和发展。第三阶段(19821990 年):16 位单片机阶段。16 位单片机除 CPU 为 16 位外,片内RAM 和 ROM 容量进一步增大,实时处理能力更强,体现了微控制器的特征。例如 Intel公司的 MCS-96 主振频率为 12M,片内 RAM 为 232 字节,ROM 为 8K 字节,中断处理能力为 8 级,片内带有 10 位 A/D 转换器和高速输入/输出部件等。第四阶段(1990 年):微控制器的全面发展阶段,各公司的产品在尽量兼容的同时,向高速、强运算能力、寻址范围大以及小型廉价方面发展。第三节 单片机的应用领域一、单片机在仪器仪表中的应用二、单

3、片机在机电一体化中的应用三、单片机在智能接口和多机系统中的应用四、单片机在生活中的应用第二章 硬件结构第一节 MCS-51 单片机及其演变特点(1)一个 8 位微处理器 CPU。(2)数据存储器 RAM 和特殊功能寄存器 SFR。(3)内部程序存储器 ROM。(4)两个定时/计数器,用以对外部事件进行计数,也可用作定时器。(5)四个 8 位可编程的 I/O(输入/输出)并行端口,每个端口既可做输入,也可做输出。(6)一个串行端口,用于数据的串行通信。(7)中断控制系统。(8)内部时钟电路。第二节 80C51 单片机的基本结构1)中央处理器(CPU)中央处理器是单片机的核心,完成运算和控制功能。

4、MCS-51 的 CPU 能处理 8 位二进制数或代码。CPU时钟电路P0P3P2P1TXDRXDINT0INT1并行接口串行接口中断系统定时/计数器RAMROMT0T12)内部数据存储器(内部 RAM)8051 芯片中共有 256 个 RAM 单元,但其中后 128 单元被专用寄存器占用,能作为寄存器供用户使用的只是前 128 单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前 128 单元,简称内部 RAM。3)内部程序存储器(内部 ROM)8051 共有 4 KB 掩膜 ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部 ROM。4)定时/计数器8051

5、 共有两个 16 位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。5)并行 I/O 口MCS-51 共有 4 个 8 位的 I/O 口(P0、P1、P2、P3),以实现数据的并行输入/输出。在实训中我们已经使用了 P1 口,通过 P1 口连接 8 个发光二极管。第三节 80C51 单片机的引脚功能MCS-51 是标准的 40 引脚双列直插式集成电路芯片,引脚排列请参见图P0.0 P0.7:P0 口 8 位双向口线。P1.0 P1.7:P1 口 8 位双向口线。P2.0 P2.7:P2 口 8 位双向口线。P3.0 P3.7:P3 口 8 位双向口线。ALE:地址锁

6、存控制信号。在系统扩展时,ALE 用于控制把 P0 口输出的低 8 位地址锁存起来,以实现低位地址和数据的隔离。此外,由于 ALE 是以晶振 1/6 的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。PSEN:外部程序存储器读选通信号。在读外部 ROM时,PSEN 有效(低电平),以实现外部 ROM 单元的读操作。EA:访问程序存储控制信号。当信号为低电平时,对ROM 的读操作限定在外部程序存储器;当信号为高电平时,对 ROM 的读操作是从内部程序存储器开始,并可延至外部程序存储器。RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始

7、化操作。P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78RST/VPD9RXD P3.010TXD P3.111INT0 P3.212INT1 P3.313T0 P3.414T1 P3.515WR P3.616RD P3.717XTAL218XTAL119VSS20P2.021P2.122P2.223P2.324P2.425P2.526P2.627P2.728PSEN29ALE/PROG30EA/VPP31P0.732P0.633P0.534P0.435P0.336P0.237P0.138P0.039VCC408031 8051 8751XTAL1 和 XTAL

8、2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。VSS:地线。VCC:+5 V 电源。以上是 MCS-51 单片机芯片 40 条引脚的定义及简单功能说明,读者可以对照实训电路找到相应引脚,在电路中查看每个引脚的连接使用。P3 口线的第二功能。P3 的 8 条口线都定义有第二功能第四节 存储器结构MCS-51 单片机的芯片内部有 RAM 和 ROM 两类存储器,即所谓的内部 RAM 和内部 ROMMCS-51 内部程序存储器MCS-51 的程序存储器用于存放编好的程序和表格常数。8051 片内有 4 KB 的 ROM,87

9、51片内有4 KB的EPROM,8031片内无程序存储器。MCS-51的片外最多能扩展64 KB程序存储器,片内外的 ROM 是统一编址的。如端保持高电平,8051 的程序计数器 PC 在0000H0FFFH 地址范围内(即前 4 KB 地址)是执行片内 ROM 中的程序,当 PC 在1000HFFFFH 地址范围时,自动执行片外程序存储器中的程序;当保持低电平时,只能寻址外部程序存储器,片外存储器可以从 0000H 开始编址。MCS-51 的程序存储器中有些单元具有特殊功能,使用时应予以注意。其中一组特殊单元是 0000H0002H。系统复位后,(PC)=0000H,单片机从 0000H单元

10、开始取指令执行程序。如果程序不从 0000H 单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。还有一组特殊单元是 0003H002AH,共 40 个单元。这 40 个单元被均匀地分为 5段,作为 5 个中断源的中断地址区。其中:0003H000AH外部中断 0 中断地址区000BH0012H定时/计数器 0 中断地址区0013H001AH外部中断 1 中断地址区001BH0022H定时/计数器 1 中断地址区0023H002AH串行中断地址区中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,8 个单元

11、难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。MCS-51 内部数据存储器内部数据存储器低 128 单元8051 的内部 RAM 共有 256 个单元,通常把这 256 个单元按其功能划分为两部分:低 128 单元(单元地址 00H7FH)和高 128 单元(单元地址 80HFFH)。如图所示为低 128 单元的配置图。寄存器区8051 共有 4 组寄存器,每组 8 个寄存单元(各为 8),各组都以 R0R7 作寄存单元编号。寄存器常用于存放操作数中间结果等。由于它们的功能及使用不作预

12、先规定,因此称之为通用寄存器,有时也叫工作寄存器。4 组通用寄存器占据内部 RAM 的 00H1FH单元地址。在任一时刻,CPU 只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器 PSW 中 RS1、RS0 位的状态组合来决定。通用寄存器为 CPU 提供了就近存储数据的便利,有利于提高单片机的运算速度。此外,使用通用寄存器还能提高程序编制的灵活性,因此,在单片机的应用编程中应充分利用这些寄存器,以简化程序设计,提高程序运行速度。位寻址区特殊功能寄存器通用RAM区位寻址区00H1FH20H2FH30H7FH80HFFH80H88H90H98

13、HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外 部RAM(I/O口地址)0000HFFFFH内部数据存储器(a)外部数据存储器(b)程序存储器(c)工作寄存器区内部 RAM 的 20H2FH 单元,既可作为一般 RAM 单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有 16 个 RAM单元,计 128 位,地址为 00H7FH。MCS-51 具有布尔处理机功能,这个位寻址区可以构成布尔处理机的存储空间。这种位寻址能

14、力是 MCS-51 的一个重要特点。用户 RAM 区在内部 RAM 低 128 单元中,通用寄存器占去 32 个单元,位寻址区占去 16 个单元,剩下 80 个单元,这就是供用户使用的一般 RAM 区,其单元地址为 30H7FH。对用户RAM 区的使用没有任何规定或限制,但在一般应用中常把堆栈开辟在此区中。内部数据存储器高 128 单元内部 RAM 的高 128 单元是供给专用寄存器使用的,其单元地址为 80HFFH。因这些寄存器的功能已作专门规定,故称之为专用寄存器(Special Function Register),也可称为特殊功能寄存器。第五节 特殊功能存储器 SFR8051 共有 2

15、1 个专用寄存器,现把其中部分寄存器简单介绍如下:程序计数器(PCProgram Counter)。在实训中,我们已经知道 PC 是一个 16 位的计数器,它的作用是控制程序的执行顺序。其内容为将要执行指令的地址,寻址范围达 64 KB。PC 有自动加 1 功能,从而实现程序的顺序执行。PC 没有地址,是不可寻址的,因此用户无法对它进行读写,但可以通过转移、调用、返回等指令改变其内容,以实现程序的转移。因地址不在 SFR(专用寄存器)之内,一般不计作专用寄存器。累加器(ACCAccumulator)。累加器为 8 位寄存器,是最常用的专用寄存器,功能较多,地位重要。它既可用于存放操作数,也可用

16、来存放运算的中间结果。MCS-51 单片机中大部分单操作数指令的操作数就取自累加器,许多双操作数指令中的一个操作数也取自累加器。B 寄存器。B 寄存器是一个 8 位寄存器,主要用于乘除运算。乘法运算时,B 存乘数。乘法操作后,乘积的高 8 位存于 B 中,除法运算时,B 存除数。除法操作后,余数存于 B中。此外,B 寄存器也可作为一般数据寄存器使用。程序状态字(PSWProgram Status Word)。程序状态字是一个 8 位寄存器,用于存放程序运行中的各种状态信息。其中有些位的状态是根据程序执行结果,由硬件自动设置的,而有些位的状态则使用软件方法设定。PSW 的位状态可以用专门指令进行

17、测试,也可以用指令读出。一些条件转移指令将根据 PSW 有些位的状态,进行程序转移。PSW 的各位定义如下:PSW 位 地址D7HD6HD5HD4HD3HD2HD1HD0H字节地址CYACF0RS1RS0OVF1P除 PSW.1 位保留未用外,其余各位的定义及使用如下:CY(PSW.7)进位标志位。CY 是 PSW 中最常用的标志位。其功能有二:一是存放算术运算的进位标志,在进行加或减运算时,如果操作结果的最高位有进位或借位时,CY 由硬件置“1”,否则清“0”;二是在位操作中,作累加位使用。位传送、位与位或等位操作,操作位之一固定是进位标志位。AC(PSW.6)辅助进位标志位。在进行加减运算

18、中,当低 4 位向高 4 位进位或借位时,AC 由硬件置“1”,否则 AC 位被清“0”。在 BCD 码调整中也要用到 AC 位状态。F0(PSW.5)用户标志位。这是一个供用户定义的标志位,需要利用软件方法置位或复位,用以控制程序的转向。RS1 和 RS0(PSW.4,PSW.3)寄存器组选择位。它们被用于选择 CPU 当前使用的通用寄存器组。通用寄存器共有 4 组,其对应关系如下:00:0 组01:1 组10:2 组11:3 组这两个选择位的状态是由软件设置的,被选中的寄存器组即为当前通用寄存器组。但当单片机上电或复位后,RS1 RS0=00。OV(PSW.2)溢出标志位。在带符号数加减运

19、算中,OV=1 表示加减运算超出了累加器 A 所能表示的符号数有效范围(-128 +127),即产生了溢出,因此运算结果是错误的,否则,OV=0 表示运算正确,即无溢出产生。P(PSW.0)奇偶标志位。表明累加器 A 中内容的奇偶性。如果 A 中有奇数个“1”,则 P 置“1”,否则置“0”。凡是改变累加器 A 中内容的指令均会影响 P 标志位。此标志位对串行通信中的数据传输有重要的意义。在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。数据指针(DPTR)。数据指针为 16 位寄存器。编程时,DPTR 既可以按 16 位寄存器使用,也可以按两个 8 位寄存器分开使用,即:DPHDPTR

20、 高位字节,DPLDPTR 低位字节。DPTR 通常在访问外部数据存储器时作地址指针使用。由于外部数据存储器的寻址范围为 64 KB,故把 DPTR 设计为 16 位。堆栈指针(SPStack Pointer)。堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。由于 MCS-51 单片机的堆栈设在内部 RAM 中,因此 SP 是一个 8 位寄存器。系统复位后,SP 的内容为 07H,从而复位后堆栈实际上是从 08H 单元开始的。但 08H1FH 单元分别属于工作寄存器 13 区,如程序要用到这些区,最好把 SP 值改为 1FH 或更大

21、的值。对专用寄存器的字节寻址问题作如下几点说明:(1)21 个可字节寻址的专用寄存器是不连续地分散在内部 RAM 高 128 单元之中,尽管还余有许多空闲地址,但用户并不能使用。(2)程序计数器 PC 不占据 RAM 单元,它在物理上是独立的,因此是不可寻址的寄存器。(3)对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。第六节 输入输出端口单片机芯片内还有一项主要内容就是并行 I/O 口。MCS-51 共有 4 个 8 位的并行 I/O口,分别记作 P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具

22、有字节寻址和位寻址功能。在访问片外扩展存储器时,低 8 位地址和数据由 P0 口分时传送,高 8 位地址由 P2口传送。在无片外扩展存储器的系统中,这 4 个口的每一位均可作为双向的 I/O 端口使用。第七节 时钟电路在 MCS-51 芯片内部有一个高增益反相放大器,其输入端为芯片引脚 XTAL1,其输出端为引脚 XTAL2。而在芯片的外部,XTAL1 和 XTAL2 之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。VCC锁存器P1.XDCPQQP1.X引脚读锁存器写锁存器内部总线读引脚内部上拉电阻XTAL2XTAL1MCS-51C1C2CYSXTAL2XT

23、AL1MCS-51+5VVSSTTL外部时钟源1振荡周期:为单片机提供时钟信号的振荡源的周期。2时钟周期:是振荡源信号经二分频后形成的时钟脉冲信号。3机器周期:通常将完成一个基本操作所需的时间称为机器周期。4指令周期:是指 CPU 执行一条指令所需要的时间。一个指令周期通常含有 14 个机器周期。P1P2S1P2振荡周期时钟周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2第八节 复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状

24、态开始工作,例如复位后MCS-51VCCVCCRESETVSS22 F1 kMCS-51VCCVCCRESETVSS22 FRESETR1R2(a)(b)200 PC=0000H,使单片机从第一个单元取指令。实训中已经看出,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚 MCS-51 型单片机复位的条件、复位电路和复位后状态。第三章 MCS-51 指令系统第一节 指令格式采用助记符表示的汇编语言指令格式如下:标号是程序员根据编程需要给指令设定的符号地址,可有可无;标号由 18 个字符组成,第一个字符必须是英文字,不能是数字或其它符号;标号后必须用冒号。操作

25、码表示指令的操作种类,如 MOV 表示数据传送操作,ADD 表示加法操作等。操作数或操作数地址表示参加运算的数据或数据的有效地址。操作数一般有以下几种形式:没有操作数项,操作数隐含在操作码中,如 RET 指令;只有一个操作数,如 CPLA指令;有两个操作数,如 MOVA,#00H 指令,操作数之间以逗号相隔;有三个操作数,如 CJNEA,#00H,NEXT 指令,操作数之间也以逗号相隔。注释是对指令的解释说明,用以提高程序的可读性;注释前必须加分号。第二节 寻址方式寻找操作数地址的方式称为寻址方式。1.寄存器寻址寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器 R0R7、累加器 A、

26、通用寄存器 B、地址寄存器 DPTR 等。例如,指令 MOVR1,A 的操作是把累加器 A 中的数据传送到寄存器 R1 中,其操作数存放在累加器 A 中,所以寻址方式为寄存器寻址。如果程序状态寄存器 PSW 的 RS1RS0=01(选中第二组工作寄存器,对应地址为08H0FH),设累加器 A 的内容为 20H,则执行 MOVR1,A 指令后,内部 RAM 09H单元的值就变为 20H。2.直接寻址直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在 MCS-51 单片机中,可以直接寻址的存储器主要有内部 RAM 区和特殊功能寄存器 SFR 区。标号:操作码操作数或操作数地址;注释例如,指

27、令 MOVA,3AH 执行的操作是将内部 RAM 中地址为 3AH 的单元内容传送到累加器 A 中,其操作数 3AH 就是存放数据的单元地址,因此该指令是直接寻址。3.立即数寻址立即数寻址是指将操作数直接写在指令中。例如,指令 MOV A,#3AH 执行的操作是将立即数 3AH 送到累加器 A 中,该指令就是立即数寻址。4.寄存器间接寻址寄存器间接寻址是指将存放操作数的内存单元的地址放在寄存器中,指令中只给出该寄存器。执行指令时,首先根据寄存器的内容,找到所需要的操作数地址,再由该地址找到操作数并完成相应操作。在 MCS-51 指令系统中,用于寄存器间接寻址的寄存器有 R0、R1 和 DPTR

28、,称为寄存器间接寻址寄存器。设 R0=3AH,内部 RAM 3AH 中的值是 65H,则指令 MOVA,R0 的执行结果是累加器 A 的值为 65H。5.变址寻址变址寻址是指将基址寄存器与变址寄存器的内容相加,结果作为操作数的地址。DPTR 或 PC 是基址寄存器,累加器 A 是变址寄存器。该类寻址方式主要用于查表操作。例如,指令MOVC A,A+DPTR执行的操作是将累加器A和基址寄存器DPTR的内容相加,相加结果作为操作数存放的地址,再将操作数取出来送到累加器 A 中。设累加器 A=02H,DPTR=0300H,外部 ROM 中,0302H 单元的内容是 55H,则指令 MOVC A,A+

29、DPTR 的执行结果是累加器 A 的内容为 55H。6.相对寻址相对寻址是指程序计数器 PC 的当前内容与指令中的操作数相加,其结果作为跳转指令的转移地址(也称目的地址)。该类寻址方式主要用于跳转指令。例如,指令 SJMP 54H 执行的操作是将 PC 当前的内容与 54H 相加,结果再送回PC 中,成为下一条将要执行指令的地址。设指令 SJMP 54H 的机器码 80H 54H 存放在 2000H 处,当执行到该指令时,先从 2000H 和 2001H 单元取出指令,PC 自动变为 2002H;再把 PC 的内容与操作数 54H相加,形成目标地址 2056H,再送回 PC,使得程序跳转到 2

30、056H 单元继续执行。7.位寻址位寻址是指按位进行的寻址操作,而上述介绍的指令都是按字节进行的寻址操作。MCS-51 单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当我们把某一位作为操作数时,这个操作数的地址称为位地址。位寻址区包括专门安排在内部 RAM 中的两个区域:一是内部 RAM 的位寻址区,地址范围是 20H2FH,共 16 个 RAM 单元,位地址为 00H7FH;二是特殊功能寄存器 SFR 中有 11 个寄存器可以位寻址,参见有关章节中位地址定义。第三节 数据操作和指令类型MCS-51 单片机指令系统包括 111 条指令,按功能可以划分为以下 5 类数据传送指

31、令(29 条)算术运算指令(24 条)逻辑运算指令(24 条)控制转移指令(17 条)位操作指令(17 条)第四节 数据传送指令数据传送指令是 MCS-51 单片机汇编语言程序设计中使用最频繁的指令,包括内部 RAM、寄存器、外部 RAM 以及程序存储器之间的数据传送。数据传送操作是指把数据从源地址传送到目的地址,源地址内容不变。1.以累加器 A 为目的操作数的指令MOVA,data;A dataMOVA,Rn;n=07,A(Rn)MOVA,Ri;i=0,1,A(Ri)MOVA,direct;A(Rn)direct 为内部 RAM 或 SFR 地址2.以 Rn 为目的操作数的指令MOVRn,A

32、;Rn (A),n=07MOVRn,direct;Rn (direct)MOVRn,data;Rn data3.以直接地址为目的操作数的指令MOVdirect,A;direct(A)MOVdirect,Rn;direct(Rn),n=07MOVdirect,Ri;direct(Ri),i=0,1MOVdirect,direct;direct(direct)MOVdirect,#data;direct data4.以寄存器间接地址为目的操作数指令MOVRi,A;(Ri)(A),i=0,1MOVRi,direct;(Ri)(direct)MOVRi,data;(Ri)data字节交换指令XCHA,

33、Rn;(A)(Ri)XCHA,direct;(A)(direct)XCHA,Ri;(A)(Ri)半字节交换指令XCHDA,Ri;(A)0-3 (Ri)0-3累加器 A 与外部数据传输指令MOVXA,DPTR;A(DPTR)地址范围 64KMOVXA,Ri;A(Ri)地址范围 0255MOVXDPTR,A;(DPTR)(A)MOVXRi,A;(Ri)(A)查表指令1)MOVCA,A+DPTR;A(A)+(DPTR)2)MOVCA,A+PC;A(A)+(pc)第五节 算术运算指令加法指令(Addtion)ADDA,Rn;A(A)+(Rn)ADDA,Ri;A(A)+((Ri))ADDA,direct

34、;A(A)+(direct)ADDA,data;A(A)+#data带进位加法指令ADDCA,Rn;A(A)+(Rn)+(Cy)ADDCA,Ri;A(A)+(Ri)+(Cy)ADDCA,direct;A(A)+(direct)+(Cy)ADDCA,data;A(A)+#data+(Cy)加 1 指令INCA;A(A)+1INCRi;Ri(A)+1INCdirect;direct(direct)+1INCRi;(Ri)(Ri)+1INCDPTR;DPTR(DPTR)+1十进制调整指令DAA带借位减法指令(Subtraction)SUBBA,Rn;A(A)-(Rn)-(Cy)SUBBA,Ri;A(

35、A)-(Ri)-(Cy)SUBBA,direct;A(A)-(direct)-(Cy)SUBBA,data;A(A)-#data-(Cy)减 1 指令(Decrease)DECA;A(A)1DECRi;Ri(A)1DECdirect;direct(direct)1DECRi;(Ri)(Ri)1乘法指令(Multiplication)MULAB除法指令(Division)DIVAB第六节 逻辑运算指令简单逻辑操作指令CLRA;A“0”CPLA;A ASWAPA;A03A47左循环指令(RotateAccumulatorLeft)RLA带进位左循环指令(RotateAccumulator Left

36、throughCarryflag)RLCA右循环指令(RotateAccumulatorRight)RRA带进位右循环指令(RotateARightwithC)RRCA逻辑与指令ANLA,RnANLA,directANLA,dataANLA,RiANLdirect,AANLdirect,data逻辑或指令ORLA,RnORLA,directORLA,dataORLA,RiORLdirect,AORLdirect,data逻辑异或指令XRLA,RnXRLA,directXRLA,dataXRLA,RiXRLdirect,AXRLdirect,data第七节 位操作指令数据位传送指令MOVC,bi

37、t;bit可直接寻址位 C(bit)MOVbit,C;C进位位(bit)C位变量修改指令CLRC;将 C0CLRbitCPLC;将 C 求反再存入 CCPLbit;将 bit 求反再存入 bitSETBC;将 C1SETBbit;(bit)1位变量逻辑指令ANLC,bitANLC,bitORLC,bitORLC,bit第八章 控制转移指令跳转指令短跳指令AJMPaddr11PCaddr11,跳转范围 2k长跳指令LJMPaddr16PCaddr16,跳转范围 64k间接跳转指令JMPA+DPTRPC(A)(DPTR)相对转移指令SJMPrel条件转移指令JZrel;(A)0,转移JNZrel;

38、(A)0,转移JCrel;如 C=1,转移JNCrel;如 C=0,转移JBbit,rel;如 bit=1,转移JNBbit,rel;如 bit=0,转移JBCbit,rel;如 bit=1,转移并 bit0比较不相等转移指令CJNE A,#data,rel;(A)=#data,继续 C0(A)#data,转 C0(A)#data,转 C1特点:只有时,C1CJNEA,direct,relCJNERn,#data,relCJNERi,#data,rel减 1 不为 0 转移指令DJNZRn,rel;DJNZdirect,rel例:延时子程序delay:MOVR7,#03Hdelay0:MOVR

39、6,#19Hdelay1:DJNZR6,delay1DJNZR7,delay0RET调用子程序指令短调用指令ACALLaddr11长调用指令LCALLaddr16子程序返回指令RET中断返回指令RETI空操作指令NOP第四章 定时器/计数器第一节 概述第二节 结构和工作原理实质是计数器,脉冲每一次下降沿,计数寄存器数值将加 1。计数的脉冲如果来源于单片机内部的晶振,由于其周期极为准确,这时称为定时器。计数的脉冲如果来源于单片机外部的引脚,由于其周期一般不准确,这时称为计数器。定时/计数器方式寄存器 TMOD(1)M1 和 M0:方式选择位。(2)c/T:功能选择位。时,设置为定时器工作方式;时

40、,设置为计数器工作方式。(3)GATE:门控位。当 GATE=0 时,软件控制位 TR0 或 TR1 置 1 即可启动定时器;当GATE=1 时,软件控制位 TR0 或 TR1 须置 1,同时还须(P3.2)或(P3.3)为高电平方可启动定时器,即允许外中断、启动定时器。定时器/计数器控制寄存器 TCON(1)TCON.7TF1:定时器 1 溢出标志位。当定时器 1 计满数产生溢出时,由硬件自动置TF1=1。在中断允许时,向 CPU 发出定时器 1 的中断请求,进入中断服务程序后,由硬件自动清 0。在中断屏蔽时,TF1 可作查询测试用,此时只能由软件清 0。(2)TCON.6TR1:定时器 1

41、 运行控制位。由软件置 1 或清 0 来启动或关闭定时器 1。当GATE=1,且为高电平时,TR1 置 1 启动定时器 1;当 GATE=0 时,TR1 置 1 即可启动定时器 1。(3)TCON.5TF0:定时器 0 溢出标志位。其功能及操作情况同 TF1。(4)TCON.4TR0:定时器 0 运行控制位。其功能及操作情况同 TR1。(5)TCON.3IE1:外部中断 1()请求标志位。(6)TCON.2IT1:外部中断 1 触发方式选择位。(7)TCON.1IE0:外部中断 0()请求标志位。(8)TCON.0IT0:外部中断 0 触发方式选择位。第三节定时/计数器的工作方式1方式 0方式

42、 0 构成一个 13 位定时/计数器。图是定时器 0 在方式 0 时的逻辑电路结构,定时器 1的结构和操作与定时器 0 完全相同。振荡器12C/T0C/T1控制T0TR0GATE&11INT0中断TL05位TH08位TF02方式 1定时器工作于方式 1 时。由图可知,方式 1 构成一个 16 位定时/计数器,其结构与操作几乎完全与方式 0 相同,惟一差别是二者计数位数不同。3方式 2定时/计数器工作于方式 2 时,。由图可知,方式 2 中,16 位加法计数器的 TH0 和 TL0 具有不同功能,其中,TL0 是 8位计数器,TH0 是重置初值的 8 位缓冲器。4方式 3定时/计数器工作于方式

43、3 时,其逻辑结构图如图所示。第四节 编程和使用1计数器初值的计算把计数器计满为零所需要的计数值设定为 C,计数初值设定为 TC,由此可得到公式:TC=M-C 式中,M 为计数器模值,该值和计数器工作方式有关。在方式 0 时 M 为 213;在方式 1 时 M 为 216;在方式 2 和方式 3 时 M 为 28。2定时器初值的计算在定时器模式下,计数器由单片机主脉冲经 12 分频后计数。因此,定时器定时时间 T 的公式:T=(M-TC)T 计数,上式也可写成:TC=M-T/T 计数。式中,M 为模值,和定时器的工作方式有关;T 计数是单片机振荡周期 TCLK 的 12 倍;TC 为定时器的定

44、时初值。第五章 串行通讯基础振荡器12控制T0TR0GATE&11INT0中断TF0TL0(8位)121fosc中断TF1TH0(8位)TR1C/T0C/T1121fosc121fosc第一节 串行通信基础在计算机系统中,CPU 和外部通信有两种通信方式:并行通信和串行通信。并行通信,即数据的各位同时传送;串行通信,即数据一位一位顺序传送。串行通信的分类按照串行数据的时钟控制方式,串行通信可分为同步通信和异步通信两类。1.异步通信(Asynchronous Communication)在异步通信中,数据通常是以字符为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,每一帧数据均是低位在前,高

45、位在后,通过传输线被接收端一帧一帧地接收。发送端和接收端可以由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。在异步通信中,接收端是依靠字符帧格式来判断发送端是何时开始发送,何时结束发送的。字符帧格式是异步通信的一个重要指标。字符帧(Character Frame)字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等 4 部分组成,波特率(baud rate)异步通信的另一个重要指标为波特率。波特率为每秒钟传送二进制数码的位数,也叫比特数,单位为 b/s,即位/秒。波特率用于表征数据传输的速度,波特率越高,数据传输速度越快。但波特率和字符的实际传输速率不同,字符的实际传

46、输速率是每秒内所传字符帧的帧数,和字符帧格式有关。2.同步通信(Synchronous Communication)同步通信是一种连续串行传送数据的通信方式,一次通信只传输一帧信息。这里的信息帧和异步通信的字符帧不同,通常有若干个数据字符,如图 8.4 所示。图 8.4(a)为单同步字符帧结构,图 8.4(b)为双同步字符帧结构,但它们均由同步字符、数据字符和校验字符 CRC 三部分组成。在同步通信中,同步字符可以采用统一的标准格式,也可以由用户约定。第二节 串行通讯口的工作方式1.数据缓冲器 SBUF发送 SBUF 和接收 SBUF 共用一个地址 99H。1)发送 SBUF 存放待发送的 8

47、 位数据,写入 SBUF 将同时启动发送。发送指令:MOV SBUF,A2)接收 SBUF 存放已接收成功的 8 位数据,供 CPU 读取。读取串行口接收数据指令:MOVA,SBUF2.串行口控制/状态寄存器 SCON(98H)SM0,SM1:选择串行口 4 种工作方式。SM2:多机控制位,用于多机通讯。REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。TB8 发送的第 9 位数据位,可用作校验位和地址/数据标识位RB8:接收的第 9 位数据位或停止位TI:发送中断标志,发送一帧结束,TI=1,必须软件清零RI:接收中断标志,接收一帧结束,RI=1,必须软件清零3.节电控制寄

48、存器 PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍,SMOD=0,则不加倍。串行接口的工作方式SM0,SM1 选择四种工作方式。(1)方式 0:同步移位寄存器方式。用于扩展并行 I/O 接口。1.一帧 8 位,无起始位和停止位。2.RXD:数据输入/输出端。TXD:同步脉冲输出端,每个脉冲对应一个数据位。3.波特率 B=fosc/12如:fosc=12MHz,B=1MHz,每位数据占 1s。4.发送过程:写入 SBUF,启动发送,一帧发送结束,TI=1。接收过程:REN=1 且 RI=0,启动接收,一帧接收完毕,RI=1。(2)方式 1:8 位数据异步通讯方式。

49、1.一帧 10 位:8 位数据位,1 个起始位(0),1 个停止位(1)。2.RXD:接收数据端。TXD:发送数据端。3.波特率:用 T1 作为波特率发生器,B=(2SMOD/32)T1 溢出率。4.发送:写入 SBUF,同时启动发送,一帧发送结束,TI=1。接收:REN=1,允许接收。接收完一帧,若 RI=0 且停止位为 1(或 SM2=0),将接收数据装入 SBUF,停止位装入 RB8,并使 RI=1;否则丢弃接收数据,不置位 RI。(3)方式 2 和方式 3:9 位数据异步通讯方式。1.一帧为 11 位:9 位数据位,1 个起始位(0),1 个停止位(1)。第9位 数 据 位 在TB8/

50、RB8 中,常用作校验位和多机通讯标识位。2.RXD:接收数据端,TXD:发送数据端。3.波特率:方式 2:B=(2SMOD/64)fosc。方式 3:B=(2SMOD/32)T1 溢出率。4.发送:先装入 TB8,写入 SBUF 并启动发送,发送结束,TI=1。接收:REN=1,允许接收。接收完一帧,若 RI=0 且第 9 位为 1(或 SM2=0),将接收数据装入接收 SBUF,第9 位装入 RB8,使 RI=1;否则丢弃接收数据,不置位 RI。第三节 波特率的设置方法方式 0 为固定波特率:B=fosc/12方式 2 可选两种波特率:B=(2SMOD/64)fosc方式 1、3 为可变波

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁