欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    C51单片微机的串行口原理及应用.ppt

    • 资源ID:5574250       资源大小:1.69MB        全文页数:90页
    • 资源格式: PPT        下载积分:15金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要15金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C51单片微机的串行口原理及应用.ppt

    普通高等教育“十一五”国家级规划教材单片微型计算机原理与接口技术(第二版)高锋 编著科学出版社北京,第七章80C51单片微机的串行口原理及应用,通信:计算机与外界的数据传送。单台仪器仪表或控制器往往会带有不止一个的单片微机,多个智能仪器仪表或控制器在单片微机应用系统中又常常会构成一个分布式采集、控制系统,上层由PC进行集中管理等。,7.1 串行数据通信概述,传送方式 并行传送方式在数据传输时,一个数据编码字符的所有各位都同时发送、并排传输,又同时被接收。并行传送方式要求物理信道为并行内总线或者并行外总线。,串行传送方式在数据传输时,一个数据编码字符的所有各位按一定顺序,一位接着一位在信道中被发送和接收。串行传送方式的物理信道为串行总线。计算机与外界的数据传送大多是串行的,其传送距离可以从几米直到几千公里。,单工方式、半双工方式、全双工方式 单工方式信号(不包括联络信号)在信道中只能沿一个方向传送。半双工方式通信的双方均具有发送和接收信息的能力,信道也具有双向传输性能,通信的任何一方在指定的时刻,只能沿某一个方向传送信息。全双工方式 若信号在通信双方之间沿两个方向同时传送,任何一方在同一时刻既能发送又能接收信息。,异步传输和同步传输在数据通信中,要保证发送的信号在接收端能被正确地接收,必须采用同步技术。常用的同步技术有两种方式,一种称为异步传输也称起止同步方式,另一种称为同步传输也称同步字符同步方式。,异步传输以字符为单位进行数据传输,每个字符都用起始位、停止位包装起来,在字符间允许有长短不一的间隙。同步传输对数据块进行传输,一个数据块中包含着许多连续的字符,在字符之间没有空闲。同步传输可以方便地实现某一通信协议要求的帧格式。,波特率(BAUD RATE)串行通信的传送速率用于说明数据传送的快慢,“波特率”表示每秒种传输离散信号事件的个数,或每秒信号电平的变化次数,单位为band(波特)。“比特率”是指每秒传送二进制数据的位数,单位为比特/秒,记作bits/s或b/s或bps。在二进制的情况下,波特率与比特率数值相等。,串行通信常用的标准波特率在RS-232C标准中已有规定,如波特率为600、1200、2400、4800、9600、19200等等。假若数据传送速率为120字符/s,而每一个字符帧已规定为10个数据位,则传输速率为120101200bit/s,即波特率为1200,每一位数据传送的时间为波特率的倒数:T112000.833ms,7.2 80C51串行口及控制7.2.1 80C51串行口结构,串行数据通信主要有两个技术问题,一个是数据传送,另一个是数据转换。数据传送主要解决传送中的标准、数据帧格式及工作方式等。数据转换要解决把数据进行串、并行的转换,这种转换通常由通用异步接收发送器(UART)电路来完成。数据发送端,要把并行数据转换为串行数据,而在数据接收端,要把串行数据转换为并行数据。80C51中已集成有UART。8XC552中就增加了具有I2C总线功能的串行口。,80C51中的串行口是一个全双工的异步串行通信接口,它可作UART(通用异步接收和发送器)用,也可作同步移位寄存器用。口内的接收缓冲器和发送缓冲器在物理上是隔离的。可以通过访问特殊功能寄存器SBUF,来访问接收缓冲器和发送缓冲器。接收缓冲器具有双缓冲的功能,即它在接收第一个数据字节后,能接收笫二个数据字节。但是在接收完第二个字节后,若笫一个数据字节还未取走,那么该数据字节将丢失。80C51串行口基本结构如图71所示。,波特率发生器由T1、T2 及内部的一些控制开关和分频器所组成。它提供串行口的时钟信号为 TXCLOCK和 RXCLOCK。控制波特率发生器的特殊功能寄存器:TMOD、TCON、T2CON、PCON、TL1、TH1、TL2、TH2等。,串行口内部 串行数据缓冲寄存器SBUF有接收缓冲器SBUF和发送缓冲器SBUF,占用同一个地址(99H)。串行口控制寄存器SCON,串行数据输入输出引脚接收方式下,串行数据从RXD引脚输入,串行口内部在接收缓冲器之前还有移位寄存器,从而构成了串行接收的双缓冲结构,可以避免在数据接收过程中出现帧重叠错误。在发送方式下,串行数据通过TXD引脚输出。,串行口控制逻辑接受来自波特率发生器的时钟信号TXCLOCK和RXCLOCK;控制内部的输入移位寄存器将外部的串行数据转换为并行数据;控制内部的输出移位寄存器将内部的并行数据转换为串行数据输出;控制串行中断(RI和TI)。,7.2.2 80C51串行口控制,串行口状态控制寄存器 SCON控制串行通信的方式选择、接收,指示串行口的中断状态。,SM0、SM1:串行口工作方式选择位。其功能见表71。SM2:允许方式2、3中的多处理机通信位。方式0时,SM20。方式1时,若SM2l,只有接收到有效的停止位,接收中断RI才置1。方式2和方式3时,SM21,则只有当接收到的第9位数据RB8为1时,才将接收到的前8位数据送入缓冲器SBUF中,并把RI置1、同时向CPU申请中断;如果接收到的第9位数据RB8为0,RI置0,将接收到的前8位数据丢弃。SM20时,则不论接收到的笫9位数据是0或1,都将前8位数据装入SBUF中,并申请中断。,REN:允许串行接收位。REN1时,允许串行接收;REN0时,禁止串行接收。TB8:方式2和方式3中要发送的第9位数据。在通信协议中,常规定TB8作为奇偶校验位。在80C51多机通信中,TB8=0用来表示数据帧;TB8=1表示是地址帧。RB8:方式2和方式3中接收到的第9位数据。方式1中接收到的是停止位。方式0中不使用这一位。,TI:发送中断标志位。方式 0中,在发送第 8位末尾置位;在其它方式时,在发送停止位开始时设置。由硬件置位,用软件清除。RI:接收中断标志位。方式 0中,在接收第 8位末尾置位;在其它方式时,在接收停止位中间设置。由硬件置位,用软件清除。,电源控制及波特率选择寄存器 PCON最高位SMOD与串行口控制有关,其它位与低功耗工作方式有关。,SMOD:串行通信波特率系数控制位。当SMOD1时,使波特率加倍。复位后,SMOD0。,串行数据寄存器SBUF包含在物理上是隔离的两个8位寄存器:发送数据寄存器和接收数据寄存器,它们共用一个地址99H。,读SBUF(MOVA,SBUF),则访问接收数据寄存器;写SBUF(MOV SBUF,A),则访问发送数据寄存器。,7.3 串行口的工作方式,在串行口控制寄存器SCON中,SM0和SM1位决定串行口的工作方式。80C51串行口共有4种工作方式。,7.3.1 串行口方式0 同步移位寄存器方式,SM00、SM10。同步移位寄器方式。数据传输波特率固定为(112)fosc。由RXD引脚输入或输出数据,由TXD引脚输出同步移位时钟。接收发送的是8位数据,传输时低位在前。帧格式如图72所示。,方式0时工作原理图的如图73所示。,发送当执行任何一条写SBUF的指令(MOV SBUF,A)时,就启动串行数据的发送。在执行写入SBUF的指令时,选通内部D触发器置1,构成发送移位寄存器的第9位,并使发送控制器开始发送。当发送脉冲有效之后,移位寄存器的内容由RXD引脚串行移位输出;移位脉冲由TXD引脚输出。在发送有效的期间,每个机器周期,发送移位寄存器右移一位,在其左边补0。当数据最高位移到移位寄存器的输出位时,原写入第9位的 l正好移到最高位的左边一位,由此向左的所有位均为 0,零检测器通知发送控制器要进行最后一次移位,并撤销发送有效,同时使发送中断标志TI置位,若CPU响应中断,则执行从0023H开始的串行口发送中断服务程序。,接收当REN1 且RI位清除时,就会启动一次接收过程。在下一机器周期的S6P2时刻,接收控制器将1111 1110写入接收移位寄存器,并在下一时钟周期S1P1使接收控制器的接收有效,打开“与非门”,同时由TXD引脚输出移位脉冲。在移位脉冲控制下,接收移位寄存器的内容每一个机器周期左移一位,同时由RXD引脚接收一位输入信号。每当接收移位寄存器左移一位,原写入的1111 1110也左移一位。当最右边的0移到最左边时,标志着接收控制器要进行最后一次移位。在最后一次移位即将结束时,接收移位寄存器的内容送入接收数据缓冲寄存器SBUF,然后在启动接收的第10个机器周期的S1P1时,清除接收信号,置位SCON中的RI,发出中断申请。完成一帧数据的接收过程。若CPU响应中断,则执行从0023H开始的串行口接收中断服务程序,7.3.2 串行口方式18位UART,SM00、SM1l。数据传输波特率由T1和T2的溢出决定,可用程序设定。当T2CON寄存器中的RCLK和TCLK置位时,采用T2作为串行口接收和发送的波特率发生器。而当RCLK和TCLK都为零时,采用T1作为串行口接收和发送的波特率发生器。由 TXD引脚发送数据。由 RXD引脚接收数据。,发送或接收一帧信息为10位:1位起始位(0)、8位数据位(低位在前)和l位停止位(1)。帧格式如图74所示。,发送:方式1时,发送的工作原理图如图75所示。当执行任何一条写 SBUF的指令时,就启动串行数据的发送。在执行写入SBUF的指令时,也将1写入发送移位寄存器的第9位(由SBUF和1个独立的D触发器构成),并通知发送控制器有发送请求。,开始发送后的一个位周期,发送信号有效,开始将起始位送TXD引脚。一位时间后,数据信号有效。发送移位寄存器将数据由低位到高位顺序输出至TXD引脚。一位时间后,第一个移位脉冲出现将最低数据位从右边移出,同时0从左边挤入。当最高数据位移至发送移位寄存器的出端时,先前装入的第9位的l,正好在最高数据位的左边,而它的右边全部为0。这种状态被零检测器检测到,在第10个位周期(16分频计数器回0时),发送控制器进行最后一次移位,清除发送信号,同时使SCON寄存器中TI置位,完成了一帧数据发送的全过程。若CPU响应中断,则执行从0023H开始的串行口发送中断服务程序。,接收方式1时,接收的工作原理图如图76所示。当REN1且清除RI后,若在RXD引脚上检测到一个1到0的跳变,立即启动一次接收。同时,复位16分频计数器,使输入位的边沿与时钟对齐,并将1FFH(即9个l)写入接收移位寄存器。接收控制器以波特率的16倍的速率继续对RXD引脚进行检测,计数器的16个状态把每一位的时间分为16份,对每一位时间的第7、8、9个计数状态,位检测器对RXD端的值采样,这3个状态理论上对应于每一位的中央值。若发送端与接收端的波特率有差异,就会发生偏移,只要这种差异在允许范围内,就不至于发生错位或漏码。在上述3个状态下,取得3个采样值,其中至少有两个值是一致的,即采用3取2的多数表决法,可抑制噪声。,如果在第1个时钟周期中接收到的不是0,说明它不是一帧数据的起始位,则复位接收电路,继续检测RXD引脚上l到0的跳变。如果接收到的是起始位,就将其移入接收移位寄存器,然后接收该帧的其它位。接收到的位从右边移入,原来写入的1,从左边移出,当起始位移到最左边时,接收控制器将控制进行最后一次移位,把接收到的9位数据送入接收数据缓冲器SBUF和RB8,而且置位RI。在进行最后一次移位时,能将数据送入接收数据缓冲器SBUF和RB8,而且置位RI的条件是:RI0 即上一帧数据接收完成时发出的中断请求已被响应,SBUF中数据已被取走。SM20或接收到的停止位1。若以上两个条件中有一个不满足,将不可恢复地丢失接收到的这一帧信息。,7.3.3 串行口方式2和3 9位UART,SM01、SM10,选择方式2;SM11、SM01,选择方式3。由TXD引脚发送数据。由RXD引脚接收数据。发送或接收一帧信息为11位:1位起始位(0)、8位数据位(低位在前)、1位可编程位和1位停止位(l)。发送时可编程位TB8可设置为1或0,接收时可编程位进入SCON寄存器的RB8位。方式2的波特率是固定的,为振荡器频率的1/32或1/64。.方式3的波特率则由T1和T2的溢出决定,可用程序设定。,帧格式如如图 7-7所示。,方式 2时的工作原理图如图 7-8所示。,在进行最后一次移位时,能将数据送入接收数据缓冲器SBUF和RB8,而且置位RI的条件是:RI0;SM20或接收到的停止位1。若以上两个条件中有一个不满足,将不可恢复地丢失接收到的这一帧信息。,7.4 多处理机通信方式,SM2:多处理机通信位。当串行口以方式2或方式3接收时,若SM21,只有当接收到的第9位数据RB8为1时,才将数据送入接收缓冲器SBUF,并使RI置1,申请中断,否则数据将丢失;若SM20,则无论第9位数据RB8是1还是0,都能将数据装入SBUF,并且发中断。利用这一特性,便可实现主机与多个从机之间的串行通信。图79为多机通信连线示意图,系统中左边的80C51为主机,其余的为1n号从机,并保证每台从机在系统中的编号是惟一的。,系统初始化时,将所有从机中的SM2位均设置为1,并处于允许串行口中断接收状态。主机欲与某从机通信,先向所有从机发出所选从机的地址,从机地址符合后,接着才发送命令或数据。在主机发地址时,置第9位数据(RB8)为1,表示主机发送的是地址帧;当主机呼叫某从机联络正确后,主机发送命令或数据帧时,将第9位数据(RB8)清0。,各从机由于SM2置1,将响应主机发来的第9位数据(RB8)为1的地址信息。从机响应中断后,有两种不同的操作:若从机的地址与主机点名的地址不相同,则该从机将继续维持SM2为l,从而拒绝接收主机后面发来的命令或数据信息,等待主机的下一次点名。若从机的地址与主机点名的地址相同,该从机将本机的SM2清0,继续接收主机发来的命令或数据,响应中断。,7.5串行口的应用 串行口的波特率发生器及波特率计算,串行口的波特率发生器如图7-10所示。方式0时的波特率由振荡器的频率(fosc)所确定:波特率为fosc/12。方式2时的波特率由振荡器的频率(fosc)和SMOD位确定:,当SMOD位1时,波特率fosc/32;当SMOD0时,波特率fosc/64。方式1和3时的波特率由定时器T1和T2的溢出率和SMOD确定。,(1)用定时器T1(0)产生波特率,定时器T1工作于方式0:T1为13位计数器。,式中:TC13位计数器初值;X中断服务程序的机器周期数,在中断服务程序中重新对定时器置数。,定时器T1工作于方式1:T1为16位的计数器。式中:TC16位计数器初值;X中断服务程序的机器周期数,在中断服务程序中重新对定时器置数。定时器Tl工作于方式2:T1为8位可重装的方式,用TL1计数,用TH1装初值。,7.5.2 方式0的编程和应用,例:使用74LS164的并行输出端接8只发光二极管,利用它的串入并出功能,把发光二极管从左向右依次点亮,并不断循环之。发光二极管扩展连接路如图7-11所示。,MOVSCON,#00H;设串行口为方式0,CLRES;禁止串行口中断MOVA,#80H;先显示最左边发光二极管LED:MOVSBUF,A;串行输出JNBTI,$;输出等待CLRTI;软件清中断标志ACALLDELAY;轮显间隔RRA;发光右移AJMPLED;循环DELAY:;延时子程序RET,7.5.3 方式1的编程和应用,例:试编写双机通信程序。甲、乙双机均为串行口方式1,并以定时器T1的方式2为波特率发生器,波特率为2400。波特率的计算:这里使用6MHz晶振,以T1的方式2制定波特率。计算定时器T1的计数初值:波特率=2smod fosc 132 12 28 TH1TH1=28(2SMODfosc)(波特率3212)=256(206106)(24003212)=2566.5=249.5=FAH,甲机发送:将以片内RAM的78H及77H的内容为首地址、以76H及75H的内容减1为末地址的数据块内容,通过串行口传至乙机。例:(78H)20H;首地址高位(77H)00H(76H)20H;末地址高位(75H)20H 即要求程序将片外RAM的2000H20lFH中的内容输出到串行口。对数据块首、末地址的传送以查询方式进行,而数据的传送以中断方式进行。,ORG0000HSJMPTRANSORG 0023H;串行口中断入口 AJMP SINTORG0030HTRANS:MOV TMOD,20H;置T1为定时器方式2 MOVTL1,0FAH;置T1定时常数(波特率为;2400)MOV TH1,0FAH SETB EA;允许中断 CLR ES;关串行口中断,MOVPCON,#00H;波特率不倍增CLR TI;清发送中断MOV SCON,40H;置串行口方式1MOV SBUF,78H;输出首地址WAIT1:JNB TI,WAITI;查询等待发送结束 CLR TIMOVSBUF,77HWAIT2:JNB TI,WAIT2;查询等待发送结束 CLR TI,MOV SBUF,76H;输出末地址WAIT3:JNB TI,WAIT3 CLR TIMOV SBUF,75HWAIT4:JNB TI,WAIT4 CLR TISETB ES;允许串行口中断,MOV DPH,78H;输出数据块中第1个数据 MOV DPL,77H MOVX A,DPTR CLR TI MOV SBUF,A SJMP$;中断等待,ORG0200H;串行口中断服务程序SINT:PUSH DPL;保护现场 PUSH DPH PUSH AINC77H;地址加1MOVA,77HJNZJP1INC78H,JP1:MOV A,78H CJNE A,76H,END1;判数据传送是否结束,未;结束则转END1MOV A,77HCJNE A,75H,END1 CLR ES;结束,关串行口中断,ESCOM:POP A;恢复现场 POP DPH POP DPL RETIEND1:MOV DPH,78H;数据输出未结束,则继续发送 MOV DPL,77H MOVX A,DPTR CLR TI MOV SBUF,A RETI,乙机接收乙机通过RXD引脚接收甲机发来的数据,接收波特率与甲机一样。接收的第1、2字节是数据块的首地址,第3、4字节是数据块的末地址减1,第5字节开始是数据,接收到的数据依次存入数据块首地址开始的存储器中。,ORG0000HSJMPRECEIVE;乙机接收ORG0023HAJMPRSINT;串行口中断入口,ORG0030HRECEIVE:MOV TMOD,#20H;设T1为定时器方式2MOVTL1,0FAH;置T1定时常数 MOV TH1,0FAH SETB EA;允许中断 SETB ES;允许串行口中断CLR TI;清发送中断 MOV SCON,50H;置串行口方式1、接收CLR 20H;置地址标志(20H0,为;地址;20H1,为数据),MOV 70H,78H SJMP$;中断等待 ORG0200HRSINT:PUSH DPL;保护现场 PUSH DPH PUSH ACC MOV A,R0 PUSH ACC JB 20H,DATA;判别接收的是地址还是数据,;是数据,转移,MOV R0,70H;是地址,分别送入78H75H中去 MOV A,SBUF MOV R0,ADEC 70HCLR RI MOV A,74H CJNE A,70H,RETURN;是地址,转结束 SETB 20H;地址已接收完,置接收数据标志,RETURN:POP ACC;恢复现场 MOV R0,A POP ACC POP DPH POP DPLRETIDATA:MOV DPH,78H;接收数据 MOV DPL,77H,MOV A,SBUF MOVX DPTR,A;将数据送入片外RAM CLR RI INC 77H;地址加 1 MOV A,77H JNZ DATA1 INC 78H,DATA1MOV A,76H CJNZ A,78H,RETURN MOVA,75H CJNE A,77H,RETURN CLR ES;结束,关串行口中断 AJMP RETURN,ASCII码由7位组成,其最高位可作为奇偶校验位用。数据块通过串行口发送和接收,采用8位异步通信,波特率为1200,已知fosc11.0592MHz。从内部RAM单元20H3FH中取出ASCII码加上奇偶校验位之后发出。设串行口为方式1,T1为方式2作为串行口的波特率发生器。SMOD0TH1232E8H,例 通过串行口发送带奇偶校验位的数据块,ORG0000HMOVTMOD,#20H;设T1为方式2MOVTL1,#0E8H;T1定时常数MOVTH1,#0E8HMOVSCON,#01000000B;设串行口为方式1MOVR0,#20H;设发送数据区首址MOVR7,#32;发送32个ASCII码数据,LOOP:MOV A,R0;取ASCII码数据ACALLSP-OUT;调用串行口发送子程序INCR0;未发送完,则继续DJNZR7,LOOP,串行口发送子程序SP-OUT:MOV C,P;设奇校验位CPLCMOVACC.7,CMOVSBUF,A;带校验位发送JNBTI,$;发送等待CLRTIRET,把接收到的32个字节数据存放到20H3FH中,波特率为1200,若奇校验出错,将进位标志C置1。ORG0000HMOVTMOD,#20H;设T1为定时器方式2 MOVTL1,#0E8H;设T1时间常数MOVTH1,#0E8HMOVR0,#20H;接收缓冲区首址MOVR7,#32;接收字节计数器,例 通过串行口接收带奇偶校验位的数据块,LOOP:ACALLSP-IN;调用带奇校验的串行口接;收子程序 JCERROR;校验错,转出错处理MOVR0,A;存入INCR0DJNZR7,LOOP;未接收完,则继续ERROR:;校验错,处理,SP-IN:MOV SCON,#01010000B;设串行口为方式;1,启动接收JNBRI,$CLRRIMOV A,SBUF;接收一个字节MOV C,P;检查奇校验位,若出错,C=1CPLCANLA,#7FH;去掉校验位后的ASCII码数据RET,7.5.4 方式2和3的编程和应用,方式2接收发送的一帧信息是11位:第0位是起始位(0);第18位是数据位;第9位是程控位,可由用户置TB8决定;第10位是停止位。方式2的波特率为:波特率振荡器频率/n其中:当 SMOD0时,n64;当 SMODl时,n32。方式2和方式3基本一样,仅波特率设置不同。,工作方式2发送的一帧信息为11位:1位起始位,8位数据位,1位可编程为1或0的第9位(可用作奇偶校验位或数据地址标志位)和1位停止位。奇偶校验位的发送是在将发送数据写入发送缓冲器SBUF之前,先将奇偶标志写入SCON的TB8位。,例:试编写串行接口以工作方式2发送数据的中断服务程序,ORG0023HAJMPSPINTSPINT:CLR EA;关中断PUSH PSW;保护现场PUSH ACC SETB EA;开中断 SETB PSW.4;切换寄存器工作组 CLR TI;清除发送中断请求标志 MOV A,R0;取数据,置奇偶标志位,MOV C,P;奇偶标志位P送TB8 MOV TB8,CMOV SBUF,A;数据写入发送缓冲器,启动发送 INC R0;数据地址指针加1 CLR 0AFH;恢复现场 POP ACC POP PSW SETB 0AFH CLR PSW.4;切换寄存器工作组 RETI;中断返回,例:方式3和方式1的不同在于接收发送的信息位数不同,而与方式2的不同仅在于波特率设置不同。这里以双机通信为例。串行口以方式3进行接收和发送,以T1为波特率发生器,选择定时器方式2。程序首先发送数据存放地址,而地址的高位存放在78H中,地址的低位存放在77H中;然后发送00H,01H,02H,FEH,共255个数据以后结束。,甲机的发送程序:ORG0023HCLR TI RETI TRANSFER:MOV TMOD,20H;置T1为定时方式 2 MOV TL1,0F0H;置T1定时常数MOV TH1,0F0H SETB EA;允许中断 CLR ES;禁止串行口中断 CLR ET1;禁止定时器T1中断,MOV SCON,0E0H;置串行口方式 3 SETB TB8;表示发送的是地址 MOV SBUF,78H;发送地址 JNB TI,CLR TI MOV SBUF,77HJNBTI,$CLRTI MOV IE,90H;允许串行口中断 CLR SM2;以后发送的是数据,MOV A,00H;发送数据 LOOP:MOVSBUF,AINCAJNBTI,$CLRTICJNZ A,0FFH,LOOP;判是否结束 CLR ES;禁止串行口中断 CLR EA;关中断HERE:AJMP HERE,乙机接收程序:把接收到的头两个字节作为存放数据的首地址,再接收到的255个字节的数据存放入相应的单元中。ORG0023HAJMPSINT;串行口中断入口RECEIVE:MOV TL1,0F0H;置定时常数MOV TH1,0F0HMOV TMOD,20H;置定时方式 2SETB ES;允许串行口中断CLR ET1;禁止定时器T1中断SETB EA;开中断MOV SCON,0F0H;置串行口方式 3 接收,MOV R0,0FEH;数据个数RWAIT:AJMP RWAIT ORG1000HSINT:MOV C,SM2JNC PD2;输入是否为地址INC R0NOP MOV A,R0JZ PDMOV DPH,SBUF;输入的是高位地址 AJMP PD1,PD:MOV DPL,SBUF;输入的是低位地址 CLR SM2;下一次输入是数据PDl:CLRRI RETI PD2:MOV A,SBUF;是数据 MOVX DPTR,AINC DPTRCLR RICJNZ A,0FEH,RETURN;判是否结束CLR ES;结束,关中断RETURN:RETI,END,图7 1 80C51串行口结构图,图7 2串行口方式0的数据帧格式,图7 3 串行口工作方式0工作原理图,图7 4 串行口方式1的数据帧格式,图7 5 串行口方式1发送工作原理图,图7 6 串行口方式1接收工作原理图,图7 7 串行口方式2的数据帧格式,图7 8串行口工作方式2工作原理图,图7 9 80C51多机分布式系统示意图,图710 串行口的波特率发生器,图7 11 发光二极管扩展连接路,表7 1 串行口工作方式选择,

    注意事项

    本文(C51单片微机的串行口原理及应用.ppt)为本站会员(小飞机)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开