51單片機與MCGS通訊
Modbus RTU 示范程序
適用于微嵌51單片機最小系統(tǒng)板
在AT89S52和STC89C52單片機上測試通過,可以移植到其他51系列單片機
通訊設置:
波特率:9600
數(shù)據(jù)位:8
停止位:1
檢驗位:無
程序默認地址:1 (可以通過修改localAddr變量改變地址)
工程編譯環(huán)境:KeilC V4.74a
、
source_for_PC:
里面是上位機配置好的工程文件,具體配置看文件
單片機源程序如下:
- /*********************************************************************************
- * 【說 明】: 此程序為51單片機與MCGS組態(tài)王軟件Modbus RTU通訊下位機程序,
- 此程序在STC89C52RC單片機上測試通過,可以移植到其他51系列單片機!
- * 【函數(shù)功能】: 51單片機與MCGS組態(tài)王軟件Modbus RTU通訊主程序
- * 【修 改】: DREAKER Bluster
- **********************************************************************************/
- #include "Project.h"
- // unsigned char code led[]={63,6,91,79,102,109,125,7,127,111,};//十進制
- // unsinged char code led[]={0x3F,0x6,0x5B,0x4F,0x66,0x6D,0x7D,0x7,0x7F,0x6F,};//16進制:
- void main(void)
- {
- UINT nCounter = 0;
- UCHAR ucLedIndex = 0;
- SYSTEM_DISABLE_INTERRUPT();
- TimerInit();
- UartInit(9600, 1);
- SYSTEM_ENABLE_INTERRUPT();
- P1=0x7f;
- while(1) {
-
- timerProc();
- checkComm0Modbus();//檢測modbus幀
-
- }
- }
復制代碼- /*********************************************************************************
- * 【說 明】: 此程序為51單片機與MCGS組態(tài)王軟件Modbus RTU通訊下位機程序,
- 此程序在STC89C52RC單片機上測試通過,可以移植到其他51系列單片機!
- * 【函數(shù)功能】: 51單片機與MCGS組態(tài)王軟件Modbus RTU通訊主程序
- * 【修 改】: DREAKER Bluster
- **********************************************************************************/
- #include "Project.h"
- sbit LED0 = P1^0; // 對應線圈0
- sbit LED1 = P1^1; // 對應線圈1
- sbit LED2 = P1^2; // 對應線圈2
- sbit LED3 = P1^3; // 對應線圈3
- sbit LED4 = P1^4; // 對應線圈4
- sbit LED5 = P1^5; // 對應線圈5
- sbit LED6 = P1^6; // 對應線圈6
- sbit LED7 = P1^7; // 對應線圈7
- sbit KEY0 = P3^2;
- sbit KEY1 = P3^3;
- sbit KEY2 = P3^4;
- sbit KEY3 = P3^5;
-
- //字地址 0 - 255 (只取低8位)
- //位地址 0 - 255 (只取低8位)
- /* CRC 高位字節(jié)值表 */
- const UINT8 code auchCRCHi[] = {
- 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
- 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
- 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
- 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
- 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
- 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41,
- 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
- 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
- 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
- 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
- 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
- 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
- 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
- 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
- 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
- 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40,
- 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
- 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
- 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
- 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
- 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0,
- 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40,
- 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0, 0x80, 0x41, 0x00, 0xC1,
- 0x81, 0x40, 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41,
- 0x00, 0xC1, 0x81, 0x40, 0x01, 0xC0, 0x80, 0x41, 0x01, 0xC0,
- 0x80, 0x41, 0x00, 0xC1, 0x81, 0x40
- } ;
復制代碼
代碼51hei附件下載:
51-MODBUS-master.zip
(132.19 KB, 下載次數(shù): 87)
2023-4-9 16:36 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|