历史上的今天
今天是:2024年11月10日(星期日)
2020年11月10日 | ws2812b彩灯带室内自动系统单片机源程序
2020-11-10 来源:51hei
调光基于12c5a60s2程序:
/*********************************************************************************************************
*********************************************************************************************************/
#include //#include #include #include #include #define uchar unsigned char #define uint unsigned int #define FSCLK 11059200 #define Number 29 unsigned char Receive,i; unsigned int n,flag; unsigned char Receive_table[15]; #define RELOAD_COUNT 0xFA sbit LED0=P0^2; sbit DAI = P3^2; sbit k1=P2^0; sbit k2=P2^1; sbit k3=P2^2; sbit k4=P2^3; sbit k5=P2^4; sbit k6=P2^5; sbit k7=P2^6; sbit k8=P2^7; sbit p13=P1^3; uint speed = 0; uchar flag_clr = 0; uchar Table_R[8]={ 0, 0,255, 0,255,255,255,0}; uchar Table_G[8]={255, 0, 0,255, 0,255,255,0}; uchar Table_B[8]={ 0,255, 0,255,255, 0,255,0}; uchar code Table[256] = { 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19, 20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39, 40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59, 60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79, 80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99, 100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119, 120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139, 140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159, 160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179, 180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199, 200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219, 220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239, 240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255 }; unsigned char CCAPOH,ID; float res0,res1; /********************************************************************************************************* ** 函数功能 :延时函数 ** 函数说明 :利用软件延时,占用CPU,经调试最小单位大约为1ms ** 入口参数 :time:需要延时的时间,单位ms ** 出口参数 :无 *********************************************************************************************************/ void Delay_ms(uint time) { uint i,j; for(i = 0;i < time;i ++) for(j = 0;j < 930;j ++); } void ms_delay(unsigned int t) { unsigned int i,j; for(i=t;i>0;i--) for(j=110;j>0;j--); } void us_delay(unsigned int t) { while(t--); } void rst() { uint s; DAI=0; for(s=0;s<1000;s++); {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();} } void Delay_Fash (uint x) // 1ms Delay { uint t; t = 0; while (x--) { for (t = 0; t < 5000; t++); } } void Delay(uint x) // 1ms Delay { uint t; t = 0; while (x--) { for (t = 0; t < 330; t++); } } /*uart初始化*/ void Uart_Init()//使用独立的波特率发生器(STC12C560S2或带有独立波特率发生器//、//的单片机均可) { SCON=0x50; //设置为串行口以方式1工作,8位异步通讯,允许接收中断。 PCON=0x80; //SMOD波特率选择位为1,SMOD=1. BRT=0xfa;//波特率9600 256-晶振频率/波特率x16=BRT AUXR=0x11; //T0、T1不12分频,速度是89C51的12倍,启动独立波特率//发生器,每个时钟计数一次 //设置串口1的波特率发生器为独立波特率发生器, // AUXR1=0x80; //切换到P1口 ES=1; //开启串口中断 EA=1; //开启总中断 } void Send_Uart(unsigned char value){//向WIFI模块发送数据 ES=0; TI=0; SBUF=value;//发送完后TI变1 while(!TI); TI=0; ES=1; } /*给esp8266发送指令*/ void ESP8266_Set(unsigned char *puf) { while(*puf){ Send_Uart(*puf); us_delay(5); puf++; } us_delay(5); Send_Uart('r'); us_delay(5); Send_Uart('n'); ms_delay(20000); } void code0() { DAI=1; _nop_(); DAI=0; _nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); } void code1() { DAI=1; _nop_(); _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_(); DAI=0; _nop_();_nop_(); _nop_(); _nop_(); } //打开灯 void bright() { unsigned int j; for(j=0;j<720;j++)code1(); } //关闭灯函数 void dark() { unsigned int j; for(j=0;j<720;j++)code0(); } void send_2811_24bits(uchar dat1,uchar dat2,uchar dat3) { uchar a; // uchar b; for(a=0;a<8;a++) //dat1 { if(dat1&0x80) { code1(); } else { code0(); } dat1=dat1<<1; } for(a=0;a<8;a++) //dat2 { if(dat2&0x80) { code1(); } else { code0(); } dat2=dat2<<1; } for(a=0;a<8;a++) //dat3 { if(dat3&0x80) { code1(); } else { code0(); } dat3=dat3<<1; } } void Jump() { uint i; uchar Colour = 0; //这个参数值域:0~7
史海拾趣
|
我最近在做wince+2440,设计的产品为室外无人值守型产品,关于wince能否连续数年稳定可靠的运行一直有所顾虑。 希望做过这些产品的兄弟们给点意见。 另外wince对flash频繁的读写会不会引起坏区,从而要格式化重做系统?… 查看全部问答> |
|
比如AMD和INTEL的CPU,----------又或者其他的牌子的CPU ,比如苹果的CPU,所用的指令系统都是不一样的吧,如果一个指令占2个字节,那么这两个字节的内容对于AMD和INTEL应该都是不同的吧。 那么操作系统如何针对各自不同的CPU生成各自不同的指令呢 ...… 查看全部问答> |
|
我的AT89S52学习版 说明图纸上面 蜂鸣器和二极管第四个灯 都是P1.3针脚控制 用KEIL编程时 灯亮蜂鸣器也响 怎么去分别控制?! 谢谢… 查看全部问答> |
|
#include <C8051F410.h> #include <intrins.h> sbit SPI_Clk = P0^2;sbit SPI_Out = P0^3;sbit SPI_In = P0^6;sbit SPI_Cs = P0^7; void System_Setup(void);void SPI_Write(unsigned int SPI_Data);unsigned int SPI_Read(v ...… 查看全部问答> |
|
管他什么芯片呢,让编译器去翻译就好了,我们所关心的是硬件资源怎样,复杂的东西不容易一下就搞出来而已。 linux算除了写驱动都算搞软件吧。 “程序和程序差别很大”初学者很少有人能理解。… 查看全部问答> |
|
为了进一步完善下载中心,方便大家检索资源,我们准备对资料分类进行调整和修改。本着从群众中来到群众中去的理念,我们决定——发布分类调查投票 特别提示:第二期调查已开始,传送门:https://bbs.eeworld.com.cn/thread-431477-1-1.html ...… 查看全部问答> |
|
大多数数字系统中,除了需要具有逻辑运算和算数功能的组合逻辑电路外,还需要具有存储功能的电路,组合逻辑与时序逻辑可构成时序逻辑电路,简称时序电路。现在讨论实现存储功能的两种逻辑单元电路,即锁存器和触发器。 ...… 查看全部问答> |




