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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

16路輸入輸出可編程晶體管工控板原理圖PCB工程與源碼下載(單片機串口及485通訊)

  [復制鏈接]
跳轉到指定樓層
樓主

STC12C5A60S2單片機主控的十六入十六出場效應管工控開發板簡介

l  尺寸:145mmX103mmX25MM

l  供電:板子供電直流6到40V

l  十六路路數字量輸入光耦(PC817)隔離

l  十六路路場效應管輸出帶光耦(PC817)隔離

l  輸入輸出帶指示

l  晶振11.0592Mhz

l  單片機內部帶eeprom

l  控制電源和供電電源隔離

l  帶有串口232通訊接口(系在程序和通訊用)

l  帶有485接口,可以多塊控制板并聯

l  場效應管(IRF1205)輸出可控制55V44A負載

功能:十六個輸入可以接十六個NPN型傳感器,或者控制設備的限位開關、啟動、停止開關等等,可以實現任意控制設備的編程(仿西門子s7-200開關管型),可以控制直流12V到55V,107w負載


Altium Designer畫的單片機工控開發板原理圖和PCB圖如下:(51hei附件中可下載工程文件)


實物圖:

八入八出場效應管工控開發板說明書
第一部分:八入八出場效應管工控開發板功能介紹
1.八入八出場效應管工控開發板簡介
2.硬件連接使用說明
3.STC12C5A60S2單片機簡介
4.N溝道Irf1205場效應管簡介
第二部分:板子編程入門教學
1. Keil uVision4
2.用keil軟件建一個簡單工程
3.開發板下載程序方法
第三部分:板子各種軟件應用實例
一、基礎類
1.控制某一路延時通斷實例
2.隨機輸出控制使用實例
3.八路輸出流水燈實例
4.一對一輸入輸出互鎖控制實例
5.一對一輸入輸出自鎖控制實例
6.一對一輸入輸出點動控制實例
7.電腦采集輸入控制輸出實例
二、提高類
1.掉電記憶應用實例
2.加密設定次數應用實例
附錄:
1、硬件原理圖


注:RS485建議采用雙絞線連接,采用帶屏蔽的雙絞線連接,并將屏蔽層接地,總線上掛多個模塊時,采用手拉手不的連接方式。
    采集外部干接點開關量信號的接法


第三部分:板子各種軟件應用實例

通過485或232接口均可與上位機通訊測試程序
單片機源程序如下:
  1. /********************************************************************
  2.                             匯誠科技
  3. 實現功能:485或者232接口都可以通過上位機控制16路場效應管
  4. 使用芯片:STC12CA60S2
  5. 晶振:11.0592MHZ
  6. 波特率:9600bps  8位數據位  一位停止位  無效驗
  7. 編譯環境:Keil
  8. 硬件環境:八入八出出場效應管帶485和232接口  編號:kzs131-39y5k
  9. 作者:yang
  10. QQ:790244909
  11. 【聲明】此程序僅用于學習與參考,引用請注明版權和作者信息!     

  12. *********************************************************************/
  13. #include "hedder\\STC12C5A60S2.h"
  14. #include"hedder\\DODI.h"
  15. #define  uchar unsigned char
  16. #define  uint  unsigned int
  17. uchar dat;
  18. /********************************************************************
  19.                                 串口初始化
  20. *********************************************************************/
  21. void init ()
  22. {
  23.    //串口2波特率
  24.         TMOD = 0x20;                                  //定時器1產生波特率
  25.         SCON = 0x50;                                 //方式1,8位數據,波特率可變
  26.         TH1=0xfd;
  27.         TL1 = 0xfd;                         //波特率 9600

  28.   //串口1波特率        
  29.         S2CON = 0x50;                                 //方式1,八位數據,可變波特率
  30.         BRT=0XFD;                                  //設置波特率9600
  31.         TR1=1;                                          //啟動定時器產生串口2波特率        
  32.         AUXR=0x10;                                 //啟動串口1波特率發生器
  33.         IP=0x00;                                 //優先級默認
  34.         EA=1;                                  //開總中斷
  35.         ES=1;                                         //開串口1中斷
  36.         IE2=0x01;                                 //開串口2中斷
  37. }

  38. /*
  39.        // 串口一 發送一個字符
  40. void  uart1_txd(uchar x)
  41. {
  42.         SBUF = x;
  43. }
  44. //     串口二   發送一個字符
  45. void  uart2_txd(uchar x)
  46. {
  47.         S2BUF = x;
  48. }
  49. */
  50. /********************************************************************
  51.                                 延時函數
  52. *********************************************************************/
  53. void delay ( uint t )
  54. {
  55.         uint i,j;
  56.         for( i=0; i<t; i++)
  57.         for( j=0; j<250; j++);
  58. }
  59. /********************************************************************
  60.                                     主函數
  61. *********************************************************************/
  62. void main()
  63. {
  64.    uchar k=10;
  65.     //配置P4.4為IO口
  66.    P4SW|=0x70;                  
  67.    P4M0&=0x80;                  
  68.    P4M1&=0x80;

  69.    init();   //串口初始化
  70.    fxctl=0;  //485接收
  71.    while(1)
  72.    {
  73. /********************************************************************
  74.                             接收數據判斷函數
  75. *********************************************************************/
  76.         switch(dat) //接收數據判斷
  77.         {
  78.                 case 'I':
  79.                                   P1&=0x0c;
  80.                                   P3&=0x03;
  81.                           P4&=0x81;
  82.                                   P5=0;
  83.                           delay(200);
  84.                                   init();
  85.                               break; //  全開
  86.                                  
  87.                 case 'i':
  88.                            P3|=0XFF;
  89.                                    P1|=0XFF;
  90.                            P4|=0xff;
  91.                                    P5=0xff;
  92.                                    delay(k);        
  93.                                    break; //  全關
  94.                
  95.                 case 'A': OUT1=0;delay(k);break;           //  第一路開
  96.                 case 'B': OUT2=0;delay(k);break;           //  第二路開
  97.                 case 'C': OUT3=0;delay(k);break;           //  第三路開
  98.                 case 'D': OUT4=0;delay(k);break;           //  第四路開
  99.                 case 'E': OUT5=0;delay(k);break;           //  第五路開
  100.                 case 'F': OUT6=0;delay(k);break;           //  第六路開
  101.                 case 'G': OUT7=0;delay(k);break;           //  第七路開
  102.                 case 'H': OUT8=0;delay(k);break;           //  第八路開
  103.                 case 'J': OUT9=0;delay(k);break;           //  第九路開
  104.                 case 'K': OUT10=0;delay(k);break;           //  第十路開
  105.                 case 'L': OUT11=0;delay(k);break;           //  第十一路開
  106.                 case 'M': OUT12=0;delay(k);break;           //  第十二路開
  107.                 case 'N': OUT13=0;delay(k);break;           //  第十三路開
  108.                 case 'O': OUT14=0;delay(k);break;           //  第十四路開
  109.                 case 'P': OUT15=0;delay(k);break;           //  第十五路開
  110.                 case 'Q': OUT16=0;delay(k);break;           //  第十六路開
  111.                         
  112.                 case 'a': OUT1=1;delay(k);break;           //  第一路關
  113.                 case 'b': OUT2=1;delay(k);break;           //  第二路關
  114.                 case 'c': OUT3=1;delay(k);break;           //  第三路關
  115.                 case 'd': OUT4=1;delay(k);break;           //  第四路關
  116.                 case 'e': OUT5=1;delay(k);break;           //  第五路關
  117.                 case 'f': OUT6=1;delay(k);break;           //  第六路關
  118.                 case 'g': OUT7=1;delay(k);break;           //  第七路關
  119.                 case 'h': OUT8=1;delay(k);break;           //  第八路關
  120.                 case 'j': OUT9=1;delay(k);break;           //  ...
  121.                 case 'k': OUT10=1;delay(k);break;           //  ...
  122.                 case 'l': OUT11=1;delay(k);break;           //  ...
  123.                 case 'm': OUT12=1;delay(k);break;           //  ...
  124.                 case 'n': OUT13=1;delay(k);break;           //  ...
  125.                 case 'o': OUT14=1;delay(k);break;           //  ...
  126.                 case 'p': OUT15=1;delay(k);break;           //  ...
  127.                 case 'q': OUT16=1;delay(k);break;           //  ...
  128.            default:break;                      //  跳出
  129.    }
  130. }        
  131. }
  132. /********************************************************************
  133.                          串口一 發送接收中斷函數
  134. *********************************************************************/
  135. void uart_isr()  interrupt 4
  136. {
  137.         if( RI ) RI = 0;
  138.         
  139.         dat = SBUF;
  140.         
  141.         if( TI ) TI = 0;
  142. }
  143. /********************************************************************
  144.                          串口二    發送接收中斷函數
  145. *********************************************************************/
  146. void uart2_isr()  interrupt 8
  147. {
  148.    if( S2CON & 0x01 )
  149.          {
  150.                 S2CON &= ~0x01;
  151.                    dat= S2BUF;
  152.          }

  153.         if( S2CON & 0x02 )
  154.         {
  155.           S2CON &= ~0x02;
  156.         }
  157. }
  158. /********************************************************************
  159.                                     結束
  160. *********************************************************************/

復制代碼

1.  隨機輸出控制使用實例
單片機源程序如下:
  1. /**********************************************************
  2. 程序說明:
  3. 程序中數組KM(數據表)中的數據控制8個場效應管的通斷
  4. 適合用作控制廣告彩燈,燈箱,等等
  5. **********************************************************/
  6. #include<STC12C5A60S2.h>                 //庫文件
  7. #include <intrins.h>
  8. #define uchar unsigned char//宏定義無符號字符型
  9. #define uint unsigned int  //宏定義無符號整型
  10. /********************************************************************
  11.                             初始定義
  12. *********************************************************************/
  13. /********************************************************************
  14.                             初始定義
  15. *********************************************************************/
  16. /*定義八位數字量輸入為單片機P0口*/
  17. sbit X00=P0^0;
  18. sbit X01=P0^1;
  19. sbit X02=P0^2;
  20. sbit X03=P0^3;
  21. sbit X04=P0^4;
  22. sbit X05=P0^5;
  23. sbit X06=P0^6;
  24. sbit X07=P0^7;
  25. /*定義八位數字量輸出IO口*/
  26. sbit Y00=P2^6;
  27. sbit Y01=P2^7;
  28. sbit Y02=P5^0;
  29. sbit Y03=P5^1;
  30. sbit Y04=P4^1;
  31. sbit Y05=P4^6;
  32. sbit Y06=P4^5;
  33. sbit Y07=P4^4;
  34. /********************************************************************
  35.                             數據表格
  36. *********************************************************************/
  37. code uchar KM[]={
  38. 0xFF,0xE1,0xFF,0xFF,0xFF,0xFF,0xFC,0xC5,0x92,0xFF,0xB7,0xB8,0xC9,0x80,0x7F,0xFF,
  39. 0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xFC,0x4F,0xEF,0x3F,0xC8,0x1A,0x20,0xC0,0x00,0x00,
  40. 0x00,0x03,0xFF,0xFF,0xFF,0xFF,0xF8,0x7F,0xFF,0xFF,0x75,0x86,0xF6,0xC0,0x00,0x00,
  41. 0xFF,0x03,0xEF,0x9F,0xFB,0xFF,0xF8,0x7F,0xFF,0xFF,0xFB,0xDF,0xFE,0xC0,0x7F,0xFF,
  42. 0x00,0x07,0xDE,0x7F,0xC7,0xFF,0xF0,0x7E,0x7F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,
  43. 0x00,0x07,0x1C,0xF7,0x9F,0xDF,0xF0,0x7E,0x7F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,
  44. 0xFC,0x07,0x00,0x8C,0x1F,0xBF,0xE7,0x3C,0x3F,0xFF,0xFF,0xFF,0xFF,0xC0,0x7F,0xFF,
  45. 0x00,0x07,0x00,0x08,0x1C,0x3F,0x88,0x3C,0x7F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,
  46. 0x00,0x06,0x0C,0x08,0x98,0x7F,0x80,0x0D,0x9F,0xFF,0xFF,0xFF,0xFF,0xC0,0x00,0x00,
  47. 0xFC,0x06,0x1C,0xE3,0x99,0xFF,0x00,0x0C,0x0F,0xFF,0xFF,0xFF,0xFF,0xC0,0x5F,0xFF,
  48. }; //數據表格
  49. /********************************************************************
  50.                             延時函數
  51. *********************************************************************/
  52. void delay(uchar t)         //當t等于50時,大概延時0.5秒;當t等于10時,大概延時0.1秒;
  53. {
  54.         uchar m,n,s;
  55.         for(m=t;m>0;m--)
  56.         for(n=20;n>0;n--)
  57.         for(s=248;s>0;s--);
  58. }
  59. /********************************************************************
  60.                            輸出處理函數
  61. *********************************************************************/
  62. void open_X3(uchar turm)
  63. {
  64. char i;
  65. for(i=7;i>=0;i--)
  66. {
  67. urm=_crol_(turm,1);
  68. switch(i)
  69. {
  70.   case 0:Y00=turm&0x01;break;
  71.   case 1:Y01=turm&0x01;break;
  72.   case 2:Y02=turm&0x01;break;
  73.   case 3:Y03=turm&0x01;break;
  74.   case 4:Y04=turm&0x01;break;
  75.   case 5:Y05=turm&0x01;break;
  76.   case 6:Y06=turm&0x01;break;
  77.   case 7:Y07=turm&0x01;break;
  78.   default:break;
  79. }        
  80. }
  81. }

  82. /********************************************************************
  83.                             配置P4口
  84. *********************************************************************/
  85. void P4_init(void)
  86. {
  87.     P4SW=0x70;   //配置P4口
  88.     P4M0&=0x80;         
  89.     P4M1&=0x80;
  90. }
  91. /********************************************************************
  92.                             主函數
  93. *********************************************************************/
  94. ……………………

  95. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼


工控板的所有資料51hei提供下載(pcb+原理圖工程文件+源碼+說明文檔):
16路入16出可編程場效應管DXP資料.rar (719.61 KB, 下載次數: 361)
16入16出可編程(場效應管).rar (4.22 MB, 下載次數: 284)



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

使用道具 舉報

沙發
ID:381894 發表于 2018-8-1 22:00 | 只看該作者
想下載,積分不夠
回復

使用道具 舉報

板凳
ID:385372 發表于 2018-8-11 21:53 | 只看該作者
東西真的很不錯 就是需要幣
回復

使用道具 舉報

地板
ID:369814 發表于 2018-8-13 22:13 | 只看該作者
初學,測試了可以用,這個單片機厲害,兩個串口
回復

使用道具 舉報

5#
ID:369814 發表于 2018-8-13 22:15 | 只看該作者
初學者,程序正常運行,這個單片機厲害,兩個串口
回復

使用道具 舉報

6#
ID:230847 發表于 2018-9-8 13:35 | 只看該作者
謝謝分享,目前正在做一個項目需要這些資料
回復

使用道具 舉報

7#
ID:119140 發表于 2019-1-28 19:09 | 只看該作者

謝謝分享,做一個項目需要這些資料,學習一下。
回復

使用道具 舉報

8#
ID:184707 發表于 2019-3-18 10:54 | 只看該作者
很好的資料,謝謝樓主了
回復

使用道具 舉報

9#
ID:512979 發表于 2019-4-29 14:38 | 只看該作者
想下載,積分不夠
回復

使用道具 舉報

10#
ID:204391 發表于 2019-7-16 17:40 | 只看該作者
十六入出 ,八入出,兩串口。
回復

使用道具 舉報

11#
ID:625030 發表于 2019-10-16 14:22 來自手機 | 只看該作者
怎么聯發樓主
回復

使用道具 舉報

12#
ID:425919 發表于 2020-1-6 17:16 | 只看該作者
努力學習中…………
回復

使用道具 舉報

13#
ID:298215 發表于 2020-8-17 10:00 | 只看該作者

初學,測試了可以用,這個單片機厲害,兩個串口
回復

使用道具 舉報

14#
ID:97678 發表于 2020-8-18 08:38 | 只看該作者
下載來,看看。能不能把單片機換成最新的? 怎么總是看到用老掉牙的單片機?
回復

使用道具 舉報

15#
ID:251992 發表于 2021-12-28 21:00 | 只看該作者
電路漂亮              
回復

使用道具 舉報

16#
ID:928284 發表于 2021-12-30 16:25 | 只看該作者
厲害了,學單片機就是為了用于實際。
回復

使用道具 舉報

17#
ID:868837 發表于 2022-2-25 14:46 | 只看該作者
有BOM表嗎? 做板出來試一下。
回復

使用道具 舉報

18#
ID:476284 發表于 2024-7-26 21:34 | 只看該作者

下面的內容在附件里沒找到

5.一對一輸入輸出自鎖控制實例
6.一對一輸入輸出點動控制實例
7.電腦采集輸入控制輸出實例
二、提高類
1.掉電記憶應用實例
2.加密設定次數應用實例

回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 九一精品 | 精品一区二区三区在线观看国产 | 日韩国产在线观看 | 亚洲精品1 | 男女那个视频 | 午夜欧美 | 中文字幕在线精品 | 亚洲小视频 | 日韩精品久久久 | 中文字幕在线不卡播放 | 日韩在线观看网站 | 91精品国产色综合久久不卡蜜臀 | 亚洲精品日本 | 久久小视频 | 伊人狠狠操 | 看一级毛片视频 | 特一级黄色毛片 | 人人射人人插 | 九九九视频 | 美女久久久久久久 | 欧美一级黄色网 | 国产综合久久久久久鬼色 | 国产成年人小视频 | 欧美激情va永久在线播放 | 天久久| 亚洲女优在线播放 | 欧美激情网站 | 亚洲国产成人精品女人久久久 | 午夜视频精品 | 黄色毛片免费 | av黄色免费在线观看 | 在线播放第一页 | 欧美一区二区在线 | 久久久精品网站 | 欧美va大片| 久久久新视频 | 国内精品视频免费观看 | 亚洲首页 | 国产精品国产a | 国产精品日韩在线观看一区二区 | 国产区在线视频 |