十字路口交通灯控制系统及其论文(8)

2019-02-20 21:43

十字路口交通灯控制系统

shi++;

if(shi==24) //时加1 shi=0;

day++;if(day==7)day=0; //满24小时星期加一 WriteCommand(0x8c); WriteData(xing[day][0]); //写星期 WriteData(xing[day][1]); WriteData(xing[day][2]);

ri++; //满24小时日期加一

/****************************************************** 如果月数为1、3、5、7、8、10、12则天数为31(月大) *******************************************************/ if(yue==1||yue==3||yue==5||yue==7||yue==8||yue==10||yue==12) { if(ri==32) { ri=1; yue++; if(yue==13) { yue=1; year++; if(year==3000) year=2000; nian1=(unsigned char)(year/100); nian2=(unsigned char)(year0); writ_str(0x81,nian1); writ_str(0x83,nian2); } writ_str(0x86,yue); } } /****************************************************** 如果月数为2则判断是不是闰年 *******************************************************/ if(yue==2) { if(((year%4==0)&&(year0!=0))||(year@0==0)) //是闰年的时候 {if(ri==31) { ri=1; yue++; writ_str(0x86,yue); } } else if(ri==29) //不是闰年的时候

32

贺州学院本科生毕业论文(设计)

{ ri=1; yue++; writ_str(0x86,yue); } }

/****************************************************** 如果月数为4、6、9、11则天数为30(月小) *******************************************************/ if(yue==4||yue==6||yue==9||yue==11) { if(ri==31) { ri=1; yue++; writ_str(0x86,yue); } } } }

十字路口交通灯控制系统

/******************************************************************/ /* 按键函数 */ /******************************************************************/ #include

sbit s1=P3^0; //按键盘 sbit s2=P3^1; sbit s3=P3^3; sbit s4=P3^2;

bit s=0;//数码管与1602的标志

unsigned char code set1[]={\

unsigned char code set2[]={%unsigned char code set3[]={%unsigned char code set4[]={\void shijiansezhi(); //时间设置 void alarm_seting(); //闹钟设置

void xianshis(); //进入时间设置时的显示 jxianshi(); //进入交通灯设置时的显示 void diyi(); void dier(); void disan();

//unsigned char nr1=30,ny1=5,ng1=20,dr1=30,dy1=5,dg1=20;//设置灯亮的时间 unsigned char nr0=0,ny0=0,ng0=0,dr0=0,dy0=0,dg0=0;//设置灯亮的时间 unsigned char b1=0,b2=0;

/*********************************************/ /* 对时间的设定 / /*********************************************/ void anjian() {

unsigned char i;

static unsigned char se=0; bit xuan=1; if(s1==0) //开始进入第一界面 { DelayMs(15); if(s1==0) { while(!s1); //等待按键放开 DelayMs(10); TR0=0; //关闭定时器 b1=second1;//入栈 b2=second2;//入栈

WriteCommand(0x01); //显示清屏

WriteCommand(0x0f); //显示开关控制,有光标,光标开关开,闪烁 WriteCommand(0x80); //从0x80开始显示字符1:timeset

34

贺州学院本科生毕业论文(设计)

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

WriteData(set1[i]);

WriteCommand(0x8a); //从0x80开始显示字符3:lset for(i=0;i<6;i++)

WriteData(set4[i]);

WriteCommand(0xc0); //从0xc0开始显示字符2:alarm seting for(i=0;i<14;i++) WriteData(set2[i]); fanhui_1=1; //第一返回标志 WriteCommand(0x80); while(fanhui_1) {

if(s2==0)

{ DelayMs(10); if(s2==0);

{while(!s2); //等待按键放开 se++; WriteCommand(0x0f); //开光标 switch(se) { case 0:WriteCommand(0x80);break; //让光标停在此处 case 1:WriteCommand(0xc0);break; //让光标停在此处 case 2:WriteCommand(0x8a);break;//让光标停在此处 case 3:se=0;WriteCommand(0x80);break; } xuan=0; } } if(s1==0)

{ DelayMs(15); if(s1==0)

{while(!s1); //等待按键放开 DelayMs(15); fanhui_2=1; //第二返回标志 if(se==0) //此标志为第一次进入后,要进行选择时用的 diyi(); if(se==1) //此标志为第二次进入后,要进行调整闹钟时用的 dier();

if(se==2) //此标志为第三次进入后,要进行调节交通灯时用的 disan(); } }

/****************************************************/ if(s4==0) //此时若按下S4,则返回到时间显示(第一界面)

十字路口交通灯控制系统

{ DelayMs(10); if(s4==0) { while(!s4);DelayMs(15);

WriteCommand(0x01); //显示清屏 fanhui_1=0; TR0=1; //开启定时器 // second1=b1;//出栈 second2=b2;//出栈

WriteCommand(0x0c); //关闭光标 } } } } }

/****************************************************/ if(s4==0) //急停按键,当它被按下时,会使四个方向的灯变为黄灯 { DelayMs(10); if(s4==0) { while(!s4); DelayMs(10); jj=1; if(jj==1) { w=1; de=1; //second1=10; //second2=10; //四个方向的灯变为红灯 } } } }

/********************************************************************* /* 闹钟设置

***********************************************************************/ void alarm_seting() {

static unsigned char dk=0; //闹钟设置时的按键标志 unsigned char i;

36


十字路口交通灯控制系统及其论文(8).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年九年级数学上册小专题六二次函数的实际应用(新版)新人教

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

马上注册会员

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