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

下载本文档

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

文档简介

1、l实现和不同外设的速度匹配l改变数据传送方式l改变信号的性质和电平外部设备的编址外部设备的编址1.对外设端口单独编址对外设端口单独编址 IN A,(N) ;N端口中的数 OUT (N),A2.外设端口和存储器统一编址外设端口和存储器统一编址将一部分地址空间让给外设端口,存储器不再使用。优点:优点:(1)一切指令均适用于I/O端口的访问,增强了CPU对外围设备的处理能力。(2)CPU本身不需要专门的I/O指令。(3)外设地址安排灵活,数量不限。l端口:端口:常指常指I/O接口中带有端口地址的寄存器接口中带有端口地址的寄存器或缓冲器,或缓冲器,CPU通过端口地址就可以对端口通过端口地址就可以对端口

2、中信息进行读写。中信息进行读写。l接口:接口:指指CPU与外设间的与外设间的I/O接口芯片,一个接口芯片,一个外设通常需要一个外设通常需要一个I/O接口,但一个接口,但一个I/O接口接口可以有多个可以有多个I/O端口,传送数据字的端口称数端口,传送数据字的端口称数据口,传送命令字的称命令口,传送状态字据口,传送命令字的称命令口,传送状态字的称为状态口。的称为状态口。v四个四个8位并行位并行I/O端口:端口:P0P0、P1P1、P2P2和和P3P3。v每个端口都是每个端口都是8位准双向口,包含一个锁存器位准双向口,包含一个锁存器(即特殊功能寄存器即特殊功能寄存器P0P0P3P3)、)、一个输出驱

3、动器一个输出驱动器和一个输入缓冲器。和一个输入缓冲器。v这四个并行这四个并行I/OI/O口都可以作准双向通用口都可以作准双向通用I/OI/O口,既口,既可以作输入口,又可以作输出口,还可以作双向可以作输入口,又可以作输出口,还可以作双向口。口。输出有锁存功能;输入有三态缓冲但无锁存输出有锁存功能;输入有三态缓冲但无锁存功能功能。它们既可以以字节寻址,也可以按位独立。它们既可以以字节寻址,也可以按位独立输入输入/ /输出。输出。 三种I/O端口操作方式1.数据输出方式(写端口)通过一条指令将数据写入P0-P3的数据锁存器,然后通过输出驱动器送到端口引脚。MOV P0,A ;累加器A中内容送P0口

4、2.读端口对端口锁存器数据进行读入,这个数据并非端口引脚上的数据MOV A,P1 ;P1锁存器中数据送A3.读引脚从端口引脚上读数据,先使对应端口锁存器置位,使T管截止,然后打开数据缓冲器,使引脚数据输入数据总线。MOV P1,#0FH ;使P1口低四位锁存器置位MOV A,P1 ;读P1口低四位引脚线信号P1.X锁存器读锁存器内部总线写锁存器读引脚VCC内部上拉电阻QQDCLP1.X引脚P1口的位结构口的位结构l通用I/O口可以采用字节操作也可以采用位操作,CPU既可以把它们看作数据口也可以看作状态口。CPU复位后,口锁存器为“1”,对于作为输入的口脚(读引脚),相应位的口锁存器不能写入“0

5、”。例41读P1.4P1.7口状态送指示灯显示。 字节操作参考程序: ORL P1,#0F0H ;P1.4P1.7口锁存器置口锁存器置1 MOV A,P1 ;读读P1.4P1.7引脚状态引脚状态 SWAP A ; MOV P1,A ; RET P2口有两种功能: 对于内部有程序存贮器的单片机,P2口既可以作为输入/输出口使用,也可以作为系统扩展的地址总线口,输出高8位地址A8A15。 对于内部没有程序存贮器的单片机,必须外接程序存贮器,一般情况下P2口只能作为系统扩展的高8位地址总线口,而不能作为外部设备的输入输出口。 P2口作通用口作通用I/O口口 例4-3 XRL P2,#01H ;P2.

6、0取反CPL P2.0 ;P2.0取反 P2口作地址总线口作地址总线(1)若片外数据存储器的容量)若片外数据存储器的容量256256B B 这时这时P2P2口不输出地址,仍可作为口不输出地址,仍可作为I/OI/O口使用口使用例4-4 将56H写入外部RAM的38H单元,CPU执行下面的程序段不影响P2口状态: MOV R0, #38H MOV A, #56H MOVX R0, A (2)若片外数据存储器的容量)若片外数据存储器的容量256B MOVX A,DPTR MOVX DPTR,A P0口既可作通用I/O口(用8051时)使用,又可作地址数据分时复用总线使用。 P3口除了作为准双向通用I

7、/O接口使用外,每一根线还具有第二种功能 。引脚第 二 功 能P3.0RXD(串行输入口)P3.1TXD(串行输出口)P3.2INT0(外部中断0请求输入端)P3.3INT1(外部中断1请求输入端)P3.4T0(定时器/计数器0计数脉冲输入端)P3.5T1(定时器/计数器1计数脉冲输入端)P3.6WR(片外RAM写选通信号输出端)P3.7RD(片外RAM读选通信号输出端)1、MCS-51内部具有两个定时/计数器,可用于定时控制,分频器和事故处理来用。2、内部是一个二进制加1计数器,当计数器计满回零时能自动产生溢出中断请求,表示定时时间已到或计数已中止。2 2个可独立控制的个可独立控制的1616

8、位定时器位定时器/ /计数器:计数器:T0T0、T1T1原理:原理:1、定时模式每一个机器周期计数器加1,直至计满溢出产生中断请求。对于一个N位的加1计数器,若计数时钟的频率f是已知的,则从初值a开始加1计数至溢出所占用的时间为:当N=8、a=0、t=1/f时,最大的定时时间为: T=256t 2、计数模式外部输入信号是加到T0(P3.4)或T1(P3.5)端,CPU每个机器周期对T0(或T1)检测一次,只有在前一次检测为1后一次检测为0时才使计数器加1。所以,对外部输入信号的最高计数速率是晶振的1/24。)2(*1afN一一. .定时器控制、状态寄存器定时器控制、状态寄存器1.1.TMTMO

9、D D定时器定时器方式寄存器方式寄存器(8989H H)1 1)功能选择位)功能选择位C/TC/T:=0=0,定时功能,计数内部机器周期脉冲;定时功能,计数内部机器周期脉冲;=1=1,计数功能,计数引脚,计数功能,计数引脚T0(T1)T0(T1)输入的脉冲下降沿。输入的脉冲下降沿。2 2)方式选择位)方式选择位M1M1、M0M0:4 4种工作方式:种工作方式:13/16/813/16/8位位3 3)门控方式选择位)门控方式选择位GATE GATE : =0=0,非门控方式非门控方式( (内部启动内部启动) ):TRx=1TRx=1,启动定时器工作;启动定时器工作;TRx=0TRx=0,停止定时

10、器工作。停止定时器工作。=1=1,门控方式,门控方式( (外部启动外部启动) ):TRx=1TRx=1且引脚且引脚INTx=1INTx=1才启动。才启动。GATEC/TM1M0GATEC/TM1M0T1T0M1 M0方方式式功功能能描描述述0 0013位位0 1116位位1 028位位自自动动重重装装1 13T0为为两两个个8位位 M MOV VTMTMOD D,#1101 0010B#1101 0010B 或或 M MOV VTMTMOD D,#0D2H#0D2H注:只能字节寻址注:只能字节寻址 GATEC/TM1M0GATEC/TM1M0TMTMOD D确定定时器工作方式指令:确定定时器工

11、作方式指令:M MOV TMV TMOD D,# #方式字方式字例:例:设设T0T0用方式用方式2 2非门控定时,非门控定时,T1T1用方式用方式1 1门控计数。门控计数。1 1)启动控制位)启动控制位TR0TR0、TR1TR1=0=0,停止定时器工作;停止定时器工作; =1=1,启动定时器工作。,启动定时器工作。例:启动例:启动T0T0:SETBSETBTR0 ;TR0 ;注:可以位寻址注:可以位寻址2 2)溢出中断标志位)溢出中断标志位TF0TF0、TF1TF1定时器溢出使定时器溢出使TFx=1TFx=1。中断方式:中断方式: TFx=1 TFx=1引起中断请求,引起中断请求,CPUCPU

12、响应响应TxTx中断后,自动对中断后,自动对TFxTFx清清0 0 。软件查询方式:软件查询方式: 可用软件检测可用软件检测TFxTFx,必须软件清必须软件清0 0。WAITWAIT:JBC TF0JBC TF0,NEXTNEXT;检测检测T0T0是否溢出是否溢出SJMPSJMPWAITWAIT ;未溢出,继续检测未溢出,继续检测NEXTNEXT: ;溢出,溢出,TF0TF0清清0 0,处理溢出,处理溢出TF1TR1TF0TR03 3可预置初值的可预置初值的1616位加位加1 1定时计数器定时计数器 属于属于SFRSFR中的一种,中的一种,T0T0由由TH0TH0、TL0TL0组成,组成, T

13、1T1由由TH1TH1、TL1TL1组成。通过预设初值来定时。组成。通过预设初值来定时。预置预置T0T0初值指令:初值指令:M MOV VTH0TH0,#X#XH HM MOV VTL0TL0,#X#XL L1313位定时位定时/ /计数器。计数器。计数外部脉冲个数:计数外部脉冲个数:1 18192(28192(21313) )定时时间定时时间(12(12MHzMHz,即:即:T=1T=1 s)s):1 1 s s 8.192ms8.192msusfatosc12)2(13TRxINTxGATE振荡器振荡器12THxTLxTFx8位位 5位位Tx脚脚&TRx 1GATE启动启动控制控制

14、INTxC/T=0C/T=1中断中断申请申请THx THx 高高8 8位和位和TLx TLx 低低5 5位组成位组成1313位加位加1 1计数器计数器例:计算得初值为例:计算得初值为76927692,1313位定时器位定时器T0T0应装初值应装初值多少?多少?76927692化为化为1616进制数进制数1 1E0CH,E0CH,则则TH0TH00FOH,TL0=0CH0FOH,TL0=0CHT1T9T8T7T6T5T4T3T2T13T12T11T10TH0/TH1TL0/TL11616位定时位定时/ /计数器。计数器。 THx8THx8位和位和TLx8TLx8位组成位组成1616位加位加1 1

15、计数器计数器计数外部脉冲个数:计数外部脉冲个数:1 165536(265536(21616) )定时时间定时时间( (T=1T=1 s)s):1 1 s s 65536 65536T= 65.54msT= 65.54msusfatosc12)2(16振荡器振荡器12THxTLxTFx8位位 8位位Tx脚脚&TRx 1GATE启动启动控制控制INTxC/T=0C/T=1中断中断申请申请自动恢复初值自动恢复初值8 8位定时位定时/ /计数器。计数器。TLxTLx为为8 8位加位加1 1计数器,计数器,THxTHx为为8 8位初值暂存器。位初值暂存器。无需重装初值,用于需要重复定时无需重装初

16、值,用于需要重复定时和计数的场合。和计数的场合。最大计数值:最大计数值:256 (2256 (28 8) )最大定时时间最大定时时间( (T=1T=1 s)s): 256 256 s susfatosc12)2(8振荡器振荡器12TLxTHxTFx8位位 Tx脚脚&TRx 1GATE启动启动控制控制INTxC/T=0C/T=1中断中断申请申请重重装装 方式方式2下,当定时器计满回零时,一方面向下,当定时器计满回零时,一方面向CPU发出溢出中断请求,另一方面从发出溢出中断请求,另一方面从TH中重新获得初值并启动计数。中重新获得初值并启动计数。 而方式而方式0、1、3下,定时器必须通过重装

17、初下,定时器必须通过重装初值来重新启动计数。值来重新启动计数。T0T0分成分成2 2个独立的个独立的8 8位定时器:位定时器:TL0TL0定时定时/ /计数器和计数器和TH0TH0定时器定时器TL0TL0占用占用T0T0控制位:控制位:C/TC/T,TR0TR0,GATEGATE;TH0TH0占用占用T1T1控制位控制位。T1T1不能使用方式不能使用方式3 3工作工作, ,一般当一般当T1T1作为波特率发生器时作为波特率发生器时, ,T0T0选方选方式式3 3。振荡器振荡器12TL0TF08位位 T0脚脚&TR0 1GATE启动启动控制控制INT0C/T=0C/T=1中断中断申请申请T

18、H0TF18位位 启动启动控制控制中断中断申请申请振荡器振荡器12TR11初始化步骤初始化步骤 1 1)给定时器方式寄存器)给定时器方式寄存器TMOD写一个方式控写一个方式控制字。制字。 2 2)给定时器送定时初值。)给定时器送定时初值。 3 3)给中断允许寄存器)给中断允许寄存器IEIE选送中断控制字和中选送中断控制字和中断优先级寄存器断优先级寄存器IPIP选送中断优先级字,以开放选送中断优先级字,以开放相应中断和设定中断优先级。相应中断和设定中断优先级。 4 4)给定时器控制寄存器)给定时器控制寄存器TCONTCON送命令字,以启送命令字,以启动或禁止定时器动或禁止定时器/ /计数器的运行

19、。计数器的运行。 2计数器初值的计算 TC=MC 方式时为方式时为213213;方式时;方式时为为216216;方式和方式时为;方式和方式时为2828。TCTC为计数初值为计数初值C C为计满所需要的计数个数为计满所需要的计数个数定时器初值的计算定时器初值的计算T=(MT=(MTC) TTC) T计数计数上式也可写成:上式也可写成:TC=MTC=MT/ TT/ T计数计数 式中,为模值,和定时器的工作方式式中,为模值,和定时器的工作方式有关;有关;T T计数计数是单片机时钟周期是单片机时钟周期CLKCLK的的1212倍;倍;TCTC为定时器的定时初值。为定时器的定时初值。 例例4-7 若单片机

20、时钟频率为若单片机时钟频率为12MHz,请计算定时请计算定时2ms所需的定时器初值。所需的定时器初值。解:由于定时器工作在方式2和方式3下时的最大定时时间只有0.256ms,因此要想获得2ms的定时时间定时器必须工作在方式0或方式1。若采用方式0,则根据公式可得定时器初值为:TC= M MT/ TT/ T计数计数= 213 2*103/1=6192=1830H即:TH0应装0C1H;TL0应装#10H(高三位为0)若采用方式1,则根据公式可得定时器初值为:TC=2ms/1=63536=F830H 即:TH0应装#0F8H;TL0应装#30H。0000110001100TH0TL0C110H例:

21、设8031时钟频率为12MHz,要求定时器T0定时50ms,写出初始化程序。TC=M-T/T计数216-50ms/1us=15536=3CB0HSTART:MOV TMOD #01H START:MOV TMOD #01H ;方式方式1 1 MOV TH0,#3CH MOV TH0,#3CH ;装初值装初值 MOV TL0,#0B0H MOV TL0,#0B0H SETB TR0 SETB TR0 ;启动启动T0T0计数计数WAITWAIT:JBC TF0JBC TF0,TT0 TT0 ;检测检测T0T0是否溢出是否溢出 SJMP WAITSJMP WAIT ;未溢出,继续检测未溢出,继续检测

22、TTO: MOV TH0, #3CH TTO: MOV TH0, #3CH ;重装初值重装初值 MOV TL0,#0B0H MOV TL0,#0B0H 一、数据通信的基本方式一、数据通信的基本方式并行通信并行通信数据有多少位就需多少根传送线,传送距离短,数据有多少位就需多少根传送线,传送距离短,传送速度快。传送速度快。串行通信串行通信只需一对传送线,传送距离相对较远,但传送只需一对传送线,传送距离相对较远,但传送速度慢。速度慢。二二. .串行通讯的基本方式串行通讯的基本方式( (一一).).异步通讯异步通讯 以字符为传送单位用起始位和停止位标识每个以字符为传送单位用起始位和停止位标识每个字符的

23、开始和结束,字符间隔不固定,只需字字符的开始和结束,字符间隔不固定,只需字符传送时同步。符传送时同步。 ( (二二).).同步通信同步通信 每一数据块开头时发送一个或两个同步字符,每一数据块开头时发送一个或两个同步字符,使发送与接收双方取得同步。数据块的各个字使发送与接收双方取得同步。数据块的各个字符间取消了起始位和停止位,所以通信速度得符间取消了起始位和停止位,所以通信速度得以提高。以提高。 三三. .串行数据传送方向串行数据传送方向单工通讯:数据单向传送。单工通讯:数据单向传送。半双工通讯:数据可分时双向传送。半双工通讯:数据可分时双向传送。全双工通讯:可同时进行发送和接收。全双工通讯:可

24、同时进行发送和接收。发送器接收器发送器接收器1.1.发送器:发送器:并并串数据格式转换,添加标识位和校验位,串数据格式转换,添加标识位和校验位,一帧发送结束,设置结束标志,申请中断。一帧发送结束,设置结束标志,申请中断。2.2.接收器:接收器:串串并数据格式转换,检查错误,去掉标识并数据格式转换,检查错误,去掉标识位,保存有效数据,设置接收结束标志,申请中断。位,保存有效数据,设置接收结束标志,申请中断。3.3.控制器:控制器:接收编程命令和控制参数,设置工作方式:接收编程命令和控制参数,设置工作方式:同步同步/ /异步、字符格式、波特率、校验方式、数据位与同异步、字符格式、波特率、校验方式、

25、数据位与同步时钟比例等。步时钟比例等。1.1.数据缓冲器数据缓冲器(发送器和接收器)(发送器和接收器)SBUFSBUF发送发送SBUFSBUF和接收和接收SBUFSBUF共用一个地址共用一个地址9999H H 。 1 1)发送发送SBUFSBUF存放待发送的存放待发送的8 8位数据,写入位数据,写入SBUFSBUF将同时将同时启动发送。启动发送。 发送指令:发送指令:M MOV V SBUFSBUF,A A2 2)接收接收SBUFSBUF存放已接收成功的存放已接收成功的8 8位数据,供位数据,供CPUCPU读取。读取。 读取串行口接收数据指令:读取串行口接收数据指令: M MOV AV A,S

26、BUFSBUFSM0 SM1 SM2 REN TB8 RB8TIRI2.2.串行口控制串行口控制/ /状态寄存器状态寄存器 SCON(98H)SCON(98H)(控制器)控制器)SM0SM0,SM1SM1:选择串行口选择串行口4 4种工作方式。种工作方式。SM1 SM0方式方式功能描述功能描述0 00扩展移位寄存器方式,扩展移位寄存器方式,12/oscf0 118 位位 UART,T1 溢出率溢出率/n1 029 位位 UART,32/oscf、64/oscf1 139 位位 UART,T1 溢出率溢出率/nSM0SM1SM2RENTB8RB8TIRI2.2.串行口控制串行口控制/ /状态寄存

27、器状态寄存器 SCONSCON SCONC SCONCON N(98H)(98H)SM2SM2:多机控制位,用于多机通讯。方式多机控制位,用于多机通讯。方式2 2、3 3时,时,SM2=1&RB8=1SM2=1&RB8=1则激活则激活RIRI;方式方式1 1时,时, SM2=0&RB8=1SM2=0&RB8=1时激活时激活RI.RI.RENREN:允许接收控制位,允许接收控制位,REN=1REN=1,允许接收;允许接收;REN=0REN=0,禁禁止接收止接收. .TB8TB8:发送的第发送的第9 9位数据位,可用作校验位和地址位数据位,可用作校验位和地址/ /数

28、据数据标识位标识位. .RB8RB8:接收的第接收的第9 9位数据位或停止位位数据位或停止位. .TITI:发送中断标志,发送一帧结束,发送中断标志,发送一帧结束,TI=1TI=1,须软件清须软件清零零. .RIRI:接收中断标志,接收一帧结束,接收中断标志,接收一帧结束,RI=1RI=1,须软件清须软件清零零. .SMOD(PCON.7) ):波特率加倍控制位。波特率加倍控制位。 SMOD=1,波特率加倍,波特率加倍, SMOD=0,则不加倍。则不加倍。SMOD3.3.节电控制寄存器节电控制寄存器 PCONPCONP P PCPCPCONONCONPCPCPCONONCON波特率:波特率:每

29、秒钟传送二进制数码的位数(bit 数),单位是bps(bit per second)。若波特率为1200bps,字符的实际传送速率为1200/10=120帧/秒。l方式方式0 0:同步移位寄存器方式。同步移位寄存器方式。用于扩展并行用于扩展并行I/I/O接口。接口。l1.1.数据结构:一帧数据结构:一帧8 8位,无起始位和停止位。位,无起始位和停止位。2.2.RXDRXD:数据输入数据输入/ /输出端。输出端。 TXDTXD:同步脉冲输出端,每个脉冲对应一个数据位。同步脉冲输出端,每个脉冲对应一个数据位。3.3.波特率波特率:B = fosc/12:B = fosc/12 如:如: fosc=

30、12MHzfosc=12MHz,B=1MHzB=1MHz,每位数据占每位数据占1 1 s s。4.4.发送过程:先对发送过程:先对TITI清零,写入清零,写入SBUFSBUF,启动发送,一帧发送结启动发送,一帧发送结 束,束,TI=1TI=1。 接收过程:接收过程:REN=1REN=1且且RI=0RI=0,启动接收,一帧接收完毕,启动接收,一帧接收完毕,RI=1RI=1。 串行输入、并行输出移位寄存器内部结构串行输入、并行输出移位寄存器内部结构RXDTXD1.1.数据结构:一帧数据结构:一帧1010位,位,8 8位数据位,位数据位,1 1个起始位个起始位(0)(0),1 1个停止个停止位位(1

31、)(1)。 2.2.RXDRXD:接收数据端。接收数据端。 TXDTXD:发送数据端。发送数据端。3.3.波特率:波特率:用用T1作为波特率发生器,作为波特率发生器, B=(2 B=(2SMOD/32)/32)T1T1溢出率溢出率。4.4.发送:发送:先对先对TITI清零,清零,写入写入SBUFSBUF,同时启动发送,一帧发送结同时启动发送,一帧发送结束,束,TI=1TI=1。 接收:接收:REN=1REN=1,RI=0RI=0,允许接收。接收完一帧允许接收。接收完一帧,将接收数据装将接收数据装入入SBUFSBUF,RI=1RI=1。接收原理:接收原理:当当REN=1REN=1,CPUCPU开

32、始采样开始采样RXDRXD引脚负跳变信号,若出现负引脚负跳变信号,若出现负跳变,才进入数据接收状态。即先检测起始位,若第一位跳变,才进入数据接收状态。即先检测起始位,若第一位为为0 0,继续接收其余位;否则,停止接收,重新采样负跳,继续接收其余位;否则,停止接收,重新采样负跳变。变。数据采样速率为波特率数据采样速率为波特率1616倍频,在数据位中间,用第倍频,在数据位中间,用第7 7、8 8、9 9个脉冲采样个脉冲采样3 3次数据位,并次数据位,并3 3中取中取2 2保留采样值。保留采样值。写入写入SBUF采样采样(a) 发送时序图发送时序图TXD数据输出数据输出TID0D1D2D3D4D5D

33、6D7停止位停止位起始位起始位RXD输入数据输入数据(b) 接收时序图接收时序图D0D1D2D3D4D5D6D7停止位停止位起始位起始位RI检测检测负跳变负跳变接收和发送时序图接收和发送时序图1.1.一帧为一帧为1111位:位:9 9位数据位,位数据位,1 1个起始位个起始位(0)(0),1 1个停止个停止位位(1)(1)。第第9 9位数据位在位数据位在TB8/RB8TB8/RB8中,常用作校验位和多机中,常用作校验位和多机通讯标识位通讯标识位。2.2.RXDRXD:接收数据端接收数据端 TXD TXD:发送数据端发送数据端3.3.波特率:波特率: 方式方式2 2:B=(2B=(2SMOD/6

34、4)/64)fosc fosc 。 方式方式3 3:B=(2B=(2SMOD/32)/32)T1T1溢出率溢出率 。4.4.发送:先装入发送:先装入TB8TB8,写入写入SBUFSBUF并启动发送,发送结束,并启动发送,发送结束,TI=1TI=1。 接收:接收:REN=1REN=1,允许接收。接收完一帧,若允许接收。接收完一帧,若RI=0RI=0,SM2=0SM2=0或或RB8=1,RB8=1,将接收数据装入接收将接收数据装入接收SBUFSBUF,第第9 9位装入位装入RB8RB8,使使RI=1RI=1;否则丢弃接收数据,不置位否则丢弃接收数据,不置位RIRI。方式方式0 0为固定波特率:为固

35、定波特率:B=fosc/12B=fosc/12方式方式2 2可选两种波特率:可选两种波特率: B=(2B=(2SMOD /64)/64)fosc fosc 方式方式1 1、3 3为可变波特率,用为可变波特率,用T1T1作波特率发生器。作波特率发生器。B=(2B=(2SMOD/32)/32)T1T1溢出率溢出率T1T1为方式为方式2 2的溢出时间:的溢出时间: t= (2t= (28 8 -X)T = (2-X)T = (28 8 -X)-X)12/ fosc12/ foscT1T1溢出率溢出率=1/=1/t= fosc /12t= fosc /12(2(2n n -X)-X) 波特率波特率B=

36、(2B=(2SMOD /32)/32)fosc/12fosc/12(2(28 8-X)-X)串行口方式串行口方式1 1、3 3,根据波特率选择,根据波特率选择T1T1工作方式,计算时间常数。工作方式,计算时间常数。T1T1选方式选方式2 2: TH1=X= 2TH1=X= 28 8-fosc/12-fosc/122 2SMOD/(32/(32B)B)T1T1选方式选方式1 1用于低波特率,需考虑用于低波特率,需考虑T1T1重装时间常数时间。重装时间常数时间。1.双机通讯双机通讯8031应用系统(A)TXDRXDGND8031应用系统 (B)RXDTXDGND电缆8031应用系统(A)TXDRX

37、DGND8031应用系统 (B)RXDTXDGND电缆8031应用系统 (N)RXDTXDGND.2.多机通讯多机通讯串行口初始化编程格式:串行口初始化编程格式:SIO:MOV SCON,#H ;方式字,且方式字,且TI=RI=0 MOV PCON,#80H ;波特率加倍波特率加倍 MOV TMOD,#20H ;T1作波特率发生器作波特率发生器,方式方式2 MOV TH1, #X ;选定波特率选定波特率 MOV TL1, #X SETB TR1 SETB EA ;开串行口中断开串行口中断 SETB ES1.1.查询方式:查询方式:TRAM: MOV A,R0 ;取数据取数据 MOV SBUF,

38、A ;发送一个字符发送一个字符WAIT:JBCTI,NEXT ;等待发送结束等待发送结束SJMP WAITNEXT:INCR0 ;准备下一次发送准备下一次发送SJMP TRAM2.中断方式:中断方式: ORG 0023H ;串行口中断入口串行口中断入口 AJMP SINTMAIN: ;初始化编程初始化编程TRAM: MOV A,R0 ;取数据取数据MOV SBUF,A ;发送第一个字符发送第一个字符 H:SJMP H ;其它工作其它工作 SINT:CLR TI ;中断服务程序中断服务程序INC R0MOV A,R0 ;取数据取数据MOV SBUF,A ;发送下一个字符发送下一个字符RETI1.

39、1.查询方式:查询方式: WAIT:JBCRI,NEXT;查询等待查询等待SJMP WAITNEXT:MOV A,SBUF ;读取接收数据读取接收数据MOV R0,A;保存数据保存数据INCR0 ;准备下一次接收准备下一次接收SJMP WAIT2.2.中断方式:中断方式:ORG 0023HAJMP RINTMAIN: ;初始化编程初始化编程 H:SJMP H ;其它任务其它任务 RINT:CLRRI ;清中断标志清中断标志MOV A,SBUF ;读取接收数据读取接收数据MOV R0,A;保存数据保存数据INCR0RETI(二二)异步通讯程序举例异步通讯程序举例 1.1.发送程序:发送程序:将片

40、内将片内RAM 50HRAM 50H起始单元的起始单元的1616个数由串行口发个数由串行口发送。送。要求发送波特率为系统时钟的要求发送波特率为系统时钟的32分频,并进行奇偶校验。分频,并进行奇偶校验。MAINT: MOV SCON,#80H;串行口初始化,方式串行口初始化,方式2MOV PCON,#80H;波特率,波特率,SMOD=1MOV R0,#50H ;设数据指针设数据指针MOV R7,#10H ;数据长度数据长度 LOOP: MOV A,R0 ;取一个字符取一个字符MOV C,P ;加奇偶校验加奇偶校验MOV TB8,CMOV SBUF,A ;启动第一次发送启动第一次发送 WAIT:

41、JBCTI,NEXT ;等待发送结束等待发送结束SJMP WAIT NEXT: INCR0 ;准备下一次发送准备下一次发送DJNZ R7,LOOP ;是否发送完?是否发送完? ENDSM0 SM1 SM2 REN TB8 RB8TIRIMAIN: MOV SCON,#0D0H ;串行口方式串行口方式3允许接收允许接收MOV TMOD,#20H ;T1方式方式2定时定时MOV TL1, #0F4H ;写入写入T1时间常数时间常数MOV TH1, #0F4HSETB TR1 ;启动启动T1MOV R0, #50H ;设数据指针设数据指针 MOV R7, #10H ;接收数据长度接收数据长度 WAI

42、T: JBC RI,NEXT ;等待串行口接收等待串行口接收 SJMP WAITSM0 SM1 SM2 RENTB8RB8TIRINEXT: MOV A,SBUF ;取一个接收字符取一个接收字符 JNB P,COMP ;奇偶校验奇偶校验 JNB RB8,ERR ;PRB8,数据出错数据出错 SJMP RIGHT ;P=RB8,数据正确数据正确COMP: JB RB8,ERRRIGHT: MOV R0,A ;保存一个字符保存一个字符 INC R0 ;修改指针修改指针 DJNZ R7,WAIT ;全部字符接收完全部字符接收完? CLR F0 ;F0 =0,接收数据全部正确接收数据全部正确 SJMP

43、 QUITERR: SETB F0 ;F0 =1,接收数据出错接收数据出错QUIT: RET 中央处理器中央处理器CPUCPU正在处理某正在处理某事件的时候,外部发生了更为紧事件的时候,外部发生了更为紧急的事件,请求急的事件,请求CPUCPU暂停当前的暂停当前的工作,转入处理所发生的事情,工作,转入处理所发生的事情,处理完后,再回到被中断的地方处理完后,再回到被中断的地方,继续原来的工作,继续原来的工作, ,这样的过程这样的过程称为中断。称为中断。日常事务程序日常事务程序中断服务程序中断服务程序l中断技术的优点:中断技术的优点: 提高CPU的效率。 提高实时数据的处理时效。 被控对象的实时参数

44、、越限数据和故障信息为计算机及时采集,以便应急处理。 故障处理 如掉电中断。l中断系统的功能:中断系统的功能: 中断优先权排队 根据轻重缓急排队,优先处理最紧急事件的中断请求。 实现中断嵌套 CPU处理中断时,发生另一个优先级更高的中断请求,CPU转而响应优先级更高的中断请求,处理完之后再回到原来中断服务程序。 自动响应中断 实现中断返回。2 2个外部中断源信号:个外部中断源信号:INT0INT0、INT1INT12 2个定时器个定时器T0T0、T1T1溢出中断请求:溢出中断请求:TF0TF0、TF1TF11 1个串行口数据发送、接收结束中断请求:个串行口数据发送、接收结束中断请求:TITI、

45、RIRI寄存器名称寄存器名称D7D6D5D4D3D2D1D0TCON(88H)TF1TF0IE1IT1IE0IT0定时器控制定时器控制寄存器寄存器位地址位地址8FH8FH8EH8EH8DH8DH8CH8CH8BH8BH8AH8AH89H89H88H88HSCON(98H)TIRI串行口控制串行口控制寄存器寄存器位地址位地址9FH9FH9EH9EH9DH9DH9CH9CH9BH9BH9AH9AH99H99H98H98HIE(A8H)EAESET1 EX1 ET0 EX0中断允许中断允许寄存器寄存器位地址位地址AFHAFHACHACHABHABHAAHAAHA9HA9HA8HA8HIP(B8H)P

46、SPT1PX1PT0PX0中断优先级中断优先级寄存器寄存器位地址位地址BCHBCHBBHBBHBAHBAHB9HB9HB8HB8H1.中断标志位中断标志位: TF1、TF0、IE1、IE0、RI 、TI TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 SM0 SM1 SM2 REN TB8 RB8TIRISCONTCON登记各中断源请求信号:登记各中断源请求信号:=1=1,有中断请求;,有中断请求;=0=0,无中断请求。,无中断请求。CPUCPU响应中断后,各中断标志自动清零。响应中断后,各中断标志自动清零。注意:注意:TITI,RIRI标志必须软件清零。标志必须软件清零。2.

47、外部中断外部中断触发方式选择位:触发方式选择位:IT0、IT1=1=1,负边沿触发中断请求;,负边沿触发中断请求;=0=0,低电平触发中断请求。,低电平触发中断请求。=1=1,开中断;,开中断;=0=0,关中断。,关中断。例:例:允许允许CPUCPU响应响应T0T0的中断请求的中断请求M MOV IE,#82H OV IE,#82H 或者或者 SETB ET0 SETB ET0 SETB EA SETB EA2 2级优先级:级优先级:=1=1,为高优先级;,为高优先级;=0=0,为低优先级。,为低优先级。 同一优先级别按内部查询顺序排列优先级同一优先级别按内部查询顺序排列优先级: 高高 INT

48、0INT0、T0T0、INT1INT1、T1T1、SISIO 低低。3. .中断允许控制位:中断允许控制位:EA、ES、ET1、EX1、ET0、EX0EA/ET2ESET1EX1ET0EX0IE/PT2PSPT1PX1PT0PX0IP4 4中断优先级控制位:中断优先级控制位:PSPS、PT1PT1、PX1PX1、PT0PT0、PX0PX0l低优先级中断可以被高优先级中断所中断,反之不能。l一种中断一旦得到响应,与它同级的中断不能再中断它。(一)中断响应条件(一)中断响应条件 1. 1.有中断源发出中断请求;有中断源发出中断请求; 2. 2.中断总允许位中断总允许位EAEA1 1,即即CPUCPU开中断;开中断; 3. 3.相应的中断允许位为相应的中断允许位为1 1,即没有屏蔽。,即没有屏蔽。(二)(二) 响应过程响应过程1.阻断同级或低级中断;阻断同级或低级中断;2.PC指针内容压栈保护;指针内容压栈保护;3.相应中断入口地址装入相应中断入口地址装入PC,程序转移到该程序转移到该 中断入口地址单元。中断入口地址单元。中中断断源源中中断断入入口口地地址址INT00003HT0000BHINT10013HT1001BHSIO0023H(三)(三) 中断响应阻断中断响应阻断1 . 当当CPUCPU未执行完一条指令。未执行完一条指令。2当有同级或高级中断服务。当有同级或高级中断服务。

温馨提示

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

评论

0/150

提交评论