新聞中心

DS1302測試程序

作者: 時間:2016-11-13 來源:網(wǎng)絡(luò) 收藏
#include

#include

本文引用地址:http://m.butianyuan.cn/article/201611/316308.htm

#define uint unsigned int
#define uchar unsigned char

/************聲明*************/
void ds1302_init();

/*************LCD12864*************/

sbit beer=P2^0;

#define P0 P0

uchar code table1[]={"電子時鐘"};
uchar code table2[]={"時間:"};
uchar code table3[]={"日期:"};


sbit lcd_rs=P1^0;//定義LCD引腳
sbit lcd_rw=P1^1;
sbit lcd_en=P1^2;
sbit lcd_psb=P2^4;
sbit lcd_rst=P2^3;

void delay(uint z) //延時
{
uint x,y;
for(x=110;x>0;x--);
for(y=z;y>0;y--);
}

void lcd_w_com(uchar com)//寫命令
{
lcd_rs=0;
lcd_rw=0;
lcd_en=0;
P0=com;
delay(5);
lcd_en=1;
delay(5);
lcd_en=0;
}

void lcd_w_data(uchar date)// 寫數(shù)據(jù)
{
lcd_rs=1;
lcd_rw=0;
lcd_en=0;
P0=date;
delay(5);
lcd_en=1;
delay(5);
lcd_en=0;
}

void lcd_init()//液晶初始化
{
lcd_rst=0;
delay(10);
lcd_rst=1;
delay(10);
lcd_psb=1;

P3=0xff;
key5=1;
key6=1;

lcd_w_com(0x30);
lcd_w_com(0x0c);
lcd_w_com(0x14);
lcd_w_com(0x01);
}

void lcd_pos(uchar x,uchar y)//選擇寫入位置
{
uchar pos;
if(x==0)
{x=0x80;}
else if(x==1)
{x=0x90;}
else if(x==2)
{x=0x88;}
else if(x==3)
{x=0x98;}
pos=x+y;
lcd_w_com(pos);
}


void clr_screen()//清屏
{
lcd_w_com(0x34);
delay(5);
lcd_w_com(0x30);
delay(5);
lcd_w_com(0x01);
}

void disp_chinese(uchar code *s)
{
while(*s>0)
{
lcd_w_data(*s);
s++;
delay(500);
}
}


void disp_title()
{
uchar i;
lcd_pos(0,2);
i=0;
while(table1[i]!=