LCD12862+DS12C887万年历.docx

上传人:b****5 文档编号:28376690 上传时间:2023-07-10 格式:DOCX 页数:37 大小:20.48KB
下载 相关 举报
LCD12862+DS12C887万年历.docx_第1页
第1页 / 共37页
LCD12862+DS12C887万年历.docx_第2页
第2页 / 共37页
LCD12862+DS12C887万年历.docx_第3页
第3页 / 共37页
LCD12862+DS12C887万年历.docx_第4页
第4页 / 共37页
LCD12862+DS12C887万年历.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

LCD12862+DS12C887万年历.docx

《LCD12862+DS12C887万年历.docx》由会员分享,可在线阅读,更多相关《LCD12862+DS12C887万年历.docx(37页珍藏版)》请在冰豆网上搜索。

LCD12862+DS12C887万年历.docx

LCD12862+DS12C887万年历

/**************************************************************

***项目:

DS12C887时钟芯片可调+温度+闹钟+方波万年历*************

***创建人:

小彬************************************************

***时间:

2014年7月25日22:

52:

25*********************************

***完成:

2014年8月11日17:

08:

09*********************************

***说明:

K4:

菜单选择K3:

光标选择********初级版本************

******K2:

上调K1:

下调**********背光随光线可调*********

**************************************************************/

#include<12864.h>

#include

#include

#defineucharunsignedchar

#defineuintunsignedint

#defineLCD_ON0x0d

#defineLCD_OFF0x0c

#defineDSAPOWER_ON0x20

#defineDSASWQ_ON0x30//开启方波输出

#defineDS_year0x09

#defineDS_month0x08

#defineDS_day0x07

#defineDS_zhou0x06

#defineDS_hour0x04

#defineDS_minute0x02

#defineDS_second0x00

#defineDSCLK_hour0x05

#defineDSCLK_minute0x03

#defineDSCLK_second0x01

ucharcodePhoto1[]={

//图片数字0高电平有效PCtoLCD2002取模:

顺向,逐行式32*16

0x00,0x00,0x3F,0xFC,0x5F,0xFA,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,

0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x40,0x02,0x00,0x00,

0x40,0x02,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,

0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x5F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00,

//图片数字1

0x00,0x00,0x00,0x20,0x00,0x60,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,

0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x60,0x00,0x20,0x00,0x00,0x00,0x20,

0x00,0x60,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0xE0,

0x00,0xE0,0x00,0xE0,0x00,0xE0,0x00,0x60,0x00,0x20,0x00,0x00,0x00,0x00,0x00,0x00,

//图片数字2

0x00,0x00,0x3F,0xFC,0x1F,0xFA,0x0F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,

0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x1F,0xFA,0x3F,0xFC,

0x5F,0xF8,0x60,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,

0x70,0x00,0x70,0x00,0x70,0x00,0x6F,0xF8,0x5F,0xFC,0x3F,0xFE,0x00,0x00,0x00,0x00,

//图片数字3

0x00,0x00,0x3F,0xFC,0x1F,0xFA,0x0F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,

0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x1F,0xFA,0x3F,0xFC,

0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,

0x00,0x0E,0x00,0x0E,0x00,0x0E,0x0F,0xF6,0x1F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00,

//图片数字4

0x00,0x00,0x40,0x02,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,

0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x5F,0xFA,0x3F,0xFC,

0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,

0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x00,

//图片数字5

0x00,0x00,0x3F,0xFC,0x5F,0xF8,0x6F,0xF0,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,

0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x60,0x00,0x5F,0xF8,0x3F,0xFC,

0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,

0x00,0x0E,0x00,0x0E,0x00,0x0E,0x0F,0xF6,0x1F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00,

//图片数字6

0x00,0x00,0x3F,0xFC,0x5F,0xF8,0x6F,0xF0,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,

0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x70,0x00,0x60,0x00,0x5F,0xF8,0x3F,0xFC,

0x5F,0xFA,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,

0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x5F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00,

//图片数字7

0x00,0x00,0x3F,0xFC,0x1F,0xFA,0x0F,0xF6,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,

0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x00,0x02,0x00,0x00,

0x00,0x02,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,

0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x06,0x00,0x02,0x00,0x00,0x00,0x00,0x00,0x00,

//图片数字8

0x00,0x00,0x3F,0xFC,0x5F,0xFA,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,

0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x5F,0xFA,0x3F,0xFC,

0x5F,0xFA,0x60,0x06,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,

0x70,0x0E,0x70,0x0E,0x70,0x0E,0x6F,0xF6,0x5F,0xFA,0x3F,0xFC,0x00,0x00,0x00,0x00,

//图片数字9

0x00,0x00,0x3F,0xFC,0x5F,0xFA,0x6F,0xF6,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,

0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x70,0x0E,0x60,0x06,0x5F,0xFA,0x3F,0xFC,

0x1F,0xFA,0x00,0x06,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,0x00,0x0E,

0x00,0x0E,0x00,0x0E,0x00,0x0E,0x1F,0xF6,0x3F,0xFA,0x7F,0xFC,0x00,0x00,0x00,0x00

};

ucharnian,yue,ri,shi,fen,miao,zhou,clkshi,clkfen,clkmiao,flg1=0,flg2=0,flg3=0,clk=1;

intup=0;

voidds_write(ucharadd,uchardate);

uchards_read(ucharadd);

voiddisply_clock(void);

voidled1(void);

voidsearch_time(void);

voidDS18b20_reset(void);

voidwrite_byte(uintval);

uintread_byte(void);

bitmatch_rom(uchar*rom);

voidstart_temp_sensor(void);

voidget1_ds18b20(void);

/*******************************************************************/

/**/

/*延时函数*/

/**/

/*******************************************************************/

voiddelay_ds18b20(uintn)

{

while(n--);

}

voiddelay(intms)

{

while(ms--)

{

uchari;

for(i=0;i<150;i++)

{

_nop_();

_nop_();

_nop_();

_nop_();

}

}

}

voidbeep()

{

BEEP=1;

delay(30);

BEEP=0;

}/*******************************************************************/

/**/

/*检查LCD忙状态*/

/*lcd_busy为1时,忙,等待。

lcd-busy为0时,闲,可写指令与数据。

*/

/**/

/*******************************************************************/

bitlcd_busy()

{

bitresult;

LCD_RS=0;

LCD_RW=1;

LCD_EN=1;

NOP();

result=(bit)(P0&0x80);

LCD_EN=0;

return(result);

}

/*******************************************************************/

/**/

/*写指令数据到LCD*/

/*RS=L,RW=L,E=高脉冲,D0-D7=指令码。

*/

/**/

/*******************************************************************/

voidlcd_wcmd(ucharcmd)

{

while(lcd_busy());

LCD_RS=0;

LCD_RW=0;

LCD_EN=0;

_nop_();

_nop_();

P0=cmd;

NOP();

LCD_EN=1;

NOP();

LCD_EN=0;

}

voidlcd_wdat(uchardat)

{

while(lcd_busy());

LCD_RS=1;

LCD_RW=0;

LCD_EN=0;

P0=dat;

NOP();

LCD_EN=1;

NOP();

LCD_EN=0;

}

voidlcd_init()

{

LCD_PSB=1;//并口方式

//LCD_RST=0;//液晶复位

//delay(3);

//LCD_RST=1;

//delay(3);

lcd_wcmd(0x34);//扩充指令操作

delay(5);

lcd_wcmd(0x30);//基本指令操作

delay(5);

lcd_wcmd(0x0C);//显示开,关光标

delay(5);

lcd_wcmd(0x01);//清除LCD的显示内容

delay(5);

}

voidlcd_pos(ucharX,ucharY)

{

ucharpos;

if(X==1)

{X=0x80;}

elseif(X==2)

{X=0x90;}

elseif(X==3)

{X=0x88;}

elseif(X==4)

{X=0x98;}

pos=X+Y;

lcd_wcmd(pos);//显示地址

}

voidlcd_posdat(ucharposx,ucharposy,ucharsfm)

{

ucharshi,ge;

shi=sfm/10;

ge=sfm%10;

lcd_pos(posx,posy);

lcd_wdat(0x30+shi);

lcd_wdat(0x30+ge);

}

/*********************************************************

*

*调入图像函数

*

*********************************************************/

voidphotodisplay(ucharx,y,uchar*bmp)

{

uchari,j;

lcd_wcmd(0x34);//写数据时,关闭图形显示

for(i=0;i<32;i++)

{

lcd_wcmd(0x80+y+i);//先写入水平坐标值

lcd_wcmd(0x80+x);//写入垂直坐标值

for(j=0;j<16;j++)//再写入两个8位元的数据

lcd_wdat(*bmp++);

delay

(1);

}

for(i=0;i<32;i++)

{

lcd_wcmd(0x80+i);

lcd_wcmd(0x88);

for(j=0;j<16;j++)

lcd_wdat(*bmp++);

delay

(1);

}

lcd_wcmd(0x36);//写完数据,开图形显示

}

voidsetclock()

{

ds_write(9,14);//年

ds_write(8,8);//月

ds_write(7,4);//日

ds_write(4,15);//时

ds_write(2,50);//分

ds_write(0,0);//秒

ds_write(6,2);//周

}

voidlcdflag()

{

lcd_wcmd(0x08);

delay(400);

lcd_wcmd(0x0c);

delay(400);

lcd_wcmd(0x08);

delay(400);

lcd_wcmd(0x0c);

delay(500);

lcd_wcmd(0x08);

delay(400);

lcd_wcmd(0x0c);

delay(400);

}

voidclr_screen()

{

lcd_wcmd(0x34);//扩充指令操作

delay(5);

lcd_wcmd(0x30);//基本指令操作

delay(5);

lcd_wcmd(0x01);//清屏

delay(5);

}

voiddisplay_logo()

{

uchari;

lcd_pos(1,0);//设置显示位置为第一行

while(DIS1[i]!

='\0')

{

lcd_wdat(DIS1[i]);

delay(60);

i++;

}

delay(10);

i=0;

lcd_pos(2,0);//设置显示位置为第二行

while(DIS2[i]!

='\0')

{

lcd_wdat(DIS2[i]);

delay(60);

i++;

}

delay(10);

i=0;

lcd_pos(3,0);//设置显示位置为第三行

while(DIS3[i]!

='\0')

{

lcd_wdat(DIS3[i]);

delay(55);

i++;

}

delay(10);

i=0;

lcd_pos(4,0);//设置显示位置为第四行

while(DIS4[i]!

='\0')

{

lcd_wdat(DIS4[i]);

delay(50);

i++;

}

i=0;

}

voiddisplay_timeinit()

{

uchari;

clr_screen();

ds_write(0x0b,0x36);

//ds_write(0x0a,DSAPOWER_ON);//setclock();

lcd_pos(1,0);

while(DIS5[i]!

='\0')

{

lcd_wdat(DIS5[i]);

i++;

}

i=0;

lcd_pos(2,0);

while(DIS6[i]!

='\0')

{

lcd_wdat(DIS6[i]);

i++;

}

i=0;

lcd_pos(3,0);

while(DIS7[i]!

='\0')

{

lcd_wdat(DIS7[i]);

i++;

}

i=0;

lcd_pos(2,1);

lcd_wdat(0x1a);

lcd_wdat(0x01);

lcd_pos(3,5);

lcd_wdat(0x1a);

lcd_wdat(0x03);

lcd_pos(4,0);

while(DIS8[i]!

='\0')

{

lcd_wdat(DIS8[i]);

i++;

}

i=0;

lcd_pos(4,4);

lcd_wdat(0x03);

lcd_wdat(0x03);

}

voiddisplay_time()

{

nian=ds_read(9);

yue=ds_read(8);

ri=ds_read(7);

shi=ds_read(4);

fen=ds_read

(2);

miao=ds_read(0);

zhou=ds_read(6);

lcd_posdat(1,1,nian);

lcd_posdat(1,3,yue);

lcd_posdat(1,5,ri);

lcd_posdat(2,2,shi);

lcd_posdat(2,4,fen);

lcd_posdat(2,6,miao);

lcd_posdat(3,1,zhou);

if(shi>12)

{

lcd_pos(2,0);

lcd_wdat(0x50);

lcd_wdat(0x4d);//显示PM

}

else

{

lcd_pos(2,0);

lcd_wdat(0x41);

lcd_wdat(0x4d);//显示AM

}

get1_ds18b20();

}

voiddisplay_mode()

{

uchari;

i=0;

lcd_pos(1,0);

while(DIS9[i]!

='\0')

{

lcd_wdat(DIS9[i]);

i++;

}

i=0;

lcd_pos(2,0);

while(DIS10[i]!

='\0')

{

lcd_wdat(DIS10[i]);

i++;

}

i=0;

lcd_pos(3,0);

while(DIS11[i]!

='\0')

{

lcd_wdat(DIS11[i]);

i++;

}

i=0;

lcd_pos(4,0);

while(DIS12[i]!

='\0')

{

lcd_wdat(DIS12[i]);

i++;

}

i=0;

}

voiddisplay_settime()

{

uchari;

i=0;

lcd_pos(1,0);

while(DIS13[i]!

='\0')

{

lcd_wdat(DIS13[i]);

i++;

}

i=0;

lcd_pos(2,0);

while(DIS

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1