⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 不带字库LCD12864设计,在田老师的MINI51上测试
💻 C
字号:
//写汉字液晶,液晶屏为128*64,4行*8列汉字
/*
 D7 D6 D5 D4 D3 D2 D1 D0   
 0  0  0  1  1  1  1  D  	*D=1时显示开,D=0时显示关
 1  1  A  A  A  A  A  A 	*设定显示开始行寄存器位置
 1  0  1  1  1  A  A  A 	*设定页地址
 0  1  A  A  A  A  A  A 	*设定列地址
 D7 0  D5 D4 0  0  0  0 	*D7=1表示LCD忙,D7=0可以读写操作,D5=1显示关状态,
 							*D5=0显示开状态,D4=1表示正在初始化,D4=0初始化完毕
*/

/**************头文件定义***********/
#include "STC89C51RC.H"
#include <math.h>
#include <intrins.h>
#include <absacc.h>
#include "hanzi.h"
#include "number.h"
#include "DS1302.H"
#include "LCD12864.H"

void main(void)
{
  	uchar n;  	
	SYSTEMTIME CurrentTime;
	Delay(10);
  	lcd_init(); 
	Initial_DS1302();

	// 时间设定
	Write1302(DS1302_YEAR, 0x07);
	Write1302(DS1302_MONTH, 0x04);
	Write1302(DS1302_DAY, 0x10);
	Write1302(DS1302_WEEK, 0x02);
	Write1302(DS1302_HOUR, 0x12);		
	Write1302(DS1302_MINUTE, 0x51);			
	//*/
    lcd_clr();	

  while(1)	
  { 	
	DS1302_GetTime(&CurrentTime); //读时间

	lcd_asci_wr(Line0,0,2);						//2
	lcd_asci_wr(Line0+8,0,0);					//0
	lcd_asci_wr(Line0+16,0,(CurrentTime.Year/10));	//0
	lcd_asci_wr(Line0+24,0,(CurrentTime.Year%10));	//7
	
	lcd_hanzi_wr(Line0+32,0,nian);	//年

	lcd_asci_wr(Line0+48,0,(CurrentTime.Month/10));	
	lcd_asci_wr(Line0+56,0,(CurrentTime.Month%10));	
	
	lcd_hanzi_wr(Line0+64,0,yue);	//月

	lcd_asci_wr(Line0+80,0,(CurrentTime.Day/10));	
	lcd_asci_wr(Line0+88,0,(CurrentTime.Day%10));

	lcd_hanzi_wr(Line0+96,0,ri);	//日

	lcd_hanzi_wr(Line1+2,2,xing);	//星
	lcd_hanzi_wr(Line1+16,2,qi);	//期

	lcd_asci_wr(Line1+32,2,(CurrentTime.Week%10));	

	lcd_asci_wr(Line1+48,2,(CurrentTime.Hour/10));	
	lcd_asci_wr(Line1+56,2,(CurrentTime.Hour%10));	

	lcd_asci_wr(Line1+64,2,10);	//Dot

	lcd_asci_wr(Line1+72,2,(CurrentTime.Minute/10));	
	lcd_asci_wr(Line1+80,2,(CurrentTime.Minute%10));	

	lcd_asci_wr(Line1+88,2,10);	//Dot

	lcd_asci_wr(Line1+96,2,(CurrentTime.Second/10));	
	lcd_asci_wr(Line1+104,2,(CurrentTime.Second%10));	
	
	lcd_hanzi_wr(Line2,4,ju); 
	lcd_hanzi_wr(Line2+16,4,wo); 
	lcd_hanzi_wr(Line2+32,4,yuan); 
	lcd_hanzi_wr(Line2+48,4,ben); 
	lcd_hanzi_wr(Line2+64,4,ke); 
	lcd_hanzi_wr(Line2+80,4,jiao); 
	lcd_hanzi_wr(Line2+96,4,xue); 
	lcd_hanzi_wr(Line2+112,4,shui); 
	lcd_hanzi_wr(Line3,6,pin); 
	lcd_hanzi_wr(Line3+16,6,ping); 
	lcd_hanzi_wr(Line3+32,6,gu); 
	lcd_hanzi_wr(Line3+48,6,hai);
	lcd_hanzi_wr(Line3+64,6,you);  

	n = 164-CurrentTime.Month*30-CurrentTime.Day-1;

	lcd_asci_wr(Line3+80,6,(n/100%10));	
	lcd_asci_wr(Line3+88,6,(n/10%10));	
	lcd_asci_wr(Line3+96,6,(n%10));	
	
	lcd_hanzi_wr(Line3+104,6,tian);	//天
	lcd_asci_wr(Line3+120,6,11);//!	

	Delay(300);				   	
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -