久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機 下位機 MODBUS例程與資料下載
[打印本頁]
作者:
DREAKER
時間:
2017-7-1 20:26
標題:
51單片機 下位機 MODBUS例程與資料下載
51單片機 下位機 MODBUS例程
0.png
(47.15 KB, 下載次數(shù): 83)
下載附件
2017-7-1 20:31 上傳
里面包含MODBUS協(xié)議與規(guī)格書詳解
單片機程序如下:
#include "main.h"
/******************************
modbus RTU 的C51程序
單片機89S52
通信波特率 9600 8位數(shù)據(jù) 1位停止位 偶校驗 485通位接口
單片機控制板地址 localAddr(變量)
通信可設(shè)置數(shù)據(jù)的地址:
字地址 0 - 255 (只取16位的低8位)
位地址 0 - 255 (只取16位的低8位)
*******************************/
uint32 dwTickCount,dwIntTick; //時鐘
uint8 idata sendBuf[16],receBuf[16]; //發(fā)送接收緩沖區(qū)
uint8 idata checkoutError; // ==2 偶校驗錯
uint8 idata receTimeOut; //接收超時
uint8 idata c10ms; //10ms 計時
bit b1ms,bt1ms,b10ms,bt10ms,b100ms,bt100ms; //定時標志位
// 串行中斷程序
void commIntProc() interrupt 4
{
if(TI)
{
TI = 0;
if(sendPosi < sendCount)
{
sendPosi++;
ACC = sendBuf[sendPosi];
TB8 = P; //加上校驗位
SBUF = sendBuf[sendPosi];
}
else
{
b485Send = 0; //發(fā)送完后將485置于接收狀態(tài)
receCount = 0; //清接收地址偏移寄存器
checkoutError = 0;
}
}
else if(RI)
{
RI = 0;
receTimeOut = 10; //通訊超時值
receBuf[receCount] = SBUF;
ACC = receBuf[receCount];
if(P != RB8)
checkoutError = 2; //偶校驗出錯
receCount++; //接收地址偏移寄存器加1
receCount &= 0x0f; //最多一次只能接收16個字節(jié)
}
} // void CommIntProc()
//定時器0 1ms 中斷
void timer0IntProc() interrupt 1
{
TL0 = TIMER_LOW;
TH0 = TIMER_HIGHT;
dwIntTick++;
bt1ms = 1;
c10ms++;
if(c10ms >= 10)
{
c10ms = 0; //10ms計時器清零
bt10ms = 1;
}
} // void Timer0IntProc()
//外部中斷0
void intEx0Proc(void) interrupt 0
{
}
//計數(shù)器1中斷
void counter1IntProc(void) interrupt 3 using 1
{
}
//定時處理
void timeProc(void)
{
static uint8 c200ms;
bWatchDog = ~ bWatchDog; //看門狗取反
b1ms = 0;
b10ms = 0;
b100ms = 0;
ET0 = 0;
dwTickCount = dwIntTick;
ET0 = 1;
if(bt1ms)
{
bt1ms = 0;
b1ms = 1;
if(receTimeOut>0)
{
receTimeOut--;
if(receTimeOut==0 && receCount>0) //判斷通訊接收是否超時
{
b485Send = 0; //將485置為接收狀態(tài)
receCount = 0; //將接收地址偏移寄存器清零
checkoutError = 0;
}
}
}
if(bt100ms)
{
bt100ms = 0;
b100ms = 1;
}
if(bt10ms) //判斷中斷10ms標志位是否1
{
bt10ms = 0; //清中斷10ms標志位
b10ms = 1;
c200ms++; //200ms計時器加1
if(c200ms >= 20) //判斷是否計時到200ms
{
c200ms = 0; //清200ms計時器
bRunLED = ~bRunLED; //取反運行指示燈
}
}
} // void TimerProc(void)
//初始化串口
void initUart(void)
{
//T2 用于波特率 9600
T2CON = 0x30;
RCAP2H = 0xff;
RCAP2L = 0xb8;
TR2 = 1;
//偶校驗
SCON = 0xd0;
PCON = 0;
ES = 1;
}//void initUart(void)
//初始化中斷
void initInt(void)
{
TMOD = 0x51;
TH0 = TIMER_HIGHT;
TL0 = TIMER_LOW;
TR0 = 1;
ET0 = 1;
TH1 = 0; //9600
TL1 = 0;
TR1 = 0; //定時器1用于計數(shù)定時器2用于波特
ET1 = 1;
//PT1 = 1;
IT0 = 1;
IT1 = 1;
EX0 = 0;
PX0 = 1;
EX1 = 0;
initUart();
……………………
…………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
51 單片機MODBUS例程.rar
(2.2 MB, 下載次數(shù): 153)
2017-7-1 20:25 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
作者:
hdle
時間:
2017-7-8 21:52
好東東值得花時間去學(xué)習(xí)。
作者:
jiangqq
時間:
2018-9-17 22:51
得花時間去學(xué)習(xí)。
作者:
yulin3192
時間:
2019-2-18 16:45
謝謝樓主資料
作者:
jemery1030
時間:
2019-7-24 21:03
非常感謝
作者:
mycomputer
時間:
2020-4-3 07:52
好東東值得花時間去學(xué)習(xí)。
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
久久只有精品
|
国产福利91精品
|
天天躁人人躁人人躁狂躁
|
国产高清久久
|
日本久久久一区二区三区
|
国产高潮好爽受不了了夜夜做
|
欧美久久久久久久久
|
国产一区二区三区视频
|
天天视频一区二区三区
|
亚洲免费视频网址
|
国产精品一区二区福利视频
|
精品视频久久久久久
|
国产亚洲精品成人av久久ww
|
日韩欧美一区二区三区
|
毛色毛片免费看
|
国产视频欧美
|
久久精品中文
|
日本精品在线播放
|
国产成人啪免费观看软件
|
精品一区二区三区四区五区
|
亚洲一区二区高清
|
国产精品亚洲一区二区三区在线
|
欧美日韩大片
|
亚洲视频免费播放
|
亚洲嫩草
|
男女羞羞免费网站
|
日韩三级
|
中文字幕一区二区三区精彩视频
|
欧美精品一区二区三区四区 在线
|
国产精品视频播放
|
网站国产
|
国产成人99久久亚洲综合精品
|
999久久久久久久
|
久久久av
|
在线观看中文字幕视频
|
久久大
|
av资源网站
|
日韩伦理一区二区
|
小川阿佐美pgd-606在线
|
国产一区二区三区在线免费观看
|
欧美日韩福利视频
|