ImageVerifierCode 换一换
格式:DOCX , 页数:7 ,大小:39.57KB ,
资源ID:16227168      下载积分:12 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/16227168.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(MAX485的功能Word格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

MAX485的功能Word格式.docx

1、在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100的电阻。引脚(管脚)图及工作电路 计算机是不能直接识别RS485通讯信号的。我简单地讲一下,这应该是两个电路,一个是单片机的电路 先将RS485协议定的信号,通过MAX485接收。 MAX485是通过两个引脚RE(2脚)和DE(3脚)来控制数据的输入和输出。当RE为低电平时,MAX485数据输入有效;当DE为高电平时,MAX485数据输出有效。在半双工使用中,通常可以将这两个脚直接相连,由单片机输出的高低电平控制一块7404 让MAX485在接收和发送状态之间转换并且通过7

2、404成RS485到TTL的电平转换。 另一个电路就简单了MAX485加MAX232即可完成RS485到PC机的RS232数据转换了。程序就用普通的单片机串行程序就行。MAX引脚(管脚)图及工作电路(3张)AX485是用于RS-485与RS-422通信的低功耗收发器。MAX485的驱动器摆率不受限制, 可以实现最高2.5Mbps的传输速率。这些收发器在驱动器禁用的空载或满载状态下,吸取的电源电流在120A至500A之间。驱动器具有短路电流限制,并可以通过热关断电路将驱动器输出置为高阻状态。接收器输入具有失效保护特性,当输入开路时,可以确保逻辑高电平输出。具有较高的抗干扰性能。MAX485是市面

3、上最为常见的RS422芯片,亦是用量最大的RS422芯片,性价比高,优质,供货稳定是大部分厂家采用它的主要原因。 485与89C52图,供参考。赞同12| 评论 485-1脚-MCU p3.0485-2,3脚-MCU p3.3 作为收发数据的使能短,H为发数据L为收数据485-4脚-MCU P3.1 485-5脚-GND485-6脚-A485-7脚-B485-8脚-VCC485的多机通信/-函数声明,变量定义-#include sbit RE_DE=P10;#define COUNT 10 / 定义接收缓冲区大小 #define Slaver_NUM 10unsigned char bdata

4、 flag; /在可位寻址去定义一个标志变量sbit time_over_flag =flag0; /接收超时标志unsigned char bufferCOUNT; /定义缓冲区unsigned char point; /定义缓冲区位置指示unsigned char Slave_ADSlaver_NUM; /定义有效地址存放区 unsigned char ADD_num; /有效地址个数unsigned char idata count_10ms; /用于表示有多少次10ms中断unsigned char idata send_data7=0x31,0x32,0x33,0x34,0x35,0

5、x36,0x37; /与定义发送数据,共7位void UART_init(); /串口初始化函数void COM_send(void); /串口接收函数unsigned char CLU_checkdata(void); /计算校验位函数/-/ 函数名称: UART_init()串口初始化函数/ 函数功能: 在系统时钟为11.059MHZ时,设定串口波特率为9600bit/s/ 串口接收中断允许,发送中断禁止,设定定时器中断允许void UART_init()/初始化串行设置 SCON =0x58; /选择串口工作方式为1,打开接收允许,TB8=1TMOD =0x21; /定时器1工作在方式2

6、,定时器0工作在方式1TR1 =1; /启动定时器T1ES=1; /允许串行口中断PS=1; /设计串行口中断优先级/初始化定时器1TH1 =0xfd; /实现波特率9600(系统时钟11.0592MHZ)ET1 =0; /定时器1中断禁止 timer0_init()初始化定时器0 设置timer0工作模式 void timer0_init()time_over_flag=0;count_10ms=0;ADD_num=0;TL0=0x0F0; /T0用于产生10ms的中断TH0=0x0D8; /50次T0中断产生1次超时溢出ET0=1; /允许定时器0中断 system_init()系统初始化

7、 调用串口、定时器初始化函数,完成系统初始化void system_init(void)/系统总设置UART_init();timer0_init();EA =1; /单片机中断允许 com_interrup()串口接收中断处理函数 接收包括起始位S在内的十位数据到数据缓冲区com_interrupt(void) interrupt 4 using 3 unsigned char RECEIVR_buffer; if(RI) /处理接收中断 RI=0; /清除中断标志位 RECEIVR_buffer=SBUF; /接收串口数据if(point=0) /如果还没有接收到起始位 if(RECEIV

8、R_b本文来自: 高校自动化网(W) 详细出处参考(转载请保留本链接):uffer=0xFE) /判断是否起始标志位 bufferpoint+=RECEIVR_buffer;/把接收到的数据放入接收缓存区 else point=0; /不是,继续等待起始位 else if(point0&point10) /判断是否接收够十位数据 /不够,把接收到的数据放入接收缓存区else if(point=10) if(RECEIVR_buffer=0xEF) /判断结束标志位是否正确 bufferpoint=RECEIVR_buffer; /把接收到的数据放入接收缓存区 Slave_ADADD_num+=

9、buffer2; /把接收到的地址放到地址存储器 /表示该地址有有效设备else point=0; /缓冲区已满,清除缓存区内数据重新接收if(TI) /串口发送中断TI=0; /清除发送中断 timer0_interrup()定时器T0中断服务程序/ 函数说明:T0枚10ms中断一次,连续中断50次置time_over_flag=1;timer0_interrupt(void) interrupt 1 using 2 count_10ms+; if(count_10ms=50) ET0=0; /关闭定时器T0中断 TR0=0; /停止定时器T0 time_over_flag=1;/设置接收超

10、时标志 count_10ms=0x00; /10ms计数器复位 else TL0=0x0F0; /重装定时器初始值 TH0=0x0D8; COM_send()串口发送函数 把数据缓冲区的十位数据发送出去void COM_send(void)RE_DE=1; /设置MAX483进入发送状态for(point=0;=10,TI=1;point+) /连续发送十位数据 /把缓存区的数据都发送到串口 SBUF=bufferpoint; TI=0; RE_DE=0; /设置MAX483进入接收状态 write_buffer() 写发送缓冲区十位数据void write_buffer(unsigned c

11、har slaver_add) unsigned char i; TB8=1; /打开多机通信方式 buffer0=0xFE; buffer1=slaver_add; for(i=2;i9;i+) bufferi=send_datai-2; buffer9=0xEF; 主函数 调度个子函数,完成通信过程void main(void)unsigned char i=0;system_init(); /系统初始化do /查旬0到10好地址有没有对应设备 write_buffer(i+); /写查询第i号设备的发送信息COM_send(); /调用发送函数,完成发送 /完成一次查询,重新初始定时器0,准备下一次查询while(time_over_flag&

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1