完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
#include #include #define uchar unsigned char #define uint unsigned int uchar code addr[6]={0x8d,0x89,0x8b,0x85,0x83,0x81}; //年,月,日,时,分,秒 uchar time[6]; uchar zhuanhua[12]; ***it rs=P1^2; //数据/命令选择 ***it rw=P1^1; //读写控制 ***it e=P1^0; //片选信号 ***it rst=P3^0; //ds1302 ***it sclk=P3^1; ***it io=P3^2; #define lcd P2 //8 bit数据线 #define low 0 #define high 1 void delay(uint t) { uint i; while(t--) { for(i=0;i<125;i++); } } void checkbusy() { uchar busy; rs=0; rw=1; lcd=0xff; do { e = 1; busy=lcd; e=0; } while(busy&0x80); } //写命令函数 void wcom(uchar com) { checkbusy(); e=low; rs=low; rw=low; lcd=com; e=high; delay(10); e=low; } //写数据函数 void wdata(int dat) { checkbusy(); e=low; rs=high; rw=low; lcd=dat; e=high; delay(10); e=low; } //写函数 void write12864(uchar com,uchar dat) { checkbusy(); wcom(com); delay(1); wdata(dat); } //初始化函数 void init() { lcd=0xff; delay(100); wcom(0x30); //写基本指令集 delay(1); wcom(0x30); delay(1); wcom(0x0c); //显示开 delay(1); wcom(0x01); //清屏指令 delay(20); wcom(0x06); //游标右移 delay(100); } //清屏函数 void lcdclear(void) { wcom(0x01); //清屏指令 delay(100); } //显示汉字 dishanzi(uchar addr,uchar *hz) { int i; checkbusy(); wcom(addr); for(i=0;hz[i]!=' |