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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 10131|回復: 14
打印 上一主題 下一主題
收起左側

51單片機8 IO繼電器工控板設計 含上位機源程序及PCB工程與原理圖

  [復制鏈接]
跳轉到指定樓層
樓主
ID:386157 發(fā)表于 2018-8-14 14:23 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
網上找的一個板子,全套資料都 有,可參考性強


Altium Designer畫的原理圖和PCB圖如下:(51hei附件中可下載工程文件)


V1394_八入八出繼電器工控板掉電存儲
簡要說明:
一、 尺寸:長150mmX寬122mmX高25mm
二、 主要芯片:AT89S52單片機(或者STC89C52)
三、 工作電壓:直流12伏
四、 單片機標準十針下載接口。(可使用并口下載線和USB下載線下載)
五、 特點:
             1、具有電源指示。
             2、八路輸入光電隔離引入信號。
             3、八路輸出光電隔離輸出控制繼電器。
              4、標準的11.0592M晶振。(便于設置串口波特率)
             5、具有上電復位和手動復位。
             6、支持AT89SXX系列單片機。
             7、帶有掉電存儲功能,芯片24C08。
             8、輸入八路具有LED指示。
             9、輸出八路具有LED指示。
             10、八路12V繼電器控制,控制設備。
             11、可控制交流220V/10A一下設備。(最大控制設備2000W)
             12、具有串口通信功能(可以上位機控制)。
             13、單片機無加密,可插拔更換,帶有程序下載口,可隨意更改程序。
使用說明:
【輸入部分標注說明】
【輸出部分標注說明】
主要器件標注說明】
上位機界面(提供源代碼)
測試程序
實現(xiàn)功能:
  • 實現(xiàn)輸入對輸出一對一控制,第一次按下開關,繼電器吸合,再次按下繼電器斷開。
  • 實現(xiàn)上位機(計算機)對繼電器控制,發(fā)送不同的代碼,控制對應的繼電器(詳細內容看程序)。
  • 具有掉電存儲功能,即,斷電后,再恢復通電,繼電器輸出斷電前狀態(tài)。

圖片展示

單片機源程序如下:

  1. /********************************************************************
  2.                           匯誠科技
  3. 實現(xiàn)功能:此版配套測試程序
  4. 使用芯片:AT89S52
  5. 晶振:11.0592MHZ
  6. 波特率:9600
  7. 編譯環(huán)境:Keil
  8. 作者:zhangxinchunleo

  9. 淘寶店:匯誠科技
  10. 【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!   
  11. *********************************************************************/
  12. /********************************************************************
  13. 單片機與PC機采用9針串口,MAX232通訊,波特率默認為9600.
  14. 單片機接收PC機發(fā)送的十六進制碼表如下:
  15. 01、全開:PC發(fā)送0xFF; 單片機返回0XFF;
  16. 02、全關:PC發(fā)送0X00; 單片機返回0X00;
  17. 03、第一路開:PC發(fā)送0x01;單片機返回0X01;
  18. 04、第二路開:PC發(fā)送0x02;單片機返回0X02;
  19. 05、第三路開:PC發(fā)送0x03;單片機返回0X03;
  20. 06、第四路開:PC發(fā)送0x04;單片機返回0X04;
  21. 07、第五路開:PC發(fā)送0x05;單片機返回0X05;
  22. 08、第六路開:PC發(fā)送0x06;單片機返回0X06;
  23. 09、第七路開:PC發(fā)送0x07;單片機返回0X07;
  24. 10、第八路開:PC發(fā)送0x08;單片機返回0X08;
  25. 11、第一路關:PC發(fā)送0xFE;單片機返回0XFE;
  26. 12、第二路關:PC發(fā)送0xFD;單片機返回0XFD;
  27. 13、第三路關:PC發(fā)送0xFC;單片機返回0XFC;
  28. 14、第四路關:PC發(fā)送0xFB;單片機返回0XFB;
  29. 15、第五路關:PC發(fā)送0xFA;單片機返回0XFA;
  30. 16、第六路關:PC發(fā)送0xF9;單片機返回0XF9;
  31. 17、第七路關:PC發(fā)送0xF8;單片機返回0XF8;
  32. 18、第八路關:PC發(fā)送0xF7;單片機返回0XF7;
  33. 19、輸入狀態(tài)查詢:PC發(fā)送0x55;單片機返回輸出狀態(tài)(返回值十六進制);
  34. 20、輸出狀態(tài)查詢:PC發(fā)送0xAA;單片機返回輸出狀態(tài)(返回值十六進制);
  35. 21、輸出取反指令:PC發(fā)送0X11;單片機返回0x11;

  36. *********************************************************************/
  37. #include<reg52.h>
  38. #define uchar unsigned char//宏定義無符號字符型
  39. #define uint unsigned int  //宏定義無符號整型
  40. /********************************************************************
  41.                             初始定義
  42. *********************************************************************/
  43. uchar sj; //存儲數(shù)據值
  44. bit write=0; //寫24C08 的標志;
  45. uchar dat=0xee; //用于存儲單片機接收發(fā)送緩沖寄存器SBUF里面的內容
  46. /*定義八位出為單片機P2口*/
  47. sbit K1=P2^0;
  48. sbit K2=P2^1;
  49. sbit K3=P2^2;
  50. sbit K4=P2^3;
  51. sbit K5=P2^4;
  52. sbit K6=P2^5;
  53. sbit K7=P2^6;
  54. sbit K8=P2^7;
  55. /*定義八位入為單片機P1口*/
  56. sbit IN0=P1^0;
  57. sbit IN1=P1^1;
  58. sbit IN2=P1^2;
  59. sbit IN3=P1^3;
  60. sbit IN4=P1^4;
  61. sbit IN5=P1^5;
  62. sbit IN6=P1^6;
  63. sbit IN7=P1^7;
  64. /********************************************************************
  65.                     24C08 讀寫驅動程序
  66. *********************************************************************/
  67. sbit scl=P3^6; // 24c08 SCL
  68. sbit sda=P3^7; // 24c08 SDA

  69. void delay1(uchar x)
  70. {
  71. uint i;
  72. for(i=0;i<x;i++);
  73. ;
  74. }
  75. void flash(){ ; ; }
  76. void x24c08_init() //24c08 初始化子程序
  77. {
  78. scl=1;
  79. flash();
  80. sda=1;                    
  81. flash();
  82. }
  83. void start() //啟動(I方C)總線
  84. {
  85. sda=1; flash(); scl=1; flash(); sda=0; flash(); scl=0; flash();
  86. }
  87. void stop() //停止(I方C)總線
  88. {
  89. sda=0; flash(); scl=1; flash(); sda=1; flash();
  90. }
  91. void writex(uchar j) //寫一個字節(jié)
  92. {
  93. uchar i,temp;
  94. temp=j;
  95. for (i=0;i<8;i++)
  96. {
  97. temp=temp<<1; scl=0; flash(); sda=CY; flash(); scl=1; flash();
  98. }
  99. scl=0; flash(); sda=1; flash();
  100. }
  101. uchar readx() //讀一個字節(jié)
  102. {
  103. uchar i,j,k=0;
  104. scl=0; flash(); sda=1;
  105. for (i=0;i<8;i++)
  106. {
  107. flash(); scl=1; flash();
  108. if (sda==1) j=1;
  109. else j=0;
  110. k=(k<<1)|j;
  111. scl=0;}
  112. flash(); return(k);
  113. }
  114. void clock() //(I方C)線時鐘
  115. {
  116. unsigned char i=0;
  117. scl=1; flash();
  118. while ((sda==1)&&(i<255))i++;
  119. scl=0; flash();
  120. }
  121. /********************************************************************
  122.                 從24c08 的地址address 中讀取一個字節(jié)數(shù)據
  123. *********************************************************************/
  124. unsigned char x24c08_read(unsigned char address)
  125. {
  126. unsigned char i;
  127. start(); writex(0xa0);
  128. clock(); writex(address);
  129. clock(); start();
  130. writex(0xa1); clock();
  131. i=readx(); stop();
  132. delay1(10);
  133. return(i);
  134. }
  135. /********************************************************************
  136.                 向24c08 的address地址中寫入一字節(jié)數(shù)據
  137. *********************************************************************/
  138. void x24c08_write(unsigned char address,unsigned char info)
  139. {
  140. EA=0;
  141. start(); writex(0xa0);
  142. clock(); writex(address);
  143. clock(); writex(info);
  144. clock(); stop();
  145. EA=1;
  146. delay1(50);
  147. }
  148. /********************************************************************
  149.                             延時函數(shù)
  150. *********************************************************************/
  151. void delay(uchar t)
  152. {
  153.   uchar i,j;
  154.    for(i=0;i<t;i++)
  155.    {
  156.                  for(j=13;j>0;j--);
  157.               { ;
  158.               }
  159.    }
  160. }

  161. /********************************************************************
  162.               功能:串口初始化,波特率9600,方式1
  163. *********************************************************************/
  164. void Init_Com(void)
  165. {
  166. TMOD = 0x20;
  167. PCON = 0x00;
  168. SCON = 0x50;
  169. TH1 = 0xFd;
  170. TL1 = 0xFd;
  171. TR1 = 1;
  172. }
  173. /********************************************************************
  174.                             接收數(shù)據判斷函數(shù)
  175. *********************************************************************/
  176. chuankou()
  177. {
  178. switch(dat) //接收數(shù)據判斷
  179. {
  180. uchar k;
  181. k=10;
  182. case 0xff: P2=0X00;delay(k);SBUF = dat;dat=0xee;write=1;break; //  全開
  183. case 0x00: P2=0XFF;delay(k);SBUF = dat;dat=0xee;write=1;break; //  全關
  184. case 0x01: K1=0;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第一路開
  185. case 0x02: K2=0;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第二路開
  186. case 0x03: K3=0;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第三路開
  187. case 0x04: K4=0;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第四路開
  188. case 0x05: K5=0;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第五路開
  189. case 0x06: K6=0;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第六路開
  190. case 0x07: K7=0;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第七路開
  191. case 0x08: K8=0;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第八路開
  192. case 0xFE: K1=1;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第一路關
  193. case 0xFD: K2=1;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第二路關
  194. case 0xFC: K3=1;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第三路關
  195. case 0xFB: K4=1;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第四路關
  196. case 0xFA: K5=1;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第五路關
  197. case 0xF9: K6=1;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第六路關
  198. case 0xF8: K7=1;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第七路關
  199. case 0xF7: K8=1;delay(k);SBUF = dat;dat=0xee;write=1;break;                 //  第八路關
  200. case 0x55: SBUF = P1;delay(k);dat=0xee;break;                 //  讀輸入口狀態(tài)
  201. case 0xAA: SBUF = P2;delay(k);dat=0xee;write=1;break;                 //  讀輸出口狀態(tài)
  202. case 0x11: P2=~P2;delay(k);SBUF = dat;dat=0xee;write=1;break;  //  輸出口取反
  203. default:break;                                                                         //  跳出
  204. }
  205. }
  206. /********************************************************************
  207.                             按鍵函數(shù)
  208. *********************************************************************/
  209. KEY()
  210. {
  211. uchar k;
  212. k=100;
  213. if(IN0==0){delay(k);while(!IN0);K8=!K8;write=1;}
  214. if(IN1==0){delay(k);while(!IN1);K7=!K7;write=1;}
  215. if(IN2==0){delay(k);while(!IN2);K6=!K6;write=1;}
  216. if(IN3==0){delay(k);while(!IN3);K5=!K5;write=1;}
  217. if(IN4==0){delay(k);while(!IN4);K4=!K4;write=1;}
  218. if(IN5==0){delay(k);while(!IN5);K3=!K3;write=1;}
  219. if(IN6==0){delay(k);while(!IN6);K2=!K2;write=1;}
  220. if(IN7==0){delay(k);while(!IN7);K1=!K1;write=1;}
  221. }
  222. /********************************************************************
  223.                             主函數(shù)
  224. *********************************************************************/
  225. void main()
  226. {
  227. Init_Com();//串口初始化
  228. x24c08_init(); //初始化24C08
  229. sj=x24c08_read(2);//讀出保存的數(shù)據賦于dat
  230. P2=sj;//將存儲的數(shù)據賦予P2口
  231. while(1)
  232. {
  233. chuankou();              // 接收數(shù)據判斷函數(shù)

  234. if ( RI ) //掃描判斷是否接收到數(shù)據,
  235. {
  236. dat = SBUF; //接收數(shù)據SBUF賦與dat
  237. RI=0; //RI 清零。
  238. }
  239. KEY(); //調用按鍵函數(shù)
  240. if(write==1) //判斷計時器是否計時一秒
  241. {
  242. write=0; //清零
  243. sj=P2;              //將P2口的值賦予dat
  244. x24c08_write(2,sj); //在24c08 的地址2 中寫入數(shù)據dat
  245. }               
  246. }
  247. }
  248. /********************************************************************
  249.                               結束
  250. *********************************************************************/
復制代碼

所有資料51hei提供下載:
AT89S52_8IO繼電器工控板_掉電存儲DXP資料.rar (5.2 MB, 下載次數(shù): 285)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏15 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:387700 發(fā)表于 2018-8-28 23:11 | 只看該作者
這個有沒有現(xiàn)成的賣啊
回復

使用道具 舉報

板凳
ID:388329 發(fā)表于 2018-9-2 23:20 | 只看該作者
還可以啊,這個東西
回復

使用道具 舉報

地板
ID:426763 發(fā)表于 2018-11-15 10:12 來自手機 | 只看該作者
原理圖和pcn在哪里呢
回復

使用道具 舉報

5#
ID:459158 發(fā)表于 2019-1-1 19:35 來自手機 | 只看該作者
很好,非常好,留個腳印
回復

使用道具 舉報

6#
ID:165792 發(fā)表于 2019-1-9 19:57 | 只看該作者
謝謝分享
回復

使用道具 舉報

7#
ID:79631 發(fā)表于 2019-2-22 10:02 | 只看該作者
很好,非常好,留個腳印
回復

使用道具 舉報

8#
ID:250631 發(fā)表于 2019-2-22 14:40 | 只看該作者
感謝樓主的無私奉獻。
回復

使用道具 舉報

9#
ID:8190 發(fā)表于 2019-2-22 14:52 | 只看該作者
學習了  謝謝分享
回復

使用道具 舉報

10#
ID:487335 發(fā)表于 2019-3-9 12:48 | 只看該作者
板子可好用了,已經用過好多塊,沒想到這里還有這么好的資料,可惜積分不夠
回復

使用道具 舉報

11#
ID:425600 發(fā)表于 2019-3-9 21:06 | 只看該作者
非常好的資料,謝謝
回復

使用道具 舉報

12#
ID:571679 發(fā)表于 2019-6-25 13:39 | 只看該作者

很好,非常好,留個腳印
回復

使用道具 舉報

13#
ID:570488 發(fā)表于 2019-6-26 11:47 | 只看該作者
這個東西確實有用了,最近正在研究類似的東西~ 其實也可以自己用一個最小系統(tǒng),輸出好搞定,因為淘寶上有繼電器模塊賣,5V的20塊錢八個繼電器的,但是輸入的話,沒有直接的,需要自己弄光耦隔離~
回復

使用道具 舉報

14#
ID:84000 發(fā)表于 2019-9-26 13:09 | 只看該作者
這個板子看上去很不錯,自己學著坐一塊用在工控上應該很理想。
回復

使用道具 舉報

15#
ID:476284 發(fā)表于 2024-7-26 22:36 | 只看該作者
這個案例不錯,資料比較齊全,謝謝分享!
回復

使用道具 舉報

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

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一页 | 欧美最猛黑人xxxⅹ 粉嫩一区二区三区四区公司1 | 亚洲欧美日韩一区 | 欧美成人不卡 | 亚洲图片一区二区三区 | av免费电影在线 | 欧美精品一区二区三区在线 | 一区二区三区国产在线观看 | av在线天堂网| 成人国产精品久久久 | 亚洲精品91 | 亚洲欧洲中文日韩 | 国产精品久久久久久久久久久久久 | 久久成人免费 | 免费1区2区3区 | 色综合99 | 久久丝袜| 麻豆国产一区二区三区四区 | 精品久久久久久亚洲精品 | 日韩精品视频在线观看一区二区三区 | 久久久www成人免费无遮挡大片 | 午夜伦理影院 | 欧美福利视频一区 | 精品三级在线观看 | 国产日韩欧美在线观看 | 亚洲天堂av在线 | 蜜月va乱码一区二区三区 | 日产精品久久久一区二区福利 | 99久久99久久精品国产片果冰 | 亚洲av一级毛片 | 日韩综合在线 | 一区二区三区国产 | 久久亚洲精品国产精品紫薇 | 美国一级黄色片 | 欧美一级大片免费观看 | 91麻豆精品国产91久久久资源速度 | 国产成人精品综合 | 免费黄色av| 国产在线一区二区三区 | 日韩欧美高清 | 中文字幕日韩欧美 |