单片机原理教案(推荐)

上传人:dfg****19 文档编号:180463807 上传时间:2023-01-06 格式:DOC 页数:54 大小:1.86MB
收藏 版权申诉 举报 下载
单片机原理教案(推荐)_第1页
第1页 / 共54页
单片机原理教案(推荐)_第2页
第2页 / 共54页
单片机原理教案(推荐)_第3页
第3页 / 共54页
资源描述:

《单片机原理教案(推荐)》由会员分享,可在线阅读,更多相关《单片机原理教案(推荐)(54页珍藏版)》请在装配图网上搜索。

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

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

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

4、存器占用,能作为寄存器供用户使用的只是前128单元,用于存放可读写的数据。因此通常所说的内部数据存储器就是指前128单元,简称内部RAM。3) 内部程序存储器(内部ROM)8051共有4 KB掩膜ROM,用于存放程序、原始数据或表格,因此,称之为程序存储器,简称内部ROM。4) 定时/计数器8051共有两个16位的定时/计数器,以实现定时或计数功能,并以其定时或计数结果对计算机进行控制。5) 并行I/O口MCS-51共有4个8位的I/O口(P0、P1、P2、P3),以实现数据的并行输入/输出。在实训中我们已经使用了P1口,通过P1口连接8个发光二极管。第三节 80C51单片机的引脚功能 MCS

5、-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:地址锁存控制信号。在系统扩展时,ALE用于控制把P0口输出的低8位地址锁存起来,以实现低位地址和数据的隔离。此外,由于ALE是以晶振1/6的固定频率输出的正脉冲,因此,可作为外部时钟或外部定时脉冲使用。 PSEN:外部程序存储器读选通信号。在读外部ROM时,PSEN有效(低电平),以实现外部ROM单元的读操作。 EA:访问程序存储控制信号。当信号为低电平时,

6、对ROM的读操作限定在外部程序存储器;当信号为高电平时,对ROM的读操作是从内部程序存储器开始,并可延至外部程序存储器。 RST:复位信号。当输入的复位信号延续两个机器周期以上的高电平时即为有效,用以完成单片机的复位初始化操作。 XTAL1和XTAL2:外接晶体引线端。当使用芯片内部时钟时,此二引线端用于外接石英晶体和微调电容;当使用外部时钟时,用于接外部时钟脉冲信号。 VSS:地线。 VCC:+5 V电源。 以上是MCS-51单片机芯片40条引脚的定义及简单功能说明,读者可以对照实训电路找到相应引脚,在电路中查看每个引脚的连接使用。 P3口线的第二功能。P3的8条口线都定义有第二功能第四节

7、存储器结构MCS-51单片机的芯片内部有RAM和ROM两类存储器,即所谓的内部RAM和内部ROMMCS-51内部程序存储器MCS-51的程序存储器用于存放编好的程序和表格常数。8051片内有4 KB的ROM,8751片内有4 KB的EPROM,8031片内无程序存储器。 MCS-51的片外最多能扩展64 KB程序存储器,片内外的ROM是统一编址的。如端保持高电平,8051的程序计数器PC在0000H0FFFH地址范围内 (即前4 KB地址) 是执行片内ROM中的程序,当PC在1000HFFFFH地址范围时,自动执行片外程序存储器中的程序;当保持低电平时,只能寻址外部程序存储器,片外存储器可以从

8、0000H开始编址。MCS-51的程序存储器中有些单元具有特殊功能,使用时应予以注意。 其中一组特殊单元是0000H0002H。系统复位后,(PC)=0000H,单片机从0000H单元开始取指令执行程序。如果程序不从0000H单元开始,应在这三个单元中存放一条无条件转移指令,以便直接转去执行指定的程序。 还有一组特殊单元是0003H002AH,共40个单元。这40个单元被均匀地分为5段,作为5个中断源的中断地址区。其中:0003H000AH 外部中断0中断地址区000BH0012H 定时/计数器0中断地址区0013H001AH 外部中断1中断地址区001BH0022H 定时/计数器1中断地址区

9、0023H002AH 串行中断地址区中断响应后,按中断种类,自动转到各中断区的首地址去执行程序,因此在中断地址区中理应存放中断服务程序。但通常情况下,8个单元难以存下一个完整的中断服务程序,因此通常也是从中断地址区首地址开始存放一条无条件转移指令,以便中断响应后,通过中断地址区,再转到中断服务程序的实际入口地址。MCS-51内部数据存储器内部数据存储器低128单元 8051的内部RAM共有256个单元,通常把这256个单元按其功能划分为两部分:低128单元(单元地址00H7FH)和高128单元(单元地址80HFFH)。如图所示为低128单元的配置图。 寄存器区 8051共有4组寄存器,每组8个

10、寄存单元(各为8),各组都以R0R7作寄存单元编号。寄存器常用于存放操作数中间结果等。由于它们的功能及使用不作预先规定,因此称之为通用寄存器,有时也叫工作寄存器。4组通用寄存器占据内部RAM的00H1FH单元地址。 在任一时刻,CPU只能使用其中的一组寄存器,并且把正在使用的那组寄存器称之为当前寄存器组。到底是哪一组,由程序状态字寄存器PSW中RS1、RS0位的状态组合来决定。 通用寄存器为CPU提供了就近存储数据的便利,有利于提高单片机的运算速度。此外,使用通用寄存器还能提高程序编制的灵活性,因此,在单片机的应用编程中应充分特殊功能寄存器通用RAM区位寻址区00H1FH20H2FH30H7F

11、H80HFFH80H88H90H98HA0HA8HB0HB8HD0HE0HF0H特殊功能寄存器中位寻址外部ROM内部ROM(EA=1)外部ROM(EA=0)0000H0000H0FFFH0FFFH1000HFFFFH外 部RAM(I/O口地址)0000HFFFFH内部数据存储器(a)外部数据存储器(b)程序存储器(c)工作寄存器区利用这些寄存器,以简化程序设计,提高程序运行速度。 位寻址区 内部RAM的20H2FH单元,既可作为一般RAM单元使用,进行字节操作,也可以对单元中每一位进行位操作,因此把该区称之为位寻址区。位寻址区共有16个RAM单元,计128位,地址为00H7FH。MCS-51具

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

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

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

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

16、”,否则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)溢出标志位。在带符号数加减运算中,OV=1表示加减运算超出了累加器A所能表示的符号数有效范围(-128 +127)

17、,即产生了溢出,因此运算结果是错误的,否则,OV=0表示运算正确,即无溢出产生。P(PSW.0)奇偶标志位。表明累加器A中内容的奇偶性。如果A中有奇数个“1”,则P置“1”,否则置“0”。凡是改变累加器A中内容的指令均会影响P标志位。此标志位对串行通信中的数据传输有重要的意义。在串行通信中常采用奇偶校验的办法来校验数据传输的可靠性。数据指针(DPTR)。数据指针为16位寄存器。编程时,DPTR既可以按16位寄存器使用,也可以按两个8位寄存器分开使用,即:DPH DPTR高位字节,DPL DPTR低位字节。DPTR通常在访问外部数据存储器时作地址指针使用。由于外部数据存储器的寻址范围为64 KB

18、,故把DPTR设计为16位。堆栈指针(SPStack Pointer)。堆栈是一个特殊的存储区,用来暂存数据和地址,它是按“先进后出”的原则存取数据的。堆栈共有两种操作:进栈和出栈。由于MCS-51单片机的堆栈设在内部RAM中,因此SP是一个8位寄存器。系统复位后,SP的内容为07H,从而复位后堆栈实际上是从08H单元开始的。但08H1FH单元分别属于工作寄存器13区,如程序要用到这些区,最好把SP值改为1FH或更大的值。对专用寄存器的字节寻址问题作如下几点说明: (1)21个可字节寻址的专用寄存器是不连续地分散在内部RAM高128单元之中,尽管还余有许多空闲地址,但用户并不能使用。 (2)

19、程序计数器PC不占据RAM单元,它在物理上是独立的,因此是不可寻址的寄存器。 (3) 对专用寄存器只能使用直接寻址方式,书写时既可使用寄存器符号,也可使用寄存器。第六节 输入输出端口单片机芯片内还有一项主要内容就是并行I/O口。MCS-51共有4个8位的并行I/O口,分别记作P0、P1、P2、P3。每个口都包含一个锁存器、一个输出驱动器和输入缓冲器。实际上,它们已被归入专用寄存器之列,并且具有字节寻址和位寻址功能。 在访问片外扩展存储器时,低8位地址和数据由P0口分时传送,高8位地址由P2口传送。在无片外扩展存储器的系统中,这4个口的每一位均可作为双向的I/O端口使用。第七节 时钟电路在MCS

20、-51芯片内部有一个高增益反相放大器,其输入端为芯片引脚XTAL1,其输出端为引脚XTAL2 。而在芯片的外部,XTAL1和XTAL2之间跨接晶体振荡器和微调电容,从而构成一个稳定的自激振荡器,这就是单片机的时钟电路。XTAL2XTAL1MCS-51C1C2CYSXTAL2XTAL1MCS-51+5VVSSTTL外部时钟源1振荡周期:为单片机提供时钟信号的振荡源的周期。2时钟周期:是振荡源信号经二分频后形成的时钟脉冲信号。 3机器周期:通常将完成一个基本操作所需的时间称为机器周期。4指令周期:是指CPU执行一条指令所需要的时间。一个指令周期通常含有14个机器周期。 P1P2S1P2振荡周期时钟

21、周期机器周期机器周期指令周期XTAL2(OSC)S2S3S4S5S6S1S2S4S5S3S6P1P1P1P1P1P1P1P1P1P1P1P2P2P2P2P2P2P2P2P2P2P2第八节 复位电路单片机复位是使CPU和系统中的其他功能部件都处在一个确定的初始状态,并从这个状态开始工作,例如复位后PC=0000H,使单片机从第一个单元取指令。实训中已经看出,无论是在单片机刚开始接上电源时,还是断电后或者发生故障后都要复位,所以我们必须弄清楚MCS-51型单片机复位的条件、复位电路和复位后状态。 第三章 MCS-51指令系统第一节 指令格式采用助记符表示的汇编语言指令格式如下:标号是程序员根据编程

22、需要给指令设定的符号地址,可有可无;标号由18个字符组成,第一个字符必须是英文字,不能是数字或其它符号;标号后必须用冒号。 操作码表示指令的操作种类,如MOV表示数据传送操作,ADD表示加法操作等。操作数或操作数地址表示参加运算的数据或数据的有效地址。操作数一般有以下几种形式:没有操作数项,操作数隐含在操作码中,如RET指令;只有一个操作数,如CPL A指令;有两个操作数,如MOV A,#00H指令,操作数之间以逗号相隔;有三个操作数,如CJNE A,#00H,NEXT指令,操作数之间也以逗号相隔。注释是对指令的解释说明,用以提高程序的可读性;注释前必须加分号。 第二节 寻址方式寻找操作数地址

23、的方式称为寻址方式。1. 寄存器寻址 寄存器寻址是指将操作数存放于寄存器中,寄存器包括工作寄存器R0R7、累加器A、通用寄存器B、地址寄存器DPTR等。例如,指令MOV R1,A的操作是把累加器A中的数据传送到寄存器R1中,其操作数存放在累加器A中,所以寻址方式为寄存器寻址。如果程序状态寄存器PSW的RS1RS0=01(选中第二组工作寄存器,对应地址为08H0FH),设累加器A的内容为20H,则执行MOV R1,A指令后,内部RAM 09H单元的值就变为20H。2. 直接寻址 直接寻址是指把存放操作数的内存单元的地址直接写在指令中。在MCS-51单片机中,可以直接寻址的存储器主要有内部RAM区

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

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

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

27、令都是按字节进行的寻址操作。MCS-51单片机中,操作数不仅可以按字节为单位进行操作,也可以按位进行操作。当我们把某一位作为操作数时,这个操作数的地址称为位地址。位寻址区包括专门安排在内部RAM中的两个区域:一是内部RAM的位寻址区,地址范围是20H2FH,共16个RAM单元,位地址为00H7FH;二是特殊功能寄存器SFR中有11个寄存器可以位寻址,参见有关章节中位地址定义。 第三节 数据操作和指令类型MCS-51单片机指令系统包括111条指令,按功能可以划分为以下5类数据传送指令(29条)算术运算指令(24条)逻辑运算指令(24条)控制转移指令(17条)位操作指令(17条)第四节 数据传送指

28、令数据传送指令是MCS-51单片机汇编语言程序设计中使用最频繁的指令,包括内部 RAM、寄存器、外部RAM以及程序存储器之间的数据传送。 数据传送操作是指把数据从源地址传送到目的地址,源地址内容不变。 1. 以累加器A为目的操作数的指令MOV A, data ; A data MOV A, Rn ; n=07, A (Rn) MOV A, Ri ; i=0,1 , A (Ri) MOV A, direct ; A (Rn) direct为内部RAM或SFR地址2. 以Rn为目的操作数的指令MOV Rn, A ;Rn (A) , n=07MOV Rn , direct ;Rn (direct)

29、MOV Rn ,data ;Rn data 3.以直接地址为目的操作数的指令 MOV direct, A ;direct (A) MOV direct, Rn ; direct (Rn) , n=07MOV direct, Ri ; direct ( Ri ) ) , i=0,1MOV direct, direct ;direct (direct) MOV direct, #data ;direct data 4. 以寄存器间接地址为目的操作数指令MOV Ri, A ; (Ri) ) (A) ,i=0,1MOV Ri , direct ; (Ri) ) (direct) MOV Ri ,dat

30、a ; (Ri) ) data字节交换指令XCH A , Rn ; (A) (Ri)XCH A , direct ; (A) (direct)XCH A , Ri ; (A) (Ri)半字节交换指令XCHD A, Ri ;(A)0-3 (Ri ) 0-3累加器A与外部数据传输指令MOVX A, DPTR ; A (DPTR) 地址范围64KMOVX A, Ri ; A (Ri) 地址范围0255MOVX DPTR, A ; (DPTR) (A)MOVX Ri , A ; (Ri) (A)查表指令1)MOVC A, A+DPTR ; A (A)+(DPTR)2)MOVC A, A+PC ; A

31、(A)+(pc)第五节 算术运算指令加法指令(Addtion)ADD A, Rn ; A(A)+(Rn)ADD A, Ri ;A(A)+((Ri))ADD A, direct ;A(A)+(direct)ADD A, data ;A(A)+#data带进位加法指令ADDC A, Rn ; A(A)+(Rn)+(Cy)ADDC A, Ri ;A(A)+(Ri ) +(Cy)ADDC A, direct ;A(A)+(direct) +(Cy)ADDC A, data ;A(A)+#data +(Cy)加1指令INC A ;A(A)+1INC Ri ;Ri(A)+1INC direct ;dire

32、ct(direct)+1INC Ri ;(Ri)(Ri)+1INC DPTR ;DPTR(DPTR)+1十进制调整指令DA A带借位减法指令(Subtraction)SUBB A, Rn ; A(A)-(Rn)-(Cy)SUBB A, Ri ;A(A)-(Ri) ) -(Cy)SUBB A, direct ;A(A)-(direct) -(Cy)SUBB A, data ;A(A)-#data -(Cy)减1指令(Decrease)DEC A ;A(A)1DEC Ri ;Ri(A)1DEC direct ;direct(direct)1DEC Ri ;(Ri)(Ri)1乘法指令(Multipl

33、ication)MUL AB 除法指令(Division)DIV AB 第六节 逻辑运算指令简单逻辑操作指令CLR A ; A “0”CPL A ; A ASWAP A ; A03 A47左循环指令 (Rotate Accumulator Left)RL A带进位左循环指令(Rotate Accumulator Left through Carry flag) RLC A右循环指令(Rotate Accumulator Right)RR A带进位右循环指令(Rotate A Right with C)RRC A逻辑与指令ANL A, Rn ANL A, direct ANL A, dataAN

34、L A, RiANL direct, AANL direct, data逻辑或指令ORL A, Rn ORL A, direct ORL A, dataORL A, RiORL direct, AORL direct, data逻辑异或指令XRL A, Rn XRL A, direct XRL A, dataXRL A, RiXRL direct, AXRL direct, data第七节 位操作指令数据位传送指令MOV C, bit ;bit 可直接寻址位 C(bit)MOV bit,C ;C 进位位 (bit) C 位变量修改指令CLR C ; 将C0CLR bitCPL C ; 将C求反

35、再存入CCPL bit ; 将bit求反再存入bitSETB C ; 将C1SETB bit ; (bit) 1 位变量逻辑指令ANL C, bit ANL C, bit ORL C, bit ORL C, bit第八章 控制转移指令跳转指令短跳指令 AJMP addr11 PCaddr11,跳转范围2k长跳指令 LJMP addr16 PCaddr16,跳转范围64k间接跳转指令 JMP A+DPTR PC(A)(DPTR)相对转移指令 SJMP rel 条件转移指令JZ rel ;(A)0,转移JNZ rel ;(A)0,转移JC rel ;如 C=1, 转移JNC rel ;如 C=0,

36、 转移JB bit,rel ;如 bit=1, 转移JNB bit,rel ;如 bit=0, 转移JBC bit,rel ;如 bit=1, 转移并 bit0比较不相等转移指令CJNE A,#data,rel;(A)=#data,继续C0 (A)#data,转C0 (A)#data,转C1 特点:只有时, C1CJNE A,direct,relCJNE Rn,#data,relCJNE Ri,#data,rel减 1 不为 0 转移指令DJNZ Rn,rel ; DJNZ direct,rel例:延时子程序 delay: MOV R7, #03H delay0: MOV R6, #19H d

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

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

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

40、电路结构,定时器1的结构和操作与定时器0完全相同。2方式1定时器工作于方式1时。由图可知,方式1构成一个16位定时/计数器,其结构与操作几乎完全与方式0相同,惟一差别是二者计数位数不同。3方式2 定时/计数器工作于方式2时,。由图可知,方式2中,16位加法计数器的TH0和TL0具有不同功能,其中,TL0是8位计数器,TH0是重置初值的8位缓冲器。4方式3定时/计数器工作于方式3时,其逻辑结构图如图所示。第四节 编程和使用1计数器初值的计算把计数器计满为零所需要的计数值设定为C,计数初值设定为TC,由此可得到公式:TC=M-C式中,M为计数器模值,该值和计数器工作方式有关。在方式0时M为213;

41、在方式1时M为216;在方式2和方式3时M为28。2定时器初值的计算在定时器模式下,计数器由单片机主脉冲经12分频后计数。因此,定时器定时时间T的公式:T=(M-TC)T计数,上式也可写成:TC=M-T/ T计数。式中,M为模值,和定时器的工作方式有关;T计数是单片机振荡周期TCLK的12倍;TC为定时器的定时初值。 第五章 串行通讯基础第一节 串行通信基础在计算机系统中,CPU和外部通信有两种通信方式:并行通信和串行通信。并行通信,即数据的各位同时传送;串行通信,即数据一位一位顺序传送。串行通信的分类按照串行数据的时钟控制方式,串行通信可分为同步通信和异步通信两类。1. 异步通信(Async

42、hronous Communication) 在异步通信中,数据通常是以字符为单位组成字符帧传送的。字符帧由发送端一帧一帧地发送,每一帧数据均是低位在前,高位在后,通过传输线被接收端一帧一帧地接收。发送端和接收端可以由各自独立的时钟来控制数据的发送和接收,这两个时钟彼此独立,互不同步。 在异步通信中,接收端是依靠字符帧格式来判断发送端是何时开始发送,何时结束发送的。字符帧格式是异步通信的一个重要指标。字符帧(Character Frame)字符帧也叫数据帧,由起始位、数据位、奇偶校验位和停止位等4部分组成,波特率(baud rate)异步通信的另一个重要指标为波特率。 波特率为每秒钟传送二进制

43、数码的位数,也叫比特数,单位为b/s,即位/秒。波特率用于表征数据传输的速度,波特率越高,数据传输速度越快。但波特率和字符的实际传输速率不同,字符的实际传输速率是每秒内所传字符帧的帧数,和字符帧格式有关。2. 同步通信(Synchronous Communication) 同步通信是一种连续串行传送数据的通信方式,一次通信只传输一帧信息。这里的信息帧和异步通信的字符帧不同,通常有若干个数据字符,如图8.4所示。图8.4(a)为单同步字符帧结构,图8.4(b)为双同步字符帧结构,但它们均由同步字符、数据字符和校验字符CRC三部分组成。在同步通信中,同步字符可以采用统一的标准格式,也可以由用户约定

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

45、结束,TI=1,必须软件清零RI:接收中断标志,接收一帧结束,RI=1,必须软件清零3.节电控制寄存器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,每位数据占1ms。4.发送过程:写入SBUF,启动发送,一帧发送结束,TI=1。接收过程:REN=1

46、且RI=0,启动接收,一帧接收完毕,RI=1。(2) 方式1:8位数据异步通讯方式。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个停止

47、位(1)。第9位数据位在TB8/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为可变波

48、特率,用T1作波特率发生器。B=(2SMOD/32)T1溢出率T1为方式2的时间常数: X = 28 - t/T溢出时间: t= (28 -X)T = (28 -X)12/ foscT1溢出率=1/t= fosc /12(2n -X) 波特率B=(2SMOD /32)fosc/12(28-X)串行口方式1、3,根据波特率选择T1工作方式,计算时间常数。T1选方式2: TH1=X= 28-fosc/122SMOD/(32B)T1选方式1用于低波特率,需考虑T1重装时间常数时间。第六章 中断系统第一节 概述中断是通过硬件来改变CPU的运行方向的。计算机在执行程序的过程中,当出现CPU以外的某种情况

49、时,由服务对象向CPU发出中断请求信号,要求CPU暂时中断当前程序的执行而转去执行相应的处理程序,待处理程序执行完毕后,再继续执行原来被中断的程序。这种程序在执行过程中由于外界的原因而被中间打断的情况称为“中断”。与中断有关的寄存器有4个,分别为中断源寄存器TCON和SCON、中断允许控制寄存器IE和中断优先级控制寄存器IP;中断源有5个,分别为外部中断0请求 、外部中断1请求、定时器0溢出中断请求TF0、定时器1溢出中断请求TF1和串行中断请求RI或TI。5个中断源的排列顺序由中断优先级控制寄存器IP和顺序查询逻辑电路共同决定,5个中断源分别对应5个固定的中断入口地址。 第二节 中断源与中断

50、申请标志中断源(1)外部中断0请求,由P3.2脚输入。通过IT0脚(TCON.0)来决定是低电平有效还是下跳变有效。一旦输入信号有效,就向CPU申请中断,并建立IE0标志。(2)外部中断1请求,由P3.3脚输入。通过IT1脚TCON.2)来决定是低电平有效还是下跳变有效。一旦输入信号有效,就向CPU申请中断,并建立IE1标志。 (3)TF0:定时器T0溢出中断请求。当定时器0产生溢出时,定时器0中断请求标志位(TCON.5)置位(由硬件自动执行),请求中断处理。(4)TF1:定时器1溢出中断请求。当定时器1产生溢出时,定时器1中断请求标志位(TCON.7)置位(由硬件自动执行),请求中断处理。

51、(5) RI或TI:串行中断请求。当接收或发送完一串行帧时,内部串行口中断请求标志位RI(SCON.0)或TI(SCON.1)置位(由硬件自动执行),请求中断。 中断标志TCON寄存器中的中断标志TCON为定时器0和定时器1的控制寄存器,同时也锁存定时器0和定时器1的溢出中断标志及外部中断和的中断标志等。与中断有关位如下:(1) TCON.7 TF1:定时器1的溢出中断标志。T1被启动计数后,从初值做加1计数,计满溢出后由硬件置位TF1,同时向CPU发出中断请求,此标志一直保持到CPU响应中断后才由硬件自动清0。也可由软件查询该标志,并由软件清0。(2) TCON.5 TF0:定时器0溢出中断

52、标志。其操作功能与TF1相同。(3) TCON.3 IE1:中断标志。IE1 = 1,外部中断1向CPU申请中断。(4) TCON.2 IT1:中断触发方式控制位。当IT1 = 0时,外部中断1控制为电平触发方式。(5) TCON.1 IE0:中断标志。其操作功能与IE1相同。(6) TCON.0 IT0:中断触发方式控制位。其操作功能与IT1相同。SCON寄存器中的中断标志SCON是串行口控制寄存器,其低两位TI和RI锁存串行口的发送中断标志和接收中断标志。(1) SCON.1 TI:串行发送中断标志。CPU将数据写入发送缓冲器SBUF时,就启动发送,每发送完一个串行帧,硬件将使TI置位。但

53、CPU响应中断时并不清除TI,必须由软件清除。第三节 中断控制IE寄存器中断的开放和禁止标志(1) IE.7 EA:总中断允许控制位。EA = 1,开放所有中断,各中断源的允许和禁止可通过相应的中断允许位单独加以控制;EA = 0,禁止所有中断。(2) IE.4 ES:串行口中断允许位。ES = 1,允许串行口中断;ES = 0,禁止串行口中断。(3) IE.3 ET1:定时器1中断允许位。ET1 = 1,允许定时器1中断;ET1 = 0,禁止定时器1中断。(4) IE.2 EX1:外部中断1()中断允许位。EX1 = 1,允许外部中断1中断;EX1 = 0,禁止外部中断1中断。(5) IE.

54、1 ET0:定时器0中断允许位。ET0 = 1,允许定时器0中断;ET0 = 0,禁止定时器0中断。(6) IE.0 EX0: 外部中断0()中断允许位。EX0 = 1,允许外部中断0中断;EX0 = 0,禁止外部中断0中断。 8051单片机系统复位后,IE中各中断允许位均被清0,即禁止所有中断。IP寄存器中断优先级标志8051单片机有两个中断优先级,每个中断源都可以通过编程确定为高优先级中断或低 (1)IP.4 PS:串行口中断优先控制位。PS = 1,设定串行口为高优先级中断;PS = 0,设定串行口为低优先级中断。(2)IP.3 PT1:定时器T1中断优先控制位。PT1 = 1,设定定时

55、器T1中断为高优先级中断;PT1 = 0,设定定时器T1中断为低优先级中断。(3)IP.2 PX1:外部中断1中断优先控制位。PX1 = 1,设定外部中断1为高优先级中断;PX1 = 0,设定外部中断1为低优先级中断。 (4)IP.1 PT0:定时器T0中断优先控制位。PT0 = 1,设定定时器T0中断为高优先级中断;PT0 = 0,设定定时器T0中断为低优先级中断。(5)IP.0 PX0:外部中断0中断优先控制位。PX0 = 1,设定外部中断0为高优先级中断;PX0 = 0,设定外部中断0为低优先级中断。当系统复位后,IP低5位全部清0,所有中断源均设定为低优先级中断。如果几个同一优先级的中

56、断源同时向CPU申请中断,CPU 通过内部硬件查询逻辑,按自然优先级顺序确定先响应哪个中断请求。自然优先级由硬件形成,排列如下:中断源 同级自然优先级外部中断0 最高级定时器T0中断外部中断1定时器T1中断串行口中断 最低级第四节 中断响应中断处理过程可分为中断响应、中断处理和中断返回三个阶段。中断响应 中断响应是CPU对中断源中断请求的响应,包括保护断点和将程序转向中断服务程序的入口地址(通常称矢量地址)。中断响应过程 中断响应过程包括保护断点和将程序转向中断服务程序的入口地址。首先,中断系统通过硬件自动生成长调用指令(LACLL),该指令将自动把断点地址压入堆栈保护(不保护累加器A、状态寄存器

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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