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

標題: Proteus仿真WS2812+51單片機源程序 [打印本頁]

作者: iojj    時間: 2021-1-7 17:42
標題: Proteus仿真WS2812+51單片機源程序
跟據示波波形,反復調試,同時優化程序,使高電平最小時間接近0.5us,如示波器圖所示,這時可利用程序驅動WS2812,否則會因程序運行速度過慢而無法驅動。
為了簡化程序,加快代碼運行速度,采用匯編與C語言混合編程
#pragma ASM
SETB P2.5
CLR  P2.5
CLR  P2.5
#pragma ENDASM

因單片機時鐘周期限制,在仿真的調試過程中加入for,while循環會使ws2812的驅動波形出現長時間的低電平,導致不能正常點亮led,故此程序沒有使用for循環,而是多條語句重復使用,造成了代碼量很大,因本人能力有限,沒有精力進行簡化,望使用的大佬能進一步完善。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include <reg51.h>
  2. #include <LCD1602.h>
  3. #include <GY25.h>
  4. #include <WS2812.h>
  5. #include <stdio.h>
  6. #define PIXEL_COUNT 16



  7. sbit led1=P2^3;
  8. sbit led2=P2^4;

  9. int flag_now=0,flag_last=0;
  10. char strTemp[10]= {'0','1','2','3','4','5','6','7','8','9'};



  11. int RR,GG,BB;
  12. int i;
  13. int US100;
  14. int MS1;
  15. void display()
  16. {
  17.     LCD_set_position(0);
  18.     LCD_printc(strTemp[YPR/1000]);
  19.     LCD_printc(strTemp[YPR/100%10]);
  20.     LCD_printc(strTemp[YPR/10%10]);
  21.     LCD_printc(strTemp[YPR%10]);
  22. }
  23. void led_init()
  24. {
  25.     led1=1;
  26.     led2=1;
  27. }
  28. void delay10ms(void)   //誤差 0.000000000000us
  29. {
  30.     unsigned char a,b;
  31.     for(b=235;b>0;b--)
  32.         for(a=57;a>0;a--);
  33. }
  34. int count=0;
  35. void control()
  36. {
  37.     if(YPR<10&&YPR>-10)
  38.         flag_now=1;
  39.     else
  40.         flag_now=2;
  41.     if(flag_now==1)
  42.     {
  43.         led1=0;
  44.         led2=1;
  45.     }
  46.     if(flag_now==2)
  47.     {
  48.         led1=1;
  49.         led2=0;
  50.     }
  51.     if(flag_last!=flag_now)
  52.                 {
  53.                         
  54.                                 if(flag_now==1)
  55.                                                         for(count=1;count<=32;count++)
  56.                                                  {
  57.                                                          ws2812_led(count);
  58.                                                          delay10ms();
  59.                                                  }
  60.                                 if(flag_now==2)
  61.                                                                 for(count=32;count>0;count--)
  62.                                                          {
  63.                                                                  ws2812_led(count);
  64.                                                                  delay10ms();
  65.                                                          }
  66.                   ws2812_led(0);
  67.                 }
  68.                
  69.     flag_last=flag_now;
  70. }
  71. void main(void)
  72. {
  73.     InitUART();
  74.     led_init();
  75.           SBUF = 0XA5;
  76.     while(!TI);
  77.           SBUF = 0X52;
  78.     while(!TI);
  79.           delay10ms();
  80.     while(1)
  81.     {
  82.       control();
  83.     }
  84. }
復制代碼

Keil代碼與Proteus8.8版本仿真51hei下載:
本人初學,僅供參考,存在錯誤和不足之處,請大家回帖多多指教,切勿照搬,文件下載:
WS2812.zip (1.56 MB, 下載次數: 151)

作者: 人人學會單片機    時間: 2021-1-7 18:00
WS2812是一個通信速度比較快的芯片,而89單片機是比較慢的單片機。
89單片機使用32M晶振、12T模式,用IO口直接驅動WS2812燈珠。
這是我發在51hei的貼子 http://www.zg4o1577.cn/bbs/dpj-170855-1.html
作者: iojj    時間: 2021-1-9 16:48
人人學會單片機 發表于 2021-1-7 18:00
WS2812是一個通信速度比較快的芯片,而89單片機是比較慢的單片機。
89單片機使用32M晶振、12T模式,用IO口 ...

我嘗試了你的代碼,但在Proteus上不好用
作者: liao026    時間: 2022-8-30 12:26
Proteus原理圖需要用8.8版本才可以打開,代碼也不好用,只能呵呵,還弄我下了幾次
作者: iojj    時間: 2023-1-16 16:46
liao026 發表于 2022-8-30 12:26
Proteus原理圖需要用8.8版本才可以打開,代碼也不好用,只能呵呵,還弄我下了幾次

gif動圖在那里,親,您是哪里不好用呢




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲欧美日韩网站 | 亚洲精品久久久久久久久久吃药 | 91视频大全| 蜜桃精品噜噜噜成人av | 国产精品久久性 | 国产99热 | 性做久久久久久免费观看欧美 | 狠狠色狠狠色综合日日92 | 高清国产一区二区 | 国产精品久久久久久久久久久久久久 | 欧美一级片在线看 | 中文字幕av在线播放 | 三级在线免费 | 国产高清在线精品 | 日本三级电影在线观看视频 | 91精品国产手机 | 免费看一区二区三区 | 亚洲成人久久久 | 亚洲精品一区二区在线观看 | 精品久久精品 | 日韩三级电影一区二区 | 国产精品一区二区久久 | 久久精品在线 | 欧美中文字幕在线观看 | 精品欧美一区免费观看α√ | 日韩激情在线 | 国产在线二区 | 亚洲精品一区二区在线观看 | 超碰成人免费 | 久久久国产精品网站 | 欧美国产中文字幕 | 国产视频一区在线 | 久久成人人人人精品欧 | 成人依人| 国产欧美一区二区久久性色99 | 亚洲一二三在线 | 亚洲精品一区二区三区在线 | 日韩精品在线免费 | 一区二区三区视频在线 | 狠狠操天天干 | 久久国产精品一区二区 |