单片机串行口原理及应用_第1页
单片机串行口原理及应用_第2页
单片机串行口原理及应用_第3页
单片机串行口原理及应用_第4页
单片机串行口原理及应用_第5页
已阅读5页,还剩62页未读 继续免费阅读

下载本文档

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

文档简介

外中断实验: 1、“”键与端子连接时,接通电源后,2盏灯点亮。 为什么?2、用终端切换的话,点亮的灯会变得不稳定。 为什么3、作为输入脉冲人工连接GND时,显示不定,为什么? 实验中的现象:计时器实验:计时器关闭后启动,第一盏灯点亮的时间不到1S,为什么? 第7章80C51单片机的串行原理及应用80 c 51 sing le-chipmicrocomputerrprincippleandapplicationoftheserialort,本章内容:(chaptercontents) 串行数据通信的概要overviewoftheserialatacommunication80c 51串行端口和、 80C51serialportandcontrol串行端口的动作方式Serialportmodel多机通信方式Multi-machinecommunication串行端口的应用程序Appli cationofserialPort 基本方式:并行通信并行通信:串行通信的串行通信:特征:7.1串行数据通信的概要overviewoftheserialatacommunication一、传输方式transmisss 并行通信的优点/缺点,通用串行通信协议和接口标准: UART通用异步收发器(universallaseynchronousreceiver/transmitter ) 本课程介绍的串行USB通用串行总线i2c总线(集成电路) can总线(controllerAreaNetwork)SPI总线(serialeripheralinterface ) RS -串行总线RS-485 RS422A规格等,二, 串行通信方式标准规格标准规格标准规格标准规格标准规格标准规格标准规格标准规格规格规格规格规格规格规格规格规格规格规格规格规格规格1、异步通信异步通信、异步通信以起始位、停止位维持通信同步,帧数据:起始位、数据位、 奇偶校验位和停止位、三、异步通信和同步通信、特征:按帧传输:优点:传输速度快、缺点:对硬件要求高、准确时钟应用:批量数据传输2、同步通信同步通信、同步通信通过同步字符维持通信同步, 同步通信由12个同步字符和多字节数据位构成,特征为: 4、波特率(BAUDRATE ),例如RS-232C标准中规定,例如波特率为600、1200、2400、4800、9600, 例如19200波特率:比特率:在传输率为120字符帧/s、1字符帧为10数据比特的情况下,传输率为12010=1200比特/s,即波特率为1200,1比特的数据传输时间为波特率的倒数t=11200=0. 80 在每秒的传输离散信号数单位中,band (poter )为每秒传输二进制数据的比特数(比特/秒bps )的波特率与比特率的数值相等,波特率:串行通信数据的传输速率,7.280C51串行端口与控制80 c-51串行端口相等8XC552增加: I2C总线功能,全双工异步串行通信接口,7.2.180C51串行端口结构structure of 80 c 51串行端口,1 .波特率发生器: T1(T2)到串行端口时钟信号,串行端口内部、 提供时钟信号TXCLOCK和RXCLOCK的输入移位寄存器:串行数据并行数据输出移位寄存器:并行数据串行数据串行中断标志(RI和TI );串行数据缓冲器SBUF;串行端口控制寄存器SCON TXD串行端口控制逻辑,7.2.280C51串行端口控制80c51串行端口状态控制寄存器SCON,SM0,SM1:串行端口动作模式选择位, SM2 :多处理器通信位方式0时: SM2=0方式1时:一般SM2=0且SM2=l时接收有效停止位,接收中断RI为1方式2和方式3时为:SM2=1,仅在RB8=1时缓冲接收的高位8位的数据RI组1,同时向CPU请求中断的RB8=0,RI组0,丢弃接收到的高8位数据SM2=0,不管接收到的第9位数据是0还是1,都将高8位数据加载到SBUF中,并请求中断。另外,每次收发数据时,必须用命令清除RI/TI,在电源控制和波特率选择寄存器PCON、PCON寄存器不能复位位地址的情况下、SMOD=0、SMOD :串行端口动作方式1、2、3中波特率加倍位=1的情况下(PCON中只有该位与串行相关)、串行数据寄存器SBUF、SBUF(MOVA,SBUF )访问接收SBUF写入SBUF(MOVSBUF, a )存取传输SBUF具有物理上两个8位寄存器:7.3.1串行端口方案0-同步移位寄存器方案SM0=0和SM1=0的数据传输速率为(1/12)fosc是通过TXD端子输出同步移位时钟接收或发送到RXD端子的传输时低位以前、7.3串行端口的动作方式ModeofSerialport、帧格式:传输条件: TI=0指令: MOVSBUF、ARXD端子:输出数据; TXD端子:输出移动脉冲注意:软件清除TI标志,接收条件: REN=1且RI=0指令: MOVA,SBUF注意:软件清除RI标志,7.3.2串行端口方式1-8位UARTSerialportmode1 SM0=0, SM1=l数据传输速率是由T1或T2的溢出率确定的TXD引脚,用于发送数据的RXD引脚接收数据,并且SM1=l数据传输速率=(2SMOD/32)(T1溢出率);(发送: MOVSBUF,a,b )接收: SBUF可以接收数据并且指令: MOVA、SBUF、7.3.3串行端口方式2和3-9位UARTSerialPortMode2and3、SM0=1、SM1=0、选择方式2; 选择SM1=1、SM0=1、方式3 . 从TXD引脚发送数据。 通过RXD端子接收数据。 如果一帧的信息是11比特:方法2波特率:波特率=(2mod/64)44空气-空气-空气-空气SM2=0,则无论第9比特的数据RB8是1还是0,都将数据发送到SBUF 此外,主机想要与某个从属通信的站:将选择的从属的地址发往所有的从属,在从属地址一致后,发送命令或数据。 主机从属设备初始化:SM2=0SM2=1,允许中断源地址/TB8=1的所有从属设备都能够接收地址,如果不是本地地址则维持SM2=1,如果是本地地址则设置SM2=0源数据/TB8=0 其他不能接收的7.5串行端口的应用程序ApplicationofSerialPort方式0 :波特率=fosc/12、方式1和3 :方式2 :动作方式2-自动重载(TH1=TL1=初始值x )、 7.5.1串行端口的波特率发生器和波特率计算thebaudrateenerratrandserialortbaudratecalculations,(1)在计时器T1(=0)中产生波特率,如果不自动重新加载服务程序X中断服务程序的机器周期数在中断服务程序中复位计时器,T1是方式0 :返回、7.5.2方式0的编程和应用,例如8个发光二极管从左到右依次点亮,持续循环。 串行驱动。 数据发送、查询方式编程、ORG0000HMOVSCON、#00H; 禁止串行端口为方式0CLRES的串行端口中断MOVA、#80H; 显示最左侧发光二极管LED:MOVSBUF,a的串行输出JNBTI,$; 输出等待CLRTI; 软件清除中断标志ACALLDELAY轮显间隔RRA; 发光右移AJMPLED; 循环延迟:延迟子程序ret (2)数据接收,【例】ab级功能以串行方式1传输数据,设fosc=11.0592MHz,波特率为1200b/s。 由装置发送的16条数据存在于内部RAM40H4FH单元中,并且存在于以由装置接收到的内部RAM50H为首的地址的区域中。解:计算T1的定时初始值:查找表、查询方式:7.5.3方式1的编程和应用programmingandapplicationmethods 1、甲机发送子程序: MOVTMOD、#20H; T1定时器动作方式2MOVTL1、#0E8H; 位置T1计数初始值MOVTH1、#0E8H; T1计数重载值CLRET1; 禁止T1中断SETBTR1的T1启动MOVSCON,#40H; 设置串行方式1,禁止接收MOVPCON、#00H的smod=0(不能进行smod比特操作) CLRES; 禁止串行中断MOVR0、#40H发送数据区域的起始地址MOVR2、#16; 发送数据长度MOVA、R0; 读取数据MOVSBUF,a的JNBTI,$; 等待一帧数据发送完成的CLRTI; 清除发送中断标志INCR0; 确定是否将16个数据发送到下一个字节单元DJNZR2,trsa。txda :TRSA:MOVTMOD、#20H,其中未完成或将继续RET; T1定时器动作方式2MOVTL1、#0E8H; 位置T1计数初始值MOVTH1、#0E8H; T1计数重载值CLRET1; 禁止T1中断SETBTR1的T1启动MOVSCON,#40H; 设置串行方式1,禁止接收MOVPCON、#00H的smod=0(不能进行smod比特操作) CLRES; 禁止串行中断MOVR0、#50H; 接收数据区域起始地址MOVR2、#16; 接收数据长度SETBREN; JNBRI,$; 等待一帧数据接收完成的CLRRI; 清除接收中断标志MOVA、SBUF的接收数据MOVR0,a; 向保存接收数据INCR0的下一个数据存储单元DJNZR2、RDSB接收到16个数据了吗? 未完成或继续RET,乙机接收子程序:RXDB:RDSB:【例】点对点通信按下按钮,发行30hz3HF的内容,采用异或检查,最后发行检查码,表示AAH正确时,P1.0 11.0592M水晶振动,4.8K波特率。 从站接收的数据保存在40H4FH中,org 0000 hajmstopic 0003 hajmpdin0org 0023 Haj MTX、主站、从站、主程序、分析:初始值FAH、异或后的校验码保存在R3中,org 0030 Haj MTX T1模式2MOVTH1,#0FAH; 4800bpsMOVTL1、#0FAHMOVSCON、#50H; 串行方式1MOVR0、#30HMOV20H、#00H; 标志setb it0 set Bt R1 set be x0 setbessetbeal:nopnopsjmpl,IN0:MOVA,R0MOVSBUF,AMOVR3,a; 异或校验码RETI、TX:JBCRI、REVJBCTI、TRANRETIREV:MOVA、SBUFCJNEA、#0AAH和ERRCLRP1.0; 正确的setpb1.0retireerr:setpb1.0; 错误CLRP1.1RETI,TRAN:INCR0CJNER0,#40H,TRA1MOVA,R3; 检查代码MOVSBUF,AMOVR0,#30HFH:RETITRA1:MOVA,R0MOVSBUF,AXRLA,R3MOVR3,ARETI,SETB00H; 发送完成标志、JBC00H、FH、从属程序(接收数据在404FH中)、org 0000 hajmpmmainorg 0023 hajmpmtxorg 0030 hmain : movsp、#60HMOVTMOD、#20H; T1模式2MOVTH1,#0FAH; 4800bpsMOVTL1、#0FAHMOVSCON、#50H; 串行方式1MOVR0、#3FHSETBIT0SETBTR1MOVEI、#10010000BSJMP$,TX:JBCRI、JSHJBCTI、hffh : retijsh : Inc r0 cjner 0、#50H、JSH1MOVR0、#3FH; 检查代码MOVA、SBUFXRLA、R3JZOKMOVSBUF、#0FFH; 错误RETIOK:MOVSBUF,#0AAH; 正确的RETIJSH1:MOVA、SBUFMOVR0、AXRLA、R3MOVR3、ARETI、7.5.4方法2和3编程和应用模式2和3、andapplicationprogramming、11位:方法2波特率:波特率如果SMOD=l,则n=32。 方式3和方式2基本上波特率的设定与方式1相同,【例】1台上位机具有2台下位机(0#、1# ),主机将30H3FH的数量分配给0#机,将40H4FH的数量分配给1#机。 按下按钮,按下一次则发送一次(每次向两个下位设备发送数据) 11.0592M水晶振动,4.8Kbps,【分析】通信协议:主机发信地址-从主机发信数据。 从站在2秒以内未回答,或回答错误为通信失败时,0#机失败点亮p1. 0,1 #机失败点亮P1.1,aa-正确的ff-错误异或检查T0方式1:50ms中断,中断40次, R2是计数器初始值=216

温馨提示

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

评论

0/150

提交评论