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

標題: DMX512燈光控制程序案例 單片機雙機通信5通道程序 [打印本頁]

作者: lifeng513513    時間: 2017-8-26 14:40
標題: DMX512燈光控制程序案例 單片機雙機通信5通道程序
51單片機驅動DMX512燈光控制程序案例



單片機驅動DMX512源程序(從機)如下:
  1. /*******************************************************************************
  2. 文    件:DMX_5_slave.C
  3. 功能描述:使用STC89c52rc接收多通道dmx數據。
  4. 編    作:Travis copyright 2012
  5. 版    本:  dmx——V2.1
  6. *********************************************************************************/

  7. #include <intrins.h>
  8. # include <STC89C51RC_RD_PLUS.H>


  9. # define uchar unsigned char
  10. # define unint unsigned int
  11. # define ulong unsigned long




  12. /* 常量定義 */  
  13. # define BAUD0ATE              4800         //4800
  14. # define Fosc                   16         //晶振16MHz
  15. # define MAX_FADE_LEVEL         256        //灰度等級     /////////
  16. # define TIMER0_TIME            80         //80ms         

  17. # define PIXELS   8
  18. # define MAX_FADE  256


  19. /*聯合體類型說明 */
  20. typedef union User_Data_Type
  21. {
  22.   uchar Ch[2];
  23.   unint In;
  24. }U16TP;



  25. /* 可位元尋址區定義 */
  26. sbit SYN = P3^2;//INT0        //外部中斷0



  27. sbit OR_1 = P2^7;//R        //顏色引腳(使用軟件產生pwm)
  28. sbit OG_1 = P2^6;//G
  29. sbit OB_1 = P2^5;//B
  30. sbit OR_2 = P2^4;//W
  31. sbit OG_2 = P2^3;//P







  32. /* 變量定義 */


  33. uchar Int0_Count_Rg;         //外部中斷計數變量
  34. uchar Rec_Data_Rg[5];         //外部中斷接收數據數組
  35. uchar Data_Count_Rg;         //外部中斷數據檢測變量
  36. uchar LED_Fade_Rg[5];         //led灰度值
  37. uchar Fade_Count_Rg;         //灰度變化變量

  38. //=================================延時函數===============================================//
  39. //功能:無用時間,解決外設與內設通信反應時間。
  40. //=======================================================================================//
  41. void delay_time(unint time_delay)
  42. { while(time_delay--);}


  43. //====================================單片機初始化======================================//
  44. //功能:單片機初始化中斷
  45. //======================================================================================//

  46. void init_MCU()   
  47. {
  48. IPH&=0XFC;
  49. IP|=0X01;
  50. }



  51. //=======================================外部中斷0服務程序==================================//
  52. //功能:接收主機數據
  53. //==========================================================================================//

  54. void Int0(void) interrupt 0     
  55. { uchar temp;
  56.    
  57.   temp = P1&0xFF;      //檢測數據
  58.   switch(Int0_Count_Rg)
  59.   { case 0:      
  60.       if(temp == 0xaa)  {Int0_Count_Rg++;    }    //如果是0XAA,進入下一次中斷循環
  61.       else Int0_Count_Rg = 0;
  62.       break;
  63.     case 1:
  64.       if(temp == 0x11) { Data_Count_Rg = 0;Int0_Count_Rg++;}  //如果是0X11,進入下一次中斷循環
  65.       else Int0_Count_Rg = 0;
  66.       break;
  67.     case 2:

  68.       Rec_Data_Rg[Data_Count_Rg] = temp;                       //接收5位灰度數據值
  69.       if(++Data_Count_Rg>=6)            
  70.       { LED_Fade_Rg[0] = Rec_Data_Rg[0];
  71.         LED_Fade_Rg[1] = Rec_Data_Rg[1];
  72.         LED_Fade_Rg[2] = Rec_Data_Rg[2];
  73.         LED_Fade_Rg[3] = Rec_Data_Rg[3];
  74.         LED_Fade_Rg[4] = Rec_Data_Rg[4];

  75.         Int0_Count_Rg = 0;
  76.       }
  77.    
  78.       break;
  79.     default:
  80.       break;
  81.   }
  82. }

  83. //===============================定時器0初始化===============================================//
  84. //功能:定時器0初始化,16定時器模式中斷開啟 ,循環掃描。
  85. //===========================================================================================//
  86. void Timer_Init(void)      
  87. { TH0  = (65536 - ((ulong)TIMER0_TIME*Fosc/12)) >> 8 ;    //中斷賦值
  88.   TL0  = (65536 - ((ulong)TIMER0_TIME*Fosc/12))-1;
  89.   TMOD = 0x01;//GATE1 C/T1      M11       M10  GATE0 C/T0  M01 M00
  90.   ET0  = 1;      //使能定時器0.
  91.   TR0  = 1;   //開啟定時器0
  92. }


  93. //====================================定時器0中斷======================================//
  94. //功能:定時器0中斷函數。掃描,產生pwm。
  95. //========================================================================================//
  96. void Timer0( void ) interrupt 1
  97. {
  98. TH0   = (65536 - ((ulong)TIMER0_TIME*Fosc/12)) >> 8 ;  //中斷賦值
  99. TL0   = (65536 - ((ulong)TIMER0_TIME*Fosc/12))-1;

  100.   
  101. if(++Fade_Count_Rg>(MAX_FADE_LEVEL-1))
  102.       Fade_Count_Rg = 0;
  103.     OR_1=(Fade_Count_Rg<LED_Fade_Rg[0])?1:0;
  104.     OG_1=(Fade_Count_Rg<LED_Fade_Rg[1])?1:0;
  105.     OB_1=(Fade_Count_Rg<LED_Fade_Rg[2])?1:0;

  106.     OR_2=(Fade_Count_Rg<LED_Fade_Rg[3])?1:0;
  107.     OG_2=(Fade_Count_Rg<LED_Fade_Rg[4])?1:0;

  108. }

  109. //==================================主函數================================//
  110. //功能:全部函數應用
  111. //========================================================================//
  112. void main(void)
  113. {
  114. init_MCU();              //單片機初始化
  115. Timer_Init();          //定時器初始化
  116. delay_time(5);           //延時
  117.   //外部中斷0初始化           
  118.   TCON |= 0x01;       //下降沿觸發     //IT0=1;
  119.   IE   |= 0x01;          //外部中斷0允許位。//EX0=1;

  120.   EA    = 1;          //開中斷
  121.   LED_Fade_Rg[0] = MAX_FADE_LEVEL-1;    //灰度賦值。
  122.   LED_Fade_Rg[1] = MAX_FADE_LEVEL-1;    //灰度賦值。
  123.   LED_Fade_Rg[2] = MAX_FADE_LEVEL-1;    //灰度賦值。
  124.   LED_Fade_Rg[3] = MAX_FADE_LEVEL-1;    //灰度賦值。
  125.   LED_Fade_Rg[4] = MAX_FADE_LEVEL-1;    //灰度賦值。



  126.   while(1);


  127. }


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

所有資料51hei提供下載:
雙機通信5通道.rar (194.99 KB, 下載次數: 193)





作者: 自由飛翔123    時間: 2018-4-13 08:37
好資料,51黑有你更精彩!!!

作者: woojoon1981    時間: 2019-12-18 14:18
正好研究這個呢。。。謝謝
作者: q395418298    時間: 2022-3-11 13:20
正好研究下載看下
作者: yangqfa    時間: 2022-11-13 16:13
附件是雙機通訊, 不是DMX512

作者: Longan.Wang    時間: 2023-7-25 17:33
yangqfa 發表于 2022-11-13 16:13
附件是雙機通訊, 不是DMX512

真的么,還好沒有盲目下載,先看看評論
作者: wkman    時間: 2023-7-25 17:47
還好沒有盲目下載,先看看評論  




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 一区二区免费看 | 日韩av免费在线播放 | 快播少女爱欢乐 | 天天操夜夜摸 | 亚洲精品一区中文字幕乱码 | 日韩一区二区三免费高清在线观看 | 亚洲爽妇网| 国产欧美日韩在线 | 日韩成人精品视频 | 精品国产一区二 | 欧美亚洲一区 | 欧美成人一级片 | 一区二区视频网站 | 中文字幕理论片 | 久久三区 | 亚洲成人精品一区 | 香蕉综合网 | 蜜臀av性久久久久av蜜臀妖精 | 一区二区视频在线 | 成人免费av| 精品日韩一区二区三区 | 女教师合集乱500篇小说 | 日韩成人高清 | 久久精品6 | 国产一区在线看 | 亚洲另类视频 | 97在线观看免费视频 | 黄色精品网站 | 小sao货撅起屁股扒开c微博 | 97精品视频| 亚洲www啪成人一区二区麻豆 | 国产精品五区 | 91日韩在线 | 黄色片一区二区 | 师生出轨h灌满了1v1 | 在线观看免费毛片 | 99精品久久久 | 国产黄色精品视频 | 欧美性色网 | 国产精品永久久久久久久久久 | 天天色天天干天天 |