read_ds(uchar add) //芯片读指令 { uchards_date; dscs=0; dsas=1; dsds=1; dsrw=1; P0=add; //写地址 dsas=0; dsds=0; P0=0xff; ds_date=P0; dsds=1; dsas=1; dscs=1; returnds_date; }
void set_alarm(ucharashi,ucharafen,ucharamiao) //闹钟设初值 { write_ds(1,amiao); write_ds(3,afen); write_ds(5,ashi); }
void set_time() //时间设初值 { write_ds(0,10); write_ds(2,10); write_ds(4,10); write_ds(6,2); write_ds(7,10); write_ds(8,10); write_ds(9,10); }
voidinit() { EA=1; EX1=1; //开外部中断1 IT1=1; //设置负跳变沿触发中断 dula=0; //关闭数码管,以免出现乱码 wela=0; //关闭数码管,以免出现乱码
en=0; //液晶使能 // alone_key=0; //把矩阵键盘化用为独立键盘 使用独立键盘则不需执行此项 set_alarm(10,11,10); //设置闹钟为什么分钟设置为08不可以 set_time(); //首次上电初始化时间 write_ds(0x0A,0x20); // 控制A寄存器来开启晶体振荡器且保持时钟运行。 write_ds(0x0B,0x26); //设置24小时模式,数据二进制模式,开启闹铃中断。 write_com(0x38); //液晶初始化 write_com(0x0c); //开显示,不显示光标 write_com(0x06); //写一个字符后地址指针自动加一 write_com(0x01); //显示清零,数据指针清零 delay(5); write_com(0x81+0x10); //写到后16位上,再移过来形成特效 for(num=0;num<14;num++) //写液晶初始内容 { write_data(table[num]); delay(50); } for(num=0;num<16;num++) //移位指令 { write_com(0x18); delay(50); } write_com(0x83+0x50);//第二行写初始内容 for(num=0;num<8;num++) { write_data(table1[num]); delay(50); } }
voidwrite_sfm(ucharadd,uchar date) { ucharshi,ge; shi=date/10; ge=date; write_com(0x80+0x50+add); write_data(0x30+shi); write_data(0x30+ge); }
voidwrite_nyr(ucharadd,uchar date)
{ ucharshi,ge; shi=date/10; ge=date; write_com(0x80+0x10+add); write_data(0x30+shi); write_data(0x30+ge); }
voidwrite_xq(uchar date) { switch(date) { case 0: write_com(0x80+0x10+12); write_data('S'); delay(5); write_data('U'); delay(5); write_data('N'); delay(5); break; case 1: write_com(0x80+0x10+12); write_data('M'); delay(5); write_data('O'); delay(5); write_data('N'); delay(5); break; case 2: write_com(0x80+0x10+12); write_data('T'); delay(5); write_data('U'); delay(5); write_data('E'); delay(5); break;
case 3:
write_com(0x80+0x10+12); write_data('W'); delay(5);
write_data('E'); delay(5);
write_data('D'); delay(5); break;
case 4:
write_com(0x80+0x10+12); write_data('T'); delay(5);
write_data('H'); delay(5);
write_data('U'); delay(5); break;
case 5:
write_com(0x80+0x10+12); write_data('F'); delay(5);
write_data('R'); delay(5);
write_data('I'); delay(5); break;
case 6:
write_com(0x80+0x10+12); write_data('S'); delay(5);
write_data('A'); delay(5);
write_data('T'); delay(5); break;
}
write_com(0x10);
相关推荐: