標題: modbus 30路晶體管可編程控制器上位機與單片機下位機源碼等全套資料下載 [打印本頁]
作者: zhangxinchun 時間: 2018-2-24 14:07
標題: modbus 30路晶體管可編程控制器上位機與單片機下位機源碼等全套資料下載
本30路晶體管可編程模塊的modbus上位機運行界面如圖(附件中有vb.net源碼下載)支持rs485與rs232通訊. 可做快遞柜 電磁閥的控制
0.jpg (86.57 KB, 下載次數: 51)
下載附件
2018-2-25 03:09 上傳
0.png (47.5 KB, 下載次數: 60)
下載附件
2018-2-25 03:10 上傳
完整版modbus30路完善版本(看門狗)232+485單片機源程序如下:
- /******************************
- 程序功能: modbus RTU 模式設置讀取十六個繼電器狀態,以及內部保持寄存器的設置讀取
- 硬件測試環境:單片機stc89C52RC十六繼電器485接口控制板
- 通信協議: 晶振:11.0592 波特率:9600 8位數據 1位停止位 偶校驗 485通位接口P3.7控制方向端
- 控制板地址: 修改localAddr(變量)
- 線圈個數:16個 線圈地址范圍:0x0000~0x000F
- 保持寄存器個數:16個(字節型) 寄存器地址:0x0000~0x000F
- \\******************************\\
- 功能碼簡介:
- 02:讀取單個線圈狀態
- 03:讀取多個保持寄存器
- 05:設置單個線圈狀態
- 06:設置單個寄存器值
- 0F:設置多個線圈
- 10:設置多個保持寄存器
- *******************************/
- #include "hader\\main.h"
- uint32 dwTickCount,dwIntTick; //時鐘
- uint8 idata sendBuf[32],receBuf[16]; //發送接收緩沖區
- uint8 idata checkoutError; // ==2 偶校驗錯
- uint8 idata receTimeOut; //接收超時
- uint8 idata c10ms; //10ms 計時
- uint8 idata c200ms;
- bit b1ms,bt1ms,b10ms,bt10ms,b100ms,bt100ms; //定時標志位
- //定時處理
- void timeProc(void)
- {
- b1ms = 0;
- if(bt1ms) //如果1ms到
- {
- bt1ms = 0;
- b1ms = 1;
- if(receTimeOut>0) //如果接收超時值>0
- {
- receTimeOut--; //接收超時-1(1ms減1次)
- if(receTimeOut==0 && receCount>0) //判斷通訊接收是否超時
- {
- // b485Send = 0; //將485置為接收狀態
- receCount = 0; //將接收地址偏移寄存器清零
- checkoutError = 0;
- }
- }
- }
- } // void TimerProc(void)
- //初始化
- void initInt(void)
- {
- SCON = 0xd0;
- TMOD = 0x21;
- PCON = 0;
- TH0 = TIMER_HIGHT;
- TL0 = TIMER_LOW;
- TH1= 0xfd;
- TL1 = 0xfd; //波特率 9600
-
- TR0 = 1;
- TR1=1;
- ET0 = 1;
- ES = 1;
- EA = 1;
- //串口2設置
- S2CON = 0xd0; //方式1,9位數據,波特率不可變 S2TB8 偶校驗位
- BRT=0XFD; //設置波特率9600
- AUXR=0x10; //啟動串口1波特率發生器
- IP=0x00; //優先級默認 //開串口1中斷
- IE2=0x01; //開串口2中斷
- }
- //初始化
- void initProg(void)
- {
- P4SW|=0x20; //配置P4.5為IO口
- P4M0|=0x10; //配置P4.4為IO口
- P4M1|=0x10;
- P0=P1=P2=P3=0xff;
- P4|=0x30;
- initInt(); //初始化定時器
- // b485Send = 0;
- }
- //上電時讀取上次線圈狀態,并設置
- void forceMultipleCoils1()
- {
- uint8 tempAddr;
- uint8 i,k;
- uint8 Data;
- uint8 exit = 0;
- for(k=0;k<4;k++)
- {
- switch(k)
- {
- case 0:Data=coilreg1; break;
- case 1:Data=coilreg2; break;
- case 2:Data=coilreg3; break;
- case 3:Data=coilreg4; break;
- }
- for(i=0;i<8;i++)
- {
- if( Data &0x01==1)
- setCoilVal(tempAddr,0);
- else
- setCoilVal(tempAddr,1);
- Data=Data>>1;
- tempAddr++;
- if(tempAddr >=32)
- {
- exit = 1;
- break;
- }
- }
- if(exit==1)
- break;
- }
- }
- void main(void)
- {
-
- initProg();
- localAddr=EEPROMReadByte(0); //從EERPOM的相對0地址讀取數據
- coilreg1=EEPROMReadByte(1);
- coilreg2=EEPROMReadByte(2);
- coilreg3=EEPROMReadByte(3);
- coilreg4=EEPROMReadByte(4);
- forceMultipleCoils1();
- if(localAddr>=10)
- {
- localAddr=1;
- EEPROMSectorErase(0); //從EEPROM的相對0地址扇區擦除
- EEPROMWriteByte(0,localAddr);
- EEPROMWriteByte(1,coilreg1);
- EEPROMWriteByte(2,coilreg2);
- EEPROMWriteByte(3,coilreg1);
- EEPROMWriteByte(4,coilreg2);
-
- }
- WDT_CONTR =0x32; //大概284.4ms
- while(1)
- {
- timeProc();
- checkComm0Modbus();
- }
- }
- //定時器0 1ms 中斷
- void timer0IntProc() interrupt 1
- {
- TL0 = TIMER_LOW;
- TH0 = TIMER_HIGHT;
- dwIntTick++;
- bt1ms = 1;
- c10ms++;
- c200ms++;
- if(c10ms >= 10)
- {
- c10ms = 0; //20ms計時器清零
- bt10ms = 1;
- WDT_CONTR =0x32; //
- }
- } // void Timer0IntProc()
- // 串行中斷1程序
- void commIntProc() interrupt 4
- {
- if(TI)
- {
- TI = 0;
- if(sendPosi < sendCount) //如果發送位置小于發送計數,那么繼續發送
- {
- sendPosi++;
- ACC = sendBuf[sendPosi];
- TB8 = P; //加上校驗位
- SBUF = sendBuf[sendPosi];
- }
- else //否則發送完畢,置接收狀態
- {
- // b485Send = 0; //發送完后將485置于接收狀態
- 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個字節
- }
- } // void CommIntProc()
- //串口2中斷
- void uart2_isr() interrupt 8
- {
-
- if( S2CON & 0x02 )
- {
- S2CON &= ~0x02;
- if(sendPosi<receCount) //如果發送位置小于發送計數,那么繼續發送
- {
- sendPosi++;
- ACC = receBuf[sendPosi];
- if(P)
- S2CON|=0x08; // 7 6 5 4 3 2 1 0 Reset Value
- //sfr S2CON = 0x9A; //S2 Control S2SM0 S2SM1 S2SM2 S2REN S2TB8 S2RB8 S2TI S2RI 00000000B
- else
- S2CON&=0xf7;
- S2BUF =receBuf[sendPosi];
- }
- else //否則發送完畢,置接收狀態
- {
- // b485Send = 0; //發送完后將485置于接收狀態
- receCount = 0; //清接收地址偏移寄存器
- checkoutError = 0;
- }
- }
- else if( S2CON & 0x01)//接收
- {
- S2CON &= ~0x01;
- receTimeOut = 10; //通訊超時值
- receBuf[receCount] =S2BUF;
- ACC = receBuf[receCount];
- // if(P != RB8)
- // checkoutError = 2; //偶校驗出錯
- receCount++; //接收地址偏移寄存器加1
- receCount &= 0x0f; //最多一次只能接收16個字節
- }
- }
復制代碼
簡要說明:
一、 尺寸:長180mmX寬110mmX高22mm
二、 主要芯片:STC12C60S2支持雙串口(支持51系列DIP40封裝單片機)
三、 工作電壓:直流6~24伏供電可控制負載6~24V
四、 串口1(COM1)下載程序,(RS485口使用單機機內部串口2均可與上位機通訊)
五、輸入輸出采用獨立供電,也可以公用一個電源,獨立供電可減少負載對單片機電路的影響
六、 特點:
1、具有電源指示。
2、三十路帶光電隔離輸出控制場效應管。
3、標準的11.0592M晶振。(便于設置串口波特率)
4、具有上電復位和手動復位。
5、支持51系列DIP40封裝單片機。
5、輸出三十路場效應管的供電采用獨立供電 (可避免主控電路與被控電路干擾)
6、輸出三十路具有LED指示。
7、三十路IRF1205場效應管。
8、可控制直流36V以內 50W負載設備。最大輸出電流6A
9、具有RS232和RS485通信功能(可以同時和上位機通信)。
10、單片機無加密,可插拔更換,可隨意更改程序。
使用說明:
【標注說明】
1.jpg (131.18 KB, 下載次數: 30)
下載附件
2018-2-25 03:05 上傳
【接線圖】
2.jpg (298.98 KB, 下載次數: 54)
下載附件
2018-2-25 03:05 上傳
【應用舉例接線圖】
3.jpg (287.63 KB, 下載次數: 35)
下載附件
2018-2-25 03:05 上傳
0.png (54.07 KB, 下載次數: 46)
下載附件
2018-2-25 03:15 上傳
全部資料51hei下載地址(vb.net上位機與單片機下位機源程序與電路原理圖等全套開發資料):
-
0.png
(56.57 KB, 下載次數: 62)
下載附件
2018-2-25 03:08 上傳
-
-
30路晶體管可編程模塊485及232產品使用手冊.doc
2018-2-24 14:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
4.95 MB, 下載次數: 50, 下載積分: 黑幣 -5
-
-
GYJ-0077_30路場效應管可編程模塊485及232.rar
2018-2-24 14:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
11.91 MB, 下載次數: 63, 下載積分: 黑幣 -5
-
-
定時發送命令30路源碼安裝包下位機.7z
2018-2-24 14:07 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
17.22 MB, 下載次數: 62, 下載積分: 黑幣 -5
歡迎光臨 (http://www.zg4o1577.cn/bbs/) |
Powered by Discuz! X3.1 |
主站蜘蛛池模板:
成人在线免费网站
|
亚洲视频在线看
|
午夜在线观看免费
|
成人欧美
|
国产精产国品一二三产区视频
|
日韩激情网|
狠狠干狠狠操
|
一区二区三区四区在线视频
|
91精品久久久
|
国产成人自拍av
|
中文字幕日韩欧美
|
久久久av中文字幕
|
亚洲福利精品
|
91久久久www播放日本观看
|
综合久久久久久久
|
午夜精品视频在线观看
|
欧美一区两区
|
天天综合久久
|
手机在线一区二区三区
|
一区二区三区在线电影
|
成人一区二区在线
|
在线中文字幕视频
|
亚洲视频在线观看
|
午夜成人免费视频
|
精品成人一区二区
|
91美女在线观看
|
欧美三级三级三级爽爽爽
|
欧美色综合一区二区三区
|
天天干天天谢
|
亚洲一区二区三区免费在线
|
午夜精品三区
|
亚洲国产欧美国产综合一区
|
亚洲品质自拍视频网站
|
日韩美香港a一级毛片免费
国产综合av
|
国产精品欧美精品
|
成人影音
|
国偷自产av一区二区三区
|
欧美1区2区
|
久久国产精品免费
|
天天干国产
|
丁香久久|