单片机复习要点汇编完整课件.ppt

  1. 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2.方式0输入  (1)方式0输入的工作原理:方式0输入时,REN为串行口允许接收控制位,REN=0,禁止接收;REN=1,允许接收。 当CPU向串行口SCON寄存器写入控制字(设置为方式0,并使REN位置“1”,同时RI=0)时,产生一正脉冲,串口开始接收数据。引脚RXD为数据输入端,TXD为移位脉冲信号输出端,接收器以fosc/12固定波特率采样RXD引脚数据信息,当接收器接收完8位数据时,中断标志RI置“1”,表示一帧接收完毕,可进行下一帧接收,时序见图8-7。   * 图8-7 方式0接收时序 (2)方式0输入应用举例 【例8-2】图8-8为串口外接一片8位并行输入、串行输出同步移位寄存器74LS165,扩展一个8位并行输入口的电路,可将接在74LS165的8个开关S0~S7的状态通过串行口的方式0读入到单片机内。74LS165的SH/LD*端(1脚)为控制端,由单片机的P1.1脚控制。若SH/LD*=0,则74LS165可以并行输入数据,且串行输出端关闭;当SH/LD*=1,则并行输入关断,可以向单片机串行传送。当P1.0连接的开关K合上时,可进行开关S0~S7状态数字量的并行读入。由图8-8,采用中断方式来对S0~S7状态读取,并由单片机P2口驱动二极管点亮(开关S0~S7中的任何一个按下,则对应的二极管点亮)。    * 图8-8 串口方式0外接并行输入、串行输出的同步移位寄存器  参考程序如下:   #include reg51.h   #include intrins.h   #includestdio.h   sbit P1_0=0x90;   sbit P1_1=0x91;   unsigned char nRxByte;   void delay(unsigned int i) //延时子程序   {    unsigned char j;    for(;i0;i--) //变量i由实际参数传入一个值,因此i不能赋初值    for(j=0;j125;j++);   }   main()   {    SCON=0x10; // 串行口初始化为方式0    ES=1; // 允许串行口中断    EA=1; // 允许全局中断    for(;;);   }   *  void Serial_Port() interrupt 4 using 0 // 串行口中断服务子程序   {    if(P1_0==0)// 如果P1_0=0表示开关K按下,可以读开关S0~S7的状态    {    P1_1=0; // P1_1=0并行读入开关的状态    delay(1);    P1_1=1; // P1_1=1将开关的状态串行读入到串口中    RI=0; //接收中断标志RI清0    nRxByte=SBUF;//接收的开关状态数据从SBUF读入到nRxByte 单元中    P2=nRxByte; /开关状态数据送到P2口,驱动发光二极管发光    }   }   程序说明:当P1.0为0,即开关K按下,表示允许并行读入开关S0~S7的状态数字量,通过P1.1把SH/LD*置0,则并行读入开关S0~S7的状态。再让P1.1=1,即SH/LD*置1,74LS165将刚才读入的S0~S7状态通过QH端(RXD脚)串行发送到单片机的SBUF中,在中断服务程序中把SBUF中的数据读到nRxByte单元,并送到P2口驱动8个发光二极管。  * 8.5 串行口应用设计案例  单片机串行通信接口设计时,需考虑如下问题。  (1)确定串行通信双方的数传速率和通信距离。  (2)由串行通信的数传速率和通信距离确定采用的串行通信接口标准。  (3)注意串行通信的通信线选择,一般选用双绞线较好,并根据传输的距离选择纤芯的直径。如空间干扰较多,还要选择带有屏蔽层的双绞线。  下面首先介绍有关串行通信各种接口标准。  * 8.5.1 各种串行通信接口标准  AT89S51串口输入、输出均为TTL电平。这种以TTL电平来串行传输数据,抗干扰性差,传输距离短,传输速率低。为提高串行通信可靠性,增大串行通信距离和提高传输速率,在实际设计中都采用标准串行接口,如RS-232、RS-422A、RS-485等。  根据双机通信距离和抗干扰性要求,可选择TTL电平传输,或选择RS-232C、RS-422A、RS-485串行接口进行串行数据传输。  1.TTL电平通信接口  如两个AT89S51相距在1.5m之内,串行口可直接相连,接口电路如图8-9。甲机RXD与乙机TXD端相连,乙机RXD与甲机

文档评论(0)

a13355589 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档