第7章51单片机的内部资源及编程1_第1页
第7章51单片机的内部资源及编程1_第2页
第7章51单片机的内部资源及编程1_第3页
第7章51单片机的内部资源及编程1_第4页
第7章51单片机的内部资源及编程1_第5页
已阅读5页,还剩93页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章 51单片机的内部资源及编程第第7章章 51单片机的内部资源及编程单片机的内部资源及编程主要内容:主要内容:本章介绍本章介绍51单片机内部集成的并行接单片机内部集成的并行接口、定时口、定时/计数器接口、串行接口和中计数器接口、串行接口和中断接口的结构、原理和编程使用。断接口的结构、原理和编程使用。1第7章 51单片机的内部资源及编程2章章 节节7.1 并行输入并行输入/输出接口输出接口7.2 定时定时/计数器接口计数器接口7.3 串串 行行 接接 口口7.4 中中 断断 系系 统统第7章 51单片机的内部资源及编程7.1 并行输入并行输入/输出接口输出接口【例例7-1】 利用单片机的利用

2、单片机的P0口口接接8个发光二极管,个发光二极管,P1口口接接8个开关,编程实现,当开关动作时,对应的发光二极个开关,编程实现,当开关动作时,对应的发光二极管亮或管亮或灭。灭。MCS-51单片机有单片机有4个个8位的并行输入位的并行输入/输出接口:输出接口:P0、P1、P2和和P3口。这口。这4个口既可以并行输入或输出个口既可以并行输入或输出8位数据,又可以按位方式使用,即每一位均能独立作为位数据,又可以按位方式使用,即每一位均能独立作为输入或输出接口用。输入或输出接口用。第7章 51单片机的内部资源及编程XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P

3、0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C11nFC21nFX1CRYSTALC31nFR1

4、1kD1LED-REDD2LED-REDD3LED-REDD4LED-REDD5LED-REDD6LED-REDD7LED-REDD8LED-REDR2200R3200R4200R5200R6200R7200R8200R9200234567891RP1RESPACK-8硬件电路硬件电路 在在AT89C51单片机小系统的基础上,单片机小系统的基础上,P0口输出接发光二口输出接发光二极管,极管,P1口输入接开关(口输入接开关(SWITCH),注意:),注意:P0口输出时须口输出时须外接上拉电阻(用的排阻外接上拉电阻(用的排阻RESPACK-8),),P1口输入时内部口输入时内部带了上拉电阻,可直接

5、通过开关接地。带了上拉电阻,可直接通过开关接地。第7章 51单片机的内部资源及编程汇编语言程序:汇编语言程序:ORG 0100HMOV P1,#0FFHLOOP: MOV A,P1MOV P0,ASJMP LOOPENDC51语言程序:语言程序:#include void main(void)unsigned char i;P1=0 xff;for(;) i=P1;P0=i; 软件软件程序程序只须把P1口的内容读入后,通过P0口输出即可。第7章 51单片机的内部资源及编程7.2 定时定时/计数器接口计数器接口7.2.1 定时定时/计数器的主要特性计数器的主要特性1MCS-51系列中系列中51子

6、系列有子系列有两个两个16位的可编程定时位的可编程定时/计计数器数器:定时:定时/计数器计数器T0和定时和定时/计数器计数器T1,52子系列有三个,子系列有三个,还有一个定时还有一个定时/计数器计数器T2。2每个定时每个定时/计数器既可以对系统时钟计数实现定时,也计数器既可以对系统时钟计数实现定时,也可以对外部信号计数实现计数功能,通过编程设定来实现。可以对外部信号计数实现计数功能,通过编程设定来实现。3每个定时每个定时/计数器都有多种工作方式,其中计数器都有多种工作方式,其中T0有四种有四种工作方式;工作方式;T1有三种工作方式,有三种工作方式,T2有三种工作方式。通过有三种工作方式。通过编

7、程可设定工作于某种方式。编程可设定工作于某种方式。4每一个定时每一个定时/计数器定时计数时间到时产生溢出,使相计数器定时计数时间到时产生溢出,使相应的溢出位置位,溢出可通过查询或中断方式处理。应的溢出位置位,溢出可通过查询或中断方式处理。第7章 51单片机的内部资源及编程7.2.2 定时定时/计数器计数器T0、T1的结构及工作原的结构及工作原理理组成:组成:加法计数器、方式寄存器加法计数器、方式寄存器TMOD、控制寄存器、控制寄存器TCON和内部总线和内部总线组成。组成。加法计数器加法计数器:16位加法计数器位加法计数器用于对系统时间计数实用于对系统时间计数实现定时或对外部计数信号计数实现计数

8、。现定时或对外部计数信号计数实现计数。方式寄存器方式寄存器TMOD:用于设定定时用于设定定时/计数器计数器T0和和T1的工作方式的工作方式。控制寄存器控制寄存器TCON:用于对定时用于对定时/计数器的启动、停计数器的启动、停止进行控制。止进行控制。内部总线内部总线:各部分之间的连接和信息传送。:各部分之间的连接和信息传送。第7章 51单片机的内部资源及编程TH1TL1TH0TL0TCONTMOD启动启动启动启动溢出溢出溢出溢出工工作作方方式式工工作作方方式式中断请中断请求求内部总线内部总线TcyT1T0定时是对定时是对Tcy进制计数的,由于机器周进制计数的,由于机器周期定值故计数就是定时。计数

9、是通过期定值故计数就是定时。计数是通过T0(P3.4)或)或T1(P3.5)上的输入脉冲进行上的输入脉冲进行计数的。计数的。第7章 51单片机的内部资源及编程加法计数器在使用时注意两个方加法计数器在使用时注意两个方面:面:第一,由于它是第一,由于它是加加1计计数器数器,当,当由全由全1加到全加到全0时计满溢出时计满溢出,要,要计计N个单位个单位,应,应向计数器置初值为向计数器置初值为X,且有:,且有:初值初值X=最大计数值(满值)最大计数值(满值)M计数值计数值N第第二二,工,工作于计数方式时,对芯片引脚作于计数方式时,对芯片引脚T0(P3.4)或)或T1(P3.5)上的输入脉冲计数)上的输入

10、脉冲计数,在,在每一个机器周期的每一个机器周期的S5P2时刻对时刻对T0(P3.4)或)或T1(P3.5)上信号采样一次,如果上一个机器周)上信号采样一次,如果上一个机器周期采样到高电平,下一个机器周期采样到低电平,则计数器在期采样到高电平,下一个机器周期采样到低电平,则计数器在下一个机器周期的下一个机器周期的S3P2时刻加时刻加1计数一次。因而需要两个机器计数一次。因而需要两个机器周期才能识别一个计数脉冲,所以外部计数脉冲的频率应小于周期才能识别一个计数脉冲,所以外部计数脉冲的频率应小于振荡频率的振荡频率的1/24。第7章 51单片机的内部资源及编程10 定时定时/计数器计数器由以下由以下特

11、殊功能寄存特殊功能寄存器器组成:组成: TH0、TL0、TH1、TL1、TMOD和和TCON。用户使用:用户使用:第7章 51单片机的内部资源及编程7.2.3 定时定时/计数器的方式和控制寄存器计数器的方式和控制寄存器一定时一定时/计数器的方式寄存器计数器的方式寄存器TMODTMODD7D6D5D4D3D2D1D0(89H)GATEC/TM1M0GATEC/TM1M0定时器1定时器0其中:其中:M1、M0为工作方式选择位为工作方式选择位 ,用于对,用于对T0的四种工作方式,的四种工作方式,T1的三种工作的三种工作方式进行选择,选择情况如下方式进行选择,选择情况如下 M1M0工作方式工作方式方式

12、说明方式说明00013位定时位定时/计数器计数器01116位定时位定时/计数器计数器1028位自动重置定时位自动重置定时/计数器计数器113两个两个8位定时位定时/计数器(只有计数器(只有T0有)有)第7章 51单片机的内部资源及编程C/T:定时或计数方式选择位,当:定时或计数方式选择位,当C/T=1时工作于计数方式;当时工作于计数方式;当C/T=0时工作于定时方式。时工作于定时方式。 GATE:门控位,用于控制定时:门控位,用于控制定时/计数器的启动是否受外部中断请求信号计数器的启动是否受外部中断请求信号的的影响,影响,GATE=1受受INT0(P3.2)/INT1(P3.3)影响,。影响,

13、。二定时二定时/计数器的控制寄存器计数器的控制寄存器TCONTCOND7D6D5D4D3D2D1D0(88H)TF1TR1TF0TR0IE1IT1IE0IT0其中:其中:TF0(1):):定时定时/计数器计数器T0(1)的)的溢出标志位,当定时溢出标志位,当定时/计数器计数器T1计满时,由硬件使它置位,如中断允许则触发计满时,由硬件使它置位,如中断允许则触发T1中断。进入中断处理中断。进入中断处理后由内部硬件电路自动清除。后由内部硬件电路自动清除。TR0(1):):定时定时/计数器计数器T0(1)的)的启动位,可由软件置位或清零,启动位,可由软件置位或清零,当当TR0(1)=1时启动;时启动;

14、TR0(1)=0时停止。时停止。第7章 51单片机的内部资源及编程7.2.4 定时定时/计数器的工作方式计数器的工作方式一方式一方式0振荡器振荡器 12TLx(低低5位位)THx(高高8位位)TFx与与或或TxTRxGATEINTxS2S1C/TTcy中断请中断请求求13位定时位定时/计数器计数器方式方式计数值为计数值为N和初值和初值X关系:关系: X=213(8192)-N上次计数完,计数器值为上次计数完,计数器值为0,要重复计数需重置初值。,要重复计数需重置初值。第7章 51单片机的内部资源及编程二方式二方式1方式方式1的结构与方式的结构与方式0结构相同,只是把结构相同,只是把13位变成位

15、变成16位,位, 16位的加法计数器被全部用上。位的加法计数器被全部用上。16位定时位定时/计数器计数器方式方式振荡器振荡器 12TLx(低低8位位)THx(高高8位位)TFx与与或或TxTRxGATEINTxS2S1C/TTcy中断请中断请求求计数值为计数值为N和初值和初值X关系:关系: X=65536-N上次计数完,计数器值为上次计数完,计数器值为0,要重复计数需重置初值。,要重复计数需重置初值。第7章 51单片机的内部资源及编程三方式三方式28位自动重置定时位自动重置定时/计数器计数器振荡器12TLx(8位)THx(8位)TFx与或TxTRxGATEINTxS2S1C/TTcy中断请求重

16、装初值8计数值为计数值为N和初值和初值X关系:关系: X=256-N上次计数完,计数器自动重置初值。不需用户重置。上次计数完,计数器自动重置初值。不需用户重置。第7章 51单片机的内部资源及编程振荡器振荡器 12TL0(8位)位)TF0与与或或T0TR0GATEINT0S2S1C/TTcy中断请求中断请求TH0(8位)位)TF1S2中断请求中断请求T1TR1四方式四方式3(两个两个8位定时位定时/计数器计数器)第7章 51单片机的内部资源及编程7.2.5 定时定时/计数器的初始化编程及应计数器的初始化编程及应用用一定时一定时/计数器的编程计数器的编程MCS-51单片机定时单片机定时/计数器初始

17、化过程如下:计数器初始化过程如下:1根据要求选择方式,确定方式控制字,写入方式控根据要求选择方式,确定方式控制字,写入方式控制寄存器制寄存器TMOD。2根据要求计算定时根据要求计算定时/计数器的计数值,再由计数值求计数器的计数值,再由计数值求得初值,写入初值寄存器。得初值,写入初值寄存器。3根据需要开放定时根据需要开放定时/计数器中断(后面须编写中断服计数器中断(后面须编写中断服务程序)。务程序)。4设置定时设置定时/计数器控制寄存器计数器控制寄存器TCON的值,启动定时的值,启动定时/计数器开始工作。计数器开始工作。5.等待定时等待定时/计数时间到,到则执行中断服务程序;如用计数时间到,到则

18、执行中断服务程序;如用查询处理则编写查询程序判断溢出标志,溢出标志等于查询处理则编写查询程序判断溢出标志,溢出标志等于1,则进行相应处理。则进行相应处理。第7章 51单片机的内部资源及编程二定时二定时/计数器的应用计数器的应用 通常利用定时通常利用定时/计数器来产生周期性的波形。利用定时计数器来产生周期性的波形。利用定时/计数器产生周期性波形的基本思想是:计数器产生周期性波形的基本思想是:利用定时利用定时/计数器产计数器产生周期性的定时,定时时间到则对输出端进行相应的处理。生周期性的定时,定时时间到则对输出端进行相应的处理。如产生周期性的方波只须定时时间到对输出端取反一次即如产生周期性的方波只

19、须定时时间到对输出端取反一次即可。可。【例例7-2】 设系统时钟频率为设系统时钟频率为12MHZ,用定时,用定时/计数器计数器T0编程实现从编程实现从P1.0输出周期为输出周期为500s的方波。的方波。分析:从分析:从P1.0输出周期为输出周期为500s的方波,只须的方波,只须P1.0每每250s取反一次则可。当系统时钟为取反一次则可。当系统时钟为12MHZ,定时,定时/计数器计数器T0工作于方式工作于方式2时,最大的定时时间为时,最大的定时时间为256s,满足,满足250s的定时要求,方式控制字应设定为的定时要求,方式控制字应设定为00000010B(02H)。)。系统时钟为系统时钟为12M

20、HZ,定时,定时250s,计数值,计数值N为为250,初值,初值X=256-250=6,则,则TH0=TL0=06H。第7章 51单片机的内部资源及编程19XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16

21、P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC11nFC21nFC31nFR11kABCDD1LED-REDR2200硬件电路硬件电路第7章 51单片机的内部资源及编程汇编程序:汇编程序:ORG 0000HLJMP MAINORG 000BH ;中断处理程序;中断处理程序CPL P1.0RETIORG 0100H ;主程序;主程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB EASE

22、TB ET0 ;定时器;定时器/计数器计数器0的溢的溢出中断允许位。出中断允许位。SETB TR0SJMP $ENDC语言程序:语言程序:#include /包含特殊包含特殊功能寄存器库功能寄存器库sbit P1_0=P10;void main()TMOD=0 x02;TH0=0 x06;TL0=0 x06;EA=1;ET0=1;TR0=1;while(1);void time0_int(void) interrupt 1 /中断服务程序中断服务程序 P1_0=!P1_0;(1)采用中断处理方式的程序:采用中断处理方式的程序:第7章 51单片机的内部资源及编程(2)采用查询方式处理的程序)采用

23、查询方式处理的程序汇编程序:汇编程序:ORG 0000HLJMP MAINORG 0100H ;主程序;主程序MAIN:MOV TMOD,#02HMOV TH0,#06HMOV TL0,#06HSETB TR0LOOP:JBC TF0,NEXT ;查询计数溢出;查询计数溢出SJMP LOOPNEXT:CPL P1.0SJMP LOOPSJMP $ENDC语言程序:语言程序:#include /包含特殊包含特殊功能寄存器库功能寄存器库sbit P1_0=P10;void main()char i;TMOD=0 x02;TH0=0 x06;TL0=0 x06;TR0=1;for(;) if (TF

24、0) TF0=0;P1_0=! P1_0; /查询计数溢出查询计数溢出第7章 51单片机的内部资源及编程22第7章 51单片机的内部资源及编程【例例7-3】设系统时钟频率为设系统时钟频率为12MHZ,编程实现从,编程实现从P1.1输出周期为输出周期为1s的方波。的方波。 根据根据例例7-2的处理过程,这时应产生的处理过程,这时应产生500ms的周期的周期性的定时,定时到则对性的定时,定时到则对P1.1取反就可实现。由于定时时间取反就可实现。由于定时时间较长,一个定时较长,一个定时/计数器不能直接实现,可用定时计数器不能直接实现,可用定时/计数器计数器T0产生周期性为产生周期性为10ms的定时,

25、然后用一个寄存器的定时,然后用一个寄存器R2对对10ms计数计数50次或用定时次或用定时/计数器计数器T1对对10ms计数计数50次实现。次实现。系统时钟为系统时钟为12MHZ,定时,定时/计数器计数器T0定时定时10ms,计数值,计数值N为为10000,只能选方式,只能选方式1,方式控制字为,方式控制字为00000001B(01H),初值),初值X:X=65536-10000=55536=1101100011110000B则则TH0=11011000B=D8H,TL0=11110000B=F0H。第7章 51单片机的内部资源及编程(1)用寄存器)用寄存器R2作计数器软件计数,中断处理方式作计

26、数器软件计数,中断处理方式。汇编程序:汇编程序:ORG 0000HLJMP MAINORG 000BHLJMP INTT0ORG 0100HMAIN:MOV TMOD,#01HMOV TH0,#0D8HMOV TL0,#0F0HMOV R2,#00HSETB EASETB ET0SETB TR0SJMP $INTT0:MOV TH0,#0D8HMOV TL0,#0F0HINC R2CJNE R2,#32H,NEXTCPL P1.1MOV R2,#00HNEXT:RETIEND第7章 51单片机的内部资源及编程C语言程序语言程序:#include /包含特殊功能寄存器库包含特殊功能寄存器库sbi

27、t P1_1=P11;char i;void main()TMOD=0 x01; TH0=0 xD8;TL0=0 xf0;EA=1;ET0=1;i=0;TR0=1;while(1);void time0_int(void) interrupt 1 /中断服务程序中断服务程序TH0=0 xD8;TL0=0 xf0;i+;if (i= =50) P1_1=! P1_1;i=0;第7章 51单片机的内部资源及编程(2) 用定时用定时/计数器计数器T1计数实计数实现现 定定时时/计数器计数器T1工作于计数方式时,计数脉冲通过工作于计数方式时,计数脉冲通过T1(P3.5)输入,设定时)输入,设定时/计数

28、器计数器T0定时时间到对定时时间到对T1(P3.5)取反一次,则取反一次,则T1(P3.5)每)每20ms产生一个计数脉冲,那么产生一个计数脉冲,那么定时定时500ms只须计数只须计数25次,设定时次,设定时/计数器计数器T1工作于方式工作于方式2,初值初值X=256-25=231= 11100111B=E7H,TH1=TL1=E7H。因为定时因为定时/计数器计数器T0工作于方式工作于方式1,定时,则这时方式控制字,定时,则这时方式控制字为为01100001B(61H)。定时)。定时/计数器计数器T0和和T1都采用中断方都采用中断方式工作。式工作。第7章 51单片机的内部资源及编程ORG 01

29、00HMAIN:MOV TMOD,#61HMOV TH0,#0D8HMOV TL0,#0F0HMOV R2,#00HMOV TH1,#0E7HMOV TL1,#0E7HSETB EASETB ET0SETB ET1SETB TR0SETB TR1SJMP $ENDORG 0000HLJMP MAINORG 000BHMOV TH0,#0D8HMOV TL0,#0F0HCPL P3.5RETIORG 001BHCPL P1.1RETI汇编程序如下:汇编程序如下:第7章 51单片机的内部资源及编程#include /包含特殊功能寄存器库包含特殊功能寄存器库sbit P1_1=P11;sbit P3

30、_5=P35;void main()TMOD=0 x61;TH0=0 xD8;TL0=0 xf0;TH1=0 xE7; TL1=0 xE7;EA=1;ET0=1;ET1=1;TR0=1;TR1=1;while(1);void time0_int(void) interrupt 1 /T0中断服务程序中断服务程序 TH0=0 xD8;TL0=0 xf0;P3_5=!P3_5;void time1_int(void) interrupt 3 /T1中断服务程序中断服务程序 P1_1=! P1_1;C语言程序:语言程序:第7章 51单片机的内部资源及编程29第7章 51单片机的内部资源及编程7.3

31、串行接口串行接口7.3.1 通讯的基本概念通讯的基本概念一并行通信和串行通信一并行通信和串行通信计计算算机机01001001计计算算机机01001001(或外设)(或外设)D0D1D2D3D4D5D6D7控制或选通控制或选通状态状态计计算算机机计计算算机机(或外设)(或外设)计算机与外界的通信有两种基本方式:并行通信和串行通信。计算机与外界的通信有两种基本方式:并行通信和串行通信。第7章 51单片机的内部资源及编程根据信息传送的方向,串行通信可以分为单工、半双工和全双工根据信息传送的方向,串行通信可以分为单工、半双工和全双工3种。种。 (a) A B (b) (c) A B A B s s二同

32、步通信和异步通信二同步通信和异步通信串行通信按信息的格式又可分为异步通信和同步通信两种方式。串行通信按信息的格式又可分为异步通信和同步通信两种方式。1串行异步通信方式串行异步通信方式第第n+1个字符个字符起始位起始位奇偶校验位奇偶校验位停止位停止位下一个起始位下一个起始位D2D1D0D3D4D5D6D7数据位数据位D0D10010/10/10/10/10/10/10/10/10/10/10/1D2第第n个字符个字符第7章 51单片机的内部资源及编程2串行同步通信方式串行同步通信方式同步字符1同步字符2数据块校验字符1校验字符2三波特率三波特率 波波特率是指串行通信中,单位时间传送的二进制位数,

33、特率是指串行通信中,单位时间传送的二进制位数,单位为单位为bps。 在异步通信中,传输速度往往又可用每秒传送多少个字在异步通信中,传输速度往往又可用每秒传送多少个字节来表示(节来表示(Bps)。它与波特率的关系为:)。它与波特率的关系为:波特率(波特率(bps)=一个字符的二进制位数一个字符的二进制位数字符字符/秒秒(Bps)例如:每秒传送例如:每秒传送200个字符,每个字符个字符,每个字符1位起始位、位起始位、8个个数据位、数据位、1个校验位和个校验位和1个停止位。则波特率个停止位。则波特率为为2200bps第7章 51单片机的内部资源及编程7.3.2 MCS-51单片机串行口功能与结构单片

34、机串行口功能与结构一功能一功能MCS-51单片机具有一个全双工的串行异步通信接口,可单片机具有一个全双工的串行异步通信接口,可以同时发送、接收数据,发送、接收数据可通过查询或以同时发送、接收数据,发送、接收数据可通过查询或中断方式处理,使用十分灵活中断方式处理,使用十分灵活它有四种工作方式,分别是方式它有四种工作方式,分别是方式0、方式、方式1、方式、方式2和和方式方式3。其中:。其中:方式方式0,称为同步移位寄存器方式,一般用于外接移,称为同步移位寄存器方式,一般用于外接移位寄存器芯片扩展位寄存器芯片扩展I/O接口。接口。方式方式1,8位的异步通信方式,通常用于双机通信。位的异步通信方式,通

35、常用于双机通信。方式方式2和方式和方式3,9位的异步通信方式,通常用于多机位的异步通信方式,通常用于多机通信。通信。第7章 51单片机的内部资源及编程二结构二结构发送发送SBUF接收接收SBUF发送控制器发送控制器接收控制器接收控制器输入移位寄存器输入移位寄存器串行口控制寄存器串行口控制寄存器波特率发生器波特率发生器串行口中断串行口中断内部总线内部总线门门+RXD(P3.0)TXD(P3.1)RITI第7章 51单片机的内部资源及编程 MCS-51单片机串行口主要由发送数据寄存器、发送单片机串行口主要由发送数据寄存器、发送控制器、输出控制门、接收数据寄存器、接收控制器、控制器、输出控制门、接收

36、数据寄存器、接收控制器、输入移位寄存器等组成输入移位寄存器等组成 从用户使用的角度,它由三个特殊功能寄存器组成:从用户使用的角度,它由三个特殊功能寄存器组成:发送数据寄存器和接收数据寄存器合起用一个特殊功发送数据寄存器和接收数据寄存器合起用一个特殊功能寄存器能寄存器SBUF(串行口数据寄存器),串行口控制(串行口数据寄存器),串行口控制寄存器寄存器SCON和电源控制寄存器和电源控制寄存器PCON。 第7章 51单片机的内部资源及编程三串行口控制寄存器三串行口控制寄存器SCONSCOND7D6D5D4D3D2D1D098HSM0SM1SM2RENTB8RB8TIRI其中:其中:SM0、SM1:串

37、行口工作方式选择位。用于选择四种工作方式:串行口工作方式选择位。用于选择四种工作方式 SM0SM1方式功能波特率00方式0移位寄存器方式fosc/1201方式18位异步通信方式可变10方式29位异步通信方式fosc/32或fosc/6411方式39位异步通信方式可变第7章 51单片机的内部资源及编程SM2:多机通信控制位:多机通信控制位。方式。方式1时,若时,若SM2=1,则只有接受则只有接受到有效的停止位才接受有效。方式到有效的停止位才接受有效。方式0时,时,SM2=0。 REN:允许接收控制位。当:允许接收控制位。当REN=1,则允许接收,当,则允许接收,当REN=0,则禁止接收。,则禁止

38、接收。TB8:发送数据的第:发送数据的第9位。位。 RB8:接收数据的第:接收数据的第9位。位。 TI:发送中断标志位:发送中断标志位。硬件置位,软件清零。硬件置位,软件清零。 RI:接收中断标志位。:接收中断标志位。 系统复位后,系统复位后,SCON的所有位都被清零。的所有位都被清零。四电源控制寄存器四电源控制寄存器PCONPCOND7D6D5D4D3D2D1D087HSMOD当当SMOD位为位为1,则波则波特率加倍特率加倍。工作方式。工作方式1,2,3的波特率加倍。的波特率加倍。 第7章 51单片机的内部资源及编程7.3.3 串行口的工作方式串行口的工作方式一方式一方式0-移位寄存器方式移

39、位寄存器方式 方式方式0通常用来外接移位寄存器,用作扩展通常用来外接移位寄存器,用作扩展I/O口。口。u RXD:串行数据:串行数据 输入输出输入输出 TXD:同步:同步时钟输出。时钟输出。u 数据格式:低位在前,高位在后,长度数据格式:低位在前,高位在后,长度8位,在位,在SBUF中。中。u 波特率:波特率:fosc /12。(1)发送)发送n条件:条件:TI(发送中断标志)(发送中断标志)=0n操作:操作:MOV SBUF,An 结果:发送完毕,结果:发送完毕,TI置置“1”。 第7章 51单片机的内部资源及编程u 条件:条件:RI=0u 操作:操作:REN(SCON.4)置)置“1”u

40、结果:结果:8位数据接收数据缓冲器位数据接收数据缓冲器SBUF中,同时,中,同时,RI置置“1” ,向,向CPU申请中断。申请中断。 u 用户处理:用户处理:MOV A,SBUF(2)接收)接收第7章 51单片机的内部资源及编程二方式二方式1- 8位异步通信方式位异步通信方式u TXD:发送数据端:发送数据端 RXD:接收数据端。:接收数据端。u 数据格式:数据格式: 1位起始位(位起始位(0),),SBUF中中8位数据位(低位数据位(低位在前)和位在前)和1位停止位(位停止位(1)。)。u波特率:波特率: 2SMOD(T1的溢出率)的溢出率)/32,使用前需对定,使用前需对定时时/计数器计数

41、器T1进行初始化。进行初始化。(1)发送)发送u 条件:条件:TI=0u 操作:操作:MOV SBUF,Au 结果:发送完毕,结果:发送完毕,TI置置“1”。 第7章 51单片机的内部资源及编程u 条件:条件:RI=0,REN(SCON.4)置)置“1”。u 结果:结果:8位数据接收数据缓冲器位数据接收数据缓冲器SBUF中,同时,中,同时,RI置置“1” ,向,向CPU申请中断。申请中断。 u 用户处理:用户处理:MOV A,SBUF(2)接收)接收第7章 51单片机的内部资源及编程三方式三方式2和方式和方式3u TXD:发送数据端:发送数据端 RXD:接收数据端:接收数据端u 数据格式:数据

42、格式: 1位起始位(位起始位(0),),SBUF中中8位数据位(低位数据位(低位在前)第位在前)第9位位TB8和和1位停止位(位停止位(1)u波特率波特率:方式:方式2: fosc/32或fosc/64 方式方式3:2SMOD(T1的溢出率)的溢出率)/32(1)发送)发送u 条件:条件:TI=0u 操作:先准备第操作:先准备第9位位TB8 ,执行,执行MOV SBUF,Au 结果:发送完毕,结果:发送完毕,TI置置“1”。 第7章 51单片机的内部资源及编程u 条件:条件:RI=0,REN(SCON.4允许接受控制位)允许接受控制位)置置“1”。u 结果:结果: SM2=0,接收的前,接收的

43、前8位数据送位数据送SBUF,第,第9位送位送RB8,RI置置“1” ,向,向CPU申请中断。申请中断。 SM2=1,若接收的第,若接收的第9位为位为1,则前,则前8位数据送位数据送SBUF,第第9位送位送RB8,RI置置“1” ,向,向CPU申请中断。申请中断。u 用户处理:用户处理:MOV A,SBUF(2)接收)接收第7章 51单片机的内部资源及编程7.3.4 串行口的编程及应用串行口的编程及应用一串行口的初始化编程一串行口的初始化编程1串行口控制寄存器串行口控制寄存器SCON位的确定。位的确定。n 根据工作方式确定根据工作方式确定SM0、SM1位;位;n 方式方式2和方式和方式3确定确

44、定SM2位;位;n 如果是接收端,则置允许接收位如果是接收端,则置允许接收位REN为为1;n 方式方式2和方式和方式3发送数据,则应将发送数据的第发送数据,则应将发送数据的第9位写入位写入TB8中。中。2设置波特率。设置波特率。方式方式0:不需要对波特率进行设置。:不需要对波特率进行设置。方式方式2:设置波特率仅须对:设置波特率仅须对PCON中的中的SMOD位进行设置。位进行设置。第7章 51单片机的内部资源及编程对于方式对于方式1和方式和方式3:nPCON中的中的SMOD位设置位设置n定时定时/计数器计数器T1进行设置进行设置定时定时/计数器计数器T1-工作于方式工作于方式2初值可由下面公式

45、求得:初值可由下面公式求得:由于:由于: 波特率波特率=2SMOD(T1的溢出率)的溢出率)/32则:则: T1的溢出率的溢出率=波特率波特率32/2SMOD而而T1工作于方式工作于方式2的溢出率又可由下式表示:的溢出率又可由下式表示: T1的溢出率的溢出率=fosc/(12(256-初值)初值)所以:所以: T1的初值的初值=256 - fosc2SMOD /(12波特率波特率32)第7章 51单片机的内部资源及编程二串行口的应用二串行口的应用通常用于三种情况:通常用于三种情况:u利用方式利用方式0扩展并行扩展并行I/O口;口;u利用方式利用方式1实现点对点的双机通信;实现点对点的双机通信;

46、u利用方式利用方式2或方式或方式3实现多机通信。实现多机通信。 1利用方式利用方式0扩展并行扩展并行I/O口口扩展并行输出:外接一个串入并出的移位寄存器扩展并行输出:外接一个串入并出的移位寄存器扩展并行输入:当外接一个并入串出的移位寄存器扩展并行输入:当外接一个并入串出的移位寄存器【例例7-4】用用8051单片机的串行口外接串入并出的芯片单片机的串行口外接串入并出的芯片CD4094扩展并行输出口控制一组发光二极管扩展并行输出口控制一组发光二极管,使发光二极使发光二极管从左至右延时轮流显示。管从左至右延时轮流显示。第7章 51单片机的内部资源及编程474094是一块是一块8位的串入并出的芯片,共

47、位的串入并出的芯片,共16个引脚个引脚:l 电源和地信电源和地信号号。l D:串行数据输入端;:串行数据输入端;l CLK:串行时钟信号输入端;:串行时钟信号输入端;l Q1Q8:8位数据并行输出端;位数据并行输出端;l STB:锁存端;:锁存端;l OE:数据输出允许端;:数据输出允许端; l QS:第:第9个串行时钟的上升沿开始输出端;个串行时钟的上升沿开始输出端;l :第:第9个串行时钟的下降沿开始输出端。个串行时钟的下降沿开始输出端。QS第7章 51单片机的内部资源及编程484094的工作过程一般如下:的工作过程一般如下:u (1)使锁存端)使锁存端STB =0,在串行时钟信号,在串行

48、时钟信号CLK的作用的作用下,数据从输入端下,数据从输入端D按一个时钟周期一位依次串行输按一个时钟周期一位依次串行输入入。u (2) 8位数据输入后,使控制端位数据输入后,使控制端STB=1,输入的内,输入的内容锁存到内部锁存器容锁存到内部锁存器。u (3)使数据输出允许端)使数据输出允许端OE=1,锁存的数据送,锁存的数据送Q1Q8并行输出;并行输出;第7章 51单片机的内部资源及编程STBSTBXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/A

49、D633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC11nFC21nFC31nFR11kD2CLK3STB1OE15Q04Q15Q26Q37Q414Q513Q612Q711QS9QS10U240

50、94D1LED-YELLOWD2LED-YELLOWD3LED-YELLOWD4LED-YELLOWD5LED-YELLOWD6LED-YELLOWD7LED-YELLOWD8LED-YELLOWR2200R3200R4200R5200R6200R7200R8200R9200硬件电路硬件电路第7章 51单片机的内部资源及编程程程序如下:序如下:汇编程序:汇编程序:ORG 0000HLJMP MAINORG 0100HMAIN:MOV SCON,#00HMOV A,#01HCLR P1.0START:MOV SBUF,ALOOP:JNB TI,LOOPSETB P1.0ACALL DELAYCL

51、R TIRL ACLR P1.0SJMP STARTDELAY:MOV R7,#80HLOOP2:MOV R6,#0FFHLOOP1:DJNZ R6,LOOP1DJNZ R7,LOOP2RETEND设串行口采用查询方式,显示的延时依靠调用延时子程序来实现。设串行口采用查询方式,显示的延时依靠调用延时子程序来实现。第7章 51单片机的内部资源及编程C语言程序:语言程序:#include /包含特殊功能寄存器库包含特殊功能寄存器库sbit P1_0=P10;void main()unsigned char i;unsigned int j;SCON=0 x00;/串口初始化方式串口初始化方式0i=

52、0 x01;for (; ;)P1_0=0;/4094串入串入SBUF=i;/51单片机串口发送单片机串口发送while (!TI) ;/等待发送等待发送P1_0=1;TI=0;/4094并出显示并出显示for (j=0;j=254;j+) ; /延时延时i=i*2;/改变显示内容改变显示内容if (i= =0 x00) i=0 x01;第7章 51单片机的内部资源及编程【例例7-5】 用用8051单片机的串行口外接并入串出的芯片单片机的串行口外接并入串出的芯片CD4014扩展并行输入口,输入一组开关的信息。扩展并行输入口,输入一组开关的信息。4014是一块是一块8位的并入串出的芯片,共位的并

53、入串出的芯片,共16个引脚:个引脚:u 电源和地信电源和地信号;号;u D7D0:8位并行数据输入端;位并行数据输入端;u SIN:串行数据输入端;:串行数据输入端;u CLK:串行时钟信号输入端;:串行时钟信号输入端;u Q7Q5:第:第8、7、6位数据输出端;位数据输出端;u P/S:方式控制端。:方式控制端。 第7章 51单片机的内部资源及编程4014的工作过程一般如下:的工作过程一般如下:u(1)使控制端)使控制端P/S =1,8位并行数据置入到内部的位并行数据置入到内部的寄存器;寄存器;u(2)使控制端)使控制端P/S=0,在时钟信号,在时钟信号CLK的控制下,的控制下,内部寄存器的

54、内容按高位在前从内部寄存器的内容按高位在前从Q7Q5串行输出串行输出端依次输出。端依次输出。 第7章 51单片机的内部资源及编程54PSPSXTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T11

55、5P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C11nFC21nFX1CRYSTALC31nFR11kD1LED-REDD2LED-REDD3LED-REDD4LED-REDD5LED-REDD6LED-REDD7LED-REDD8LED-REDR2200R3200R4200R5200R6200R7200R8200R9200234567891RP1RESPACK-8SIN11D07D16D25D34D413D514Q52D615Q612D71Q73CLK10P/S9

56、U24014234567891RP2RESPACK-8第7章 51单片机的内部资源及编程程序如下: 串行口方式串行口方式0数据的接收,用数据的接收,用SCON寄存器中的寄存器中的REN位位来控制,采用查询来控制,采用查询RI的方式来判断数据是否输入。的方式来判断数据是否输入。汇编语言程序:汇编语言程序:ORG 0000HLJMP MAINORG 0100HMAIN:SETB P1.0 ;4014并入并入NOPNOPNOP CLR P1.0;4014串出串出NOPNOPNOPMOV SCON,#10H;串串口初始化方式口初始化方式0,允许接收,允许接收LOOP: JNB RI,LOOP;接收接收

57、CLR RIMOV A,SBUFMOV P0,A;送送P0口显口显示示SJMP MAINEND第7章 51单片机的内部资源及编程C语言程序:语言程序: #include /包含特殊功能寄存器库包含特殊功能寄存器库#include / 包含内部函数库包含内部函数库sbit P1_0=P10;void main()unsigned char i;while(1)P1_0=1; _nop_(); _nop_(); _nop_(); /4014并入并入P1_0=0; _nop_(); _nop_(); _nop_(); /4014串出串出SCON=0 x10;/串口初始化方式串口初始化方式0,允许接收

58、,允许接收while (!RI) ;/接收接收RI=0;i=SBUF;P0=i;/送送P0口显示口显示 第7章 51单片机的内部资源及编程2利用方式利用方式1实现点对点的双机通信实现点对点的双机通信 要实现甲与乙两台单片机点对点的双机通信,线路要实现甲与乙两台单片机点对点的双机通信,线路只须将甲机的只须将甲机的TXD与乙机的与乙机的RXD相连,将甲机的相连,将甲机的RXD与与乙机的乙机的TXD相连,地线与地线相连相连,地线与地线相连。软件方面选择相同软件方面选择相同的工作方式,设相同的波特率即可实现。的工作方式,设相同的波特率即可实现。 【例例7-6】设计双机通信系统。要求:甲机设计双机通信系

59、统。要求:甲机P1口开关的状口开关的状态通过串行口发送到乙机,乙机接收到后通过态通过串行口发送到乙机,乙机接收到后通过P2口的发口的发光二极管显示;乙机光二极管显示;乙机P1口开关的状态发送到甲机,甲机口开关的状态发送到甲机,甲机接收到后通过接收到后通过P2口的发光二极管显示。口的发光二极管显示。第7章 51单片机的内部资源及编程58硬件电路a0a1a2a3a4a5a6a7b7b6b5b4b3b2b1b0a7b7a6a5a4a3a2a1a0b6b5b4b3b2b1b0XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P

60、0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51X1CRYSTALC11nFC21nFC31nFR1300XTAL218XTAL119ALE

温馨提示

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

评论

0/150

提交评论