标题: 单片机智能交通灯完整版 附带车流量统计,时间调整功能 双LCD1602显示 [打印本页]

作者: 永动蛇皮车    时间: 2019-2-17 15:31
标题: 单片机智能交通灯完整版 附带车流量统计,时间调整功能 双LCD1602显示
智能交通灯完整版双LCD显示附带统计车辆功能
功能:
1.能够完成基本的交通功能并且在lcd1602上显示,用两个lcd1602分别显示信息。
2.能够分别统计南北的车辆。
3.能够根据车流量来调整通行时间。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)


二、程序截图:





单片机源程序如下:
  1. #include "traffic.h"
  2. #include        "lcdA.h"
  3. #include        "lcdB.h"
  4. bit FLAG=0;
  5. char TIME=0;
  6. void menu()
  7. {
  8.         int i;
  9.         LCD1602_Init_A();
  10.         LCD1602_Init_B();
  11.         while(1)
  12.         {

  13.                 if(FLAG==1)
  14.                                 {
  15.                                                 LCD_Str_A("RUN!  TIME:    S",1,1);
  16.                                                 LCD_Str_B("STOP! TIME:    S",1,1);
  17.                                                 LCD_Str_A("COUNT:",2,1);
  18.                                                 LCD_Str_B("COUNT:",2,1);
  19.                                         for(i=100;i>0;i--)
  20.                                                 {
  21.                                                         LCD_Write_3_Float_A(TIME,1,12);
  22.                                                         LCD_Write_3_Float_B(TIME,1,12);
  23.                                                         LCD_Write_3_Float_A(COUNTA,2,7);
  24.                                                         LCD_Write_3_Float_B(COUNTB,2,7);
  25.                                                         if( !(TIME>=1 && TIME<=5))
  26.                                                         {
  27.                                                                 N_S_GREEN=ON;N_S_RED=OFF;
  28.                                                                 W_E_GREEN=OFF;W_E_RED=ON;
  29.                                                         }
  30.                                                         if(FLAG!=1)
  31.                                                                 break;
  32.                                                 }
  33.                                 }
  34.                 else
  35.                                 {
  36.                                         LCD_Str_A("STOP! TIME:    S",1,1);
  37.                                         LCD_Str_B("RUN!  TIME:    S",1,1);
  38.                                         LCD_Str_A("COUNT:",2,1);
  39.                                         LCD_Str_B("COUNT:",2,1);
  40.                                         for(i=100;i>0;i--)
  41.                                                 {
  42.                                                         LCD_Write_3_Float_A(TIME,1,12);
  43.                                                         LCD_Write_3_Float_B(TIME,1,12);
  44.                                                         LCD_Write_3_Float_A(COUNTA,2,7);
  45.                                                         LCD_Write_3_Float_B(COUNTB,2,7);
  46.                                                         if( !(TIME>=1 && TIME<=5))
  47.                                                         {
  48.                                                                 N_S_GREEN=OFF;N_S_RED=ON;
  49.                                                                 W_E_GREEN=ON;W_E_RED=OFF;
  50.                                                         }
  51.                                                         if(FLAG!=0)
  52.                                                                 break;
  53.                                                 }
  54.                                 }
  55.                                 
  56.                
  57.         }
  58. }


  59. void Timer0Init()
  60. {
  61.         TMOD=0X01;//定时器中断0
  62.         TH0=(65536-15536)/256;//定时时间高八位初值
  63.         TL0=(65536-15536)%256;//定时时间低八位初值
  64.         ET0=1;//开T/C0中断
  65.         TR0=1;
  66.         EA=1;//开CPU中断
  67. }

  68. void timer0( ) interrupt 1 //定时器0工作方式1
  69. {
  70.         static char COUNT_1S=0;
  71.         TH0=(65536-15536)/256;//重装计数初值
  72.         TL0=(65536-15536)%256;//重装计数初值
  73.         COUNT_1S++;
  74.         if(TIME==0)
  75.         {
  76.                 FLAG=!FLAG;
  77.                 if(FLAG==1)
  78.                         TIME=TIME_GREEN;
  79.                 else
  80.                         TIME=TIME_RED;
  81.         }
  82.         if(COUNT_1S==20)
  83.                 {COUNT_1S=0;TIME--;}
  84.         if(TIME>=1 && TIME<=5)
  85.                 {YELLOW=~YELLOW;N_S_GREEN=OFF;N_S_RED=OFF;W_E_GREEN=OFF;W_E_RED=OFF;}
  86.         
  87. }

  88. void ExtiInit()
  89. {
  90.         EX0=1;
  91.         EX1=1;
  92.         IT0=1;
  93.         IT1=1;
  94.         EA=1;
  95. }
  96. ……………………

  97. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
智能交通灯lcd1602显示自动统计车流量调整时间.zip (145.03 KB, 下载次数: 294)




作者: linuxcso    时间: 2019-3-5 21:55
做的不错,学习一下
作者: XZC955    时间: 2019-3-10 20:22
请问这个是PROTEUS哪个版本的?
作者: 永动蛇皮车    时间: 2019-3-14 20:35
XZC955 发表于 2019-3-10 20:22
请问这个是PROTEUS哪个版本的?

8.6版本
作者: 月关Tom    时间: 2019-3-15 17:39
不错,参考一下
作者: xyz1992    时间: 2019-3-17 12:51
多谢分享,找了好久了
作者: .chen.2017    时间: 2019-3-27 21:32
虽然看不懂,但是好高级的样子
作者: 干物弟    时间: 2019-5-18 12:22
大佬,是51单片机吗
作者: 8686kaixin    时间: 2019-7-11 08:09
各位大佬,下载了之后要怎么打开才对吖,为什么我打开乱码
作者: 永动蛇皮车    时间: 2019-8-18 00:16
8686kaixin 发表于 2019-7-11 08:09
各位大佬,下载了之后要怎么打开才对吖,为什么我打开乱码

我已经弄成模板库了直接打开工程就可以

作者: 鹏博士PBs    时间: 2019-8-18 09:13
在keil下面运行应该就不会有太大的问题了
作者: Immortal盲点    时间: 2019-8-25 08:47
怎么样可以改一下,不让黄灯一起闪烁呢?
作者: mao918    时间: 2019-9-19 10:53
学习一下,这个做出来会不会有人要呀?
作者: 纳爱斯牙牙乐    时间: 2019-9-21 17:34
为啥我打开乱码!!!
作者: pengmen    时间: 2019-10-8 11:02
照实例做做试试
作者: pengmen    时间: 2019-10-8 11:03
看起来有点复杂
作者: 喜悦的春天66    时间: 2019-12-10 16:54
学习一下,挺好的
作者: 65797816    时间: 2019-12-21 14:48
是51的吗
作者: 940135    时间: 2019-12-22 00:06
不错不错
作者: zhangyy    时间: 2019-12-23 09:25
很不错,值得学习
作者: xla    时间: 2019-12-24 09:35
这个设计非常棒,可以让我理解更深刻
作者: 245624863255    时间: 2020-4-10 16:29
xla 发表于 2019-12-24 09:35
这个设计非常棒,可以让我理解更深刻

有原理图吗
作者: 逆流的思念ゲ    时间: 2020-5-4 11:55
做的不错,学习一下
作者: 122234    时间: 2020-6-15 22:42
看起来很强大
作者: 王佳怡    时间: 2020-6-17 09:49
51黑有你更精彩
作者: figjdkfgdfkgdfg    时间: 2023-9-13 18:18
很不错,学习学习
作者: 嘉禾望岗    时间: 2024-4-7 15:17
请问调节时间是自动还是手动,用的什么传感器?
作者: xv169    时间: 2024-4-11 09:08
功能强大,楼主厉害,学习学习




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1