-
灯
5
程
序
< br>爆
闪
C
1
学习
—————
好资料
爆闪灯
一,电子
1
,灯闪模式,灯闪模式可调,
4
个输
出端口
蓝
—
红
—
p>
蓝
—
红
1 2 3 4 <
/p>
a,
四路轮流闪烁,频率可调,每路间隔可调,可一路闪,两路闪
,三路
闪,四路闪可调
节
例如(
1
2
—
34
—
1
234
)
b,
四路变换工作,每路间隔可调,例如(
1
—
< br>2
—
3
—
4
黄闪灯模式)
c,
四路组合变换闪烁,每路间隔可调,例如(
1
—<
/p>
2
—
3
—
4
—
12
—
34
—
1234
)
p>
2
,输出,电池板,蓄电池,开关
的端口采用接线槽(路灯控制器那种接线
端子)
3
,
LED
一种颜色的数量
在
45
—
60PCS
< br>之间,电流控制在
150mA-600mA
4
,电池板在
15W
,
1
0W
,
6W
5
,电池在
20Ah,14Ah,8Ah
二,结构
1
,开一套
LED
反光杯,以提高亮度,
2
,电池板的方向可灵活调动
3
,电池需固定好,不能左右,上下晃动
<
/p>
4
,灯板和透明罩可采用插槽式的,以便好组装
< br>
5
,控制器可以固定在灯壳里面,不能有漏水到上面<
/p>
精品资料
学
习
—————
好资料
6
,外壳设计成插槽拼接的,减少螺丝的使用率
#include
#include
typedef
unsigned char uchar;
typedef unsigned
int uint;
sbit P1_0=P1^0;
sbit P1_1=P1^1;
sbit
P1_4=P1^4;
sbit P1_5=P1^5;
sbit P1_6=P1^6;
sbit
P1_7=P1^7;
sfr P0M0=0X94;
sfr P0M1=0X93;
sfr
P2M0=0X96;
sfr P2M1=0X95;
sfr P1M0=0X92;
sfr
P1M1=0X91;
sfr IAP_DATA=0XC2;
sfr IAP_ADDRH=0XC3;
sfr
IAP_ADDRL=0XC4;
sfr IAP_CMD=0xc5;
sfr IAP_TRIG=0XC6;
sfr
IAP_CONTR=0XC7;
unsigned
char liang_temp=1;
unsigned char
an_temp=1;
unsigned char R_to_B_temp=1;
unsigned char stop_temp=1;
unsigned char mode=1;
unsigned char time_key=0;
unsigned char time_temp=0;
unsigned char mode1_temp=0;
uchar ajs,ljs;
uchar
rtobjs,stopjs,js3c=1;
uchar rba=0;
bit la=1;ksj=0;
精品资料
学习
—————
好资料
unsigned char code
zhifu0
[16]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F
,0x6F,0x77,0x
7C,0x39,0x5E,0x79,0x71};
unsigned char code
zhifu2[1
6]={0xFC,0x60,0xDA,0xF2,0x66,0xB6,0xBE,0xE0,0XFe,0
Xf6,0Xee,0X
3e,0X9c,0X7a,0X9e,0X8e};
//*************************
********************************
void delay20(void)
//
误差
-0.us
{
unsigned char a,b,c;
for(c=2;c>0;c--)
for(b=95;b>0;b--)
for(a=209;a>0;a--);
}
//****************************************** ***************
void delay500(void)
//
误差
0us 500ms
{
unsigned char a,b,c;
for(c=23;c>0;c--)
for(b=152;b>0;b--)
for(a=70;a>0;a--);
}
//*****
**************************************************
**
void eeprom_erase(unsigned char a)
{
unsigned int add=512;
unsigned int add1=0;
add1=add*a;
IAP_ADDRH=add1/255;
IAP_ADDRL=add1%255;
IAP_CONTR=0X8C;
IAP_CMD=0X03;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
}
精品资料
学习
—————
好资料
//*****
**************************************************
**
void eeprom_writer(unsigned int
add,unsigned char date)
{
IAP_DATA=date;
IAP_ADDRH=add/255;
IAP_ADDRL=add%255;
IAP_CONTR=0X8C;
IAP_CMD=2;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
_nop_();
_nop_();
}
//*******************************************
****************
unsigned char
eeprom_read(unsigned int add)
{
unsigned char date=0;
IAP_ADDRH=add/255;
IAP_ADDRL=add%255;
IAP_CONTR=0X8C;//
IAP_CMD=0X01;
IAP_TRIG=0X5A;
IAP_TRIG=0XA5;
_nop_();
_nop_();
_nop_();
date=IAP_DATA;
return(date);
}
/
/*************************************************
********
void show(unsigned char a)
{
unsigned char shi;
unsigned char ge;
unsigned char *p;
unsigned char *p1;
p=zhifu0;
p1=zhifu2;
shi=a/10;
shi=*(p+shi);//
得到编码值
精品资料
学习
—————
好资料
ge=a%10;
ge=*(p1+ge);
P0=shi;
P2=ge;
}
//************************
**********************************
void
liang_key()
{
if(!P1_0)
{
delay20();
if(!P1_0)
{
liang_temp++;
if(liang_temp>99)
{liang_temp=1;}
show(liang_temp);
while(!P1_0)
{
while(ksj){liang_temp+
+;delay20();if(liang_temp>99)liang_temp=1;show(
liang_temp);}
}
}
delay20();
}
}
//*************************************
**********************
void an_key()
{
if(P1_0==0)
{
delay20();
if(P1_0==0)
{
an_temp++;
if(an_temp>99)
{an_temp=1;}
show(an_temp);
while(!P1_0)
{
<
/p>
while(ksj){an_temp++;delay20();if(an_tem
p>99)an_temp=1;show(an_temp);}
精品资料
学习
—————
好资料
}
}
delay20();
}
}
//*******************************
****************************
void
R_to_B_key()
{
if(P1_0==0)
{
delay20();
if(P1_0==0)
{
R_to_B_temp++;
if(R_to_B_temp>99)
{
R_to_B_temp=1;
}
show(R_to_B_temp);
while(!P1_0)
{
while(ksj){R_to_B_temp++;delay20();if(R
_to_B_temp>99)R_to_B_temp=1;sh
ow(R_to_B
_temp);}
}
}
delay20();
}
}
//***********
************************************************
void stop_key()
{
if(P1_0==0)
{
delay20();
if(P1_0==0)
{
stop_temp++;
if(stop_temp>99)
{stop_temp=1;}
show(stop_temp);
while(!P1_0)
{
精品资料
学习
—————
好资料
while(ksj){s
top_temp++;delay20();if(stop_temp>99)stop_temp=1;s
how(sto
p_temp);}
}
}
delay20();
}
}
//***********************************************
*************
void show_mode(unsigned
char a)
{
unsigned char
ge=0;
unsigned char *p1;
p1=zhifu2;
ge=*(p1+a);
//
P0=0x00;
P2=ge;
}
//******
**************************************************
****
void set_mode()
{
if(!P1_0)
{
delay20();
TR1=1;//
开定时器
if(!P1_0)
{
show_mode(mode);
}
while(time_key==0)
{
if(!P1_0)
{
delay20();
if(!P1_0)
{
mode++;
if(mode>5)
{
mode=1;
time_temp=0;
}
}
精品资料
-
-
-
-
-
-
-
-
-
上一篇:体检报告保密性
下一篇:PLC故障判断及处理