#include #include #define uint unsigned int #define uchar unsigned char uchar k1; uchar nian,yue,ri,xq,shi,fen,miao; uchar nian1,yue1,ri1,xq1,shi1,fen1,miao1; void xianxq(uchar xq); sbit key3=P1^3; sbit key2=P1^4; sbit key1=P1^5; sbit fm=P2^3; sbit rd=P3^7; sbit rw=P3^6; sbit rs=P3^5; sbit lcden=P3^4; sbit clk=P1^0; sbit IO=P1^1; sbit rst=P1^2; sbit ACC0=ACC^0; sbit ACC7=ACC^7; void delay(uint z)//延时程序 { uint x,y; for(x=z;x>0;x--) for(y=110;y>0;y--); } /******** lcd12864 ********/ void lcdbusy() //12864 读忙状态 { while(1) { rs=0; rw=1; lcden=0; P0=0xFF; lcden=1; if((P0&0x80)==0) break; } /* rs=0; rw=1; lcden=1; P0=0xff; while((P0&0x80)==0x80); lcden=0;*/ } void write_com (uchar com)//12864 的写指令 { lcdbusy(); lcden=1; rs=0; rw=0; P0=com; delay(5); lcden=0; } void start() //12864 初始化 { fm=0;//关蜂鸣器 lcden=0; //write_com(0x30);//选择基本指令集 write_com(0x30);//选择8bit 数据流 write_com(0x0c);//开显示(无游标、不反白) write_com(0x01);//清除显示,并且设定地址指针为 00H // write_com(0x07); write_com(0x06);//指定在资料的读取及写入时,设定游标的移动方向及指定显示的移位 // write_com(0x14);//光标右移 } void write_date (uchar date)//12864 的写数据 { lcdbusy(); lcden=1; rs=1; rw=0; P0=date; delay(5); lcden=0; } void xianshi(uchar *s)//12864 显示 { while(*s>0) { write_date(*s); s++; } } /*void write_sj(uchar add,uchar date)//12864 时间的划分 { uchar shi,ge; shi=date/10; ge=date%10; write_com(add); write_date(0x30+shi); write_date(0x30+ge); }*/ void write_sj1(uchar date)//12864 时间的划分 { uchar shi,ge; shi=date/10; ge=date%10; write_date(0x30+shi); write_date(0x30+ge); } void dingwei()//12864 年月日等的定位 { write_com(0x92); write_sj1(nian); write_com(0x94); write_sj1(yue); write_com(0x96); write_sj1(ri); xianxq(xq); write_com(0x9a); write_sj1(shi); write_com(0x9c);...