51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx

上传人:b****6 文档编号:17629924 上传时间:2022-12-07 格式:DOCX 页数:14 大小:317.86KB
下载 相关 举报
51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx_第1页
第1页 / 共14页
51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx_第2页
第2页 / 共14页
51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx_第3页
第3页 / 共14页
51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx_第4页
第4页 / 共14页
51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx

《51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx(14页珍藏版)》请在冰豆网上搜索。

51单片机12864万年历图片+主要程序C语言Word格式文档下载.docx

voidinit()

{

unsignedchari;

init18b20();

ds1302_init();

initina1();

//---------------------------LCD字库初始化程序

RdFromROM(state1,8,1);

state[0]=state1[0];

//-------界面

RdFromROM(state1,15,1);

state[1]=state1[0];

//-------闹钟

RdFromROM(state1,11,1);

key_sound=state1[0];

//-------按键音

//state[2]=state1[2];

//state[3]=state1[3];

screennum=1;

//------默认一号屏

for(i=0;

i<

max_task;

i++)//清除任务延时

{task_delay[i]=0;

}

TMOD=0x11;

EA=1;

TH0=255-clock/time_task_sec/12/526;

TL0=255-clock/time_task_sec/12%526;

ET0=1;

TR0=1;

 

voidmain()

{

init();

while

(1)

{if(task_delay[0]==0){readtemp();

task_delay[0]=task_delay0;

if(task_delay[3]==0){MenuCheckKey();

task_delay[3]=task_delay1;

if(task_delay[1]==0){screen_select(screennum);

task_delay[1]=task_delay1;

if(task_delay[2]==0){ds1302_read_time();

task_delay[2]=task_delay0;

}

voidtimer0()interrupt1

uchari=0;

TH1=255-clock/time_task_sec/12%526;

i++)if(task_delay[i])task_delay[i]--;

//miao=21,fen=33,xiaomiao=94;

if(ma_start==1)

{

tt++;

if(tt==8)

{

tt=0;

xiaomiao++;

if(xiaomiao==99)

xiaomiao=0;

miao++;

if(miao==60)

miao=0;

fen++;

if(fen==99)

{

fen=0;

}

Screen.c:

delay.h"

festival.h"

idataunsignedcharmiao=0,fen=78,xiaomiao=0,tt=0;

idataunsignedcharbai,shi,ge,shinian,genian,shiyue,geyue,shiri,geri,shishi,geshi,shifen,gefen,shimiao,gemiao;

idataunsignedcharNumber[4];

unsignedcharcodemainmenu[]={

"

主菜单"

3.查询4.温度"

1.调时2.秒表"

5.设置6.返回"

};

unsignedcharcodesetmenu[]={

设置"

3.查温4.按键"

1.界面2.闹铃"

5.报时6.返回"

voidgettime()

shinian=(time_buf1[1]%100)/10;

genian=(time_buf1[1]%100)%10;

shiyue=(time_buf1[2])/10;

geyue=(time_buf1[2])%10;

shiri=(time_buf1[3])/10;

geri=(time_buf1[3])%10;

shishi=(time_buf1[4])/10;

geshi=(time_buf1[4])%10;

shifen=(time_buf1[5])/10;

gefen=(time_buf1[5])%10;

shimiao=(time_buf1[6])/10;

gemiao=(time_buf1[6])%10;

voidscreen_select(ucharnum)

//initina1();

gettime();

if(num==1)//----------主界面

Lcd_Set_Post(1,0);

TransferData(shinian+48,1);

//----------------------年

TransferData(genian+48,1);

TransferData('

/'

1);

TransferData(shiyue+48,1);

//----------------------月

TransferData(geyue+48,1);

TransferData('

TransferData(shiri+48,1);

//----------------------日

TransferData(geri+48,1);

Lcd_Set_Post(1,4);

if(state[1]==1)//----------------闹铃的状态图标

'

TransferData(14,1);

Lcd_Set_Post(1,5);

if(key_sound==1)

TransferData(13,1);

if(state[0]==0)

Lcd_Set_Post(1,7);

//----------------农历年

nian(0);

Lcd_Set_Post(2,0);

//-----------------------农历日月

LCD_WRITE_CHAR("

农历"

);

Conversion(0,time_buf[1],time_buf[2],time_buf[3]);

TransferData(month_moon/16+'

0'

TransferData(month_moon%16+'

TransferData(day_moon/16+'

TransferData(day_moon%16+'

if(state[0]==1){Lcd_Set_Post(3,5);

}else{Lcd_Set_Post(2,5);

LCD_WRITE_CHAR("

星期"

//----------------------星期

if(time_buf1[7]==7){LCD_WRITE_CHAR("

日"

}

if(time_buf1[7]==6){LCD_WRITE_CHAR("

六"

if(time_buf1[7]==5){LCD_WRITE_CHAR("

五"

if(time_buf1[7]==4){LCD_WRITE_CHAR("

四"

if(time_buf1[7]==3){LCD_WRITE_CHAR("

三"

if(time_buf1[7]==2){LCD_WRITE_CHAR("

二"

if(time_buf1[7]==1){LCD_WRITE_CHAR("

一"

Lcd_Set_Post(3,0);

TransferData(shishi+48,1);

//----------------------时

TransferData(geshi+48,1);

TransferData(58,1);

TransferData(shifen+48,1);

//----------------------分

TransferData(gefen+48,1);

TransferData(shimiao+48,1);

//----------------------秒

TransferData(gemiao+48,1);

bai=(temph/100);

//---------------------------------温度

shi=(temph%100)/10;

ge=(temph%100)%10;

Lcd_Set_Post(3,4);

if(zerotemp==0){TransferData('

TransferData('

Lcd_Set_Post(3,5);

TransferData(shi+48,1);

TransferData(ge+48,1);

.'

TransferData(templ+48,1);

TransferData(0xa1,1);

TransferData(0xe6,1);

Lcd_Set_Post(4,0);

festival(time_buf[2],time_buf[3],time_buf[4]);

//农历

if(num==3)//----------主菜单

Lcd_Set_Post(1,0);

//--------设置显示位置

LCD_WRITE_CHAR(mainmenu);

if(num==4)//----------设置菜单

LCD_WRITE_CHAR(setmenu);

if(num==5)//----------时间设置

Lcd_Set_Post(1,2);

时间设置"

Lcd_Set_Post(2,1);

年"

月"

TransferData(time_buf1[7]+48,1);

//---------------星期

Lcd_Set_Post(3,2);

//--------------------时

时"

//---------------------分

分"

//--------------------秒

if(num==6)//----------秒表

ucharshi1,shi2,shi3,ge1,ge2,ge3;

Lcd_Set_Post(1,3);

秒表"

shi1=fen/10;

ge1=fen%10;

TransferData(shi1+48,1);

TransferData(ge1+48,1);

:

'

shi2=miao/10;

ge2=miao%10;

TransferData(shi2+48,1);

TransferData(ge2+48,1);

shi3=xiaomiao/10;

ge3=xiaomiao%10;

TransferData(shi3+48,1);

TransferData(ge3+48,1);

if(num==8)

Lcd_Set_Post(1,2);

//--------农历查询

温度查询"

Lcd_Set_Post(3,0);

最高温度"

RdFromROM(Number,0,4);

if(Number[3]==0){TransferData('

-'

Lcd_Set_Post(3,5);

TransferData(Number[0]+48,1);

TransferData(Number[1]+48,1);

TransferData(Number[2]+48,1);

TransferData(0xa1,1);

Lcd_Set_Post(4,0);

最低温度"

RdFromROM(Number,4,4);

Lcd_Set_Post(4,5);

if(num==9)//----------界面菜单

界面选择"

Lcd_Set_Post(2,0);

TransferData(1+48,1);

多功能界面"

TransferData(2+48,1);

简洁界面"

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

当前位置:首页 > 教学研究 > 教学反思汇报

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

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