钻石会员
主题
回帖0
积分14666
阅读权限50
注册时间2009-5-8
最后登录1970-1-1
在线时间 小时
|
我做的一个64*64的点阵钟,自动调亮度
void main()
{
uchar t;
delay(200);
beep(500,5);
delay(1000);
beep(500,5);
EA=1;
ET0=1; //开定时器中断
TMOD=0x01; //定时器0,1模式1
TH0=0x3c; //24M晶振 25ms中断
TL0=0xb0;
TR0=1; //开定时器运行
// DS18B20_fenbian(0x1f);
ds_int();
read_DS12887();
time_to_buff();
for(t=0;t<20;t++)
{
read_temp();
}
Conversion(century,year,month,day);
nongli();
while(1)
{
read_DS12887();
time_to_buff();
du++;
if(du>6000) //三分钟读一次温度
{
du=0;
Conversion(century,year,month,day);
read_temp();
nongli();
}
if(hour<=5) liang=1;
else if(hour<=7) liang=7;
else if(hour<=19) liang=10;
else if(hour<=21) liang=5;
else if(hour<=24) liang=1;
keyscan();
if(disp_mode!=0) //自动返回
{
fan++;
if(fan>300)
{
fan=0;
disp_mode=0;
beep(500,5);
}
}
for(disrow=0;disrow<16;disrow++) //disrow,当前扫描的行
{
H_PORT=disrow&0x0f; //行138的输出.依次点亮1~16行.
display(disp_mode);
STB=0;
STB=1;
OE=0;
delay(liang);
OE=1;
delay(10-liang);
}
}
} |
|