单片机的其他片内功能部件课件_第1页
单片机的其他片内功能部件课件_第2页
单片机的其他片内功能部件课件_第3页
单片机的其他片内功能部件课件_第4页
单片机的其他片内功能部件课件_第5页
已阅读5页,还剩129页未读 继续免费阅读

下载本文档

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

文档简介

第四章

单片机的其他片内功能部件4-1 并行I/O口4-2 定时器/计数器4-3 串行通信接口4-4 中断系统第四章单片机的其他片内功能部件4-1 并行I/O第四章

单片机的其他片内功能部件I/O接口的作用实现和不同外设的速度匹配改变数据传送方式改变信号的性质和电平第四章单片机的其他片内功能部件I/O接口的作用第四章

单片机的其他片内功能部件外部设备的编址方式1.对外设端口单独编址

INA,(N);N端口中的数OUT(N),A2.外设端口和存储器统一编址将一部分地址空间让给外设端口,存储器不再使用。优点:(1)一切指令均适用于I/O端口的访问,增强了CPU对外围设备的处理能力。(2)CPU本身不需要专门的I/O指令。(3)外设地址安排灵活,数量不限。第四章单片机的其他片内功能部件外部设备的编址方式第四章

单片机的其他片内功能部件端口与接口端口:常指I/O接口中带有端口地址的寄存器或缓冲器,CPU通过端口地址就可以对端口中信息进行读写。接口:指CPU与外设间的I/O接口芯片,一个外设通常需要一个I/O接口,但一个I/O接口可以有多个I/O端口,传送数据字的端口称数据口,传送命令字的称命令口,传送状态字的称为状态口。第四章单片机的其他片内功能部件端口与接口第四章

单片机的其他片内功能部件4-1并行I/O口四个8位并行I/O端口:P0、P1、P2和P3。每个端口都是8位准双向口,包含一个锁存器(即特殊功能寄存器P0~P3)、一个输出驱动器和一个输入缓冲器。这四个并行I/O口都可以作准双向通用I/O口,既可以作输入口,又可以作输出口,还可以作双向口。输出有锁存功能;输入有三态缓冲但无锁存功能。它们既可以以字节寻址,也可以按位独立输入/输出。第四章单片机的其他片内功能部件4-1并行I/O第四章

单片机的其他片内功能部件三种I/O端口操作方式1.数据输出方式(写端口)通过一条指令将数据写入P0-P3的数据锁存器,然后通过输出驱动器送到端口引脚。MOVP0,A;累加器A中内容送P0口2.读端口对端口锁存器数据进行读入,这个数据并非端口引脚上的数据ORLP1,#0F0H;P1锁存器中数据送A,经“与”运算后,送P1锁存器第四章单片机的其他片内功能部件三种I/O端口操作第四章

单片机的其他片内功能部件3.读引脚从端口引脚上读数据,先使对应端口锁存器置位,使T管截止,然后打开数据缓冲器,使引脚数据输入数据总线。MOVP1,#0FH;使P1口低四位锁存器置位MOVA,P1;读P1口低四位引脚线信号第四章单片机的其他片内功能部件3.读引脚第四章

单片机的其他片内功能部件P1口的位结构第四章单片机的其他片内功能部件P1口的位结构第四章

单片机的其他片内功能部件4-1-1P1口通用I/O口 可以采用字节操作也可以采用位操作,CPU既可以把它们看作数据口也可以看作状态口。

CPU复位后,口锁存器为“1”,对于作为输入的口脚(读引脚),相应位的口锁存器不能写入“0”。第四章单片机的其他片内功能部件4-1-1P1口第四章

单片机的其他片内功能部件例4-1读P1.4~P1.7口状态送指示灯显示。字节操作参考程序:

ORLP1,#0F0H;P1.4~P1.7口锁存器置1

MOVA,P1;读P1.4~P1.7引脚状态

SWAPA;

MOVP1,A;

RET第四章单片机的其他片内功能部件例4-1读P第四章

单片机的其他片内功能部件4-1-2P2口P2口有两种功能:对于内部有程序存贮器的单片机,P2口既可以作为输入/输出口使用,也可以作为系统扩展的地址总线口,输出高8位地址A8~A15。对于内部没有程序存贮器的单片机,必须外接程序存贮器一般情况下P2口只能作为系统扩展的高8位地址总线口,而不能作为外部设备的输入/输出口。

第四章单片机的其他片内功能部件4-1-2P2口第四章

单片机的其他片内功能部件P2口作通用I/O口

例4-3

XRLP2,#01H

;字节操作,P2.0取反

CPLP2.0

;位操作,P2.0取反

P2口作地址总线(1)若片外数据存储器的容量≤256B

这时P2口不输出地址,仍可作为I/O口使用例4-4将56H写入外部RAM的38H单元,CPU执行下面的程序段不影响P2口状态: MOVR0,#38H MOVA,#56H MOVX@R0,A

第四章单片机的其他片内功能部件P2口作通用I/O第四章

单片机的其他片内功能部件(2)若片外数据存储器的容量≥256B

MOVXA,@DPTRMOVX@DPTR,A第四章单片机的其他片内功能部件(2)若片外数据存第四章

单片机的其他片内功能部件4-1-3P0口P0口既可作通用I/O口(用8051时)使用,又可作地址/数据分时复用总线使用。

第四章单片机的其他片内功能部件4-1-3P0第四章

单片机的其他片内功能部件

4-1-4P3口

P3口除了作为准双向通用I/O接口使用外,每一根线还具有第二种功能。引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0请求输入端)P3.3INT1(外部中断1请求输入端)P3.4T0(定时器/计数器0计数脉冲输入端)P3.5T1(定时器/计数器1计数脉冲输入端)P3.6WR(片外RAM写选通信号输出端)P3.7RD(片外RAM读选通信号输出端)第四章单片机的其他片内功能部件4-1-4P第四章

单片机的其他片内功能部件4-2 定时器/计数器1、MCS-51内部具有两个定时/计数器,可用于定时控制,分频器和事故处理来用。2、内部是一个二进制加1计数器,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已中止。第四章单片机的其他片内功能部件4-2 定时器/第四章

单片机的其他片内功能部件2个可独立控制的16位定时器/计数器:T0、T1原理:1、定时模式每一个机器周期计数器加1,直至计满溢出产生中断请求。对于一个N位的加1计数器,若计数时钟的频率f是已知的,则从初值a开始加1计数至溢出所占用的时间为:

当N=8、a=0、t=1/f时,最大的定时时间为:T=256t2、计数模式外部输入信号是加到T0(P3.4)或T1(P3.5)端,CPU每个机器周期对T0(或T1)检测一次,只有在前一次检测为1后一次检测为0时才使计数器加1。所以,对外部输入信号的最高计数速率是晶振的1/24。第四章单片机的其他片内功能部件2个可独立控制的1第四章

单片机的其他片内功能部件一.定时器控制、状态寄存器1.TMOD定时器方式寄存器(89H)T1T01)功能选择位C/T: =0,定时功能,计数内部机器周期脉冲; =1,计数功能,计数引脚T0(T1)输入的脉冲下降沿。2)方式选择位M1、M0:4种工作方式:13/16/8位3)门控方式选择位GATE: =0,非门控方式(内部启动):

TRx=1,启动定时器工作;

TRx=0,停止定时器工作。 =1,门控方式(外部启动):TRx=1且引脚INTx=1才启动。第四章单片机的其他片内功能部件一.定时器控制、状第四章

单片机的其他片内功能部件TMOD确定定时器工作方式指令:MOVTMOD,#方式字例:设T0用方式2非门控定时,T1用方式1门控计数。

MOV TMOD,#11010010B或MOV TMOD,#0D2H

第四章单片机的其他片内功能部件TMOD确定定时器第四章

单片机的其他片内功能部件2.TCON定时器控制/状态寄存器(88H)1)启动控制位TR0、TR1 =0,停止定时器工作;=1,启动定时器工作。例:启动T0: SETB TR02)溢出中断标志位TF0、TF1 定时器溢出使TFx=1。中断方式: TFx=1引起中断请求,CPU响应Tx中断后,自动对TFx清0。软件查询方式:可用软件检测TFx,必须软件清0。WAIT:JBCTF0,NEXT;检测T0是否溢出

SJMP WAIT ;未溢出,继续检测 NEXT:… ;溢出,TF0清0,处理溢出第四章单片机的其他片内功能部件2.TCON定时器第四章

单片机的其他片内功能部件3.可预置初值的16位加1定时计数器属于SFR中的一种,T0由TH0、TL0组成,

T1由TH1、TL1组成。通过预设初值来定时。

预置T0初值指令: MOV TH0,#X MOV TL0,#XL第四章单片机的其他片内功能部件3.可预置初值的1第四章

单片机的其他片内功能部件二、定时器工作方式

1.方式013位定时/计数器。计数外部脉冲个数:1~8192(213)。定时时间(12MHz,即:T=1s):1s~8.192ms。C/T=0C/T=1由方式选择位M1、M0设定第四章单片机的其他片内功能部件二、定时器工作方式第四章

单片机的其他片内功能部件THx高8位和TLx低5位组成13位加1计数器例:计算得初值为7692,13位定时器T0应装初值多少?7692化为16进制数1E0CH,则TH0=0FOH,TL0=0CH第四章单片机的其他片内功能部件THx高8位和T第四章

单片机的其他片内功能部件2.方式116位定时/计数器。THx8位和TLx8位组成16位加1计数器计数外部脉冲个数:1~65536(216)定时时间(T=1s):1s~65536×T=65.54msC/T=0C/T=1第四章单片机的其他片内功能部件2.方式1计数外部第四章

单片机的其他片内功能部件3.方式2自动恢复初值8位定时/计数器。TLx为8位加1计数器,THx为8位初值暂存器。无需重装初值,用于需要重复定时和计数的场合。最大计数值:256(28)最大定时时间(T=1s):256s第四章单片机的其他片内功能部件3.方式2自动恢第四章

单片机的其他片内功能部件注意:方式2下,当定时器计满回零时,一方面向CPU发出溢出中断请求,另一方面从TH中重新获得初值并启动计数。方式0、1、3下,定时器必须通过重装初值来重新启动计数。第四章单片机的其他片内功能部件注意:第四章

单片机的其他片内功能部件4.方式3(只适用T0)T0分成2个独立的8位定时器:TL0定时/计数器和TH0定时器TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位。T1不能使用方式3工作,一般当T1作为波特率发生器时,T0选方式3。C/T=0C/T=1第四章单片机的其他片内功能部件4.方式3(只适用第四章

单片机的其他片内功能部件4-2-3定时器/计数器的初始化1.初始化步骤

1)给定时器方式寄存器TMOD送一个方式控制字,以设定定时器/计数器的相应工作方式。2)确定需要定时的时间和需要计数的初值,给定时器/计数器送定时器初值或计数器初值。3)给中断允许寄存器IE选送中断控制字和中断优先级寄存器IP选送中断优先级字,以开放相应中断和设定中断优先级。4)给定时器控制寄存器TCON送命令字,以启动或禁止定时器/计数器的运行。第四章单片机的其他片内功能部件4-2-3定时第四章

单片机的其他片内功能部件2.计数器初值的计算

TC=M-C

式中,TC为计数初值,C为计满所需要的计数个数,M为计数器模数,该值和计数器工作方式有关。在方式0时M为2^13;在方式1时M为2^16;在方式2和方式3时M为2^8。

4-2-3定时器/计数器的初始化第四章单片机的其他片内功能部件2.计数器初值的计第四章

单片机的其他片内功能部件3.定时器初值的计算T=(M-TC)T计数上式也可写成:TC=M-T/T计数式中,M为模值,和定时器的工作方式有关;T计数是单片机时钟周期TCLK的12倍;TC为定时器的定时初值。

4-2-3定时器/计数器的初始化第四章单片机的其他片内功能部件3.定时器初值的计第四章

单片机的其他片内功能部件例4-7若单片机时钟频率为12MHz,请计算定时2ms所需的定时器初值。解:由于定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,因此要想获得2ms的定时时间定时器必须工作在方式0或方式1。若采用方式0,则根据公式可得定时器初值为:TC=M-T/T计数=

2^13

-2*10^3/1=6192=1830H即:TH0应装#0C1H;TL0应装#10H(高三位为0)若采用方式1,则根据公式可得定时器初值为:TC=-2ms/1=63536=F830H即:TH0应装#0F8H;TL0应装#30H。第四章单片机的其他片内功能部件例4-7若单片第四章

单片机的其他片内功能部件例:设8031时钟频率为12MHz,要求定时器T0定时50ms,写出初始化程序。 TC=M-T/T计数=2^16-50ms/1us=15536=3CB0HSTART:MOVTMOD#01H;方式1MOVTH0,#3CH;装初值MOVTL0,#0B0HSETBTR0;启动T0计数WAIT:JBCTF0,TT0;检测T0是否溢出

SJMP WAIT ;未溢出,继续检测TTO:MOVTH0,#3CH;重装初值MOVTL0,#0B0HCPLP1.0;功能?HERE:SJMPHERE第四章单片机的其他片内功能部件例:设8031时钟第四章

单片机的其他片内功能部件4-3 串行接口一.串行通讯的基本方式(一).异步通讯以字符为传送单位用起始位和停止位标识每个字符的开始和结束,字符间隔不固定,只需字符传送时同步。异步通讯常用格式:一个字符帧(二).同步通信每一数据块开头时发送一个或两个同步字符,使发送与接收双方取得同步。数据块的各个字符间取消了起始位和停止位,所以通信速度得以提高。

第四章单片机的其他片内功能部件4-3 串行接口第四章

单片机的其他片内功能部件二.串行接口功能1.发送器:并串数据格式转换,添加标识位和校验位,一帧发送结束,设置结束标志,申请中断。2.接收器:串并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。3.控制器:接收编程命令和控制参数,设置工作方式:同步/异步、字符格式、波特率、校验方式、数据位与同步时钟比例等。4.串行数据传送方向单工通讯:数据单向传送。半双工通讯:数据可分时双向传送。全双工通讯:可同时进行发送和接收第四章单片机的其他片内功能部件二.串行接口功能第四章

单片机的其他片内功能部件三、串行接口控制器1.数据缓冲器SBUF

发送SBUF和接收SBUF共用一个地址99H。

1)发送SBUF存放待发送的8位数据,写入SBUF将同时启动发送。 发送指令: MOV SBUF,A 2)接收SBUF存放已接收成功的8位数据,供CPU读取。 读取串行口接收数据指令:MOVA,SBUF

第四章单片机的其他片内功能部件三、串行接口控制器第四章

单片机的其他片内功能部件2.串行口控制/状态寄存器SCON(98H)SM2:多机控制位,用于多机通讯。REN:允许接收控制位,REN=1,允许接收;REN=0,禁止接收。TB8:发送的第9位数据位,可用作校验位和地址/数据标识位RB8:接收的第9位数据位或停止位TI:发送中断标志,发送一帧结束,TI=1,必须软件清零RI:接收中断标志,接收一帧结束,RI=1,必须软件清零SM0,SM1:选择串行口4种工作方式。第四章单片机的其他片内功能部件2.串行口第四章

单片机的其他片内功能部件波特率:每秒钟传送二进制数码的位数(bit数),单位是bps(bitpersecond)。若波特率为1200bps,字符的实际传送速率为1200/10=120帧/秒。3.节电控制寄存器

PCONSMOD(PCON.7):波特率加倍控制位。SMOD=1,波特率加倍,SMOD=0,则不加倍。第四章单片机的其他片内功能部件波特率:3.节电第四章

单片机的其他片内功能部件四、串行接口的工作方式

SM0,SM1选择四种工作方式。(1)方式0:同步移位寄存器方式。用于扩展并行I/O接口。1.一帧8位,无起始位和停止位。2.RXD:数据输入/输出端。

TXD:同步脉冲输出端,每个脉冲对应一个数据位。3.波特率B=fosc/12

如:fosc=12MHz, B=1MHz,每位数据占1s。4.发送过程:先对TI清零,写入SBUF,启动发送,一帧发送结束,TI=1。接收过程:REN=1且RI=0,启动接收,一帧接收完毕,RI=1第四章单片机的其他片内功能部件四、串行接口的工第四章

单片机的其他片内功能部件串行输入、并行输出移位寄存器内部结构第四章单片机的其他片内功能部件串行输入、并行输出第四章

单片机的其他片内功能部件(2)方式1

8位数据异步通讯方式。1.一帧10位:8位数据位,1个起始位(0),1个停止位(1)。2.RXD:接收数据端。

TXD:发送数据端。3.波特率:用T1作为波特率发生器,B=(2SMOD/32)×T1溢出率。4.发送:先对TI清零,写入SBUF,同时启动发送,一帧发送结束,TI=1。

接收:REN=1,RI=0,允许接收。接收完一帧,将接收数据装入SBUF,并使RI=1。接收原理:当REN=1,CPU开始采样RXD引脚负跳变信号,若出现负跳变,才进入数据接收状态。即先检测起始位,若第一位为0,继续接收其余位;否则,停止接收,重新采样负跳变。数据采样速率为波特率16倍频,在数据位中间,用第7、8、9个脉冲采样3次数据位,并3中取2保留采样值。第四章单片机的其他片内功能部件(2)方式1

8第四章

单片机的其他片内功能部件(2)方式

8位数据异步通讯方式。写入SBUF采样(a)发送时序图TXD数据输出TID0D1D2D3D4D5D6D7停止位起始位RXD输入数据(b)接收时序图D0D1D2D3D4D5D6D7停止位起始位RI检测负跳变第四章单片机的其他片内功能部件(2)方式写入采第四章

单片机的其他片内功能部件(3)方式2和方式3

9位数据异步通讯方式。1.一帧为11位:9位数据位,1个起始位(0),1个停止位(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,SM2=0或RB8=1,将接收数据装入接收SBUF,第9位装入RB8,使RI=1;否则丢弃接收数据,不置位RI。

第四章单片机的其他片内功能部件(3)方式2和方第四章

单片机的其他片内功能部件(3)方式2和方式3

9位数据异步通讯方式。发送时序写入SBUFTXD输出TIRXD输入接收时序RID0D1D2D3D4D5D6TB8停止位起始位D7D0D1D2D3D4D5D6RB8停止位起始位D7检测负跳变第四章单片机的其他片内功能部件(3)方式2和方第四章

单片机的其他片内功能部件(4)计算波特率方式0为固定波特率:B=fosc/12 方式2可选两种波特率:B=(2SMOD/64)×fosc 方式1、3为可变波特率,用T1作波特率发生器。

B=(2SMOD/32)×T1溢出率T1为方式2的溢出时间: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/12×2SMOD/(32×B)T1选方式1用于低波特率,需考虑T1重装时间常数时间。第四章单片机的其他片内功能部件(4)计算波特率方第四章

单片机的其他片内功能部件4-3-5单片机双机通讯和多机通信1.双机通讯第四章单片机的其他片内功能部件4-3-5单片第四章

单片机的其他片内功能部件串行口的应用

串行口初始化编程格式:

SIO:MOVSCON,#××H;方式字,且TI=RI=0 MOVPCON,#80H ;波特率加倍

MOVTMOD,#20H ;T1作波特率发生器,方式2

MOVTH1,#X;选定波特率

MOVTL1,#X SETBTR1 SETBEA;开串行口中断

SETBES第四章单片机的其他片内功能部件串行口的应用第四章

单片机的其他片内功能部件发送程序:先发送一个字符,等待TI=1后再发送下一个字符。1.查询方式:TRAM:MOVA,@R0 ;取数据

MOVSBUF,A ;发送一个字符WAIT:JBC TI,NEXT ;等待发送结束SJMPWAITNEXT:INC R0;准备下一次发送SJMPTRAM2.中断方式:

ORG 0023H ;串行口中断入口

AJMPSINTMAIN: … ;初始化编程TRAM:MOV A,@R0 ;取数据

MOV SBUF,A;发送第一个字符

H:SJMP H;其它工作

SINT:CLRTI ;中断服务程序

INC R0 MOV A,@R0 ;取数据

MOV SBUF,A;发送下一个字符

RETI第四章单片机的其他片内功能部件发送程序:先发送一第四章

单片机的其他片内功能部件接收程序:REN=1、RI=0等待接收,当RI=1,从SBUF读取数据。1.查询方式:

WAIT: JBC RI,NEXT ;查询等待

SJMP WAIT NEXT: MOV A,SBUF ;读取接收数据

MOV @R0,A ;保存数据

INC R0 ;准备下一次接收

SJMP WAIT2.中断方式:

ORG 0023H AJMP RINT MAIN: … ;初始化编程

H: SJMP H ;其它任务

RINT: CLR RI ;清中断标志

MOV A,SBUF ;读取接收数据

MOV @R0,A ;保存数据

INC R0 RETI第四章单片机的其他片内功能部件接收程序:REN=第四章

单片机的其他片内功能部件(一)串行口方式0用于扩展单片机的并行I/O接口串行口实现:并行→串行的数据转换

74LS165/74LS164实现:串行→并行的数据转换。(二)异步通讯程序举例

1.发送程序:将片内RAM50H起始单元的16个数由串行口发送。要求发送波特率为系统时钟的32分频,并进行奇偶校验。 MAINT:MOV SCON,#80H;串行口初始化,方式2

MOV PCON,#80H;波特率,SMOD=1

SETB EA SETB ES ;开串行口中断

MOV R0,#50H ;设数据指针

MOV R7,#10H ;数据长度 LOOP: MOV A,@R0 ;取一个字符

MOV C,P ;加奇偶校验

MOV TB8,C MOV SBUF,A ;启动一次发送 HERE: SJMP HERE ;CPU执行其它任务第四章单片机的其他片内功能部件(一)串行口方式0第四章

单片机的其他片内功能部件

ORG 0023H ;串行口中断入口

AJMP TRANITRANI: PUSH A ;保护现场

PUSH PSW CLR TI ;清发送结束标志

DJNZ R7,NEXT ;是否发送完?

CLR ES ;发送完,关闭串行口中断 SJMP TENDNEXT: INC R0 ;未发送完,修改指针

MOV A,@R0 ;取下一个字符

MOV C,P ;加奇偶校验

MOV TB8,C MOV SBUF,A ;发送一个字符

POP PSW ;恢复现场

POP A TEND: RETI ;中断返回第四章单片机的其他片内功能部件第四章

单片机的其他片内功能部件2.接收程序:串行输入16个字符,存入片内RAM的50H起始单元,串行口波特率为2400(设晶振为11.0592MHz)。RECS: MOV SCON,#50H;串行口方式1允许接收 MOV TMOD,#20H;T1方式2定时 MOV TL1,#0F4H ;写入T1时间常数 MOV TH1,#0F4H SETBTR1;启动T1 MOV R0,#50H ;设数据指针 MOV R7,#10H ;接收数据长度 WAIT: JBC RI,NEXT ;等待串行口接收 SJMPWAIT NEXT: MOV A,SBUF ;读取接收字符 MOV @R0,A ;保存一个字符 INC R0 ;修改指针 DJNZR7,WAIT ;全部字符接收完? RET第四章单片机的其他片内功能部件2.接收程序:串第四章

单片机的其他片内功能部件3.接收程序:串行输入16个字符,进行奇偶校验。RECS: MOV SCON,#0D0H;串行口方式3允许接收

MOV TMOD,#20H;T1方式2定时

MOV TL1,#0F4H;写入T1时间常数

MOV TH1,#0F4H SETBTR1 ;启动T1 MOV R0,#50H;设数据指针

MOV R7,#10H ;接收数据长度

WAIT: JBC RI,NEXT ;等待串行口接收

SJMPWAIT NEXT: MOV A,SBUF ;取一个接收字符

JNB P,COMP ;奇偶校验

JNB RB8,ERR ;P≠RB8,数据出错

SJMPRIGHT ;P=RB8,数据正确COMP: JB RB8,ERRRIGHT: MOV @R0,A;保存一个字符

INC R0 ;修改指针

DJNZR7,WAIT ;全部字符接收完?

CLR F0 ;F0=0,接收数据全部正确

ERR: SETBF0 ;F0=1,接收数据出错

RET第四章单片机的其他片内功能部件3.接收程序:串第四章

单片机的其他片内功能部件4-4 中断系统4.4.1中断系统概述一、中断的概念中央处理器CPU正在处理某事件的时候,外部发生了更为紧急的事件,请求CPU暂停当前的工作,转入处理所发生的事情,处理完后,再回到被中断的地方,继续原来的工作,这样的过程称为中断。第四章单片机的其他片内功能部件4-4 中断系第四章

单片机的其他片内功能部件中断技术的优点:提高CPU的效率。提高实时数据的处理时效。被控对象的实时参数、越限数据和故障信息为计算机及时采集,以便应急处理。故障处理如掉电中断。中断系统的功能:中断优先权排队根据轻重缓急排队,优先处理最紧急事件的中断请求。实现中断嵌套

CPU处理中断时,发生另一个优先级更高的中断请求,CPU转而响应优先级更高的中断请求,处理完之后再回到原来中断服务程序。自动响应中断实现中断返回。第四章单片机的其他片内功能部件中断技术的优点:第四章

单片机的其他片内功能部件二、中断系统结构2个外部中断源信号:INT0、INT12个定时器T0、T1溢出中断请求:TF0、TF11个串行口数据发送、接收结束中断请求:TI、RI第四章单片机的其他片内功能部件二、中断系统结构2第四章

单片机的其他片内功能部件三、中断控制寄存器第四章单片机的其他片内功能部件三、中断控制寄存器第四章

单片机的其他片内功能部件四、中断控制寄存器中的各中断标志1.中断标志位:

TF1、TF0、IE1、IE0、RI、TI

TCONSCON登记各中断源请求信号:=1,有中断请求;=0,无中断请求。CPU响应中断后,各中断标志自动清零。注意:TI,RI标志必须软件清零。2.外部中断触发方式选择位:IT0、IT1=1,负边沿触发中断请求;=0,低电平触发中断请求。第四章单片机的其他片内功能部件四、中断控制寄存器第四章

单片机的其他片内功能部件3.中断允许控制位:EA、ES、ET1、EX1、ET0、EX0IE=1,开中断;=0,关中断。例:允许CPU响应T0的中断请求

MOVIE,#82H或者SETBET0 SETBEA4.中断优先级控制位:PS、PT1、PX1、PT0、PX0IP2级优先级:=1,为高优先级;=0,为低优先级。 同一优先级别按内部查询顺序排列优先级:

高INT0、T0、INT1、T1、SIO低。五、中断控制寄存器中各控制位第四章单片机的其他片内功能部件3.中断允许控制位第四章

单片机的其他片内功能部件注意:一种中断一旦得到响应,与它同级的中断不能再中断它。低优先级中断可以被高优先级中断所中断,反之不能。第四章单片机的其他片内功能部件注意:第四章

单片机的其他片内功能部件4.4.2中断处理过程1.中断响应(一)中断响应条件1.有中断源发出中断请求;2.中断总允许位EA=1,即CPU开中断;3.相应的中断允许位为1,即没有屏蔽。(二)响应过程1.阻断同级或低级中断;2.PC指针内容压栈保护;3.相应中断入口地址装入PC,程序转移到该中断入口地址单元。第四章单片机的其他片内功能部件4.4.2中断处第四章

单片机的其他片内功能部件(三)中断响应阻断 1.当CPU未执行完一条指令。 2.当有同级或高级中断服务。 3.执行RET、RETI等指令后,不能立即响应中断。4.4.2中断处理过程1.中断响应第四章单片机的其他片内功能部件(三)中断响应阻第四章

单片机的其他片内功能部件2.中断处理注意:(1)各中断源的入口矢量地址之间,相隔8个单元,通常是在中断入口矢量地址单元处存放一条无条件转移指令,转至存储器其他的任何空间去执行中断服务程序。

(2)若要在执行当前中断程序时禁止更高优先级中断,应用软件关闭CPU中断,或屏蔽更高级中断源的中断,在中断返回前再开放中断。

(3)在保护现场和恢复现场时,为了不使现场信息受到破坏或造成混乱,一般在此情况下,应关CPU中断,使CPU暂不响应新的中断请求。3.中断返回中断返回指令:

RETI=RET指令+通知CPU中断服务已结束。第四章单片机的其他片内功能部件2.中断处理第四章

单片机的其他片内功能部件4.4.3中断系统应用中断服务程序的—般格式如下:

CLR EA ;关中断PUSHPSW;保护现场PUSHA…SETB EA ;开中断,允许CPU响应高级中断…;服务程序CLR EA ;关中断POPA;恢复现场POPPSW…SETB EA ;开中断RETI ;中断返回第四章单片机的其他片内功能部件4.4.3中断系第四章

单片机的其他片内功能部件1.定时器/计数器的应用和编程

例4-10产生2ms的方波

ORG 0000H RESET:AJMP MAIN

;转主程序

ORG000BH

;转中断处理程序

AJMP IT0P

ORG0100H MAIN:MOVSP,#60H ACALL PT0M0 HERE:SJMPHERE;等待中断 PT0M0:MOV TL0,#0CH ;T0置初值

MOV TH0,#0F0H SETB TR0 SETB ET0 ;允许T0中断

SETBEA ;CPU开放中断

RET第四章单片机的其他片内功能部件1.定时器/计数器第四章

单片机的其他片内功能部件IT0P:MOV TL0,#0CH ;T0重新置初值

MOV TH0,#0F0H CPL P1.0 ;P1.0取反

RETI第四章单片机的其他片内功能部件IT0P:M第四章

单片机的其他片内功能部件2.串行口的应用和编程

例4-12MAIN:MOVTMOD,#20H;T1,方式2,产生波特率MOVTHl,#0FDH;T1装初值MOVTL1,#0FDHSETBTRlMOVSCON,#52H;选串行口方式l,允许接收,MOVR4,#0;R4作字符串表指针MOVDPTR,#TSABMLPl:MOVA,R4MOVCA,@A+DPTRJZMLP6;字符串以0表示结束MLP3:JBCTI,MLP2;判断上一位是否发送完SJMPMLP3MLP2:MOVSBUF,A;发送下一位INCR4;位指针加一SJMPMLP1第四章单片机的其他片内功能部件2.串行口的应用和第四章

单片机的其他片内功能部件MLP6:JBCRI,MLP5;上一位接收完则接收下一位数SJMPMLP6;未接收完则等待MLP5:MOVA,SBUFMLP8:JBCTI,MLP7;上一位发送完则发送下一位数SJMPMLP8;未发送完则等待MLP7:MOVSBUF,ASJMPMLP6TSAB:DB‘MCS-51Microcomputer’DB0AH,0DH,0第四章单片机的其他片内功能部件MLP6:J第四章

单片机的其他片内功能部件4-1 并行I/O口4-2 定时器/计数器4-3 串行通信接口4-4 中断系统第四章单片机的其他片内功能部件4-1 并行I/O第四章

单片机的其他片内功能部件I/O接口的作用实现和不同外设的速度匹配改变数据传送方式改变信号的性质和电平第四章单片机的其他片内功能部件I/O接口的作用第四章

单片机的其他片内功能部件外部设备的编址方式1.对外设端口单独编址

INA,(N);N端口中的数OUT(N),A2.外设端口和存储器统一编址将一部分地址空间让给外设端口,存储器不再使用。优点:(1)一切指令均适用于I/O端口的访问,增强了CPU对外围设备的处理能力。(2)CPU本身不需要专门的I/O指令。(3)外设地址安排灵活,数量不限。第四章单片机的其他片内功能部件外部设备的编址方式第四章

单片机的其他片内功能部件端口与接口端口:常指I/O接口中带有端口地址的寄存器或缓冲器,CPU通过端口地址就可以对端口中信息进行读写。接口:指CPU与外设间的I/O接口芯片,一个外设通常需要一个I/O接口,但一个I/O接口可以有多个I/O端口,传送数据字的端口称数据口,传送命令字的称命令口,传送状态字的称为状态口。第四章单片机的其他片内功能部件端口与接口第四章

单片机的其他片内功能部件4-1并行I/O口四个8位并行I/O端口:P0、P1、P2和P3。每个端口都是8位准双向口,包含一个锁存器(即特殊功能寄存器P0~P3)、一个输出驱动器和一个输入缓冲器。这四个并行I/O口都可以作准双向通用I/O口,既可以作输入口,又可以作输出口,还可以作双向口。输出有锁存功能;输入有三态缓冲但无锁存功能。它们既可以以字节寻址,也可以按位独立输入/输出。第四章单片机的其他片内功能部件4-1并行I/O第四章

单片机的其他片内功能部件三种I/O端口操作方式1.数据输出方式(写端口)通过一条指令将数据写入P0-P3的数据锁存器,然后通过输出驱动器送到端口引脚。MOVP0,A;累加器A中内容送P0口2.读端口对端口锁存器数据进行读入,这个数据并非端口引脚上的数据ORLP1,#0F0H;P1锁存器中数据送A,经“与”运算后,送P1锁存器第四章单片机的其他片内功能部件三种I/O端口操作第四章

单片机的其他片内功能部件3.读引脚从端口引脚上读数据,先使对应端口锁存器置位,使T管截止,然后打开数据缓冲器,使引脚数据输入数据总线。MOVP1,#0FH;使P1口低四位锁存器置位MOVA,P1;读P1口低四位引脚线信号第四章单片机的其他片内功能部件3.读引脚第四章

单片机的其他片内功能部件P1口的位结构第四章单片机的其他片内功能部件P1口的位结构第四章

单片机的其他片内功能部件4-1-1P1口通用I/O口 可以采用字节操作也可以采用位操作,CPU既可以把它们看作数据口也可以看作状态口。

CPU复位后,口锁存器为“1”,对于作为输入的口脚(读引脚),相应位的口锁存器不能写入“0”。第四章单片机的其他片内功能部件4-1-1P1口第四章

单片机的其他片内功能部件例4-1读P1.4~P1.7口状态送指示灯显示。字节操作参考程序:

ORLP1,#0F0H;P1.4~P1.7口锁存器置1

MOVA,P1;读P1.4~P1.7引脚状态

SWAPA;

MOVP1,A;

RET第四章单片机的其他片内功能部件例4-1读P第四章

单片机的其他片内功能部件4-1-2P2口P2口有两种功能:对于内部有程序存贮器的单片机,P2口既可以作为输入/输出口使用,也可以作为系统扩展的地址总线口,输出高8位地址A8~A15。对于内部没有程序存贮器的单片机,必须外接程序存贮器一般情况下P2口只能作为系统扩展的高8位地址总线口,而不能作为外部设备的输入/输出口。

第四章单片机的其他片内功能部件4-1-2P2口第四章

单片机的其他片内功能部件P2口作通用I/O口

例4-3

XRLP2,#01H

;字节操作,P2.0取反

CPLP2.0

;位操作,P2.0取反

P2口作地址总线(1)若片外数据存储器的容量≤256B

这时P2口不输出地址,仍可作为I/O口使用例4-4将56H写入外部RAM的38H单元,CPU执行下面的程序段不影响P2口状态: MOVR0,#38H MOVA,#56H MOVX@R0,A

第四章单片机的其他片内功能部件P2口作通用I/O第四章

单片机的其他片内功能部件(2)若片外数据存储器的容量≥256B

MOVXA,@DPTRMOVX@DPTR,A第四章单片机的其他片内功能部件(2)若片外数据存第四章

单片机的其他片内功能部件4-1-3P0口P0口既可作通用I/O口(用8051时)使用,又可作地址/数据分时复用总线使用。

第四章单片机的其他片内功能部件4-1-3P0第四章

单片机的其他片内功能部件

4-1-4P3口

P3口除了作为准双向通用I/O接口使用外,每一根线还具有第二种功能。引脚第二功能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0请求输入端)P3.3INT1(外部中断1请求输入端)P3.4T0(定时器/计数器0计数脉冲输入端)P3.5T1(定时器/计数器1计数脉冲输入端)P3.6WR(片外RAM写选通信号输出端)P3.7RD(片外RAM读选通信号输出端)第四章单片机的其他片内功能部件4-1-4P第四章

单片机的其他片内功能部件4-2 定时器/计数器1、MCS-51内部具有两个定时/计数器,可用于定时控制,分频器和事故处理来用。2、内部是一个二进制加1计数器,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已中止。第四章单片机的其他片内功能部件4-2 定时器/第四章

单片机的其他片内功能部件2个可独立控制的16位定时器/计数器:T0、T1原理:1、定时模式每一个机器周期计数器加1,直至计满溢出产生中断请求。对于一个N位的加1计数器,若计数时钟的频率f是已知的,则从初值a开始加1计数至溢出所占用的时间为:

当N=8、a=0、t=1/f时,最大的定时时间为:T=256t2、计数模式外部输入信号是加到T0(P3.4)或T1(P3.5)端,CPU每个机器周期对T0(或T1)检测一次,只有在前一次检测为1后一次检测为0时才使计数器加1。所以,对外部输入信号的最高计数速率是晶振的1/24。第四章单片机的其他片内功能部件2个可独立控制的1第四章

单片机的其他片内功能部件一.定时器控制、状态寄存器1.TMOD定时器方式寄存器(89H)T1T01)功能选择位C/T: =0,定时功能,计数内部机器周期脉冲; =1,计数功能,计数引脚T0(T1)输入的脉冲下降沿。2)方式选择位M1、M0:4种工作方式:13/16/8位3)门控方式选择位GATE: =0,非门控方式(内部启动):

TRx=1,启动定时器工作;

TRx=0,停止定时器工作。 =1,门控方式(外部启动):TRx=1且引脚INTx=1才启动。第四章单片机的其他片内功能部件一.定时器控制、状第四章

单片机的其他片内功能部件TMOD确定定时器工作方式指令:MOVTMOD,#方式字例:设T0用方式2非门控定时,T1用方式1门控计数。

MOV TMOD,#11010010B或MOV TMOD,#0D2H

第四章单片机的其他片内功能部件TMOD确定定时器第四章

单片机的其他片内功能部件2.TCON定时器控制/状态寄存器(88H)1)启动控制位TR0、TR1 =0,停止定时器工作;=1,启动定时器工作。例:启动T0: SETB TR02)溢出中断标志位TF0、TF1 定时器溢出使TFx=1。中断方式: TFx=1引起中断请求,CPU响应Tx中断后,自动对TFx清0。软件查询方式:可用软件检测TFx,必须软件清0。WAIT:JBCTF0,NEXT;检测T0是否溢出

SJMP WAIT ;未溢出,继续检测 NEXT:… ;溢出,TF0清0,处理溢出第四章单片机的其他片内功能部件2.TCON定时器第四章

单片机的其他片内功能部件3.可预置初值的16位加1定时计数器属于SFR中的一种,T0由TH0、TL0组成,

T1由TH1、TL1组成。通过预设初值来定时。

预置T0初值指令: MOV TH0,#X MOV TL0,#XL第四章单片机的其他片内功能部件3.可预置初值的1第四章

单片机的其他片内功能部件二、定时器工作方式

1.方式013位定时/计数器。计数外部脉冲个数:1~8192(213)。定时时间(12MHz,即:T=1s):1s~8.192ms。C/T=0C/T=1由方式选择位M1、M0设定第四章单片机的其他片内功能部件二、定时器工作方式第四章

单片机的其他片内功能部件THx高8位和TLx低5位组成13位加1计数器例:计算得初值为7692,13位定时器T0应装初值多少?7692化为16进制数1E0CH,则TH0=0FOH,TL0=0CH第四章单片机的其他片内功能部件THx高8位和T第四章

单片机的其他片内功能部件2.方式116位定时/计数器。THx8位和TLx8位组成16位加1计数器计数外部脉冲个数:1~65536(216)定时时间(T=1s):1s~65536×T=65.54msC/T=0C/T=1第四章单片机的其他片内功能部件2.方式1计数外部第四章

单片机的其他片内功能部件3.方式2自动恢复初值8位定时/计数器。TLx为8位加1计数器,THx为8位初值暂存器。无需重装初值,用于需要重复定时和计数的场合。最大计数值:256(28)最大定时时间(T=1s):256s第四章单片机的其他片内功能部件3.方式2自动恢第四章

单片机的其他片内功能部件注意:方式2下,当定时器计满回零时,一方面向CPU发出溢出中断请求,另一方面从TH中重新获得初值并启动计数。方式0、1、3下,定时器必须通过重装初值来重新启动计数。第四章单片机的其他片内功能部件注意:第四章

单片机的其他片内功能部件4.方式3(只适用T0)T0分成2个独立的8位定时器:TL0定时/计数器和TH0定时器TL0占用T0控制位:C/T,TR0,GATE;TH0占用T1控制位。T1不能使用方式3工作,一般当T1作为波特率发生器时,T0选方式3。C/T=0C/T=1第四章单片机的其他片内功能部件4.方式3(只适用第四章

单片机的其他片内功能部件4-2-3定时器/计数器的初始化1.初始化步骤

1)给定时器方式寄存器TMOD送一个方式控制字,以设定定时器/计数器的相应工作方式。2)确定需要定时的时间和需要计数的初值,给定时器/计数器送定时器初值或计数器初值。3)给中断允许寄存器IE选送中断控制字和中断优先级寄存器IP选送中断优先级字,以开放相应中断和设定中断优先级。4)给定时器控制寄存器TCON送命令字,以启动或禁止定时器/计数器的运行。第四章单片机的其他片内功能部件4-2-3定时第四章

单片机的其他片内功能部件2.计数器初值的计算

TC=M-C

式中,TC为计数初值,C为计满所需要的计数个数,M为计数器模数,该值和计数器工作方式有关。在方式0时M为2^13;在方式1时M为2^16;在方式2和方式3时M为2^8。

4-2-3定时器/计数器的初始化第四章单片机的其他片内功能部件2.计数器初值的计第四章

单片机的其他片内功能部件3.定时器初值的计算T=(M-TC)T计数上式也可写成:TC=M-T/T计数式中,M为模值,和定时器的工作方式有关;T计数是单片机时钟周期TCLK的12倍;TC为定时器的定时初值。

4-2-3定时器/计数器的初始化第四章单片机的其他片内功能部件3.定时器初值的计第四章

单片机的其他片内功能部件例4-7若单片机时钟频率为12MHz,请计算定时2ms所需的定时器初值。解:由于定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,因此要想获得2ms的定时时间定时器必须工作在方式0或方式1。若采用方式0,则根据公式可得定时器初值为:TC=M-T/T计数=

2^13

-2*10^3/1=6192=1830H即:TH0应装#0C1H;TL0应装#10H(高三位为0)若采用方式1,则根据公式可得定时器初值为:TC=-2ms/1=63536=F830H即:TH0应装#0F8H;TL0应装#30H。第四章单片机的其他片内功能部件例4-7若单片第四章

单片机的其他片内功能部件例:设8031时钟频率为12MHz,要求定时器T0定时50ms,写出初始化程序。 TC=M-T/T计数=2^16-50ms/1us=15536=3CB0HSTART:MOVTMOD#01H;方式1MOVTH0,#3CH;装初值MOVTL0,#0B0HSETB

温馨提示

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

评论

0/150

提交评论