标题: 51单片机 24M晶振能控制WS2812吗? [打印本页]

作者: xjtong    时间: 2019-11-11 01:08
标题: 51单片机 24M晶振能控制WS2812吗?
51系统的单片机 24M晶振能控制WS2812吗???

NOP() 500NS 应该可以吧?



作者: yzwzfyz    时间: 2019-11-11 11:51
你认为多少可以控制呢?
作者: man1234567    时间: 2019-11-11 12:47
单片机的晶振仅决定单片机本身的工作频率,一般与外设无关。此处答案是一定可以,具体程序需在实践中调试。另外,NOP() 500NS这样的句式一般不会通过的
作者: dzbj    时间: 2019-11-11 14:13
近期刚弄过这东西 11.0592下正常工作
作者: xjtong    时间: 2019-11-11 14:30
yzwzfyz 发表于 2019-11-11 11:51
你认为多少可以控制呢?

当然速度越快,相对越好控制了。我现在快的是IAP15w413AS.不知道行不行?
给点建议吧。
作者: mengzhixinheng    时间: 2019-11-11 14:56
老51不能,1T指令的51可以
作者: bh2030693    时间: 2019-11-11 17:05
首先,根据本人实际测试(仅代表本人买到的),成品WS2821灯带上面每个IC旁边有个小电容,电容体积大的控制频率低于数据手册参数,电容小的比较符合数据手册参数。以数据手册参数为参照,就目前主流51单片机来说,由于时钟频率偏低,控制WS2821灯带,只能简单控制设定好的显示模式,不能做完整的任意模式控制。
利用STC的1T单片机,24MHz内部时钟,可以做出设定好的亮度和颜色模式。
例如:可以设定RGB的亮度参数做出不同颜色和不同亮度,可以实现控制点亮LED的数量、间隔点亮、流水灯、花样流水等等模式。
就是可以控制事先设定好多个“单个LED的显示模式(RGB参数决定)”,并且可以组合,但是无法根据变化的信号来动态改变RGB的值。


上面这个图片显示了24MHz下,每个时钟周期的时间是0.0417us,所以对动态改变参数的函数调用时间显然不够,但是可以预设。


作者: xjtong    时间: 2019-11-11 19:23
  1. void send(uchar n)
  2. {
  3.         if(n& 0x80)s1 else s0
  4.         if(n& 0x40)s1 else s0
  5.         if(n& 0x20)s1 else s0
  6.         if(n& 0x10)s1 else s0
  7.         if(n& 0x08)s1 else s0
  8.         if(n& 0x04)s1 else s0
  9.         if(n& 0x02)s1 else s0
  10.         if(n& 0x01)s1 else s0
  11. }

  12. void main()
  13. {
  14.         uchar i;
  15.         while(1)
  16.         {
  17.         res();
  18.         i=15;
  19.         while(i--)send(aa[i]);
  20.         }
  21. }
复制代码

程序已经弄好,就等明天货到了测试了。
软件仿真测试都是没问题的。
作者: baojiwyx    时间: 2020-1-19 01:06
我换成22MHZ晶振也能用
作者: cllllll    时间: 2020-6-17 11:09
那12MHZ行吗 应该凑合吧




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1