(单片机-汪文)4.输入-输出、中断、定时与串行通信_第1页
(单片机-汪文)4.输入-输出、中断、定时与串行通信_第2页
(单片机-汪文)4.输入-输出、中断、定时与串行通信_第3页
(单片机-汪文)4.输入-输出、中断、定时与串行通信_第4页
(单片机-汪文)4.输入-输出、中断、定时与串行通信_第5页
已阅读5页,还剩160页未读 继续免费阅读

下载本文档

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

文档简介

第4章输入/输出、中断、定时与串行通信主要内容:介绍I/O的基本概念、I/O数据传递方式,中断的基本概念,串行通信基本概念。主要介绍单片机中断系统结构、特点及使用方法;片内定时器/计数器结构、原理及使用;片内串行口结构、原理以及双机和多机通信实现方法;PC机与单片机通信实现方法。1精选2021版课件4.1输入/输出概述

4.1.1输入/输出的基本概念

输入/输出设备又称为计算机外围设备;简称外设或I/O设备。单片机应用系统常用的输入设备有按钮、键盘、各种传感器等。常用的输出设备有LED(发光二极管显示器)、LCD(液晶显示器)等。二、输入/输出信息种类

计算机与输入/输出设备之间交换信息,有三种信息形式:数据信息、控制信息和状态信息。一、输入/输出设备2精选2021版课件

三、输入/输出接口与端口

CPU与外设,并不直接相连,而是通过接口电路进行连接。输入/输出设备与主机的连接部分称为输入/输出接口,简称I/O接口。输入/输出接口的作用是:

2.锁存与缓冲作用:一般用D触发器进行锁存。

1.隔离与寻址作用:例如右图用三态门组成的接口。3.信号电平或形式变换:例如A/D、D/A、232/485的变换。3精选2021版课件

通常接口电路中可编址并能进行读写操作的寄存器称为端口或简称口。一个接口电路中可能包括多个口,例如数据口、状态口、控制口,即包含有多个口地址。同一单片机系列中,片内集成的I/O模块各有不同,当片内I/O不能满足实际需求时,可扩展外部I/O。

四、I/O的分类

按照信号的传递方式,可将I/O分为串行和并行两类。按照I/O连接的信号大致可分为模拟量、数字量、脉冲量I/O三类。五、数据总线隔离技术

为了正确地进行数据的I/O传递,必须解决数据总线的隔离问题,即在任一时刻,CPU只对一个I/O进行操作。为此,对输出设备的接口电路要使用锁存器,对输入设备的接口电路,使用三态缓冲器。4精选2021版课件六、单片机I/O编址方式

每一个I/O都需要编址,以便CPU分别进行寻址。常用的I/O编址方式有两种:独立编址方式和统一编址方式。

独立编址方式:I/O和存储器分开编址,有各自独立的地址空间,采用不同的控制总线,使用不同的指令分别寻址。

统一编址方式:I/O与数据存储器在同一地址空间编址,寻址方式相同,采用相同的地址、数据、控制总线,使用相同的指令寻址。5精选2021版课件4.1.2输入输出的传送方式单片机系统中有不同类型的I/O设备,由于I/O所连接的外设或I/O接口本身的速度与CPU的处理速度相比,通常低于CPU的速度,为了实现数据的正确传输,CPU通常采用三种控制方式,即无条件传送方式、查询方式和中断控制方式。一、无条件传送方式

I/O或与I/O连接的外设随时都处于准备好状态,这时CPU不需要测试外设状态,随时直接对其进行操作。

6精选2021版课件查询方式流程图

二、查询方式查询方式是指CPU在执行输入输出指令之前,先对外围设备的状态进行检测,以判别外设是否准备就绪。如果已经准备就绪,CPU就可以执行输入输出指令。如果还没有准备就绪,必须继续查询(如右图所示)。查询方式的特点:实现简单,通用性强,适合各种设备数据的输入/输出;其缺点是需要占用CPU的时间,外设速度较慢时,效率较低。7精选2021版课件三、中断方式中断方式下外设的状态信号以中断申请方式输入CPU。CPU响应中断,暂停正在执行的程序,转而执行中断服务程序,在中断服务程序中对外设进行输入/输出操作,中断返回后,再继续执行被中断的程序。中断方式可提高单片机系统的效率。8精选2021版课件4.2.1中断的概念当CPU正在处理某件事情的时候,内部或外部发生的某一事件(如一个电平的变化,一个脉冲沿的发生或定时器计数溢出等)请求CPU迅速去处理,于是,CPU暂时中止当前的工作,转去处理所发生的事件。处理完该事件以后,再回到原来被中止的地方,继续原来的工作,这样的过程称为中断。4.2MCS-51单片机的中断系统9精选2021版课件一、中断源

中断源是指向CPU申请中断的事件来源。例如外部输入输出设备,定时/计数器,串行接口都可以作为中断源。二、中断优先权

中断优先权也叫中断排序,是用户根据中断源的性质和重要性自行排列的先后次序。在多个中断源同时提出申请时,保证优先权高的中断源首先得到响应,纵使CPU正在处理一个中断,也要暂时停止较低级的中断。响应优先权更高的中断源请求。这个过程称为中断嵌套或多重中断。优先权排序可以用软件也可以用硬件实现。10精选2021版课件三、中断系统的功能:(1)可实现高速CPU与慢速外设之间的配合。因为许多外围设备的速度比CPU慢,二者间无法同步地进行数据交换。为此可通过中断方式实现CPU与外围设备之间的协调工作。

(2)可实现实时处理。实时处理是自动控制系统对计算机提出的要求,各控制参量可以随时向CPU发出中断申请,而CPU也必须做出快速响应和及时处理,以便使被控对象总保持在最佳工作状态。(3)实现故障的紧急处理。当外围设备或计算机出现故障时,可以利用中断系统请求CPU及时处理这些故障。(4)便于人机联系。操作人员可以利用键盘中断等,实现人机联系,完成人的干预。11精选2021版课件

四、中断响应过程1)寻找中断源。(中断识别)2)将当前PC值(下一条指令的地址)压入堆栈(即保护断点),以便中断返回时使用。3)寻找中断入口,以便转向执行中断服务程序。4)保护现场。5)执行中断服务程序(中断处理)。6)执行完中断服务程序后,恢复现场并返回主程序(中断返回)。12精选2021版课件4.2.2MCS-51单片机的中断系统一、中断源与中断标志位

8051/8031型单片机提供了5个中断源:两个外部中断源和三个内部中断源。每一个中断源都有一个中断申请标志,但串行口占两个中断标志位,一共六个中断标志,下表给出了它们各自的名称。分类中断源名称中断申请标志触发方式中断入口地址外部中断外部中断0IE0(TCON.1)INT0(P3.2)引脚上的低电平/下降沿引起的中断0003H内部中断T0定时器/计数器0中断IF0(TCON.5)T0计数器溢出后引起的中断000BH外部中断外部中断1IE1(TCON.3)INT1(P3.3)引脚上的低电平/下降沿引起的中断0013H内部中断T1定时器/计数器1中断IF1(TCON.7)T1计数器溢出后引起的中断001BH内部中断串口中断RI(SCON.0)TI(SCON.1)串行口接收完成或发送完一帧数据后引起的中断0023H中断源和中断申请标志13精选2021版课件MCS-51中断系统MCS-51中断系统结构框图

中断源中断选择中断标志14精选2021版课件

1.中断源(1)外部中断0请求,由P3.2引脚输入。可由用户设定为两种触发方式,(电平触发方式还是边沿触发方式)。一旦输入信号有效,则向CPU申请中断,并且将中断标志IE0置1。(2)外部中断1请求,由P3.3引脚输入。亦可由用户设定为电平触发方式还是边沿触发方式。一旦输人信号有效,则向CPU申请中断,并将中断标志IE1置1。

(3)片内定时器T0溢出中断请求。当定时器T0产生溢出时,T0中断请求标志TF0置1,请求中断处理。(4)片内定时器T1溢出中断请求。当定时器T1产生溢出时,T1中断请求标志TF1置l,请求中断处理。(5)片内串行口发送/接收中断请求。当通过串行口发送或接收完一帧串行数据时,串行口中断请求标志TI或RI置1,请求中断处理。15精选2021版课件因此,与中断有关的特殊功能寄存器有:

中断允许控制寄存器(IE)

定时器/计数器控制寄存器(TCON)

中断优先级控制寄存器(IP)

串行口控制寄存器(SCON)

MCS-51单片机的中断系统中,使用何种中断,采用何种触发方式,可通过定时器/计数器控制寄存器TCON和串行口控制寄存器SCON的有关位来规定。只要根据这些位的状态就能确定有无中断请求及中断的来源。

在中断源与CPU之间有二级中断允许控制逻辑电路,一级为总允许,第二级为源允许,由IE控制。中断优先级由IP控制。16精选2021版课件2.中断请求标志

(1)TCON的中断标志

TCON是专用寄存器,字节地址为88H,它锁存了外部中断请求标志及T0和T1的溢出中断请求标志。TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0

IT0/IT1:外部中断请求的触发方式选择位:=0:在INT0/INT1端申请中断的信号低电平有效;=1:在INT0/INT1端申请中断的信号负跳变有效.IE0/IE1:外部中断申请标志位:=0:没有外部中断申请;=1:有外部中断申请。

TF0/TF1:定时器溢出中断申请标志位:=0:定时器未溢出;=1:定时器溢出申请中断,进中断后自动清零。TR0/TR1:定时器运行启停控制位:=0:定时器停止运行;=1:定时器启动运行。17精选2021版课件(2)SCON的中断标志

SCON是串行口控制寄存器,与中断有关的是它的低两位TI和RI。

TI(SCON.1):串行口发送中断标志位。每发送完一个串行帧,由硬件置位TI。CPU响应中断时,不能清除TI,TI必须由软件清除。

RI(SCON.0):串行口接收中断标志位,当允许串行口接收数据时,每接收完一个串行帧,由硬件置位RI。同样,RI必须由软件清除。SCONRI

TIRB8TB8RENSM2SM1SM018精选2021版课件二、MCS—51的中断管理

1、中断允许寄存器IE——中断的允许与开放

在中断源与CPU之间有两级中断允许控制逻辑电路,一级为总允许,第二级为源允许,由IE控制。19精选2021版课件2.中断优先级寄存器IP

——中断优先级控制

内部自然优先级:入口地址INT0高0003HT0000BHINT10013HT1001BHTI/RI低0023H20精选2021版课件3.同一级中的5个中断源的优先顺序

/INT0中断T0溢出中断/INT1中断T1溢出中断串口中断

高低自然优先级中断优先原则:(概括为四句话)1)低级不中断高级2)高级不睬低级3)同级不能打断4)同级、同时中断,按自然优先级21精选2021版课件MCS-51中断系统MCS-51中断系统结构框图

中断源中断选择中断标志22精选2021版课件中断处理过程一般分为三个阶段,即中断响应、中断处理和中断返回。

三、中断响应的条件及过程

1.中断响应(1)中断响应的条件:1)有中断源发出请求信号2)中断是开放的(总允许、源允许)3)没有封锁(受阻),受阻情况是:①CPU正在执行同级或高一级的中断服务程序;②现行机器周期不是正在执行的指令的最后一个机器周期,即现行指令完成前.不响应任何中断请求;③当前正在执行的是中断返回指令RETI或访问专用寄存器IE或IP的指令。也就是说,在执行RETI或是访问IE、IP的指令后,至少需要再执行一条其他指令,才会响应中断请求。23精选2021版课件

(2)中断响应过程

进入中断响应周期。CPU在中断响应周期要完成下列操作:1)根据中断请求源的优先级高低,使相应的优先级状态触发器置1。2)清相应中断请求标志位IE0、IE1、TF0或TF1。3)保留断点,把PC内容压入堆栈保存。4)把被响应的中断源的服务程序入口地址送入PC,转入相应的中断服务程序。24精选2021版课件(3)中断响应时间

从查询中断请求标志位到转向中断服务入口地址所需的机器周期数。1)最快响应时间以外部中断的电平触发为最快。从查询中断请求信号到中断服务程序需要三个机器周期:1个周期(查询)+2个周期(长调用LCALL)2)最长时间若当前指令是RET、RETI和IP、IE指令,紧接着下一条是乘除指令发生,则最长为8个周期:2个周期执行当前指令(其中含有1个周期查询)+4个周期乘除指令+2个周期长调用=8个周期。25精选2021版课件2.中断处理(服务)与返回

在编写中断服务程序时加注意的几点:(1)因各入口地址之间只相隔8个字节,所以通常在中断入口地址单元处存放一条无条件转移指令,使中断服务程序灵活地安排在64KB程序存储器的任何空间。(2)若要在执行当前中断程序时禁止更高优先级中断,可先用软件关闭CPU中断(全局中断),或禁止某中断源中断(局部中断),在中断返回前再开放中断。(3)注意保护现场和恢复现场。(4)中断服务程序的最后一条是返回指令RETI,该指令将清除响应中断时被置位的优先级状态触发器,然后自动将断点地址从栈顶弹出,装入PC,使程序返回到被中断处,继续向下执行。26精选2021版课件中断服务程序流程图27精选2021版课件3.中断请求的撤除

CPU响应中断请求后,在中断返回(RETI)前,该中断请求信号必须撤除,否则会引起另外一次中断。注意:(1)采用边沿触发的外部中断标志IE0或IEl和定时器中断标志TF0或TFl,CPU响应中断后能用硬件自动情除;(2)在电平触发时,IE0或IEl受外部引脚中断信号的直接控制,CPU无法控制IE0或IEl,需要另外考虑撤除中断请求信号的措施,如通过外加硬件电路(见下页所示),并配合软件来解决;(3)串行口中断请求标志TI和RI也不能由硬件自动清除,需要在中断服务程序中,用软件来清除相应的中断请求标志.

。28精选2021版课件并在中断服务程序中增加如下指令,使得的/INT0输入变为高电平。

ORL P1,#01H

ANL P1,#0FEH

外部中断为电平触发时,如果中断响应后,管脚仍为低电平,则会重新置位中断请求,为此可以在系统中增加辅助电路解决。29精选2021版课件1.在CPU已经开放了外部中断允许的前提下;2.在INT0/INT1引脚输入一个负脉冲或低电平;3.TCON寄存器中的IE0/IE1标志位自动变“1”;4.检测到IE0/IE1变“1”后,将产生指令:LCALL0003H(/0013H)执行中断服务程序;4并将IE0/IE1标志位自动清“0”或用硬件电路撤除中断请求信号,以备下次申请。外部中断(INT0,INT1)申请过程:30精选2021版课件例1假设允许片内定时器/计数器中断,禁止其他中断。试根据假设条件设置IE的相应值。解:根据题目要求,要允许内部定时器中断,就需要将IE寄存器的EA、ET1、ET0置1,其他位清0,可分别通过字节寻址或者位寻址进行。(1)用字节操作指令:MOVIE,#8AH或MOVA8H,#8AH(2) 用位操作指令: SETB ET0 ;定时器/计数器0允许中断 SETB ET1 ;定时器/计数器1允许中断 SETB EA ;CPU开中断31精选2021版课件例2系统要求设定8051的片外中断为高优先级中断,片内中断为低优先级。请写出相应的指令。解:根据题目要求,需要将8051的外部中断优先级控制位PX0、PX1设置为1,而内部中断优先级控制位PT0、PT1、PS清为0。(1) 用字节操作指令:MOVIP,#05H(2) 用位操作指令:SETBPX0SETBPX1CLRPSCLRPT0CLRPT132精选2021版课件4.3MCS-51单片机的定时器/计数器定时器/计数器的结构定时器/计数器的工作方式定时器/计数器应用33精选2021版课件实现定时或延时控制有三种方法:软件定时、不可编程硬件定时器、可编程硬件定时器。可编程的硬件定时器就是其工作方式、定时值和定时范围可以很方便地由软件来确定和改变。通常,一个可编程定时/计数器的主要用途有:①以均匀分布的时间间隔中断分时操作系统,以便切换程序。②向I/O设备输出精确的定时信号,该信号的周期由程序控制。③用作可编程波特率或速率发生器。④检测外部事件发生的频率或周期。⑤统计外部事件处理过程中某一事件发生的次数。⑥在定时或计数达到编程规定的值之后,产生输出信号,向CPU申请中断。34精选2021版课件51系列单片机有两个16位的定时器/计数器:T0和T1。T0由两个8位的定时寄存器TH0和TL0构成16位寄存器,同样,T1由两个8位的定时寄存器TH1和TL1构成16位寄存器,它们分别映射在特殊功能寄存器中。TH0、TL0的地址分别为8CH、8AH,TH1和TL1的地址分别为8DH和8BH。其内部还有2个8位的专用寄存器TMOD(88H)和TCON(89H)

。其中TMOD是定时器的工作方式寄存器,TCON是控制寄存器,主要用于定时/计数器管理与控制。

4.3.1定时器/计数器的结构35精选2021版课件8051单片机的定时器结构T0T136精选2021版课件一、定时器/计数器的定时和计数功能

在TMOD中,各有一个控制位(C/T),分别用于控制定时器/计数器T0和T1是工作在定时器方式还是计数器方式。1.定时功能----计数输入信号是内部时钟脉冲,每个机器周期使寄存器的值加1。所以,计数频率是振荡频率的1/12。2.计数功能----计数脉冲来自相应的外部输入引脚,T0为P3.4,T1为P3.5。即对由T0/T1引脚输入的负脉冲进行加法计数。定时器/计数器的核心部件是二进制加1计数器(TH0、TL0或TH1、TL1)。其输入的计数脉冲有两个来源(内部时钟脉冲和外部输入引脚)。当加到计数器为全“1”时,再输入一个脉冲,就使计数器回零,同时产生溢出脉冲使TCON中溢出中断标志TF0或TF1置1,并可向CPU申请中断。37精选2021版课件二、定时器/计数器的控制寄存器与定时器/计数器有关的控制寄存器有:1.定时器控制寄存器TCOND7D6D5D4D3D2D1D0TF1TR1TF0TR0IE1IT1IE0IT0中断请求标志触发方式选择启动定时器/计数器0低电平1下降沿0停止1启动38精选2021版课件2.工作方式控制寄存器TMOD

T1控制T0控制M0M1C/TGATEM0M1C/TGATED0D1D2D3D4D5D6D7GATE—门控位C/T—计数/定时选择M1M0—工作方式选择用于选定定时/计数器的工作方式、启动方式等。39精选2021版课件TMOD的高4位用于T1控制,低4位用于T0控制,符号的定义如下:(1)GATE:门控位。GATE和软件控制位TR、外引脚(/INT0、/INT1)的状态,共同控制定时器/计数器的启动和停止。

GATE=0——普通用法Timer的启/停由软件对TRx位写“1”/“0”控制。

GATE=1——门控用法

Timer的启/停由软件对TRx位写“1”/“0”和在INTx引脚上出现的信号的高/低共同控制。(2)C/T:定时/计数器方式选择位。C/T=1为计数方式;C/T=0为定时方式。(3)M1M0:工作方式选择位。M1M0=00;方式0M1M0=01;方式1M1M0=10;方式2M1M0=11;方式3。40精选2021版课件4.3.2定时器的工作方式一、方式0定时/计数器工作于方式0时为一个13位的计数器。选择定时器(T0或T1)的高8位和低5位组成的一个13位定时器/计数器。下图是T0在方式0时的逻辑电路结构。T1的模式0电路结构与T0相同。定时器T0的方式0逻辑电路MCS-51单片机内部的定时/计数器是一种可编程器件,可设置为四种工作方式,由两个8位专用寄存器TMOD和TCON进行管理与控制。注:此时,/INT0(须为1)不是外部中断请求信号,而只是对定时/计数器的一个附加控制信号。41精选2021版课件(1)加1计数器为13位。TL0=5位,TH0=8位(2)(GATE+INT0)•TR0为真则启动定时器。(3)C/T=1为计数工作方式,计数脉冲由T0引脚输入。

计数个数N=(213—初值)(4)C/T=0为定时工作方式,时钟频率为fosc/12。

定时时间t=(213—初值)*时钟周期*12显然:在机器周期固定的情况下,定时时间的长短与计数器事先装入的初值有关,装入的初值越大,定时越短。

(5)计数器溢出,TF0置1。由硬件申请中断。42精选2021版课件二、方式1

定时/计数器工作于方式1时为一个16位的计数器。其逻辑结构、操作及运行控制几乎与方式0完全—样,差别仅在于计数器的位数不同。在方式1中TL0和TH0均为8位,TL0和TH0一起构成了l6位计数器。定时工作方式1时,定时时间为:定时时间t=(216-计数初值)×机器周期用于计数器工作方式时:最大计数值为:216=65536。43精选2021版课件定时器T0的方式1逻辑电路44精选2021版课件三、方式2定时/计数器工作于方式2时,将两个8位计数器THx、TLx分成独立的两部分,组成一个可自动重装载的8位定时/计数器。其逻辑结构如下图所示。方式2的控制运行与方式0、方式1相同。用于定时工作方式时,定时时间t为:t=(28-计数初值X)×机器周期方式2用于计数工作方式时,最大计数值(初值=0时)是28。方式2特别适合于用作较精确的定时和脉冲信号发生器。还常用作串行口波特率发生器。45精选2021版课件四、方式3

方式3只适用于定时器T0。在方式3下,T0被分成两个相互独立的8位计数器TL0和TH0,如下图所示。(1)TH0和TL0变成2个分开的独立计数器。(2)TL0占用了全部的定时器控制位(C/T,GATE,TR0,TF0)。(3)TH0只能用于定时方式,运行控制位和溢出标志位则借用定时器1的TR1和TF1。此时的定时器1用于串行口波特率发生器。注:在T0设置为方式3工作时,一般是将定时器T1作为串行口波特率发生器,或用于不需要中断的场合。46精选2021版课件定时器T0的方式3(a)T0方式3时的T1方式0(b)T0方式3时的T1方式147精选2021版课件4.3.3定时器/计数器应用一、定时器/计数器的计数初始化1.定时器/计数器的初始化方法初始化的主要内容是对TCON和TMOD编程,计算和装载T0和T1的计数初值。(1)确定相关参数1)分析定时器/计数器的工作方式,将方式字写入TMOD寄存器;(即确定:定/计、内/外启动、工作方式)2)计算T0或T1中的计数初值,并将其写入TH0、TL0或TH1、TL1;3)根据需要开放CPU和定时器/计数器的中断,即对IE和IP寄存器编程;4)启动定时器/计数器工作:若要求用软件启动,编程时对TCON中的TR0或TR1置位即可启动;若由外部中断引脚电平启动,则对TCON中的TR0或TR1置位后,还需给外部引脚加启动电平。48精选2021版课件(2)计算定时器/计数器的初值1)计数器方式时的计数初值

TC=2M-N(M为计数器位数,N为要求的计数值)方式0:M=13,计数器的最大计数值213=8192;方式1:M=16,计数器的最大计数值216=65536;方式2:M=8,计数器的最大计数值28=256;方式3同方式2。例如,设T0工作在计数器方式2,求计数10个脉冲的计数初值。TC=28-10=246=(11110110)B=0F6H2)定时器方式时的计数初值在定时器方式下,定时器T0(或T1)是对机器周期进行计数的。定时时间为:t=(2M-计数初值X)×机器周期。故:

计数初值X=2M-(t/(12*Tosc))=49精选2021版课件

注意:不同方式下,M的取值不同。若系统时钟频率fOSC=12MHz。则方式0:M=13,定时器的最大定时值为:213*机器周期=8192µS;方式1:M=16,定时器的最大定时值为:216*机器周期=65536µS;方式2:M=8,定时器的最大定时值为:28*机器周期=256µS;方式3同方式2。例如:若fOSC=6MHz,定时时间为10ms,使用定时器T0工作于方式1,则定时器T0的初值为

:TC0==60536=0EC78H

注意时钟频率(HZ)和定时时间(S)的单位换算!50精选2021版课件2.定时器/计数器初始化举例编写初始化程序的步骤:

(1)方式控制字送TMOD;MOVTMOD,#——(2)计数器的初值送TH、TL(0/1);MOVTH0,#——MOVTL0,#——(3)根据需要开放中断和设定优先级;即对IE和IP赋初值。(4)启动T0/T1开始工作---置位TR0/TR1;SETBTR0/TR1(5)等待溢出信号的出现(如何进入处理程序?)(有查询法或中断法)51精选2021版课件例1:要求定时器T1工作于方式1,定时50ms,由软件启动,允许中断。设系统时钟频率fOSC=6MHz,编写初始化程序段。解:1)方式控制字为00010000B=10H2)计数初值为TC1=T1初始化程序段如下:MOV TMOD,#10H ;写入工作方式字MOV TH1,#9EH ;写入计数初值MOV TL1,#58HSETB ET1 ;开放T1中断SETB EA ;开放CPU中断SETB TR1 ;启动T1工作┋52精选2021版课件例2:

要求利用定时/计数器T0对T0引脚(P3.4)出现的脉冲计数,每计数100个脉冲向CPU申请中断,设由软件启动。编写初始化程序段。解:1)经分析,可设定时器T0工作于方式2计数,方式控制字为00000110B=06H2)要求的计数值N=100,则计数初值为28-100=156初始化程序段如下:MOV TMOD,#06H ;写入工作方式字MOV TH0,#156 ;写入计数初值MOV TL0,#156MOV IE,#10000010B ;开放T0、CPU中断SETB TR0 ;启动T0工作53精选2021版课件二、定时器/计数器应用举例

在应用定时器/计数器时,溢出标志TFx置位后既可由硬件向CPU申请中断;也可通过用户程序查询TFx的状态,因此对计数溢出信息的处理有以下两种方法:中断法:在定时器初始化时要开放对应的源允许(ET0或ET1)和总允许,在启动后等待中断。当计数器溢出中断时,CPU将程序转到中断服务程序入口,因此应在中断服务程序中安排相应的处理程序。查询法:在定时器初始化并启动后,在程序中安排指令查询TFx的状态。LP:JBCTF0,NEXT;TF0为1,转后面的处理程序,并将TF0复位SJMP LP;TF0为0,继续查询NEXT:┋54精选2021版课件采用查询方式时的一般编程模式为:ORG0030HMAIN:MOVTMOD,#——MOVTH0,#——MOVTL0,#——--------------SETBTR0WAIT:JBCTF0,NEXT;SJMPWAIT;NEXT:MOVTH0,#——;重装MOVTL0,#——;初值----------;处理程序SLMPWAIT注意问题:1)方式0、1、3溢出后要重装初值,方式2可自动重装初值。2)方式0时TH为8位,TL为5位。采用中断方式时的一般编程模式为:ORG0000HSJMPMAINORG000BH(001BH)LJMPT0SORG0030HMAIN:MOVTMOD,#——MOVTH0,#——MOVTL0,#——SETBET0;SETBEA;------------------;置其他初值SETBTR0;SJMP$T0S:MOVTH0,#——MOVTL0,#——;重装初值--------------;处理程序RETI假设使用T0,则:55精选2021版课件

1.定时器/计数器定时方式的应用例3:

利用定时/计数器定时产生周期信号。要求用定时器T0定时,在P1.7引脚上输出频率为50Hz的方波。设晶振频率为12MHz。解:1)按题意分析:方波周期T=1/50=20ms,可用T0方式1定时10ms,使P1.7每隔10ms取反一次,即可得到周期为20ms的方波。设T0工作在方式1,由软件启动。2)TMOD控制字为00000001B3)初值计算:因fosc=12MHz,则机器周期为1µs。初值=216-10×103/1=65536-10000=55536=D8F0H,即有TH0=D8H,TL0=F0H。56精选2021版课件4)编程a.若采用查询法,编程如下:ORG0030HSTAR:MOVTMOD,#01H;写方式字MOVTH0,#0D8H;写入计数初值MOVTL0,#0F0HSETBTR0 ;启动T0LP:JBCTF0,NEXT ;TF0为1转NXETSJMPLP ;TF0为0,继续查询NEXT:MOVTH0,#0D8H;重装初值MOVTL0,#0F0HCPLP1.7;P1.7取反输出方波AJMPLP;反复循环57精选2021版课件b.若采用中断法,编程如下:主程序:

ORG0000HSJMPSTAR ORG000BH;定义T0服务程序入口AJMPDVT0ORG0030HSTAR:MOVTMOD,#01H;写入工作方式字MOVTH0,#0D8H;写入计数初值MOVTL0,#0F0HSETBET0;SETBEA;开放T0和CPU中断SETBTR0 ;启动T0SJMP$;等待中断中断服务程序:

DVT0:MOVTH0,#0D8H ;重装初值MOVTL0,#0F0H;CPLP1.7;RETI58精选2021版课件2.定时器/计数器计数方式的应用

例4:

某系统要求用定时器T1对由P3.5(T1)引脚输入的脉冲计数,每计满100个脉冲,在P1.0引脚输出一个正脉冲。解:1)据题意分析,可将定时器T1设置为方式2计数,由软件启动。2)方式控制字:TMOD=01100000B=60H3)计数初值:TC1=28-100=156=9CH,即有TH1=TL1=9CH59精选2021版课件4)程序如下:ORG0000HSJMPMAIN ORG001BH;定义T1服务程序入口AJMPDVT1ORG0030HMAIN:MOVTMOD,#60H;写入工作方式字MOVTH1,#9CH;写入计数初值MOVTL1,#9CHSETBET1;开放T1中断SETBEA;开放CPU中断CLRP1.0SETBTR1;启动T1SJMP$;等待中断

DVT1:SETBP1.0 NOP NOPCLRP1.0;RETI

60精选2021版课件3.定时时间的扩展

为什么要扩展?因为晶振频率为6MHz时一个定时器最长的定时时间为:例如,若用T0定时50ms,每次溢出后就计数一次,则计数20次就得1秒的定时。较常用的是软件计数扩展法。软件扩展是利用内存单元作溢出次数的计数器。如果定时时间长,8位计数器不够,还可采用16位计数器或用更多字节单元计数。61精选2021版课件例5:要求利用软件扩展方法实现1秒定时,使得由P1口控制的8个LED指示灯每隔一秒轮流闪亮(输出为低电平时亮),设fOSC=6MHz。解:1)分析:设利用定时器T0工作于方式1,定时50ms,并用R2作软件计数器,取R2的初值为20,作减法计数,每次T0溢出时,R2减1,当R2减到0,则定时1秒完成。2)即有:TMOD=00000001B=01H,TH0=9EH,TL0=58H(见前PPT52例1)62精选2021版课件主程序:ORG0000HSJMPMAIN ORG000BH;定义T0服务程序入口AJMPDVT0ORG0030HMAIN:MOVTMOD,#01H;置工作方式字MOVTH0,#9EHMOVTL0,#58H;置计数初值SETBET0SETBEA;;开放中断

MOVR2,#20;置软件计数初值MOVA,#0FEHMOVP1,A;从P1输出一位低电平SETBTR0SJMP$;等待中断;中断服务程序DVT0:MOVTH0,#9EH MOVTL0,#58H;重置计数值

DJNZR2,RTN

MOVP1,A

RLA;A循环左移一位MOVR2,#20;再置计数值RTN:RETI若采用中断法,编程如下:63精选2021版课件4.利用定时器/计数器扩展外部中断源

利用定时/计数器来扩展外部中断源。方法是将定时器/计数器设置成计数器方式2计数,计数初值设定为THx、TLx均为0FFH,并将待扩展的外部中断源接到定时器/计数器的外部脉冲计数引脚.例如,利用定时器/计数器T0扩展一个外部中断源。将T0设置为计数器方式,按方式2工作,TH0、TL0的初值均为0FFH,T0允许中断,CPU开放中断。其初始化程序段如下:MOV TMOD,#06H ;置T0为计数器方式2MOV TL0,#0FFH ;置计数初值MOV TH0,#0FFHSETBTR0 ;启动T0工作SETBEA ;CPU开中断SETBET0 ;允许T0中断64精选2021版课件5.门控位GATE的应用例6:利用定时/计数器T0的门控位GATE,测量引脚上出现的脉冲宽度,并将结果(机器周期数)存入内部RAM的30H和31H单元中。解:1)由题意分析,外部脉冲由引脚输入,可设T0工作于定时器方式1,计数初值为0,在一个完整的外部脉冲宽度内对机器周期计数(定时方式),显然计数值乘上机器周期就是脉冲宽度。2)设定GATE=1,当TR0置1时,由外部脉冲上升沿启动T0开始工作。加1计数器开始对机器周期计数;引脚变为低电平时,停止计数,这时读出TH0、TL0的值,该计数值即为被测信号的脉冲宽度对应的机器周期数。测试过程如图所示.65精选2021版课件3)程序设计工作方式字:TMOD=00001001B计数初值:TH0=00H,TL0=00HORG0000HLJMPMAINORG0030HMAIN:MOVTMOD,#09H;GATE=1MOVTH0,#00H;置计数初值MOVTL0,#00HMOVR0,#30H WAIT1:JBP3.2,WAIT1;等待变低SETBTR0;预启动T0

WAIT2:JNBP3.2,WAIT2;等待INT0变高、启动计数WAIT3:JBP3.2,WAIT3 ;等待INT0再变低CLRTR0;停止计数MOV@R0,TL0 ;读取计数值,存入指定单元INCR0,MOV@R0,TH0AJMPDATA ;转数据处理程序66精选2021版课件

主要内容:串行通信基础;MCS-51单片机串行通信接口的结构;MCS-51单片机串行通信的工作原理及其工作方式;MCS-51单片机串行接口应用编程。重点:MCS-51单片机串行接口的工作原理及工作方式;MCS-51单片机串行接口应用程序设计方法。4.4单片机的串行通信67精选2021版课件

串行通信优点:便于长距离传送缺点:传送速度较慢计算机与外界信息交换称为通信。通信的基本方式可分为并行通信和串行通信:并行通信是数据的各位同时发送或同时接收;串行通信是数据的各位依次逐位发送或接收。并行通信优点:传送速度快

缺点:不便长距离传送68精选2021版课件

(a)并行通信 (b)串行通信通信的两种基本方式69精选2021版课件

异步通信对硬件要求较低,实现起来比较简单、灵活,适用于数据的随机发送/接收,但因每个字节都要建立一次同步,即每个字符都要额外附加两位,所以工作速度较低,在单片机中主要采用异步通信方式。4.4.1串行通信基础

串行通信有两种基本通信方式:异步通信和同步通信。在此,只介绍异步通信。一、异步串行通信的字符格式异步通信依靠起始位、停止位保持通信同步。异步通信数据传送按帧传输,一帧数据包含起始位、数据位、校验位和停止位。

70精选2021版课件帧异步串行通信的字符格式起始位数据位[0~(n

1)位]奇偶位停止位起始位位时间

异步串行通信以字符为单位,即一个字符一个字符的传送。71精选2021版课件(b)有空闲位串行异步通信的帧格式(a)无空闲位72精选2021版课件

⑶奇偶效验位——用于对字符的传送作正确性检查,因此奇偶效验位是可选择的,共有3种可能,即奇效验、偶效验和无效验,由用户根据需要选定。⑴起始位——开始一个字符的传送的标志位。起始位使数据线处于“0”状态。

⑵数据位——起始位之后传送的数据信号位。在数据位中,低位在前(左)高位在后(右)。由于字符编码方式的不同,数据位可以是5、6、7或8位。⑷停止位——用以标志一个字符的结束,它对应于“1”状态。停止位在一帧的最后,它可能是1、1.5或2位,在实际中根据需要确定。73精选2021版课件⑸位时间——一个格式位的时间宽度。

⑹帧(frame)——从起始位开始到停止位结束的全部内容称之为一帧。帧是一个字符的完整通信格式,因此也就把串行通信的字符格式称之为帧格式。二、异步串行通信的信号形式

1、近程通信

近程通信又称本地通信。

近程通信采用数字信号直接传送形式,即在传送过程中不改变原数据代码的波形和频率。这种数据传送方式称之为基带传送方式。74精选2021版课件寄存器串行接口TTL电平寄存器串行接口TTL电平计算机A计算机BRS-232电平标准

近程串行通信

计算机内部的数据信号是TTL电平标准,而通信线上的数据信号却是RS

232C电平标准。然而,尽管电平标准不同,但数据信号的波形和频率并没有改变。近程串行通信只需用传输线把两端的接口电路直接连起来即可实现,既方便又经济。75精选2021版课件2、远程通信

在远程串行通信中,应使用专用的通信电缆,但出于经济上的考虑也可以使用电话线作为传输线。

数字信号计算机MODEM计算机电话线MODEM

远程串行通信模拟信号数字信号

远距离直接传送数字信号,信号会发生畸变,因此要把数字信号变为模拟信号再进行传送。信号形式的转变通常使用频率调制法,即以不同频率的载波信号代表数字信号的两种不同电平状态。这种数据传送方式就称为频带传送方式。

76精选2021版课件

波特率对于CPU与外界的通信是很重要的。相互通信的甲乙双方必须具有相同的波特率,否则无法成功地完成串行数据通信。在通信中发、接双方有两次约定:

字符格式————帧格式传送速率————波特率三、串行通信波特率

波特率bps(bitpersecond)为数据传送速率,表示每秒钟传送二进制代码的位数,它的单位是b/s。即:1波特=1位/秒(1bps)作用:1.反映串行通信的速率;2.反映对传输通道的要求:波特率越高,要求的传输通道的频带宽度就越宽。77精选2021版课件

假如数据传送的速率是120个字符/秒,每一个字符规定包含10个位(一个起始位、8个数据位和1个停止位),则传送的波特率为:10×120=1200位/秒=1200波特(bps)每一位的传送时间即为波特率的倒数。

注意:时钟频率和波特率不是同一个概念,时钟频率比波特率高得多。78精选2021版课件四、串行通信的制式

串行通信按照数据传送方向可分为三种制式:

单工制式是指甲乙双方通信时只能单向传送数据,发送方和接收方固定。1、单工制式(Simplex)79精选2021版课件

半双工制式是指通信双方都具有发送器和接收器,既可发送也可接收,但不能同时接收和发送,发送时不能接收,接收时不能发送。2、半双工制式(HalfDuplex)80精选2021版课件三、EIA-232-D端口的直接连接

两台计算机可通过调制解调器(Modem),由电话线连接实现长距离通信。在工业数据通信中,常直接将两台计算机的EIA-232端口连接。在通信过程中,不需要握手时,只需要3根连接线,DB-9连接器的接线如图(a)所示。在需要握手时,还需要将请求发送、允许发送、准备就绪等信号端形成如图(b)所示的交叉连接形式。(a)无握手(b)全握手

EIA-232端口的直接连接

81精选2021版课件

全双工制式是指通信双方均设有发送器和接收器,并且信道划分为发送信道和接收信道,因此全双工制式可实现甲乙双方同时发送和接收数据,发送时能接收,接收时也能发送。3、全双工制式(FullDuplex)82精选2021版课件4.4.2EIA-232-D接口标准

EIA-232-D是由美国电子工业协会正式公布的串行总线标准,也是目前最常用的串行接口标准,用来实现计算机之间、计算机与外设之间的数据通信。EIA-232-D总线接口适用于设备之间距离不大于15米,传输速度最大20kb/s。一、EIA-232-D信号引脚定义EIA-232-D定义了22根线,采用标准25芯(DB-25)插头座,在EIA-232中描述的连接器还有DB-9。如表4.7和4.8所示(见教材78页)。二、电气特性EIA-232-D采用负逻辑,即:逻辑“1”:-3V~-15V逻辑“0”:+3V~+15VEIA-232-D的逻辑电平与TTL电平不兼容,为了与TTL器件相连必须进行电平转换。83精选2021版课件

4.4.3MCS-51串行口结构及工作原理

当计算机向外发送数据时,必须将并行的数据转换为串行的数据再传送。反之,又必须将串行数据转换为并行数据输入计算机中。通用的异步接收/发送器,简称UART(UniversalAsynchronousReceiver/Transmitter),就是完成这一功能的硬件电路。

MCS-51单片机有一个可编程全双工的串行通信接口(UART),可同时发送、接收数据(Transmit/Receive);可以方便地实现与其他单片机之间、与PC机之间的串行通信,也可用通信接口实现键盘输入、LED显示及其他的控制。

在串行口中可供用户使用的是它的寄存器,因此了解其寄存器结构对用户来说是十分重要的。84精选2021版课件

MCS-51单片机串行接口由两个独立的数据缓冲器SBUF(一个用作接收,一个用作发送)以及发送控制器、接收控制器、输入移位寄存器和输出控制门等组成。用户可访问的四个地址单元为:SBUF(99H):两个SBUF共用一个地址99H。发送SBUF只写不读,接收SBUF只读不写,由所用指令是发送还是接收来决定对两个SBUF进行操作;SCON(98H)

:串行口控制寄存器PCON(87H)

:电源控制寄存器IE(0A8H):中断允许寄存器

一、MCS-51单片机串行接口的结构

输入/输出接口是CPU与外设之间信息交换的桥梁,它可以制成一块单独的大规模集成电路,也可以和CPU集成在同一块芯片上,单片机中就是后一种结构。I/O接口有并行接口和串行接口两种。85精选2021版课件86精选2021版课件51单片机的串行接口结构SBUF(发)SBUF(收)发送控制器TI接收控制器RI移位寄存器波特率发生器T11A累加器(门)RxDTxD去申请中断引脚引脚CPU内部87精选2021版课件

发送时,只需将发送数据输入SBUF,CPU将自动启动和完成串行数据的发送;接收时,CPU将自动把接收到的数据存入SBUF,用户只需从SBUF中读出接收数据。1.串行数据缓冲器SBUF(99H)

在逻辑上只有一个,既表示发送寄存器,又表示接收寄存器,具有同一个单元地址99H,用同一寄存器名SBUF。在物理上有两个,一个是发送缓冲寄存器,另一个是接收缓冲寄存器。MOVSBUF,A;启动一次数据发送MOVA,SBUF;完成一次数据接收88精选2021版课件发送SBUF(99H)接收SUBF(99H)输入移位寄存器TI(发送中断)TXD串行输出8051内部总线RXD串行输入RI(接收输入)移位时钟MCS-51串行口寄存器结构89精选2021版课件在接收方式下,串行数据通过引脚RXD(P3.0)进入。由于在接收寄存器之间还有移位寄存器,从而构成了串行接收的双缓冲结构,以避免在数据接收过程中出现帧重叠错误,即在下一帧数据来时,前一帧数据还没有读走。

在发送方式下,串行数据通过TXD(P3.1)送出。与接收数据情况不同,发送数据时,由于CPU是主动的,不会发生帧重叠错误,因此发送电路就不需双重缓冲结构,这样可以提高数据发送速度。90精选2021版课件2.串行控制寄存器SCON(98H)SCOND7D6D5D4D3D2D1D0位名称SM0SM1SM2RENTB8RB8TIRI位地址9FH9EH9DH9CH9BH9AH99H98H功能工作方式选择多机通信控制接收允许发送第9位接收第9位发送中断接收中断①SM0SM1——串行口工作方式选择位。②SM2——多机通信控制位。③REN——允许接收控制位。REN=1,允许接收。④TB8——方式2和方式3中要发送的第9位数据。⑤RB8——方式2和方式3中要接收的第9位数据。⑥TI——发送中断标志。⑦RI——接收中断标志。SCON是一个可位寻址的专用寄存器,用来设定串行口的工作方式、控制串行口的接收/发送以及状态标志。91精选2021版课件①

SM0SM1——串行口工作方式选择位。其状态组合所对应的工作方式如下表所示。

SM0SM1工作方式功能说明000同步移位寄存器输入/输出,波特率固定为fosc/120118位UART;波特率可变(T1溢出率/n,n=32或16)1029位UART,波特率固定为fosc/n,(n=64或32)1139位UART,波特率可变(T1溢出率/n,n=32或16)SM2----多机通信控制位。

在工作方式2和方式3中:若SM2=1:当接收到第9位数据(RB8)为1,才将接收到的前8位数据装入SBUF,并置位RI;否则将接收到的数据丢弃。若SM2=0:不论第9位数据(RB8)是否为1,都将接收到的前8位数据装入SBUF,并置位RI。在方式1中:若SM2=1,则只有接收到有效的停止位时,才置位RI。在方式0中:必须使SM2=092精选2021版课件③REN------允许接收控制位。REN位用于对串行数据的接收进行控制:REN=0,禁止接收;REN=1,允许接收。该位由软件置位或复位。④TB8------方式2和方式3中要发送的第9位数据。在方式2和方式3时,TB8是发送的第9位数据。在多机通信中,以TB8位的状态表示主机发送的是地址还是数据:TB8=0表示数据,TB8=1表示地址。该位由软件置位或复位。TB8还可用于奇偶校验位。⑤RB8------方式2和方式3中要接收的第9位数据。在方式2或方式3时,RB8存放接收到的第9位数据。注:多机通信时,SM2必须置1。双机通信时,通常使SM2=0。93精选2021版课件⑥TI------发送中断标志。当方式0时,发送完第8位数据后,该位由硬件置位。在其他方式下,遇发送停止位时,该位由硬件置位。因此TI=1,表示帧发送结束,可软件查询TI位标志,也可以请求中断。TI位必须由软件清0。⑦RI------接收中断标志。当方式0时,接收完第8位数据后,该位由硬件置位。在其他方式下,当接收到停止位时,该位由硬件置位。因此RI=1,表示帧接收结束,可软件查询RI位标志,也可以请求中断。RI位也必须由软件清0。注:接收/发送数据,无论是否采用中断方式工作,每接收/发送一个数据都必须用指令对RI/TI清0,以备下一次收/发。单片机复位时,SCON中的所有位均为0。94精选2021版课件3.电源控制寄存器PCON(87H)PCOND7D6D5D4D3D2D1D0位名称SMOD———GF1GF0PDIDL☞SMOD:在串行口工作方式1、2、3中,是波特率加倍位:=1时,波特率加倍=0时,波特率不加倍。(复位时,SMOD=0。

)

PCON寄存器不能进行位寻址。只有最高位SMOD与串行口工作有关。

ES=0禁止串行中断

ES=1允许串行中断4.中断允许寄存器IE

95精选2021版课件

MCS—51单片机的串行口可编程选择四种工作方式,其中方式0主要用于扩展并行输入/输出口,串行通信时一般使用方式1、2或3。1.方式0工作在方式0时,串行口是作为同步移位寄存器使用的,其数据传输波特率固定为foc/12。串行数据由RXD(P3.0)端输入/输出,同步移位脉冲由TXD(P3.1)端输出。数据的发送/接收以8位为一帧,低位在前,无起始位、奇偶位及停止位。其帧格式为:二、MCS—51串行通信接口的工作方式96精选2021版课件

DATACD4094CLKSTB并行输出80C51RXD

TXDP1.0Q8CD4014CLKP/S并行输入80C51RXD

TXDP1.0

串行口与CD4094配合串行口与CD4014配合

使用方式0实现数据的移位输入/输出时,实际上是把串行口变成为并行口使用。串行口作为并行口输出使用时,要有“串入并出”的移位寄存器(例如CD4094或74LS164、74HC164等)配合;串行口作为并行口输入使用时,要有“并入串出”的移位寄存器(例如CD4014等)配合。其电路连接如上图所示。

故在方式0下,常用于扩展I/O口。97精选2021版课件⑴数据发送

在移位时钟脉冲(TXD)的控制下,数据从串行口RXD端逐位移入74HC164SA、SB端。当8位数据全部移出后,SCON寄存器的TI位被自动置1。其后74HC164的内容即可并行输出。74HC164CLR为清0端,输出时CLR必须为1,否则74HC164Q0~Q7输出为0。

串行口作为并行输出口使用时,要有“串入并出”的移位寄存器配合。(例如CD4094或74HCl64)98精选2021版课件(2)数据接收

串行口作为并行输入口使用时,要有“并入串出”的移位寄存器配合。(例如CD4014或74HCl65)

74HC165的S/L端为移位/置入端,当S/L=0时,从Q0~Q7并行置入数据,当S/L=1时,允许从QH端移出数据。在80C51串行控制寄存器SCON中的REN=1时,TXD端发出移位时钟脉冲,从RXD端串行输入8位数据。当接收到第8位数据D7后,置位中断标志RI,表示一帧数据接收完成。99精选2021版课件

(4)应用举例

DATACD4094CLKSTB80C51RXDTXD

P1.0

串行移位输出电路例1:使用CD4094的输出端接8只发光二极管,利用它的串入并出功能,把发光二极管从左向右依次点亮,并反复循环之。按此要求所做的电路连接如图所示。

⑶波特率:

方式0波特率固定,为单片机晶振频率的十二分之一。即一个机器周期进行一次移位。100精选2021版课件解:采用查询方式发送数据可编程序如下:

MOVSCON,#00H;串行口方式0工作CLRES ;禁止串行中断MOVA,#80H ;发光管从左边亮起DELR:CLRP1.0 ;关闭并行输出MOVSBUF,A ;串行输出WAIT:JNBTI,WAIT;状态查询SETBP1.0 ;开启并行输出ACALLDELAY ;状态维持时间

CLRTI ;清发送中断标志

RRA ;发光组合循环右移AJMPDELR ;继续101精选2021版课件例2.电路如图所示,试编制程序输入K1~K8状态数据,并存入片内RAM40H。解:编程如下:

KIN:

MOVSCON,#00H;串行口方式0CLRES ;禁止串行中断CLRP1.0;锁存并行输入数据SETBP1.0;允许串行移位操作SETBREN;允许并启动接收(TXD发送移位脉冲)WAIT:JNBRI,WAIT;等待接收完毕MOV40H,SBUF;存入K1~K8状态数据

102精选2021版课件例3.电路如图所示,试编制程序按下列顺序要求每隔0.5秒循环操作。④从右向左依次点亮,每次亮一个;⑤从左向右依次点亮,每次增加一个,直至全部点亮;⑥返回从②不断循环。①8个发光二极管全部点亮;②

从左向右依次暗灭,每次减少一个,直至全灭;③从左向右依次点亮,每次亮一个;解:编程如下:103精选2021版课件LIGHT:MOVSCON,#00H;串行口方式0CLRES;禁止串行中断MOVDPTR,#TAB;置发光二极管亮暗控制字表首址LP1:MOVR7,#0;置顺序编号0LP2:MOVA,R7;读顺序编号MOVCA,@A+DPTR;读控制字CLR

温馨提示

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

评论

0/150

提交评论