dmx512灯光调光控制程序

dmx512灯光调光控制程序

ID:27538859

大小:74.61 KB

页数:7页

时间:2018-12-04

dmx512灯光调光控制程序_第1页
dmx512灯光调光控制程序_第2页
dmx512灯光调光控制程序_第3页
dmx512灯光调光控制程序_第4页
dmx512灯光调光控制程序_第5页
资源描述:

《dmx512灯光调光控制程序》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、编写周工,单片机开发,上位机开发13712446099#include#defineucharunsignedchar#defineDELAY_TIME60/*经实验,不要小于50!否则可能造成时序混乱*/#defineTRUE1//IIC返冋应答正确#defineFALSE0sbitT_D=P3八1;//TXDsbitR_D=P3A2;//RXDsbitled_green=P2A0;//信号发送指示灯sbitled_yellow=P2Al;//信号接收指示灯sbitTorR=P3A7;//485接收标

2、志sbitSDA=P0Al;/*假设由P0.1和P0.2控制*/sbitSCL=P0A2;bitflag;//数据标志位staticucharrdata[721;staticucharn=72;staticucharcounter;staticuchartotalnum;staticuchartimes;//接收数据缓冲区//接收汁数器//分三次接收标记位voidldelay(uchart){uchari;uchark=200;while(t->0){while(k—>0)for(i=0;i<255;i++);}}/**

3、********FunetionDefinition************,voidDELAY(uchart)/*延时函数*/{while(t!=0)t-;}voidI2C_Start(void){/*启动I2C总线的函数,当SCL为高电平时使SDA产生一个负跳变*/SDA=1;SCL=1;DELAY(DELAY_TIME);SDA=O;DELAY(DELAY一TIME);SCL=O;DELAY(DELAY_TIME);voidI2C一Stop(void){/*终止I2C总线,当SCL为高电平时使SDA产生一个正跳变*

4、/SDA=0;SCL=1;DELAY(DELAY一TIME);SDA=1;DELAY(DELAY_TIME);SCL=0;DELAY(DELAY_TIME);voidSEND_0(void)/*SENDACK*/{/*发送0,在SCL为高电平时使SDA信号为低*/SDA=0;SCL=1;DELAY(DELAY_TIME);SCL=0;DELAY(DELAY_TIME);voidSEND_l(void){/*发送1,在SCL为高电平时使SDA信号为高*/SDA=1;SCL=1;DELAY(DELAY_TIME);SCL=0

5、;DELAY(DELAY_TIME);bitCheck一Acknowledge(void){/*发送完一个字节后检验设备的应答信号*/SDA=1;SCL=1;DELAY(DELAY_TIME/2);FO=SDA;DELAY(DELAY_TIME/2);SCL=O;DELAY(DELAY_TIME);if(FO==l){returnFALSE;}returnTRUE;voidWriteI2CByte(charb){/*向I2C总线写一个字节*/uchari;for(i=0;i<8;i++){if((b«i)&0x80)SE

6、NDJO;elseSEND_0();}ucharReadI2CByte(void){/*从I2C总线读一个字节*/ucharb=0,i;for(i=0;i<8;i++)!SDA=1;/*释放总线*/SCL=1;/*接受数据*/DELAY(IO);F0=SDA;DELAY(IO);SCL=O;if(FO==l)b=b«l;b=b+OxOl;elseb=b«l;}returnb;}产*********以下为读写24c02的函数**********//*voidWrite_One_Byte(charaddr,chartheda

7、ta){bitacktemp=l;I2C_Start();WriteI2CByte(0xa0);acktemp=Check_Acknowledge();WriteI2CByte(addr);acktemp=Check_Acknowledge();WriteI2CByte(thedata);acktemp=Check_Acknowledge();I2C_Stop();}*/voidWrite_A_Page(uchar*buffer,ucharaddr){bitacktemp=1;uchari;/*writeapagetoa

8、t24c02*/I2C_Start();WriteI2CByte(0xa0);acktemp=Check_Acknowledge();WriteI2CByte(addr);/*address*/acktemp二Check_Acknowledge();for(i=0;i<8;i++){WriteI2CByte(buff

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。