《51单片机C语言应用与开发(第3章)(精品).ppt》由会员分享,可在线阅读,更多相关《51单片机C语言应用与开发(第3章)(精品).ppt(46页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第3章章 51单片机的内部资源单片机的内部资源51单片机C语言应用与开发n单片机的内部资源是单片机内部最基本的结构单元。n要想理解单片机的工作原理,充分运用单片机的功能,设计高效、合理的单片机控制系统,必须对单片机的内部资源有比较详细的了解和认识。n本章主要介绍MCS-51系列单片机的并行I/O口、中断系统、定时器/计数器和串行通信等内部资源。第第3章章 51单片机的内部资源单片机的内部资源n本章重点本章重点u并行I/O口u中断系统和中断程序设计u定时器及定时器中断程序设计u串行通信及串行中断程序设计n本章难点本章难点u中断及中断优先级u中断、定时器及串行控制寄存器的功能及初始化u定时器及串
2、行通信的工作方式第第3章章 51单片机的内部资源单片机的内部资源n本章各章节安排本章各章节安排u3.1 并行I/O口 u3.2 中断系统 u3.3 定时器/计数器 u3.4 单片机串行通信 第第3章章 51单片机的内部资源单片机的内部资源l3.1 并行并行I/O口口n80C51单片机有4个8位的I/O口(共32根线):P0、P1、P2和P3。各口结构大同小异,主要由接口锁存器、输出驱动和输入缓冲器组成。其中,P1、P2、P3为准双向口,这些端口内均有上拉电阻,在读之前应先写入“1”。P0口内无上拉电阻,是开漏极输出,又称为三态双向I/O口。各口均可作为字节输入/输出,同时每一条口线亦可单独地用
3、于位输出/输入。第第3章章 51单片机的内部资源单片机的内部资源n3.1 并行并行I/O口口nP0口由1个输出锁存器、1个转换开关MUX、2个三态输入缓冲器、输出驱动电路、1个与门和1个反相器组成。当系统进行扩展时,P0口用做地址/数据总线,分时输出低8位地址和数据信息。nP1口由1个输出锁存器、2个三态输入缓冲器和输出驱动电路组成。P1口是80C51唯一的单功能接口,仅能用做通用I/O接口。nP2口由1个输出锁存器、1个转换开关MUX、2个三态输入缓冲器、输出驱动电路和1个反相器组成。当需要在单片机外部扩展程序存储器时,P2口作为地址总线输出高8位。3.1 并行并行I/O口口第第3章章 51
4、单片机的内部资源单片机的内部资源lP3口由1个输出锁存器、3个输入缓冲器、输出驱动电路和1个与非门组成。P3口是双功能接口,除输出/输入外,每一条口线都有特殊的第二功能。l需要说明的是:四个接口的输入/输出电平同CMOS电平、TTL电平皆兼容,P0口每条口线可以接8个LSTTL(Low-power Schottky Transistor-Transistor Logic即低功耗肖特基晶体管-晶体管逻辑电路)负载,P1、P2、P3口每条口线可以接4个LSTTL负载。3.1 并行并行I/O口口第第3章章 51单片机的内部资源单片机的内部资源 中断系统是单片机系统的重要内容之一,同时也是学习的难点。
5、本节将介绍中断系统,中断控制器,如何用C51编写中断服务程序以及外部中断的扩充等。3.2 中断系统中断系统第第3章章 51单片机的内部资源单片机的内部资源 3.2.1 中断系统介绍 在计算机执行程序的过程中,由于出现某个特殊情况(或称为“事件”),使得暂时中止现行程序,而转去执行处理这一事件的程序,处理完毕之后再回到原程序被中断的地方继续执行程序,这个过程就是中断。如图3-1所示。3.2 中断系统中断系统第第3章章 51单片机的内部资源单片机的内部资源 3.2.1 中断系统介绍 3.2 中断系统中断系统图图3-1 3-1 中断示意图中断示意图第第3章章 51单片机的内部资源单片机的内部资源3.
6、2 中断系统中断系统3.2.1 中断系统介绍n引起CPU中断的事件,称为中断源。n中断源向CPU发中断请求,CPU收到请求后,暂时打断原程序,转去处理发出请求的事件,这一过程叫中断响应。n事件处理完后,再回到被打断的地方(断点)处继续执行原程序,这个过程叫中断返回。n中断功能由中断系统实现。n8051系列单片机的中断系统有5个中断源,分别是:2个外部中断,2个定时器中断和1个串行通信中断。第第3章章 51单片机的内部资源单片机的内部资源3.2 中断系统中断系统3.2.1 中断系统介绍51单片机的常用中断源和中断向量如下表所示:第第3章章 51单片机的内部资源单片机的内部资源中断编号中断编号中断
7、源中断源入口地址入口地址0(interrupt 0)外部中断外部中断0 00 x00030 x00031(interrupt 1)定时器定时器/计数器计数器0 0 溢出溢出0 x000B0 x000B2(interrupt 2)外部中断外部中断1 10 x00130 x00133(interrupt 3)定时器定时器/计数器计数器1 1 溢出溢出0 x001B0 x001B4(interrupt 4)串行口中断串行口中断0 x00230 x00233.2 中断系统中断系统3.2.2 中断控制寄存器中断控制寄存器n中中断断的的控控制制由由中中断断控控制制寄寄存存器器完完成成,是是系系统统提提供供
8、给给用用户控制中断的手段。户控制中断的手段。n8051单单片片机机有有4个个中中断断控控制制寄寄存存器器(专专用用寄寄存存器器),中中断断的的控控制制通通过过对对这这些些寄寄存存器器相相应应位位的的设设置置来来实实现现。单单片机初始化时,各寄存器全部置为片机初始化时,各寄存器全部置为0。n4个个中中断断控控制制寄寄存存器器为为:定定时时器器控控制制寄寄存存器器TCON、串串行行口口控控制制寄寄存存器器SCON、中中断断允允许许寄寄存存器器IE和和中中断断优先级控制寄存器优先级控制寄存器IP。第第3章章 51单片机的内部资源单片机的内部资源3.2 中断系统中断系统3.2.2 中断控制寄存器中断控
9、制寄存器1.定时器控制寄存器(定时器控制寄存器(TCON)各位的位地址及位名称如下所示:)各位的位地址及位名称如下所示:第第3章章 51单片机的内部资源单片机的内部资源uI T0(或(或1),外中断),外中断0(或(或1)触发方式选择标志位,由软件置位。置为)触发方式选择标志位,由软件置位。置为0时,设置为电平触发(低电平有效);为时,设置为电平触发(低电平有效);为1时,设置为下降沿触发。时,设置为下降沿触发。uI E0(或(或1),外中断请求标志位,硬件置位。有外中断请求时,由硬件置),外中断请求标志位,硬件置位。有外中断请求时,由硬件置位。位。CPU响应中断后,由硬件自动清响应中断后,由
10、硬件自动清0。uTR0(或(或1),定时器),定时器0(或(或1)启停标志位,由软件置位。为)启停标志位,由软件置位。为1时,启动定时,启动定时器;为时器;为0时,停止定时器。时,停止定时器。uTF0(或(或1),定时器),定时器0(或(或1)溢出中断标志位,硬件置位。定时器溢出)溢出中断标志位,硬件置位。定时器溢出(由全(由全1变为全变为全0)时,由硬件自动置)时,由硬件自动置1,CPU响应中断后,由硬件自动置响应中断后,由硬件自动置0。3.2 中断系统中断系统3.2.2 中断控制寄存器中断控制寄存器2.串行口控制寄存器(串行口控制寄存器(SCON)各位的位地址及位名称如下所示:)各位的位地
11、址及位名称如下所示:第第3章章 51单片机的内部资源单片机的内部资源u与中断有关的只有两位:与中断有关的只有两位:TI和和RI。串行通信时,由硬件自动置位。串行通信时,由硬件自动置位。u串行通信时,每发送完一帧串行数据后,由硬件置串行通信时,每发送完一帧串行数据后,由硬件置TI=1。CPU响应中断后,响应中断后,TI必须在中断服务子程序里由软件清除必须在中断服务子程序里由软件清除TI=0。u串行通信时,每接收完一帧串行数据后,由硬件置串行通信时,每接收完一帧串行数据后,由硬件置RI=1。CPU响应中断后,响应中断后,RI必须在中断服务子程序里由软件清除必须在中断服务子程序里由软件清除RI=0。
12、uTI和和RI共用一个中断共用一个中断串行通信中断。产生串行通信中断后,需在中断串行通信中断。产生串行通信中断后,需在中断服务子程序中判断到底是发送中断(服务子程序中判断到底是发送中断(TI=1)还是接收中断()还是接收中断(RI=1)。)。u串行发送和串行接收共用一个数据缓冲器(串行发送和串行接收共用一个数据缓冲器(SBUF)3.2 中断系统中断系统3.2.2 中断控制寄存器中断控制寄存器3.中断允许控制寄存器(中断允许控制寄存器(IE)各位的位地址及位名称如下所示:)各位的位地址及位名称如下所示:第第3章章 51单片机的内部资源单片机的内部资源uEA,中断允许控制位,软件置位。为,中断允许
13、控制位,软件置位。为1,允许中断;为,允许中断;为0,禁止中断,禁止中断uES,串行通信中断允许控制位,软件置位。为,串行通信中断允许控制位,软件置位。为1,允许中断。,允许中断。uET0(或(或1),定时器),定时器0(或(或1)中断允许位,软件置位。为)中断允许位,软件置位。为1,允许中断;为,允许中断;为0,禁止中断。,禁止中断。uEX0(或(或1),外中断),外中断0(或(或1)中断允许位,软件置位。为了,允许中断;)中断允许位,软件置位。为了,允许中断;为为0,禁止中断。,禁止中断。3.2 中断系统中断系统3.2.2 中断控制寄存器中断控制寄存器4.中断优先级控制器(中断优先级控制器
14、(IP)各位的位地址及位名称如下所示:)各位的位地址及位名称如下所示:第第3章章 51单片机的内部资源单片机的内部资源u8051单片机只有两级中断优先级单片机只有两级中断优先级高优先级和低优先级高优先级和低优先级u对应位置对应位置1表示高优先级,置表示高优先级,置0表示低优先级。表示低优先级。u同一优先级别,按同一优先级别,按PX0、PT0、PX1、PT1、PS的顺序决定的顺序决定中断响应的顺序。中断响应的顺序。3.2 中断系统中断系统3.2.3 C51编写中断服务程序编写中断服务程序 C51编编译译器器支支持持在在C语语言言源源程程序序中中直直接接编编写写51单单片片机机的的。中中断断服服务
15、务函函数数程程序序中中断断服服务务程程序序定定义义为为函函数数,函函数数定定义一般形式如下:义一般形式如下:函数类型函数类型 函数名函数名(形式参数表形式参数表)interrupt n using m (Interrupt n表示将函数声明为中断服务函数,n是中断编号,n的取031的整数。编译器从8n+3处产生中断向量,具体的n和中断向量取决于不同的51系列单片机芯片。)第第3章章 51单片机的内部资源单片机的内部资源3.2 中断系统中断系统 例例3-1 3-1 首首先先通通过过Pl.7Pl.7口口点点亮亮发发光光二二极极管管,然然后后由由外外部部输输入入一一脉脉冲冲,启动发光二极管亮、暗交替
16、。电路如图启动发光二极管亮、暗交替。电路如图3-23-2所示,请编写程序。所示,请编写程序。图图3-2 发光二极管实验电路发光二极管实验电路第第3章章 51单片机的内部资源单片机的内部资源3.2 中断系统中断系统 例例3-1 3-1 首首先先通通过过Pl.7Pl.7口口点点亮亮发发光光二二极极管管,然然后后由由外外部部输输入入一一脉脉冲冲,启动发光二极管亮、暗交替。电路如图启动发光二极管亮、暗交替。电路如图3-23-2所示,编写程序如下。所示,编写程序如下。#include#include sbit P1_7=P17;sbit P1_7=P17;void interrupt0()interru
17、pt 0 using 2 /void interrupt0()interrupt 0 using 2 /定义外中断定义外中断0 0 P1_7=!P1_7;P1_7=!P1_7;void main()void main()EA=0;/EA=0;/禁止中断禁止中断 ITO=1;/ITO=1;/设置外中断为脉冲触发方式设置外中断为脉冲触发方式 EX0=1;/EX0=1;/允许外部中断允许外部中断 EA=1 /EA=1 /开中断开中断 P1_7=0;P1_7=0;while(1);/while(1);/进入循环,等待中断进入循环,等待中断 第第3章章 51单片机的内部资源单片机的内部资源3.2 中断系
18、统中断系统3.2.4 外部中断的扩充外部中断的扩充 8051单单片片机机只只有有两两个个外外部部中中断断,若若外外部部要要求求检检测测的的事事件件很很多多,就就需需要要对对外外部部中中断断进进行行扩扩充充。51系系列列单单片片机机扩扩充充外外部部中中断断的的方方法法一一般般有有两两种种:利利用用定定时时器器的的计计数数方方式式对对外外部部事事件件进进行行计计 数数(最最多多可可扩扩充充两两个个外外部部中中断断);利利用用逻逻辑辑电电路路,通通过过逻逻辑辑运运算算,以以查查询询的的方方式式扩扩展展外外部部中中断断(可可以以扩扩充充多多个个外外中中断断)。下下页页图图是是用用查查询询的的方方式式扩
19、扩展展外外部部中中断断的的一个例子。一个例子。第第3章章 51单片机的内部资源单片机的内部资源第第3章章 51单片机的内部资源单片机的内部资源查询方式扩展外部中断查询方式扩展外部中断3.3 定时器定时器/计数器计数器u 8051单片机内部有单片机内部有2个具有定时和计数功能的个具有定时和计数功能的16位定位定时器(时器(T0和和T1)。)。u 每个定时器都由每个定时器都由2个个8位特殊功能寄存器位特殊功能寄存器TH0(高高8位位)和和TL0(低低8位位)组成。组成。u 每个定时器都有不同的工作方式,可以工作在定时或每个定时器都有不同的工作方式,可以工作在定时或计数的模式下。计数的模式下。u 定
20、时器的工作方式和工作模式由工作方式寄存器定时器的工作方式和工作模式由工作方式寄存器(TMOD)的相应位决定。)的相应位决定。第第3章章 51单片机的内部资源单片机的内部资源第第3章章 51单片机的内部资源单片机的内部资源3.3 定时器定时器/计数器计数器3.3.1 定时器定时器/计时器控制寄存器计时器控制寄存器 1定时控制寄存器定时控制寄存器(TCON)与定时器有关的有与定时器有关的有TF0、TF1、TR0、TR1等四位,另四位对外等四位,另四位对外部中断进行设置。部中断进行设置。2.定时器工作方式选择寄存器定时器工作方式选择寄存器(TMOD)u TMOD寄寄存存器器是是4位位一一组组的的结结
21、构构,以以4位位为为单单位位进进行行定定义义,不不能位寻址,只能用字节的方式设置内容。能位寻址,只能用字节的方式设置内容。u 低低4位位(D0至至D3)用用于于设设置置T0的的工工作作方方式式;高高4位位(D4至至D7)用用于于设置设置T1的工作方式。的工作方式。3.3 定时器定时器/计数器计数器 3.3.2 定时定时/计数器的工作方式计数器的工作方式 1.1.方式方式0 0(M1M0=00M1M0=00)u13位定时位定时/计数器,计数器由计数器,计数器由TL0的低的低5位(高位(高3位无效)和位无效)和TH0的全部的全部8位构成。位构成。uC/T(-)=0时为定时器模式。计数个数为:时为定
22、时器模式。计数个数为:N=t/T。其中,。其中,t为为定时时间,定时时间,N为计数个数,为计数个数,T为机器周期。为机器周期。u计数初值的计算公式:计数初值的计算公式:X=213-N。其中,。其中,X为计数初值,为计数初值,N为计为计数个数。数个数。u计数结束,由软件重装计数初值。计数结束,由软件重装计数初值。uC/T(-)=1时为计数模式。对外部脉冲进行计数,计数脉冲由时为计数模式。对外部脉冲进行计数,计数脉冲由T0(T1)引脚输入。)引脚输入。第第3章章 51单片机的内部资源单片机的内部资源3.3 定时器定时器/计数器计数器 3.3.2 3.3.2 定时定时/计数器的工作方式计数器的工作方
23、式 2 2方式方式1 1(M1M0=01M1M0=01)u16位定时位定时/计数器。计数器。TL0为低为低8位,位,TH0为高为高8位。计位。计数个数与计数初值关系为:数个数与计数初值关系为:X=216-N(当计数个数为当计数个数为1时,时,X为为65535,当计数个数为,当计数个数为63536时,时,X为为0)。u方式方式1的定时的定时/计数方式与方式计数方式与方式0基本相同,仅计数位基本相同,仅计数位数不同。数不同。u计数结束,同样由软件重装计数初值。计数结束,同样由软件重装计数初值。第第3章章 51单片机的内部资源单片机的内部资源3.3 定时器定时器/计数器计数器 3.3.2 3.3.2
24、 定时定时/计数器的工作方式计数器的工作方式 3 3方式方式2 2(M1M0=10M1M0=10)u自动重装初值的自动重装初值的8位计数器。位计数器。u计计数数过过程程在在TL0(1)中中进进行行,待待重重装装的的初初值值存存放放在在TH(1)中。)中。u计计数数结结束束,机机器器自自动动将将TH中中的的内内容容装装入入TL,重重新新开开始新的计数周期。始新的计数周期。u计计数数个个数数与与计计数数初初值值关关系系:X=28-N(计计数数个个数数为为1时时,X为为255,计数个数为,计数个数为256时,时,X为为0)。第第3章章 51单片机的内部资源单片机的内部资源3.3.2 3.3.2 定时
25、定时/计数器的工作方式计数器的工作方式 4 4方式方式3 3(M1M0=11M1M0=11)u方式方式3只适用于只适用于T0。T0工作于方式工作于方式3时,被拆分为两个独立的时,被拆分为两个独立的8位定位定时器。其中,时器。其中,TL0既可以作为定时器,也可以作为计数器使用;而既可以作为定时器,也可以作为计数器使用;而TH0只能作为定时器使用。只能作为定时器使用。uT0工作于方式工作于方式3时,时,TL0占用占用TCON的的TR0和和TF0;TH0使用使用TCON的的TR1和和TF1。uT0工作于方式工作于方式3时,时,T1只能工作于方式只能工作于方式0、1、2,作为串行通信的,作为串行通信的
26、波特率发生器,以确定串行通信的波特率。波特率发生器,以确定串行通信的波特率。uT1作波特率发生器使用时,只要设置好工作方式,作波特率发生器使用时,只要设置好工作方式,T1即开始自动即开始自动运行;如要停止,只需将运行;如要停止,只需将T1设置成方式设置成方式3即可。即可。uT1设置成方式设置成方式3,全停止工作。,全停止工作。第第3章章 51单片机的内部资源单片机的内部资源3.3 定时器定时器/计数器计数器3.3 定时器定时器/计数器计数器 3.3.33.3.3 定时器定时器/计时器的初始化计时器的初始化 1.初始化过程初始化过程 u 根据定时或计数要求确定计数器的初值;根据定时或计数要求确定
27、计数器的初值;u 根根据据要要求求给给方方式式寄寄存存器器TMOD赋赋值值,设设定定定定时时器器的工作方式;的工作方式;u 根根据据需需要要给给中中断断允允许许寄寄存存器器IE送送中中断断控控制制字字,以以开放相应的中断和设定中断优先级;开放相应的中断和设定中断优先级;u 给给TCON寄寄存存器器中中的的TR0或或TR1置置位位,以以启启动动或或禁禁止定时器止定时器/计时器。计时器。第第3章章 51单片机的内部资源单片机的内部资源3.3 定时器定时器/计数器计数器 3.3.33.3.3 定时器定时器/计时器的初始化计时器的初始化 2.定时初值的计算和最大定时时间的确定定时初值的计算和最大定时时
28、间的确定u 初初值值的的计计算算:设设计计数数器器的的最最大大值值为为M(在在不不同同的的工工作作方方式式下下,M=213,216,28),计计数数初初值值为为TC,计计数数器器计计满满回回零零所所需需的的计计数值为数值为C,则,则TC=M-C。u定定时时时时间间的的计计算算:定定时时时时间间=CT=(M-TC)T。其其中中T为为计计数周期,即单片机的机器周期。数周期,即单片机的机器周期。u最最大大定定时时时时间间:当当TC=0时时,定定时时器器的的定定时时时时间间最最大大。若若单单片片机机的的机机器器周周期期为为1us,当当定定时时器器工工作作于于方方式式0时时,最最大大定定时时时时间间为为
29、2131us=8.192ms;工工作作于于方方式式1,则则为为65.536ms;工工作作于于方方式式2,则为,则为0.256ms。第第3章章 51单片机的内部资源单片机的内部资源3.3 定时器定时器/计数器计数器 3.3.33.3.3 定时器定时器/计时器的初始化计时器的初始化例例3-2 假假定定某某单单片片机机系系统统的的时时钟钟频频率率为为11.0592MHz,要要利利用用该该单单片片机机的的定定时时器器0产产生生50ms的的定定时时时时间间,请计算定时器初值,并确定定时器请计算定时器初值,并确定定时器0的工作方式。的工作方式。第第3章章 51单片机的内部资源单片机的内部资源p 定时时间定
30、时时间=CT=5010-3p T=121/(11.0592106)p C=5010-311.0592106/12=46080=0 xB400p 由于由于8位、位、13位定时器都没这么大的数,只能用位定时器都没这么大的数,只能用16位定时位定时器,因此,定时器只能工作于方式器,因此,定时器只能工作于方式1。p TC=M-C=65536-46080=19456=0 x4C003.4 串行通信串行通信 计计算算机机系系统统中中,CPUCPU和和外外部部设设备备的的通通信信方方式式有有2 2种:并行通信和串行通信。种:并行通信和串行通信。并并行行通通信信是是指指在在多多根根线线上上同同时时传传输输多多
31、位位数数据据(一般是一个字节或一个字)。(一般是一个字节或一个字)。串串行行通通信信,是是指指在在数数据据在在一一根根线线上上按按顺顺序序一一位位一位一位地地传送。传送。80518051单单片片机机内内部部有有一一个个全全双双工工的的串串行行通通信信口口,可实现串行数据的发送和接收。可实现串行数据的发送和接收。第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信 3.4.1 串行接口的工作方式串行接口的工作方式u 8051单片机的串行接口共有4种工作方式u工作方式的选择由串行口控制寄存器SCON中的SMO、SM1来进行设置。1方式方式0方式0是同步移位寄存器输入/输出方式,
32、主要用于扩展并行I/O接口。移位数据的发送和接收以8位为一组,低位在前,高位在后。方式0实际上是把串行口变为并行口使用,实现数据的移位输入或输出。第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信 3.4.1 串行接口的工作方式串行接口的工作方式 2方式方式1方方式式1 1是是异异步步通通信信方方式式。TXDTXD为为数数据据发发送送引引脚脚,RXDRXD为数据接收引脚。为数据接收引脚。方方式式1 1的的数数据据帧帧依依次次为为起起始始位位1 1位位、数数据据位位8 8位位、停止位停止位1 1位,共位,共1010位数据。位数据。第第3章章 51单片机的内部资源单片机的内部
33、资源第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信 3.4.1 串行接口的工作方式串行接口的工作方式 3 3方式方式2 2与方式与方式3 3 方方式式2 2与与方方式式3 3的的数数据据帧帧有有1111位位,依依次次为为起起始始位位1 1位位、数数据位据位8 8位、可编程位位、可编程位1 1位、停止位位、停止位1 1位。位。可编程位由可编程位由SCONSCON的的TBTB和和RBRB决定。决定。输输出出时时,应应由由软软件件置置TBTB位位,以以启启动动串串行行数数据据的的发发送送。一一帧数据发送完,置位帧数据发送完,置位SCONSCON的的TITI。输输入入时时,串
34、串行行接接口口先先将将前前8 8位位数数据据送送SBUFSBUF,然然后后将将第第9 9个个数据送数据送RBRB,最后置位,最后置位SCONSCON的的RIRI。3.4 串行通信串行通信 3.4.2 串行接口控制寄存器串行接口控制寄存器 1串行口控制寄存器(串行口控制寄存器(SCON)专用寄存器SCON用于串行数据通信的控制,其格式为:第第3章章 51单片机的内部资源单片机的内部资源SM0、SM1。工作方式选择位SM2。多机通信控制位,用于方式2和方式3的接收控制。方式0和方式1时,SM2不用,置0。当当SM2 SM2=0 0时时,不不论论第第9 9位位数数据据是是什什么么,都都将将前前8 8
35、位数据送入位数据送入SBUFSBUF中,并产生中断请中,并产生中断请求。求。当当SM2=1SM2=1时,只有当接收到的第时,只有当接收到的第9 9位数据为位数据为1 1,才将接收到的前,才将接收到的前8 8位数据送入位数据送入SBUFSBUF,并置位,并置位RIRI产生中断请求产生中断请求。第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信 3.4.2 串行接口控制寄存器串行接口控制寄存器 1串行口控制寄存器(串行口控制寄存器(SCON)REN。允许接收控制位,由软件置位或复位。当REN=0时,禁止接收;当REN=1时,允许接收。TB8。串行发送数据的第9位,由软件设置。
36、u在双机通信时,TB8一般作为奇偶校验位使用。u在多机通信中,TB8作为区别地址帧和数据帧的标志位。TB8=0为数据帧,TB8=1为地址帧。第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信 3.4.2 串行接口控制寄存器串行接口控制寄存器 1串行口控制寄存器(串行口控制寄存器(SCON)RB8。串行接收数据的第9位。TB8和RB8在方式0和方式1时不用。TI。发送数据中断请求标志位,由硬件置位,软件清0。TI=1表示1帧数据已发送完。RI。接收数据中断请求标志位,由硬件置位,软件清0。RI=1表示接收到1帧数据。3.4 串行通信串行通信 3.4.2 串行接口控制寄存器串
37、行接口控制寄存器 2电源控制寄存器(电源控制寄存器(PCON)PCONPCON主主要要是是为为了了80C5180C51的的电电源源控控制制而而设设置置的的专专用用寄寄存存器器,不能进行位寻址。不能进行位寻址。PCONPCON的的最最高高位位SMODSMOD是是串串行行通通信信波波特特率率的的倍倍增增位位,其其余各位用于电源管理。余各位用于电源管理。在在串串行行通通信信的的方方式式1 1、2 2、3 3下下,SMOD SMOD=1 1时时,波波特特率率倍增;倍增;SMOD=0 SMOD=0时,波特率不变。时,波特率不变。3中断允许寄存器中断允许寄存器(IE)第第3章章 51单片机的内部资源单片机
38、的内部资源3.4 串行通信串行通信 3.4.3 串行接口应用串行接口应用 5151系系列列单单片片机机的的工工作作方方式式0 0是是同同步步操操作作。因因此此可可以以通通过过外外接接串串入入-并并出出或或者者并并入入-串串出出器器件件实实现现I IO O口口的的扩扩展展,常用的器件为移位寄存器。常用的器件为移位寄存器。串串行行接接口口方方式式0 0的的应应用用有有两两种种,即即串串行行接接口口变变为为串串入入-并并出出的的输输出出口口和和串串行行接接口口变变为为并并入入-串串出出的的输输入入口口。串串行行接接口口方方式式0 0的的数数据据输输出出可可以以采采用用中中断断方方式式、查查询询方方式
39、式,两种方式都要借助于两种方式都要借助于TITI标志。标志。第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信 3.4.3 串行接口应用串行接口应用 例例3-3 利用利用AT89C51的串行口设计的串行口设计4位静态数码管显器,位静态数码管显器,要求要求4位显示器上交替显示位显示器上交替显示“ABCD”和和“1234”,显示间,显示间隔时间为隔时间为1S,电路图如图,电路图如图4-4所示。所示。解:解:(1)利用查询方式处理的程序代码如下:利用查询方式处理的程序代码如下:第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信 3.4.3 串行接口应用串行
40、接口应用#include#define unchar unsigned char sbit P3_3=P33;char code tab=0 x88,0 x83,0 xC6,0 xA1,0 xF9,0 xA4,0 xB0,0 x99;/ABCD与1234的字型码 void timer(uchar);main()uchar i,a=3;SCON=0;for(;)P3_3=1;第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信 第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信 第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信(2
41、)(2)利用中断方式进行处理的程序代码如下利用中断方式进行处理的程序代码如下#include#define uchar unsigned char sbit P3_3=P33;uchar a=3;char code tab=0 x88,0 x83,0 xC6,0 xA1,0 xF9,0 xA4,0 xB0,0 x99 /ABCD 与1234的字型码 void timer(uchar);void int4(void);void main(void)void main(void)uchar i,j;SCON=0;EA=1;ES=1;for(;)P3_3=1;for(i=0;i4;i+)SBUF=taba;j=a;第第3章章 51单片机的内部资源单片机的内部资源3.4 串行通信串行通信(2)(2)利用中断方式进行处理的程序代码如下利用中断方式进行处理的程序代码如下 第第3章章 51单片机的内部资源单片机的内部资源