|
智能交通灯完整版双LCD显示附带统计车辆功能
功能:
1.能够完成基本的交通功能并且在lcd1602上显示,用两个lcd1602分别显示信息。
2.能够分别统计南北的车辆。
3.能够根据车流量来调整通行时间。
仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
二、程序截图:
单片机源程序如下:
- #include "traffic.h"
- #include "lcdA.h"
- #include "lcdB.h"
- bit FLAG=0;
- char TIME=0;
- void menu()
- {
- int i;
- LCD1602_Init_A();
- LCD1602_Init_B();
- while(1)
- {
- if(FLAG==1)
- {
- LCD_Str_A("RUN! TIME: S",1,1);
- LCD_Str_B("STOP! TIME: S",1,1);
- LCD_Str_A("COUNT:",2,1);
- LCD_Str_B("COUNT:",2,1);
- for(i=100;i>0;i--)
- {
- LCD_Write_3_Float_A(TIME,1,12);
- LCD_Write_3_Float_B(TIME,1,12);
- LCD_Write_3_Float_A(COUNTA,2,7);
- LCD_Write_3_Float_B(COUNTB,2,7);
- if( !(TIME>=1 && TIME<=5))
- {
- N_S_GREEN=ON;N_S_RED=OFF;
- W_E_GREEN=OFF;W_E_RED=ON;
- }
- if(FLAG!=1)
- break;
- }
- }
- else
- {
- LCD_Str_A("STOP! TIME: S",1,1);
- LCD_Str_B("RUN! TIME: S",1,1);
- LCD_Str_A("COUNT:",2,1);
- LCD_Str_B("COUNT:",2,1);
- for(i=100;i>0;i--)
- {
- LCD_Write_3_Float_A(TIME,1,12);
- LCD_Write_3_Float_B(TIME,1,12);
- LCD_Write_3_Float_A(COUNTA,2,7);
- LCD_Write_3_Float_B(COUNTB,2,7);
- if( !(TIME>=1 && TIME<=5))
- {
- N_S_GREEN=OFF;N_S_RED=ON;
- W_E_GREEN=ON;W_E_RED=OFF;
- }
- if(FLAG!=0)
- break;
- }
- }
-
-
- }
- }
- void Timer0Init()
- {
- TMOD=0X01;//定时器中断0
- TH0=(65536-15536)/256;//定时时间高八位初值
- TL0=(65536-15536)%256;//定时时间低八位初值
- ET0=1;//开T/C0中断
- TR0=1;
- EA=1;//开CPU中断
- }
- void timer0( ) interrupt 1 //定时器0工作方式1
- {
- static char COUNT_1S=0;
- TH0=(65536-15536)/256;//重装计数初值
- TL0=(65536-15536)%256;//重装计数初值
- COUNT_1S++;
- if(TIME==0)
- {
- FLAG=!FLAG;
- if(FLAG==1)
- TIME=TIME_GREEN;
- else
- TIME=TIME_RED;
- }
- if(COUNT_1S==20)
- {COUNT_1S=0;TIME--;}
- if(TIME>=1 && TIME<=5)
- {YELLOW=~YELLOW;N_S_GREEN=OFF;N_S_RED=OFF;W_E_GREEN=OFF;W_E_RED=OFF;}
-
- }
- void ExtiInit()
- {
- EX0=1;
- EX1=1;
- IT0=1;
- IT1=1;
- EA=1;
- }
- ……………………
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
智能交通灯lcd1602显示自动统计车流量调整时间.zip
(145.03 KB, 下载次数: 294)
|
评分
-
查看全部评分
|