|
100黑幣
這是51的程序,里面ds18b20在stc12c5a60s2運(yùn)行不好使,求給改一下。把溫度那注釋一下,謝謝。原:at89c51+ds18b20+lcd12864。
改:stc12c5a60s2+ds18b20+lcd12864。
在源程序上改。P2^3是da18b20i/o口
程序在lcd12864上運(yùn)行。求幫助
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit T_IO=P2^1;
sbit T_RST=P2^2;
sbit T_CLK=P2^0;
sbit k1=P2^4;
sbit k2=P2^5;
sbit shu=P2^3;
sbit k3=P2^6;
sbit D=P2^7;
sbit rs=P1^0; //數(shù)據(jù)/指令選擇
sbit rw=P1^1; //讀寫選擇
sbit e=P1^2; //讀寫使能
sbit psb=P1^3; //串并口選擇
void delay(uint z)
{
uint u,a0;
for(u=z;u>0;u--)
for(a0=124;a0>0;a0--);
}
uchar code tables[]="新的一天,新的開始,早睡早起身體好!";
uchar code table[]="0123456789";
uchar code we[]="年月日星期溫度*C:.";
uchar code uu[]="定時(shí)小時(shí)制鈴聲";
uchar miao,fen,shi,yue,ri,nian,xq,
eshi,efen,emiao,dshi,dfen,dmiao,count,time,temp;
uchar nian1,nian2,yue1,yue2,ri1,ri2,y,c,pp,mb,j,sc,fp,ko,
shi1,shi2,fen1,fen2,miao1,miao2;
uchar w1,w2,w3,m1,nb,op,ss,u,vv,s1,aa,w,x,k,m,cb;
uint a;
uchar code week_code[]={0,3,3,6,1,4,6,2,5,0,3,5};
void Write1302(unsigned char ); //向1302寫一個(gè)字節(jié)數(shù)據(jù)
void WriteSet1302(unsigned char ,unsigned char );//根據(jù)命令字,向1302寫一個(gè)字節(jié)數(shù)據(jù)
unsigned char Read1302(void);//從1302讀一個(gè)字節(jié)數(shù)據(jù)
unsigned char ReadSet1302(unsigned char Cmd);//根據(jù)命令字從1302讀取一個(gè)字節(jié)數(shù)據(jù)
void InitDS1302(void);//初始化1302
void dingshi();
void xiao();
void xiaoshi();
void sh();
void Conver_week()
{
uchar temp1,temp2,year,month,day;
year=nian&0x7f;
month=yue;
day=ri;
if(nian>>7==0)
{
year+=0x64;
} //如果為21世紀(jì),年份數(shù)加100
temp1=year/0x4; //所過閏年數(shù)只算1900年之后的
temp2=(year+temp1)%0x7; //為節(jié)省資源,先進(jìn)行一次取余,避免數(shù)大于0xff
temp2=temp2+day+week_code[month-1];
if(year%0x4==0&&month<3)temp2-=1; //如果是閏年但不到3月則減一天
xq=temp2%0x7; //將星期數(shù)據(jù)寫到指定星期變量Tim[9]
}
void Write1302(uchar dat)//向1302寫指令
{
uchar i;
T_CLK=0; //拉低T_CLK,為脈沖上升沿寫入數(shù)據(jù)做好準(zhǔn)備
for(i=0;i<8;i++) //連續(xù)寫8個(gè)二進(jìn)制位數(shù)據(jù)
{
T_IO=dat&0x01; //取出dat的第0位數(shù)據(jù)寫入1302
T_CLK=1; //上升沿寫入數(shù)據(jù)
T_CLK=0; //重新拉低T_CLK,形成脈沖
dat>>=1; //將dat的各數(shù)據(jù)位右移1位,準(zhǔn)備寫入下一個(gè)數(shù)據(jù)位
}
}
void WriteSet1302(uchar Cmd,uchar dat)
{
T_RST=0; //禁止數(shù)據(jù)傳遞
T_CLK=0; //確保寫數(shù)居前T_CLK被拉低
T_RST=1; //啟動(dòng)數(shù)據(jù)傳輸
Write1302(Cmd); //寫入命令字
Write1302((dat/10<<4)|(dat%10)); //寫數(shù)據(jù)
T_CLK=1; //將時(shí)鐘電平置于已知狀態(tài)
T_RST=0; //禁止數(shù)據(jù)傳遞
}
uchar Read1302(void)
{
uchar i,dat;
for(i=0;i<8;i++) //連續(xù)讀8個(gè)二進(jìn)制位數(shù)據(jù)
{
dat>>=1; //將dat的各數(shù)據(jù)位右移1位,因?yàn)橄茸x出的是字節(jié)的最低位
if(T_IO==1) //如果讀出的數(shù)據(jù)是1
dat|=0x80; //將1取出,寫在dat的最高位
T_CLK=1; //將T_CLK置于高電平,為下降沿讀出
T_CLK=0; //拉低T_CLK,形成脈沖下降沿
}
return dat; //將讀出的數(shù)據(jù)返回
}
uchar ReadSet1302(uchar Cmd)
{
uchar temp,dat1,dat2;
T_RST=0; //拉低T_RST
T_CLK=0; //確保寫數(shù)居前T_CLK被拉低
T_RST=1; //啟動(dòng)數(shù)據(jù)傳輸
Write1302(Cmd); //寫入命令字
temp=Read1302(); //讀出數(shù)據(jù)
T_CLK=1; //將時(shí)鐘電平置于已知狀態(tài)
T_RST=0; //禁止數(shù)據(jù)傳遞
dat1=temp/16; //16進(jìn)制轉(zhuǎn)成BCD
dat2=temp%16;
temp=dat1*10+dat2; //轉(zhuǎn)換成10進(jìn)制數(shù)字
return (temp); //將讀出的數(shù)據(jù)返回
}
void delay50us(uint t)
{
uint j;
for(t;t>0;t--)
for(j=19;j>0;j--);
}
void delay50ms(uint t)
{
uint j;
for(;t>0;t--)
for(j=6245;j>0;j--);
}
void w12864com(uint com)
{
rw=0;
rs=0;
delay50us(1);
P0=com;
e=1;
delay50us(10);
e=0;
delay50us(2);
}
void w12864dat(uint dat)
{
rw=0;
rs=1;
delay50us(1);
P0=dat;
e=1;
delay50us(10);
e=0;
delay50us(2);
}
void initinal()
{
delay50ms(2);
w12864com(0x30);
delay50us(4);
w12864com(0x30);
delay50us(4);
w12864com(0x0c);
delay50us(4);
w12864com(0x01);
delay50us(240);
w12864com(0x06);
delay50us(10);
}
void display()
{
uchar i;
w12864com(0x00);
delay(2);
w12864com(0x80);//
w12864dat(table[2]);
w12864dat(table[0]);
w12864com(0x82);//年
for(i=0;i<2;i++)
{
w12864dat(we[i]);
}
w12864com(0x84);//月
for(i=0;i<2;i++)
{
w12864dat(we[i+2]);
}
w12864com(0x86);//日
for(i=0;i<2;i++)
{
w12864dat(we[i+4]);
}
w12864com(0x88);//星期
for(i=0;i<4;i++)
{
w12864dat(we[i+6]);
}
w12864com(0x9b);//溫度
{
for(i=0;i<4;i++)
{
w12864dat(we[i+10]);
}
}
w12864com(0x9f);//*C
{
for(i=0;i<2;i++)
{
w12864dat(we[i+12]);
}
}
w12864com(0x93);//:::
for(i=0;i<1;i++)
{
w12864dat(we[i+16]);
}
w12864com(0x95);//:::
for(i=0;i<1;i++)
{
w12864dat(we[i+16]);
}
}
uchar w1,w2,w3,m1;
void yan(uchar a)
{
while(a--);
}
void fuwei()
{
shu=1;
shu=0;
yan(60);
shu=1;
yan(8);
while(!shu);
}
void xie_byte(uchar a)
{
uchar i=0;
for(i=8;i>0;i--)
{
shu=1;
_nop_();_nop_();
shu = 0;
_nop_();
shu = a&0x01;
yan(9);
a>>=1;
}
}
uchar du_byte()
{
uchar i,m;
for(i=0;i<8;i++)
{
shu=1;
_nop_();_nop_();
shu = 0; // 給脈沖信號(hào)
m>>=1;
_nop_();
shu=1; // 給脈沖信號(hào)
yan(1);
if(shu)
m|=0x80;
yan(9);
}
return m;
}
void jingdu()
{
fuwei();
xie_byte(0xfe);
xie_byte(0xff);
xie_byte(0xff);
xie_byte(0x3f);
}
uchar du_bit()
{
uchar dat=0;
shu=1;
_nop_();_nop_();
shu=0;
_nop_();_nop_();
shu=1;
_nop_();_nop_();
_nop_();_nop_();
dat=shu;
return dat;
}
void read18b20()
{
fuwei();
xie_byte(0xcc);
xie_byte(0x44);
while(!du_bit());
fuwei();
xie_byte(0xcc);
xie_byte(0xbe);
w1=du_byte();
w2=du_byte();
w3=w1;
w1>>=4;
w2<<=4;
m1=w1+w2;
m1=m1/2;
w1=m1/10; //十位
w2=m1%10; //個(gè)位
w3&=0x0f;
w3*=6.25;
w3=w3/10;
}
void main()
{
initinal();
display();
Write1302(0);//向1302寫指令
WriteSet1302(0,0);
jingdu();
TMOD=0x11;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
EA=1;
ET0=1;
ET1=1;
sc=1;
j=1;
fp=1;
while(1)
{
// delay(5);
if(y==1)
{
display();
y=0;
}
if(k==1)
{
if(ko==0)
{
w12864com(0x91);
w12864dat(0x41);
}
if(ko==1)
{
w12864com(0x91);
w12864dat(0x50);
}
}
else
{
w12864com(0x91);
w12864dat(0x02);
}
if(aa==1)
{
w12864com(0x81);
for(a=0;a<2;a++)
{
w12864dat(0x20);
}
delay(80);
}
WriteSet1302(0x8e,0x00);
nian=ReadSet1302(0x8d);
WriteSet1302(0x8e,0x80);
nian1=nian/10;
nian2=nian%10;
w12864com(0x81);
for(a=0;a<2;a++)
{
if(a==0)
{
w12864dat(table[nian1]);
}
if(a==1)
{
w12864dat(table[nian2]);
}
}
if(aa==2)
{
w12864com(0x83);
for(a=0;a<2;a++)
{
w12864dat(0x20);
}
delay(80);
}
WriteSet1302(0x8e,0x00);
yue=ReadSet1302(0x89);
WriteSet1302(0x8e,0x80);
yue1=yue/10;
yue2=yue%10;
w12864com(0x83);
for(a=0;a<2;a++)
{
if(a==0)
{
w12864dat(table[yue1]);
}
if(a==1)
{
w12864dat(table[yue2]);
}
}
if(aa==3)
{
w12864com(0x85);
for(a=0;a<2;a++)
{
w12864dat(0x20);
}
delay(80);
}
WriteSet1302(0x8e,0x00);
ri=ReadSet1302(0x87);
WriteSet1302(0x8e,0x80);
ri1=ri/10;
ri2=ri%10;
w12864com(0x85);
for(a=0;a<2;a++)
{
if(a==0)
{
w12864dat(table[ri1]);
}
if(a==1)
{
w12864dat(table[ri2]);
}
}
Conver_week();
w12864com(0x8a);
if(xq==0)//日
{
w12864dat(0xc8);
w12864dat(0xd5);
}
if(xq==1)//一
{
w12864dat(0xd2);
w12864dat(0xbb);
}
if(xq==2)//二
{
w12864dat(0xb6);
w12864dat(0xfe);
}
if(xq==3)//三
{
w12864dat(0xc8);
w12864dat(0xfd);
}
if(xq==4)//四
{
w12864dat(0xcb);
w12864dat(0xc4);
}
if(xq==5)//五
{
w12864dat(0xce);
w12864dat(0xe5);
}
if(xq==6)//六
{
w12864dat(0xc1);
w12864dat(0xf9);
}
if(aa==4)
{
w12864com(0x92);
for(a=0;a<8;a++)
{
if(a==0)
{
w12864dat(0x20);
}
if(a==1)
{
w12864dat(0x20);
delay(40);
}
if(a==2)
{
w12864dat(0x20);
}
if(a==3)
{
WriteSet1302(0x8e,0x00);
fen=ReadSet1302(0x83);
WriteSet1302(0x8e,0x80);
fen1=fen/10;
fen2=fen%10;
w12864dat(table[fen1]);
}
if(a==4)
{
w12864dat(table[fen2]);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
WriteSet1302(0x8e,0x00);
miao=ReadSet1302(0x81);
WriteSet1302(0x8e,0x80);
miao1=miao/10;
miao2=miao%10;
w12864dat(table[miao1]);
}
if(a==7)
{
w12864dat(table[miao2]);
}
}
}
if(aa==5)
{
w12864com(0x92);
for(a=0;a<8;a++)
{
if(a==0)
{
WriteSet1302(0x8e,0x00);
shi=ReadSet1302(0x85);
WriteSet1302(0x8e,0x80);
if(k==1)
{
if(shi>=12)
{
ko=1;
if(shi>12)
{
pp=shi;
pp=pp-12;
shi1=pp/10;
shi2=pp%10;
}
else
{
shi1=shi/10;
shi2=shi%10;
}
}
else
{
ko=0;
shi1=shi/10;
shi2=shi%10;
}
}
else
{
shi1=shi/10;
shi2=shi%10;
}
w12864dat(table[shi1]);
}
if(a==1)
{
w12864dat(table[shi2]);
}
if(a==2)
{
w12864dat(we[16]);
}
if(a==3)
{
w12864dat(0x20);
}
if(a==4)
{
w12864dat(0x20);
delay(40);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
WriteSet1302(0x8e,0x00);
miao=ReadSet1302(0x81);
WriteSet1302(0x8e,0x80);
miao1=miao/10;
miao2=miao%10;
w12864dat(table[miao1]);
}
if(a==7)
{
w12864dat(table[miao2]);
}
}
}
if(aa==6)
{
w12864com(0x92);
for(a=0;a<8;a++)
{
if(a==0)
{
WriteSet1302(0x8e,0x00);
shi=ReadSet1302(0x85);
WriteSet1302(0x8e,0x80);
if(k==1)
{
if(shi>=12)
{
ko=1;
if(shi>12)
{
pp=shi;
pp=pp-12;
shi1=pp/10;
shi2=pp%10;
}
else
{
shi1=shi/10;
shi2=shi%10;
}
}
else
{
ko=0;
shi1=shi/10;
shi2=shi%10;
}
}
else
{
shi1=shi/10;
shi2=shi%10;
}
w12864dat(table[shi1]);
}
if(a==1)
{
w12864dat(table[shi2]);
}
if(a==2)
{
w12864dat(we[16]);
}
if(a==3)
{
WriteSet1302(0x8e,0x00);
fen=ReadSet1302(0x83);
WriteSet1302(0x8e,0x80);
fen1=fen/10;
fen2=fen%10;
w12864dat(table[fen1]);
}
if(a==4)
{
w12864dat(table[fen2]);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
w12864dat(0x20);
}
if(a==7)
{
w12864dat(0x20);
delay(40);
}
}
}
w12864com(0x92);
for(a=0;a<8;a++)
{
if(a==0)
{
WriteSet1302(0x8e,0x00);
shi=ReadSet1302(0x85);
WriteSet1302(0x8e,0x80);
if(k==1)
{
if(shi>=12)
{
ko=1;
if(shi>12)
{
pp=shi;
pp=pp-12;
shi1=pp/10;
shi2=pp%10;
}
else
{
shi1=shi/10;
shi2=shi%10;
}
}
else
{
ko=0;
shi1=shi/10;
shi2=shi%10;
}
}
else
{
shi1=shi/10;
shi2=shi%10;
}
w12864dat(table[shi1]);
}
if(a==1)
{
w12864dat(table[shi2]);
}
if(a==2)
{
w12864dat(we[16]);
}
if(a==3)
{
WriteSet1302(0x8e,0x00);
fen=ReadSet1302(0x83);
WriteSet1302(0x8e,0x80);
fen1=fen/10;
fen2=fen%10;
w12864dat(table[fen1]);
}
if(a==4)
{
w12864dat(table[fen2]);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
WriteSet1302(0x8e,0x00);
miao=ReadSet1302(0x81);
WriteSet1302(0x8e,0x80);
miao1=miao/10;
miao2=miao%10;
w12864dat(table[miao1]);
}
if(a==7)
{
w12864dat(table[miao2]);
}
}
read18b20();
w12864com(0x9d);
for(a=0;a<4;a++)
{
if(a==0)
{
w12864dat(table[w1]);
}
if(a==1)
{
w12864dat(table[w2]);
}
if(a==2)
{
w12864dat(we[17]);
}
if(a==3)
{
w12864dat(table[w3]);
}
}
if(s1==0)
{
x=0;
}
if(k1==0)
{
delay(2);
while(!k1==1);
s1++;
if(s1==5)
{
s1=0;
}
}
if(s1==1)//設(shè)置時(shí)間
{
if(k2==0)
{
delay(2);
while(!k2==1);
aa++;
if(aa==7)
{
s1=0;
aa=0;
}
}
w12864com(0x91);
w12864dat(0x20);
delay(50);
}
if(s1==2)//定時(shí)
{
if((aa==1)||(aa==2)||(aa==3)||(aa==4)||(aa==5)||(aa==6))
{s1--;}
if(aa==0)
{
u=1;
dingshi();
}
}
if(s1==0)//小時(shí)制設(shè)置
{
if(k2==0)
{
while(!k2==1);
m=1;
xiaoshi();
}
}
if(s1==0)
{
if(k3==0)
{
while(!k3==1);
w++;
}
}
if(w==1)//開定時(shí)1
{
w12864com(0x8c);
w12864dat(0x41);
w12864dat(0x03);
w12864com(0x8e);
w12864dat(0x20);
w12864dat(0x20);
w12864com(0x97);
w12864dat(0x0e);
if(dshi==shi)
{
if(dfen==fen)
{
if(dmiao==miao)
{
if(cb==1)
{
TR0=1;
}
if(cb==2)
{
TR1=1;
sh();
}
}
}
}
}
if(w==2)//開定時(shí)2
{
w12864com(0x8c);
w12864dat(0x20);
w12864dat(0x20);
w12864com(0x8e);
w12864dat(0x42);
w12864dat(0x03);
w12864com(0x97);
w12864dat(0x0e);
if(eshi==shi)
{
if(efen==fen)
{
if(emiao==miao)
{
if(cb==1)
{
TR0=1;
}
if(cb==2)
{
TR1=1;
sh();
}
}
}
}
}
if(w==3)//定時(shí)雙開
{
w12864com(0x8c);
w12864dat(0x41);
w12864dat(0x03);
w12864com(0x8e);
w12864dat(0x42);
w12864dat(0x03);
w12864com(0x97);
w12864dat(0x0e);
if(dshi==shi)
{
if(dfen==fen)
{
if(dmiao==miao)
{
if(cb==1)
{
TR0=1;
}
if(cb==2)
{
TR1=1;
sh();
}
}
}
}
if(eshi==shi)
{
if(efen==fen)
{
if(emiao==miao)
{
if(cb==1)
{
TR0=1;
}
if(cb==2)
{
TR1=1;
sh();
}
}
}
}
}
if(w==4)//定時(shí)關(guān)
{
w=0;
w12864com(0x8c);
w12864dat(0x20);
w12864dat(0x20);
w12864com(0x8e);
w12864dat(0x20);
w12864dat(0x20);
w12864com(0x97);//定時(shí)指示
w12864dat(0x20);
}
if(aa==1)
{
if(k3==0)
{
while(!k3==1);
ss=nian;
ss++;
if(ss>=100)
{ss=0;}
WriteSet1302(0x8e,0x00); //允許寫入
WriteSet1302(0x8c,ss);
WriteSet1302(0x90,0xa6); //寫充電控制寄存器.
WriteSet1302(0x8e,0x80); //禁止寫入
}
}
if(aa==2)
{
if(k3==0)
{
while(!k3==1);
ss=yue;
ss++;
if(ss>=13)
{
ss=1;
}
WriteSet1302(0x8e,0x00); //允許寫入
WriteSet1302(0x88,ss);
WriteSet1302(0x90,0xa6); //寫充電控制寄存器.
WriteSet1302(0x8e,0x80); //禁止寫入
}
}
if(aa==3)
{
if(k3==0)
{
while(!k3==1);
ss=ri;
ss++;
if((yue==1)||(yue==3)||(yue==5)||(yue==7)||(yue==8)||(yue==10)||(yue==12))
{
if(ss>=32)
ss=1;
}
if((yue==4)||(yue==6)||(yue==9)||(yue==11))
{
if(ss>=31)
ss=1;
}
if(yue==2)
{
vv=nian%4;
if(vv==0)
{
if(ss>=30)
{
ss=1;
}
}
else
{
if(ss>=29)
{
ss=1;
}
}
}
WriteSet1302(0x8e,0x00); //允許寫入
WriteSet1302(0x86,ss);
WriteSet1302(0x90,0xa6); //寫充電控制寄存器.
WriteSet1302(0x8e,0x80); //禁止寫入
}
}
if(aa==4)
{
if(k3==0)
{
while(!k3==1);
if(k==1)//12小時(shí)
{
if(ko==1)//下午
{
if(shi<12)
{
shi=shi+12;
}
else
{
ss=shi;
}
}
else
{
ss=shi;
}
}
else
{
ss=shi;
}
ss++;
if(ss>=24)
{ss=0;}
WriteSet1302(0x8e,0x00); //允許寫入
WriteSet1302(0x84,ss);
WriteSet1302(0x90,0xa6); //寫充電控制寄存器.
WriteSet1302(0x8e,0x80); //禁止寫入
}
}
if(aa==5)
{
if(k3==0)
{
while(!k3==1);
ss=fen;
ss++;
if(ss>=60)
{ss=0;}
WriteSet1302(0x8e,0x00); //允許寫入
WriteSet1302(0x82,ss);
WriteSet1302(0x90,0xa6); //寫充電控制寄存器.
WriteSet1302(0x8e,0x80); //禁止寫入
}
}
if(aa==6)
{
if(k3==0)
{
while(!k3==1);
ss=miao;
ss++;
if(ss>=60)
{ss=0;}
WriteSet1302(0x8e,0x00); //允許寫入
WriteSet1302(0x80,ss);
WriteSet1302(0x90,0xa6); //寫充電控制寄存器.
WriteSet1302(0x8e,0x80); //禁止寫入
}
}
}
}
void dingshi()
{
uchar e1,e2,f1,f2,g1,g2;
uchar ee,ff,gg,z,es,ww,ab;
uchar bb1,bb2,cc1,cc2,dd1,dd2;
uchar bb3,bb4,cc3,cc4,dd3,dd4;
c=1;
ee=ff=gg=0;
e1=ee/10;
e2=ee%10;
f1=ff/10;
f2=ff%10;
g1=gg/10;
g2=gg%10;
w12864com(0x00);
delay(2);
w12864com(0x98);//定時(shí)1
for(z=0;z<4;z++)
{
w12864dat(uu[z]);
}
if(c==1)
{
w12864com(0x9c);
w12864dat(0x41);
w12864dat(0x03);
w12864com(0x9a);
w12864dat(table[1]);
}
if(c==2)
{
w12864com(0x9c);
w12864dat(0x42);
w12864dat(0x03);
w12864com(0x9a);
w12864dat(table[2]);
}
if(k==1)
{
if(dshi>=12)
{
w12864com(0x80);
w12864dat(0x50);
}
else
{
w12864com(0x80);
w12864dat(0x41);
}
if(eshi>=12)
{
w12864com(0x90);
w12864dat(0x50);
}
else
{
w12864com(0x90);
w12864dat(0x41);
}
}
if(c==1)
{
if(k==1)
{
if(dshi>=12)
{
if(dshi>12)
{
ab=dshi;
ab=ab-12;
bb3=ab/10;
bb4=ab%10;
}
}
}
else
{
bb3=dshi/10;
bb4=dshi%10;
}
cc3=dfen/10;
cc4=dfen%10;
dd3=dmiao/10;
dd4=dmiao%10;
}
if(c==2)
{
if(k==1)
{
if(eshi>=12)
{
if(eshi>12)
{
ab=eshi;
ab=ab-12;
bb1=ab/10;
bb2=ab%10;
}
}
}
else
{
bb1=eshi/10;
bb2=eshi%10;
}
cc1=efen/10;
cc2=efen%10;
dd1=emiao/10;
dd2=emiao%10;
}
while(u)
{
w12864com(0x88);
w12864dat(0x03);
delay(2);
if(c==1)
{
w12864com(0x9c);
w12864dat(0x41);
w12864dat(0x03);
w12864com(0x9a);
w12864dat(table[1]);
w12864com(0x91);
w12864dat(0x20);
w12864dat(0x20);
w12864com(0x81);
w12864dat(0x20);
w12864dat(0x10);
}
if(c==2)
{
w12864com(0x9c);
w12864dat(0x42);
w12864dat(0x03);
w12864com(0x9a);
w12864dat(table[2]);
w12864com(0x91);
w12864dat(0x20);
w12864dat(0x10);
w12864com(0x81);
w12864dat(0x20);
w12864dat(0x20);
}
if(k2==0)
{
while(!k2==1);
x++;
if(x==4)
{
x=0;
u=0;
s1=0;
y=1;
if(c==1)
{
w=1;
dshi=ee;
dfen=ff;
dmiao=gg;
delay(5);
}
if(c==2)
{
w=2;
eshi=ee;
efen=ff;
emiao=gg;
delay(5);
}
}
}
if(k==1)
{
if(es==0)
{
w12864com(0x89);
w12864dat(0x41);
}
if(es==1)
{
w12864com(0x89);
w12864dat(0x50);
}
}
if(x==1)
{
if(k3==0)
{
while(!k3==1);
ee++;
if(ee>=24)
{
ee=0;
}
if(k==1)
{
if(ee==12)
{
es=1;
e1=ee/10;
e2=ee%10;
}
if(ee<12)
{
es=0;
e1=ee/10;
e2=ee%10;
}
if(ee>12)
{
ww=ee;
ww=ww-12;
e1=ww/10;
e2=ww%10;
}
}
else
{
e1=ee/10;
e2=ee%10;
}
if(c==1)
{
if(k==1)
{
if(es==0)
{
w12864com(0x80);
w12864dat(0x41);
}
if(es==1)
{
w12864com(0x80);
w12864dat(0x50);
}
}
bb3=e1;
bb4=e2;
}
if(c==2)
{
if(k==1)
{
if(es==0)
{
w12864com(0x90);
w12864dat(0x41);
}
if(es==1)
{
w12864com(0x90);
w12864dat(0x50);
}
}
bb1=e1;
bb2=e2;
}
}
}
if(x==2)
{
if(k3==0)
{
while(!k3==1);
ff++;
if(ff>=60)
{
ff=0;
}
f1=ff/10;
f2=ff%10;
if(c==1)
{
cc3=f1;
cc4=f2;
}
if(c==2)
{
cc1=f1;
cc2=f2;
}
}
}
if(x==3)
{
if(k3==0)
{
while(!k3==1);
gg++;
if(gg>=60)
{
gg=0;
}
g1=gg/10;
g2=gg%10;
if(c==1)
{
dd3=g1;
dd4=g2;
}
if(c==2)
{
dd1=g1;
dd2=g2;
}
}
}
w12864com(0x8a);
for(a=0;a<8;a++)
{
if(a==0)
{
w12864dat(table[e1]);
}
if(a==1)
{
w12864dat(table[e2]);
}
if(a==2)
{
w12864dat(we[16]);
}
if(a==3)
{
w12864dat(table[f1]);
}
if(a==4)
{
w12864dat(table[f2]);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
w12864dat(table[g1]);
}
if(a==7)
{
w12864dat(table[g2]);
}
}
delay(50);
if(x==1)
{
w12864com(0x8a);
for(a=0;a<8;a++)
{
if(a==0)
{
w12864dat(0x20);
}
if(a==1)
{
w12864dat(0x20);
}
if(a==2)
{
w12864dat(we[16]);
}
if(a==3)
{
w12864dat(table[f1]);
}
if(a==4)
{
w12864dat(table[f2]);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
w12864dat(table[g1]);
}
if(a==7)
{
w12864dat(table[g2]);
}
}
}
if(x==2)
{
w12864com(0x8a);
for(a=0;a<8;a++)
{
if(a==0)
{
w12864dat(table[e1]);
}
if(a==1)
{
w12864dat(table[e2]);
}
if(a==2)
{
w12864dat(we[16]);
}
if(a==3)
{
w12864dat(0x20);
}
if(a==4)
{
w12864dat(0x20);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
w12864dat(table[g1]);
}
if(a==7)
{
w12864dat(table[g2]);
}
}
}
if(x==3)
{
w12864com(0x8a);
for(a=0;a<8;a++)
{
if(a==0)
{
w12864dat(table[e1]);
}
if(a==1)
{
w12864dat(table[e2]);
}
if(a==2)
{
w12864dat(we[16]);
}
if(a==3)
{
w12864dat(table[f1]);
}
if(a==4)
{
w12864dat(table[f2]);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
w12864dat(0x20);
}
if(a==7)
{
w12864dat(0x20);
}
}
}
delay(50);
w12864com(0x92);
for(a=0;a<8;a++)
{
if(a==0)
{
w12864dat(table[bb1]);
}
if(a==1)
{
w12864dat(table[bb2]);
}
if(a==2)
{
w12864dat(we[16]);
}
if(a==3)
{
w12864dat(table[cc1]);
}
if(a==4)
{
w12864dat(table[cc2]);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
w12864dat(table[dd1]);
}
if(a==7)
{
w12864dat(table[dd2]);
}
}
w12864com(0x82);
for(a=0;a<8;a++)
{
if(a==0)
{
w12864dat(table[bb3]);
}
if(a==1)
{
w12864dat(table[bb4]);
}
if(a==2)
{
w12864dat(we[16]);
}
if(a==3)
{
w12864dat(table[cc3]);
}
if(a==4)
{
w12864dat(table[cc4]);
}
if(a==5)
{
w12864dat(we[16]);
}
if(a==6)
{
w12864dat(table[dd3]);
}
if(a==7)
{
w12864dat(table[dd4]);
}
}
if(k1==0)
{
delay(2);
while(!k1==1);
s1++;
if(s1==3)
{
c++;
if(c==2)
{
es=0;
}
if(c==3)
{
c=1;
}
}
if(s1==4)
{
x=0;
u=0;
y=1;
s1=0;
}
}
}
}
void xiaoshi()
{
uchar tt;
w12864com(0x00);
delay(2);
w12864com(0x82);
w12864dat(table[1]);
w12864dat(table[2]);
for(tt=0;tt<6;tt++)
{
w12864dat(uu[tt+4]);
}
w12864com(0x92);
w12864dat(table[2]);
w12864dat(table[4]);
for(tt=0;tt<6;tt++)
{
w12864dat(uu[tt+4]);
}
w12864com(0x8a);
for(tt=0;tt<4;tt++)
{
w12864dat(uu[tt+10]);
}
w12864dat(table[1]);
delay(1);
w12864com(0x9a);
for(tt=0;tt<4;tt++)
{
w12864dat(uu[tt+10]);
}
w12864dat(table[2]);
delay(1);
if(sc==1)
{
w12864com(0x80);
w12864dat(0x12);
w12864com(0x88);
w12864dat(0x20);
}
if(sc==2)
{
w12864com(0x80);
w12864dat(0x20);
w12864com(0x99);
w12864dat(0x12);
}
if(j==1)
{
w12864com(0x81);
w12864dat(0x10);
w12864com(0x91);
w12864dat(0x20);
}
if(j==2)
{
w12864com(0x81);
w12864dat(0x20);
w12864com(0x91);
w12864dat(0x10);
}
if(fp==1)
{
w12864com(0x89);
w12864dat(0x10);
w12864com(0x99);
w12864dat(0x20);
}
if(fp==2)
{
w12864com(0x89);
w12864dat(0x20);
w12864com(0x99);
w12864dat(0x10);
}
while(m)
{
if(k2==0)
{
while(!k2==1);
sc++;
if(sc==3)
{sc=1;}
}
if(k3==0)
{
while(!k3==1);
if(sc==1)
{
j++;
if(j==3)
{j=1;}
}
if(sc==2)
{
fp++;
if(fp==3)
{fp=1;}
}
}
if(k1==0)
{
while(!k1==1);
y=1;
m=0;
s1=0;
}
if(sc==1)
{
w12864com(0x80);
w12864dat(0x12);
w12864com(0x88);
w12864dat(0x20);
if(j==1)
{
w12864com(0x81);
w12864dat(0x10);
w12864com(0x91);
w12864dat(0x20);
k=1;
}
if(j==2)
{
w12864com(0x81);
w12864dat(0x20);
w12864com(0x91);
w12864dat(0x10);
k=0;
}
}
if(sc==2)
{
w12864com(0x80);
w12864dat(0x20);
w12864com(0x88);
w12864dat(0x12);
if(fp==1)
{
w12864com(0x89);
w12864dat(0x10);
w12864com(0x99);
w12864dat(0x20);
cb=1;
}
if(fp==2)
{
w12864com(0x89);
w12864dat(0x20);
w12864com(0x99);
w12864dat(0x10);
cb=2;
}
}
}
}
void sh()
{
uchar i;
mb=1;
w12864com(0x00);
delay(2);
w12864com(0x80);
for(i=0;i<16;i++)
{
w12864dat(tables[i]);
}
w12864com(0x90);
for(i=0;i<16;i++)
{
w12864dat(tables[i+16]);
}
w12864com(0x8b);
for(i=0;i<4;i++)
{
w12864dat(tables[i+32]);
}
while(mb);
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
if(count==20)//驗(yàn)證時(shí)間為1s
{
count=0;
time++;
if(time==20)
{
time=0;
TR0=0;
}
D=~D;
delay(30);
}
}
void t0() interrupt 3
{
TH1=(65536-50000)/256;
TL1=(65536-50000)%256;
count++;
if(count==20)//驗(yàn)證時(shí)間為1s
{
count=0;
time++;
D=~D;
delay(10);
if(time==30)
{
time=0;
TR1=0;
mb=0;
y=1;
}
}
}
|
-
-
程序.rar
2016-10-20 19:15 上傳
點(diǎn)擊文件名下載附件
80.67 KB, 下載次數(shù): 24
|