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

  • 大小: 188KB
    文件類型: .rar
    金幣: 2
    下載: 1 次
    發布日期: 2021-05-12
  • 語言: 其他
  • 標簽:

資源簡介

3個從機1個主機485通信代碼,支持51單片機,有興趣的小伙伴可以下載學習,一個很直白的代碼,通俗易通。

資源截圖

代碼片段和文件信息

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

sbit??q1=P0^0;
sbit??q2=P0^1;
sbit??q3=P0^2;
sbit??q4=P0^3;
sbit??q45=P0^4;
sbit??q5=P0^5;
sbit??q6=P0^6;
sbit??q7=P0^7;

sbit??q8=P2^0;
sbit??q9=P2^1; ?

bit??cmdArrived;
uchar??cntRxd=0; ?//字節接收個數計數器
uchar??bufRxd[10];//串口接收緩沖區
uchar??OFFON=0x1F;//本機狀態標記
uchar??RUN;?//從機運行令牌標記
uchar??LEN;//實際讀取到的數據字節數
uchar?array[30];??

unsigned?char?T0RH?=?0;??//T0重載值的高字節
unsigned?char?T0RL?=?0;??//T0重載值的低字節

void?ConfigTimer0(unsigned?int?ms);
extern?void?UartRxMonitor(unsigned?char?ms);


void?delayms(uchar?k);
void?delay500ms();

uchar?UartRead(uchar?*bufuchar?len);??//串口數據讀取函數,數據接收指針buf,讀取數據長度len,返回值為實際讀取到的數據長度
void?UartWrite(uchar?*buf?uchar?len);
void??GoOn();

void?CRCECC();???//CRC校驗函數
uint?GetCRC16(uchar?*ptruchar?len);

void?main()
????{?
?? ??

??TMOD=0x20;
??????TH1=0xfd;
??????TL1=0xfd;
??????TR1=1;
?????
??????SM0=0;
??????SM1=1;
??EA=1;
??ES=1;
??
???while(1)
????????{
? ConfigTimer0(1);??//配置T0定時1ms
????REN=1;
?????CRCECC();?
}
???}


void?delayms(uchar?k)
?????{
???uint?ijh;
???for(h=0;h<4;h++)
????{
??for(i=0;i ??????for(j=0;j<122;j++);
?}
???
?}

void?delay500ms()
?{
uchar?abcd;
???for(d=0;d<4;d++)
????{
for(c=23;c>0;c--)
?for(b=152;b>0;b--)
???for(a=70;a>0;a--);
?}
?}

uchar?UartRead(uchar?*bufuchar?len)??//串口數據讀取函數,數據接收指針buf,讀取數據長度len,返回值為實際讀取到的數據長度
???????{
?????uchar?i;
?????if(len>cntRxd)//讀取長度大于實際接收到的數據長度時
???{
?????len=cntRxd;//讀取長度設置為實際接收到的數據長度;
???}
?for(i=0;i ???{
????*buf=bufRxd[i];
buf++;
???}
???cntRxd=0;//清零接收計數器
???return?len;//返回實際讀取長度 ?
???}???

void?UartWrite(uchar?*buf?uchar?len)
?????{
??while(len--)
?????{
??SBUF=*buf;
??buf++;
??while(!TI);
??TI=0;
?}
?????}



void?CRCECC()
??{
????uchar?len;

????uint?crc;
uchar?crchcrcl;
while(!cmdArrived);
REN?=?0;
ET0?=?0;????????
????TR0?=?0;????????
cmdArrived=0;
len=UartRead(arraysizeof(array));//將接收到的命令讀取到緩沖區中
if(array[0]==0x01)???//核對地址已決定是否響應命令,本機地址為0x01
?{
??crc=GetCRC16(arraylen-2);???//計算CRC校驗值
??crch=crc>>8;
??crcl=crc&0xFF;
??if((array[len-2]==crch)&&(array[len-1]==crcl))??//判斷CRC校驗是否正確
????{
??
??switch(array[1])?//按功能碼執行操作
?????{

???case?0x03:?//讀取一個或者連續的寄存器
???????if((array[2]==0x00)&&(array[3]==0x00))??//判斷寄存器初始地址是否為00
?????{
??array[2]=0x02; //數據的字節數為寄存器數*2,因Modbus定義的寄存器為16位
??array[3]=0x00; //寄存器高字節補0
??array[4]=OFFON;?//讀取本機的狀態
??len=5;
??break;
?}
???else?//寄存器地址不被支持時,返回錯誤碼
???{
????array[1]=0x83;
array[2]=0x02;
len=3;
????????????????????
break;
???}


??case?0x06://寫入單個寄存器
?????if((array[2]==0x00)&&(array[3]==0x00))??//判斷寄存器初始地址是否為00
??????????{
???RUN=array[5];//保存寄存器地址

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

?????文件??????13800??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4

?????文件??????10622??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4.c

?????文件???????5208??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4.hex

?????文件?????????62??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4.lnp

?????文件??????20925??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4.LST

?????文件??????19671??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4.M51

?????文件??????15077??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4.OBJ

?????文件????????361??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4.plg

????.......?????55656??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4.uvopt

?????文件??????13407??2016-04-25?16:50??3個從機1個主機485通信已測試成功\cong1\congji4.uvproj

?????文件?????????37??2017-01-01?09:36??3個從機1個主機485通信已測試成功\cong1\congji4.__i

????.......?????55668??2016-12-21?08:30??3個從機1個主機485通信已測試成功\cong1\congji4_uvopt.bak

?????文件??????????0??2016-04-25?16:43??3個從機1個主機485通信已測試成功\cong1\congji4_uvproj.bak

?????文件???????6376??2009-05-07?14:37??3個從機1個主機485通信已測試成功\cong1\STARTUP.A51

?????文件??????14048??2016-04-25?16:49??3個從機1個主機485通信已測試成功\cong1\STARTUP.LST

?????文件????????749??2016-04-25?16:49??3個從機1個主機485通信已測試成功\cong1\STARTUP.OBJ

?????文件??????18708??2015-11-25?22:03??3個從機1個主機485通信已測試成功\cong1\stc12c5a60s2.h

?????文件??????16514??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4

?????文件??????12025??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4.c

?????文件???????5713??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4.hex

?????文件?????????62??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4.lnp

?????文件??????25363??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4.LST

?????文件??????22665??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4.M51

?????文件??????18098??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4.OBJ

?????文件????????361??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4.plg

????.......?????55660??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4.uvopt

?????文件??????13406??2016-04-27?11:37??3個從機1個主機485通信已測試成功\cong2\congji4.uvproj

?????文件?????????37??2017-01-01?09:37??3個從機1個主機485通信已測試成功\cong2\congji4.__i

????.......?????55664??2016-12-21?08:30??3個從機1個主機485通信已測試成功\cong2\congji4_uvopt.bak

?????文件??????13407??2016-04-25?16:50??3個從機1個主機485通信已測試成功\cong2\congji4_uvproj.bak

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

評論

共有 條評論