91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 113KB
    文件類型: .rar
    金幣: 2
    下載: 0 次
    發(fā)布日期: 2021-05-24
  • 語言: 其他
  • 標(biāo)簽: RS485??

資源簡介

RS485多機通信,Keil C51源程序,Proteus仿真!適合初學(xué)者與項目參考!

資源截圖

代碼片段和文件信息

//MAX485的使能轉(zhuǎn)換時會出很麻煩的問題!!!
//通信協(xié)議:主機發(fā)地址信息,相應(yīng)從機發(fā)地址應(yīng)答信息(地址+0x80)
//??????????主機發(fā)命令信息,相應(yīng)從機發(fā)命令應(yīng)答信息(命令+0x80)
//??????????命令a(主發(fā)從收命令),命令號:0x0a,主機首先發(fā)數(shù)據(jù)數(shù)量N,緊接著發(fā)N個數(shù)據(jù),最后發(fā)2字節(jié)CRC校驗(高位在前)
//?????????????????????????????????從機無需應(yīng)答,只需把數(shù)據(jù)連同檢驗存入接收緩沖區(qū)即可,接著進行校驗,校驗正確發(fā)肯定應(yīng)答(0xaa)
//?????????????????????????????????否則發(fā)否定應(yīng)答(0xee),主機若收到否定應(yīng)答,則全部從發(fā)(從地址開始)
#include
#include

#define?uchar?unsigned?char
#define?uint??unsigned?int

uchar*??receive_buffer_head=0xa0; ??//接收數(shù)據(jù)緩沖區(qū)
uchar*??send_buffer_head=0x60; ??//發(fā)送數(shù)據(jù)緩沖區(qū)
uchar*??current_receive_pointer;??????????//當(dāng)前接收指針
uchar*??current_send_pointer; ??//當(dāng)前發(fā)送指針
uchar*??crc_head=0x80;
uchar?receive_buffer_length;??????????????//接收緩沖區(qū)數(shù)據(jù)長度
uchar?send_buffer_length; ??????//發(fā)送緩沖區(qū)數(shù)據(jù)長度
uchar?respon;?????????????????????????????//應(yīng)答信息
uchar?slave1adress=0x01; ??//從機1地址
uchar?slave2adress=0x02; ??//從機2地址
uchar?slave3adress=0x03; ??//從機3地址
uchar?crc_high;
uchar?crc_low;
uint??crc;
uchar?command_a=0x0a;

sbit?sending=P2^0;????????????????????????//發(fā)送指示燈??
sbit?receiveing=P2^1;?????????????????????//接收指示燈
sbit?test=P2^2;
sbit?send_enable=P2^7;????????????????????//發(fā)送使能,只有發(fā)送時為高,其余時間為低
sbit?receive_enable_inv=P2^6;?????????????//接收使能,低電平有效




//***********************************************************
//??????????????????????延時函數(shù),延時x毫秒
//***********************************************************
void?DelayMS(uint?ms) ???????? ???
{
???uchar?i;
???while(ms--)
???for(i=0;i<120;i++);
}



//***********************************************************
//?????????????????寫主機的發(fā)送緩沖區(qū)數(shù)據(jù)
//這里簡單地往發(fā)送緩沖區(qū)寫入a~z
//***********************************************************
void?Write_Send_Buffer()
{??
???uchar?i;
???uchar*?temp_pointer;
???temp_pointer=send_buffer_head;
???for(i=0x00;i<0x1a;i++)
???{
????*temp_pointer=i+0x41;
?temp_pointer++;
???}??
}



//***********************************************************
// ?????????????RS-485初始化
//***********************************************************
void?RS485_initial()
{
?????sending=0;?????????????????????//發(fā)送指示燈??
?????receiveing=0;??????????????????//接收指示燈
?test=0;
?????current_receive_pointer=receive_buffer_head;????//初始化當(dāng)前的接收緩沖區(qū)指針指向接收緩沖區(qū)首地址
?????current_send_pointer=send_buffer_head;??????????//初始化當(dāng)前的發(fā)送緩沖區(qū)指針指向發(fā)送緩沖區(qū)首地址??????????????
?receive_buffer_length=0;?????????//接收緩沖區(qū)數(shù)據(jù)長度初始化為0
?????send_buffer_length=0; ??//發(fā)送緩沖區(qū)數(shù)據(jù)長度初始化為0
?send_enable=1;???????????????????//初始化發(fā)送有效
?receive_enable_inv=1;????????????//接收無效
?REN=0;???????????????????????????//初始化為不允許接收
?P1=0x88;
??

}


//***********************************************************
//UART初始化
//***********************************************************
void?UART_initial()
{
???EA=1;????????????????????????//開總中斷
???ES=1;????????????????????????//開串行口中斷
???ET1=1;???????????????????????//開定時計數(shù)器1中斷
???SCON=0xd0; ????????????????//設(shè)置串行方式,1101?0000?方式3,不允許多機,允許接收
???TMOD=0x20; ????????????????//設(shè)置計數(shù)器方式,

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----

?????文件????????477??2012-12-16?14:42??RS_485_多機通信\RS-485說明文檔.txt

?????文件?????126001??2012-12-16?14:27??RS_485_多機通信\rs485.DSN

?????文件??????12569??2012-12-16?14:20??RS_485_多機通信\主機host\again_rs485

?????文件???????8898??2012-12-16?14:29??RS_485_多機通信\主機host\again_rs485.c

?????文件???????3129??2012-12-16?14:20??RS_485_多機通信\主機host\again_rs485.hex

?????文件?????????39??2012-12-16?14:20??RS_485_多機通信\主機host\again_rs485.lnp

?????文件??????14396??2012-12-16?14:20??RS_485_多機通信\主機host\again_rs485.LST

?????文件??????14472??2012-12-16?14:20??RS_485_多機通信\主機host\again_rs485.M51

?????文件??????14185??2012-12-16?14:20??RS_485_多機通信\主機host\again_rs485.OBJ

?????文件???????4203??2012-12-16?14:20??RS_485_多機通信\主機host\again_rs485.plg

?????文件??????55227??2012-12-16?14:30??RS_485_多機通信\主機host\again_rs485.uvopt

?????文件??????13245??2012-12-13?21:58??RS_485_多機通信\主機host\again_rs485.uvproj

?????文件??????55230??2012-12-16?14:29??RS_485_多機通信\主機host\again_rs485_uvopt.bak

?????文件??????13241??2012-12-13?20:54??RS_485_多機通信\主機host\again_rs485_uvproj.bak

?????文件??????12568??2012-12-16?14:19??RS_485_多機通信\從機1\again_rs485_slave1

?????文件??????12280??2012-12-16?14:29??RS_485_多機通信\從機1\again_rs485_slave1.c

?????文件???????3319??2012-12-16?14:19??RS_485_多機通信\從機1\again_rs485_slave1.hex

?????文件?????????53??2012-12-16?14:19??RS_485_多機通信\從機1\again_rs485_slave1.lnp

?????文件??????20101??2012-12-16?14:19??RS_485_多機通信\從機1\again_rs485_slave1.LST

?????文件??????14986??2012-12-16?14:19??RS_485_多機通信\從機1\again_rs485_slave1.M51

?????文件??????14070??2012-12-16?14:19??RS_485_多機通信\從機1\again_rs485_slave1.OBJ

?????文件???????4332??2012-12-16?14:19??RS_485_多機通信\從機1\again_rs485_slave1.plg

?????文件??????55252??2012-12-16?14:30??RS_485_多機通信\從機1\again_rs485_slave1.uvopt

?????文件??????13266??2012-12-13?21:58??RS_485_多機通信\從機1\again_rs485_slave1.uvproj

?????文件??????55254??2012-12-16?14:29??RS_485_多機通信\從機1\again_rs485_slave1_uvopt.bak

?????文件??????????0??2012-12-13?20:54??RS_485_多機通信\從機1\again_rs485_slave1_uvproj.bak

?????文件??????11837??2012-12-16?14:19??RS_485_多機通信\從機2\again_rs485_slave2

?????文件??????11950??2012-12-16?14:19??RS_485_多機通信\從機2\again_rs485_slave2.c

?????文件???????3213??2012-12-16?14:19??RS_485_多機通信\從機2\again_rs485_slave2.hex

?????文件?????????53??2012-12-16?14:19??RS_485_多機通信\從機2\again_rs485_slave2.lnp

............此處省略15個文件信息

評論

共有 條評論