模拟路灯控制系统(单片机c语言+12864+1302+原理图+程序完整版)(7)

2018-12-23 23:37

桂林电子科技大学课程设计(论文)报告用纸 第28页 共 32 页

{

hide_min=0; outkey();

Upkey(); Downkey();

if(up_flag==1||down_flag==1)

{

Write1302(0x8e,0x00); //写入允许

Write1302(0x84,temp); //写入新的小时数 Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0;

}

if(Down!=0&&Up!=0) { hide_hour++;

if(hide_hour>3) hide_hour=0;

else hide_hour=0; show_time();

}

}while(count==4);break; case 4:do //count=4,调整星期

{

hide_hour=0; outkey(); Upkey();

Downkey();

if(up_flag==1||down_flag==1) {

Write1302(0x8e,0x00); //写入允许

Write1302(0x8a,temp); //写入新的星期数 Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0; }

if(Down!=0&&Up!=0) { hide_week++;

if(hide_week>3) hide_week=0;

} else hide_week=0;

show_time();

桂林电子科技大学课程设计(论文)报告用纸 第29页 共 32 页

}while(count==5);break; case 5:do //count=5,调整日 {

hide_week=0; outkey(); Upkey(); Downkey();

if(up_flag==1||down_flag==1)

{

Write1302(0x8e,0x00); //写入允许

Write1302(0x86,temp); //写入新的日数 Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0;

}

if(Down!=0&&Up!=0)

{ hide_day++; if(hide_day>3) hide_day=0; }

else hide_day=0;

show_time();

}while(count==6);break; case 6:do //count=6,调整月

{

hide_day=0;

outkey();

Upkey(); Downkey();

if(up_flag==1||down_flag==1) {

Write1302(0x8e,0x00); //写入允许

Write1302(0x88,temp); //写入新的月数 Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0;

}

if(Down!=0&&Up!=0)

{ hide_month++; if(hide_month>3) hide_month=0;

}

桂林电子科技大学课程设计(论文)报告用纸 第30页 共 32 页

else hide_month=0;

show_time(); }while(count==7);break; case 7:do //count=7,调整年 {

hide_month=0;

outkey(); Upkey(); Downkey();

if(up_flag==1||down_flag==1) {

Write1302(0x8e,0x00); //写入允许 Write1302(0x8c,temp); //写入新的年数 Write1302(0x8e,0x80); //禁止写入 up_flag=0; down_flag=0;

}

if(Down!=0&&Up!=0)

{

hide_year++; if(hide_year>3)

hide_year=0; }

else hide_year=0; show_time(); }while(count==8);break; case 8: count=0;hide_year=0; //count8, 跳出调整模式,返回默认显示状态 Second=Read1302(DS1302_SECOND); Write1302(0x8e,0x00); //写入允许 }

//*************************************** //液晶显示主程序模块

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

Write1302(0x80,Second&0x7f);

Write1302(0x8E,0x80); //禁止写入

done=0;

break; //count=7,开启中断,标志位置0并退出 default:break; }

桂林电子科技大学课程设计(论文)报告用纸 第31页 共 32 页

void show_time()

{

DS1302_GetTime(&CurrentTime); //获取时钟芯片的时间数据 TimeToStr(&CurrentTime); //时间数据转换液晶字符 DateToStr(&CurrentTime); //日期数据转换液晶字符

gotoxy(4,0); print(\时间:\

gotoxy(4,3);

print(CurrentTime.TimeString); //显示时间

gotoxy(3,3);

print(CurrentTime.DateString); //显示日期

gotoxy(3,0); print(\星期\gotoxy(3,2);

print(week_value); //显示星期

gotoxy(2,0);

print(\定时:18:00--6:00\ gotoxy(1,0);

print(\灯光状态:明亮 \ if(guang==0) {gotoxy(1,5); print(\黑暗 \

}

mdelay(500); //扫描延时 }

//************************************ //主程序

//************************************* main()

{

// flag=1; //时钟停止标志

init_lcd();

clrram_lcd();

Initial_DS1302(); //时钟芯片初始化 up_flag=0; down_flag=0;

done=0; //进入默认液晶显示 guang=1;

BEEP=1;

桂林电子科技大学课程设计(论文)报告用纸 第32页 共 32 页

TMOD=0X01; /*工作寄存器设置*/ ET0 =1; /*定时器0中断使能*/ EA =1; /*总中断使能*/

TH0=0; /*定时器计数寄存器赋初始值0*/ TL0=0;

TCON =0x10; /*工作寄存器设置*/ while(1) {

while(done==1)

keydone(); //进入调整模式

while(done==0)

{

show_time(); //液晶显示数据 Setkey();

}

}

//扫描各功能键

}

void INTTO() interrupt 1 /*定时器0中断服务程序,定时器计数满溢出以后自动进入*/ { }

TH0=0xff; TL1=0x00; BEEP=~BEEP;


模拟路灯控制系统(单片机c语言+12864+1302+原理图+程序完整版)(7).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:书记员法律基础知识试题

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: