久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 5451|回復(fù): 7
收起左側(cè)

RS485雙通訊單片機控制30路繼電器工控板VB上位機與下位機源碼等資料

  [復(fù)制鏈接]
ID:280979 發(fā)表于 2018-2-24 12:22 | 顯示全部樓層 |閱讀模式
應(yīng)用舉例.JPG
0.png
【上位機界面】(提供源代碼)
0.png

一、 尺寸:長233.7mmX寬182.7mmX高25mm
二、 主要芯片:STC12C60S2支持雙串口(支持51系列DIP40封裝單片機)
三、 工作電壓:直流24伏供電(另有12V供電)
四、 串口1(COM1)下載程序,(RS485口使用單機機內(nèi)部串口2均可與上位機通訊)
五、輸出供電采用延時通電電路(1至10秒可調(diào))
功能:當輸出接有被控制設(shè)備,避免單片機初次上電(或下載程序)時,輸出設(shè)備誤動作。此功能在實際應(yīng)用中起到很大作用
五、 特點:
             1、具有電源指示。
             2、三十路帶光電隔離輸出控制繼電器。
              3、標準的11.0592M晶振。(便于設(shè)置串口波特率)
             4、具有上電復(fù)位和手動復(fù)位。
             5、支持51系列DIP40封裝單片機。  
       5、輸出三十路繼電器的供電采用延時供電 (避免被控制設(shè)備誤動作)        
             6、輸出三十路具有LED指示。
              7、三十路12V繼電器控制,控制設(shè)備。
             8、可控制交流220V/10A一下設(shè)備。
             9、具有RS232和RS485通信功能(可以同時和上位機通信)。
             10、單片機無加密,可插拔更換,可隨意更改程序。

單片機下位機源程序如下:

  1. #include <STC12C5A60S2.H>

  2. unsigned char T0RH = 0;  //T0重載值的高字節(jié)
  3. unsigned char T0RL = 0;  //T0重載值的低字節(jié)
  4. sbit p01=P2^6;
  5. sbit p02=P2^7;
  6. sbit p03=P4^4;
  7. sbit p04=P4^5;
  8. sbit p05=P0^7;
  9. sbit p06=P0^6;
  10. sbit p07=P0^5;
  11. sbit p08=P0^4;
  12. sbit p09=P0^3;
  13. sbit p10=P0^2;

  14. sbit p11=P0^1;
  15. sbit p12=P0^0;
  16. sbit p13=P1^0;
  17. sbit p14=P1^1;
  18. sbit p15=P1^4;
  19. sbit p16=P1^5;
  20. sbit p17=P1^6;
  21. sbit p18=P1^7;
  22. sbit p19=P3^2;
  23. sbit p20=P3^3;

  24. sbit p21=P3^4;
  25. sbit p22=P3^5;
  26. sbit p23=P3^6;
  27. sbit p24=P3^7;
  28. sbit p25=P2^5;
  29. sbit p26=P2^4;
  30. sbit p27=P2^3;
  31. sbit p28=P2^2;
  32. sbit p29=P2^1;
  33. sbit p30=P2^0;
  34. unsigned char ck1=0;
  35. unsigned char ck2=0;
  36. unsigned char ck3=0;
  37. unsigned char ck4=0;
  38. unsigned char ck5=0;
  39. unsigned char ck6=0;
  40. unsigned char ck7=0;
  41. unsigned char ck8=0;
  42. void ConfigTimer0(unsigned int ms);           //配置并啟動T0,ms-T0定時時間

  43. extern void UUartDriver();                                                                     //串口驅(qū)動函數(shù),監(jiān)測數(shù)據(jù)幀的接收          放到while里最頂部
  44. extern void init(void);                                     //波特率配置            放到main函數(shù)里 ConfigUART(9600);波特率9600
  45. extern void UUartRxMonitor(unsigned char ms);                             //串口接收監(jiān)控,由空閑時間判定幀結(jié)束 放到中斷里  中斷設(shè)置為1ms                UUartRxMonitor(1);
  46. extern void UUartWrite(unsigned char buf);//串口寫函數(shù)                                                  直接調(diào)用

  47. unsigned char receivepath1='1';//表示發(fā)送的地址01,第一塊板子的地址為01,第二塊板子的地址為02
  48. unsigned char receivepath2='0';//表示發(fā)送的地址
  49. unsigned char receiveb1='e';//報頭報尾用
  50. unsigned char receivebt='a';//表示報頭
  51. unsigned char receivebw='b';//表示報尾
  52. unsigned char receiveexcess='0';//表示多余的位
  53. unsigned char receiveopen='0';//開
  54. unsigned char receiveclose='1';//關(guān)
  55. void main()
  56. {
  57.    P4SW|=0x20;                   //配置P4.5為IO口
  58.    P4M0|=0x10;                   //配置P4.4為IO口
  59.   
  60.     EA = 1;            //開總中斷
  61.     ConfigTimer0(1);   //配置T0定時1ms
  62.     init();
  63.    
  64.     while (1)
  65.     {
  66.         UUartDriver();  //調(diào)用串口驅(qū)動
  67.     }
  68. }

  69. /* 串口動作函數(shù),根據(jù)接收到的命令幀執(zhí)行響應(yīng)的動作
  70.    buf-接收到的命令幀指針,len-命令幀長度 */
  71. void UUartAction(unsigned char *buf, unsigned char len)
  72. {
  73. //接收上位機的命令

  74.         if((buf[0] == receiveb1)&&(buf[1] == receivebt)&&(buf[2] == receivepath1)&&(buf[3] == receivepath2)&&(buf[8] == receiveb1)&&(buf[9] == receivebw )&&(len == 10)){
  75.                 if((buf[4] == '0')&&(buf[5] == '0')&&(buf[6] == '0')&&(buf[7] == '0')){//開
  76.                         p01 = 0;p02 = 0;p03 = 0;p04 = 0;p05 = 0;p06 = 0;p07 = 0;p08 = 0;p09 = 0;p10 = 0;
  77.                         p11 = 0;p12 = 0;p13 = 0;p14 = 0;p15 = 0;p16 = 0;p17 = 0;p18 = 0;p19 = 0;p20 = 0;
  78.                         p21 = 0;p22 = 0;p23 = 0;p24 = 0;p25 = 0;p26 = 0;p27 = 0;p28 = 0;p29 = 0;p30 = 0;
  79.                 }
  80.                 if((buf[4] == '0')&&(buf[5] == '0')&&(buf[6] == '1')&&(buf[7] == '1')){//關(guān)
  81.                         p01 = 1;p02 = 1;p03 = 1;p04 = 1;p05 = 1;p06 = 1;p07 = 1;p08 = 1;p09 = 1;p10 = 1;
  82.                         p11 = 1;p12 = 1;p13 = 1;p14 = 1;p15 = 1;p16 = 1;p17 = 1;p18 = 1;p19 = 1;p20 = 1;
  83.                         p21 = 1;p22 = 1;p23 = 1;p24 = 1;p25 = 1;p26 = 1;p27 = 1;p28 = 1;p29 = 1;p30 = 1;
  84.                 }
  85.         }
  86.         if((buf[0] == receiveb1)&&(buf[1] == receivebt)&&(buf[2] == receivepath1)&&(buf[3] == receivepath2)&&(buf[8] == receiveb1)&&(buf[9] == receivebw )&&(len == 10)){
  87.                 if((buf[6] == receiveexcess)&&(buf[7] == receiveopen)){//開
  88.                         if((buf[4] == '0')&&(buf[5] == '1')){p01 = 0;}
  89.                         if((buf[4] == '0')&&(buf[5] == '2')){p02 = 0;}               
  90.                         if((buf[4] == '0')&&(buf[5] == '3')){p03 = 0;}
  91.                         if((buf[4] == '0')&&(buf[5] == '4')){p04 = 0;}       
  92.                         if((buf[4] == '0')&&(buf[5] == '5')){p05 = 0;}       
  93.                         if((buf[4] == '0')&&(buf[5] == '6')){p06 = 0;}       
  94.                         if((buf[4] == '0')&&(buf[5] == '7')){p07 = 0;}       
  95.                         if((buf[4] == '0')&&(buf[5] == '8')){p08 = 0;}       
  96.                         if((buf[4] == '0')&&(buf[5] == '9')){p09 = 0;}       
  97.                         if((buf[4] == '1')&&(buf[5] == '0')){p10 = 0;}
  98.                                
  99.                         if((buf[4] == '1')&&(buf[5] == '1')){p11 = 0;}       
  100.                         if((buf[4] == '1')&&(buf[5] == '2')){p12 = 0;}       
  101.                         if((buf[4] == '1')&&(buf[5] == '3')){p13 = 0;}       
  102.                         if((buf[4] == '1')&&(buf[5] == '4')){p14 = 0;}       
  103.                         if((buf[4] == '1')&&(buf[5] == '5')){p15 = 0;}       
  104.                         if((buf[4] == '1')&&(buf[5] == '6')){p16 = 0;}       
  105.                         if((buf[4] == '1')&&(buf[5] == '7')){p17 = 0;}       
  106.                         if((buf[4] == '1')&&(buf[5] == '8')){p18 = 0;}       
  107.                         if((buf[4] == '1')&&(buf[5] == '9')){p19 = 0;}       
  108.                         if((buf[4] == '2')&&(buf[5] == '0')){p20 = 0;}
  109.                                
  110.                         if((buf[4] == '2')&&(buf[5] == '1')){p21 = 0;}       
  111.                         if((buf[4] == '2')&&(buf[5] == '2')){p22 = 0;}       
  112.                         if((buf[4] == '2')&&(buf[5] == '3')){p23 = 0;}       
  113.                         if((buf[4] == '2')&&(buf[5] == '4')){p24 = 0;}       
  114.                         if((buf[4] == '2')&&(buf[5] == '5')){p25 = 0;}       
  115.                         if((buf[4] == '2')&&(buf[5] == '6')){p26 = 0;}       
  116.                         if((buf[4] == '2')&&(buf[5] == '7')){p27 = 0;}       
  117.                         if((buf[4] == '2')&&(buf[5] == '8')){p28 = 0;}       
  118.                         if((buf[4] == '2')&&(buf[5] == '9')){p29 = 0;}       
  119.                         if((buf[4] == '3')&&(buf[5] == '0')){p30 = 0;}       
  120.                 }
  121.                 if((buf[6] == receiveexcess)&&(buf[7] == receiveclose)){//關(guān)
  122.                         if((buf[4] == '0')&&(buf[5] == '1')){p01 = 1;}
  123.                         if((buf[4] == '0')&&(buf[5] == '2')){p02 = 1;}       
  124.                         if((buf[4] == '0')&&(buf[5] == '3')){p03 = 1;}
  125.                         if((buf[4] == '0')&&(buf[5] == '4')){p04 = 1;}       
  126.                         if((buf[4] == '0')&&(buf[5] == '5')){p05 = 1;}       
  127.                         if((buf[4] == '0')&&(buf[5] == '6')){p06 = 1;}       
  128.                         if((buf[4] == '0')&&(buf[5] == '7')){p07 = 1;}       
  129.                         if((buf[4] == '0')&&(buf[5] == '8')){p08 = 1;}       
  130.                         if((buf[4] == '0')&&(buf[5] == '9')){p09 = 1;}       
  131.                         if((buf[4] == '1')&&(buf[5] == '0')){p10 = 1;}
  132.                                
  133.                         if((buf[4] == '1')&&(buf[5] == '1')){p11 = 1;}       
  134.                         if((buf[4] == '1')&&(buf[5] == '2')){p12 = 1;}       
  135.                         if((buf[4] == '1')&&(buf[5] == '3')){p13 = 1;}       
  136.                         if((buf[4] == '1')&&(buf[5] == '4')){p14 = 1;}       
  137.                         if((buf[4] == '1')&&(buf[5] == '5')){p15 = 1;}       
  138.                         if((buf[4] == '1')&&(buf[5] == '6')){p16 = 1;}       
  139.                         if((buf[4] == '1')&&(buf[5] == '7')){p17 = 1;}       
  140.                         if((buf[4] == '1')&&(buf[5] == '8')){p18 = 1;}       
  141.                         if((buf[4] == '1')&&(buf[5] == '9')){p19 = 1;}       
  142.                         if((buf[4] == '2')&&(buf[5] == '0')){p20 = 1;}       
  143.                        
  144.                         if((buf[4] == '2')&&(buf[5] == '1')){p21 = 1;}       
  145.                         if((buf[4] == '2')&&(buf[5] == '2')){p22 = 1;}       
  146.                         if((buf[4] == '2')&&(buf[5] == '3')){p23 = 1;}       
  147.                         if((buf[4] == '2')&&(buf[5] == '4')){p24 = 1;}       
  148.                         if((buf[4] == '2')&&(buf[5] == '5')){p25 = 1;}       
  149.                         if((buf[4] == '2')&&(buf[5] == '6')){p26 = 1;}       
  150.                         if((buf[4] == '2')&&(buf[5] == '7')){p27 = 1;}       
  151.                         if((buf[4] == '2')&&(buf[5] == '8')){p28 = 1;}       
  152.                         if((buf[4] == '2')&&(buf[5] == '9')){p29 = 1;}       
  153.                         if((buf[4] == '3')&&(buf[5] == '0')){p30 = 1;}       
  154.                 }
  155.         }
  156. }
  157. /* 配置并啟動T0,ms-T0定時時間 */
  158. void ConfigTimer0(unsigned int ms)
  159. {
  160.     unsigned long tmp;  //臨時變量
  161.    
  162.     tmp = 11059200 / 12;      //定時器計數(shù)頻率
  163.     tmp = (tmp * ms) / 1000;  //計算所需的計數(shù)值
  164.     tmp = 65536 - tmp;        //計算定時器重載值
  165.     tmp = tmp + 33;           //補償中斷響應(yīng)延時造成的誤差
  166.     T0RH = (unsigned char)(tmp>>8);  //定時器重載值拆分為高低字節(jié)
  167.     T0RL = (unsigned char)tmp;
  168.     TMOD &= 0xF0;   //清零T0的控制位
  169.     TMOD |= 0x01;   //配置T0為模式1
  170.     TH0 = T0RH;     //加載T0重載值
  171.     TL0 = T0RL;
  172.     ET0 = 1;        //使能T0中斷
  173.     TR0 = 1;        //啟動T0
  174. }
  175. /* T0中斷服務(wù)函數(shù),執(zhí)行串口接收監(jiān)控 */
  176. void InterruptTimer0() interrupt 1
  177. {
  178.     TH0 = T0RH;  //重新加載重載值
  179.     TL0 = T0RL;
  180.     UUartRxMonitor(1);  //串口接收監(jiān)控
  181. }
復(fù)制代碼

所有資料51hei提供下載:
標示圖.JPG
接線圖.JPG
應(yīng)用舉例 - 副本.JPG

30路繼電器可編程模塊485及232尺寸圖.pdf

1.03 MB, 下載次數(shù): 71, 下載積分: 黑幣 -5

30路繼電器可編程模塊帶485及232設(shè)計資料使用說明.doc

2.66 MB, 下載次數(shù): 85, 下載積分: 黑幣 -5

300路上下位機.7z

573.87 KB, 下載次數(shù): 91, 下載積分: 黑幣 -5

330路上下位機通訊源碼.7z

572.96 KB, 下載次數(shù): 92, 下載積分: 黑幣 -5

定時發(fā)送命令30路源碼安裝包下位機.7z

17.22 MB, 下載次數(shù): 86, 下載積分: 黑幣 -5

多板子通訊上下位機通訊源碼.7z

577.79 KB, 下載次數(shù): 94, 下載積分: 黑幣 -5

回復(fù)

使用道具 舉報

ID:356451 發(fā)表于 2018-6-21 21:55 | 顯示全部樓層
找了好久的單片機控制繼電器代碼學(xué)習(xí),終于讓我找到了
回復(fù)

使用道具 舉報

ID:265485 發(fā)表于 2018-6-22 20:37 | 顯示全部樓層
垃圾 你這發(fā)出來有什么用 賣板子嗎
回復(fù)

使用道具 舉報

ID:336629 發(fā)表于 2018-8-4 11:56 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)吧
回復(fù)

使用道具 舉報

ID:63042 發(fā)表于 2018-8-14 14:44 | 顯示全部樓層
555在電路里是干嘛用的?
回復(fù)

使用道具 舉報

ID:322594 發(fā)表于 2018-8-14 15:32 | 顯示全部樓層
可以的   
回復(fù)

使用道具 舉報

ID:322594 發(fā)表于 2018-8-14 15:33 | 顯示全部樓層
學(xué)習(xí)學(xué)習(xí)
回復(fù)

使用道具 舉報

ID:452173 發(fā)表于 2018-12-27 22:51 | 顯示全部樓層
485雙通信,學(xué)習(xí)了,謝謝樓主。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美日韩视频在线第一区 | 9999在线视频 | 亚洲成人中文字幕 | 中文字幕成人 | 成人免费精品 | 狠狠色综合欧美激情 | 日一区二区 | 污视频在线免费观看 | 精品成人av | 欧美一级欧美一级在线播放 | 99免费在线观看 | jizz中国日本 | 日韩视频一区二区 | 国产高清视频在线 | 91丨国产| 超碰精品在线观看 | 国产精品伦一区二区三级视频 | 中文字幕 亚洲一区 | 欧美炮房 | 亚洲精品综合一区二区 | 精品日本中文字幕 | 久久性色| 全免费a级毛片免费看视频免费下 | 亚洲精品久久久久久久久久久久久 | 国产一区二区三区精品久久久 | 自拍视频在线观看 | 亚洲国产网址 | 久久久精 | 看片地址| 可以免费看的毛片 | 在线观看av免费 | 欧美日韩在线看 | 草草草网站 | 亚洲国产成人在线视频 | 国产乱码一区 | 国产在线小视频 | 久久久久久一区 | 欧美激情久久久 | 国产精品视频网站 | 欧美一区二区在线 | 午夜三级在线观看 |