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

2019-02-20 21:43

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

ShowChar(0X83,'0'+nian2/10); ShowChar(0X84,'0'+nian2); ShowChar(0X85,'-'); ShowChar(0X86,'0'+yue/10); ShowChar(0X87,'0'+yue); ShowChar(0X88,'-'); ShowChar(0X89,'0'+ri/10); ShowChar(0X8a,'0'+ri); }

/******************************************************************/ /* 交通灯时间设置显示函数 */ /******************************************************************/ jxianshi() { unsigned char i; WriteCommand(0x80); // 从80开始写以下字符 for(i=0;i<15;i++) WriteData(set[i]);

WriteCommand(0x82); // 从82开始写以下字符 WriteData(':');

WriteData('0'+nr/10); WriteData('0'+nr); WriteCommand(0x88); // 从88开始写以下字符 WriteData(':'); WriteData('0'+ny/10); WriteData('0'+ny); WriteCommand(0x8e); // 从8e开始写以下字符 WriteData('0'+ng/10); WriteData('0'+ng); WriteCommand(0xc0); // 从c0开始写以下字符 for(i=0;i<15;i++) WriteData(set0[i]); WriteCommand(0xc2); // 从c2开始写以下字符 WriteData(':'); WriteData('0'+dr/10); WriteData('0'+dr); WriteCommand(0xc8); // 从c8开始写以下字符 WriteData(':'); WriteData('0'+dy/10); WriteData('0'+dy); WriteCommand(0xce); // 从ce开始写以下字符 WriteData('0'+dg/10); WriteData('0'+dg); }

十字路口交通灯控制系统

Shuma函数(定时器函数)

#include //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 bit red=1,green=0,yellow=0,turnred=0;//定义红绿黄灯标志位 bit red1=1,green1=0,yellow1=0,turnred1=0;//定义红绿黄灯标志位

code unsigned char tab[]={0x77,0x60,0x5b,0x7a,0x6c,0x3e,0x3f,0x70,0x7f,0x7e}; //共阴数码管 0-9 static unsigned char second1=20; //东西初值20 static unsigned char second2=30; //南北初值30 unsigned char DongShiwei;//东西定义十位 unsigned char DongGewei; //东西定义个位 unsigned char nanShiwei;//南北定义十位 unsigned char nanGewei; //南北定义个位 void jiao1( ),jiao2( ); void shijian( );

void jtseting(); //交通灯设置

bit fanhui_1,fanhui_2,nao=1,Be=0;//,Belling,ling,na=1

unsigned char shi0=0,fen0=0,second0=0;//闹钟的设置标志 static unsigned char se=0; void disan(), jinji();

unsigned char jj=0,b3=0,b4=0;

bit w=0; bit de=0; unsigned char ss=1; char cy=0x00; char ay=0x00;

sbit L1=P1^0; //定义LED端口 sbit L2=P1^1; //定义LED端口 sbit L3=P1^2; //定义LED端口 sbit L4=P1^3; //定义LED端口 sbit L5=P1^4; //定义LED端口 sbit L6=P1^5; //定义LED端口 sbit L7=P1^6; //定义LED端口 sbit L8=P1^7; //定义LED端口

unsigned char nr1=30,ny1=5,ng1=20,dr1=30,dy1=5,dg1=20;//设置灯亮的时间 unsigned char t=1;

/******************************************************************/ /* 定时器中断函数 */ /******************************************************************/ void tim(void) interrupt 1 using 1 { unsigned char count; TH0=0x3c;//重新赋值 TL0=0xb0; count++; if (count==18)

{if(yellow && !turnred) //南北绿灯闪5秒 { L6=~L6; L2=~L2; } if(green1) //东西绿灯闪5秒

28

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

{ L7=~L7; L4=~L4; } } if (count==20) {

count=0; second++; //1602秒加1

/*******************************///正常工作时 if(jj==0) { jiao1( ); //交通灯设置东西方向 jiao2( ); }

/*******************************///不正常工作时 if(jj==1) { if(w==1) { b3=second1; // 入栈 b4=second2; //入栈 cy&=P1; //怎么保存P1口的数据 ss=0;w=0; } if(ss==0) { ss=1;second1=0;

second2=0; P1=0x00; //此时各方都要亮黄色 } if(second1==0&&second2==0) if(de==1){ second1=b3;//出栈 second2=b4;//出栈 jj=0; de=0; //此时的灯色还不能变化,时间就变了 if(ss==1){P1=0x00;P1&=cy;}//怎么保存P1口的数据 } }

/******************************************************/ DongShiwei=tab[second1];//东西数码管十位显示值处理 DongGewei=tab[second1/10]; //东西数码管个位显示处理 nanShiwei=tab[(second2)];//南北数码管十位显示值处理 // 进行数码管的处理 nanGewei=tab[second2/10]; //南北数码管个位显示处理 /******************************************************/ if(nao) //对闹钟的判断,符合则响,NAO为开闹钟的标志 {

if(shi0==shi) if(fen0==fen) if(second0==second) Be=1;

十字路口交通灯控制系统

}

if(shi==shi0+1) if(fen==0) if(second==0)

{Be=0; nr=30;ny=5;ng=20;dr=30;dy=5;dg=20;} if(second==60) // 开始对1602时钟显示进行处理 shijian( ); } }

/******************************************************/ /* 进行东西交通灯的处理

*******************************************************/ void jiao1( )

{ second1--;//东西数码秒减1 if(second1==0){ if(red) //东西绿灯闪5秒 { red=0;yellow=1; second1=5;//t2 ay=0x59; P1=ay; //南北红灯5,东西黄灯亮5秒 } else if(yellow && !turnred) // 东西 黄亮5秒 DY { yellow=0;green=1; second1=dy; ay=0x48; P1=ay; // 南北红灯5,东西 绿亮5秒 可以到时改为绿灯闪但要与上面换一下 } else if(green) // 东西红灯亮30秒 DR { yellow=1;green=0;

second1=dr;ay=0x59; P1=ay; // 东西红灯亮30秒 同时南北绿20, turnred=1; }

else if(yellow && turnred) //南北绿灯亮20秒 DG { red=1;yellow=0;ay=0xa6; P1=ay; //南北绿灯亮20秒 ,东西红 second1=dg; turnred=0; }

30

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

} }

/****************************************************** /* 进行南北交通灯的处理

*******************************************************/ void jiao2( )

{ second2--;//南北数码秒减1 if(second2==0) // 交通灯设置 南 北方向 { if(red1) // /南北绿灯亮20秒 NG { red1=0;yellow1=1; second2=ng;ay=0xa6; P1=ay; //南北绿灯亮20秒,东西红 } else if(yellow1 && !turnred1) //南北黄灯亮5秒 NY { yellow1=0;green1=1; second2=ny;ay=0xa6; P1=ay; // 南北黄灯亮5秒,东西红 //一般先为闪再为黄 } else if(green1) { //指示灯反相,可以看到闪烁 yellow1=1;green1=0; second2=5; P1=0x22; //东西红灯亮5秒南北绿,可以到时改为绿灯闪但要与上面换一下 turnred1=1; }

else if(yellow1 && turnred1) //南北红灯亮30秒 NR { red1=1;yellow1=0;ay=0x59; P1=ay;//南北红灯亮30秒 ,东西绿 second2=nr; turnred1=0; } } }

/****************************************************** 开始对时间进行处理

*******************************************************/ void shijian() { second=0; fen++;

if(fen==60) //分加1 { fen=0;


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

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

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

马上注册会员

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