8051内部资源的C编程(2010.6)解答.ppt

  1. 1、本文档共138页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
8051 点对点通信_接收 void receive(uchar idata *d) { uchar i; do{ while(RI= =0); RI=0; } while((SBUF!=0xAA); SBUF=0xBB;while(TI= =0); TI=0; while(1) { pf=0; for(i=0;i16;i++) { while(RI==0); RI=0;d[i]=SBUF; pf+=d[i]; } while(RI= =0); RI=0; if((SBUF= =pf) { SBUF=0x00; break; } else { SBUF=0xFF;while(TI==0);TI=0;} } } B机接收数据 设置bps、启动T1 设置传口工作方式 等待A机联络 发送应答信号“0xBB” A机请求发送? 指针初始化、校验和清零 接收字节数据并求校验和 A、B机校验和比较 数据块收齐了吗? 发出错误标志“0xFF” 接收正确? 返回 No No No Yes 8051 点对点通信 主程序main() #define TR 1 void main(void) { sbuf_init(); if(TR= =0) send(buf); else receive(buf); } 对于点对点通信双方,可编制含有初始化函数、发送函数、接收函数的程序。在主函数中设置TR常量,根据常量的值决定使用发送函数还是接收函数。这样点对点通信的双方都可运行同一程序。 #define TR 1 /*接收端*/ 8051 点对多通信(多机通信) 多机通信 主从式结构:单片机多机系统常采用总线型主从式多机系统.所谓主从式,即在数个单片机中,有一个是主机,其余为从机,从机要服从主机的调度、支配。8051单片机的串行口方式2、方式3很适合这种主从式的通信结构。 在多机系统中,通常采用RS422或RS485串行标准总线进行数据传输。 8051 多机通信 置位所有从机的SM2(SM2=1),使之处于监听地址状态。 1:只有接收到第9位(RB8)为1,RI才置位。 O:接收到字符,RI就置位 主机先发送一帧地址信息,其中8位地址,第9位为地址/数据信息的标志位,1:该帧为地址信息, 0:该帧为数据信息。 从机接收到地址帧后,各自将接收到地址与本从机地址比较。 地址相符的从机,使SM2=0,以接收主机随后发来的所有信息; 地址不符的从机,仍保持SM2=1,对主机随后发来的数据不予理睬,直至发送新的地址帧; 当从机发送数据结束后,发送一帧校验和,并置第9位(TB8)为1,作为从机数据传送结束标志。 主机接收数据时先判断数据结束标志(RB8) 若RB8=0,则将数据保存到缓冲区,并准备接收下帧信息 若RB8=1,表示数据传送结束,并比较此帧校验和。 若正确,则回送正确信号0x00,此信号令该从机复位(即重新等待地址帧) 若校验和出错,则发送0xFF,令该从机重发数据。 8051 多机通信 若主机向从机发送数据,从机比较地址相符后 相符的从机令SM2=0,同时把本站地址发回主机。作为应答之后才能收到主机发送来的数据。 其它从机继续监听地址(SM2=1),无法收到数据。 主机收到从机的应答地址后,确认地址是否相符。 如果地址不符,发复位命令(FF并使TB8=1); 如果地址相符,则TB8=0,开始发送数据。 从机收到复位命令(FFH)后回到监听地址状态(SM2=1)。 串口取电经典电路两例 串口取电经典电路两例 RS485 通信 RS485 通信-光隔离电路 RS485 通信-光隔离电路 串口复习 串口编程 初始化(格式、波特率)。波特率119200bps? 发送、接收 串口编程方式 查询 中断 示波器使用(时间、峰-峰值、零电平位置) 串口通信模式-单字节发送 单字节通信,上位机主动 上位机程序 串口通信工具:scomm32 自己编程: 控件实现(VB) API函数实现(VC) 下位机程序 接收:中断方式 发送:查询方式 PC机串口通信实现 两种方式实现 控件MSCOMM32.OCX 应用程序接口函数:API(OpenFile()……) PC机串口通信(MSCOMM32.OCX) 首先为工程添加MSCOMM32.ocx等控件 添加如下代码:包括串口初始化,发送、接收等操作 Private Sub Form_Load() If MSComm1.PortOpen Then MSComm1.PortOpen = False 关闭串

文档评论(0)

希望之星 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档