找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8700|回复: 27
收起左侧

单片机智能交通灯完整版 附带车流量统计,时间调整功能 双LCD1602显示

  [复制链接]
回帖奖励 10 黑币 回复本帖可获得 1 黑币奖励! 每人限 1 次
ID:305384 发表于 2019-2-17 15:31 | 显示全部楼层 |阅读模式
智能交通灯完整版双LCD显示附带统计车辆功能
功能:
1.能够完成基本的交通功能并且在lcd1602上显示,用两个lcd1602分别显示信息。
2.能够分别统计南北的车辆。
3.能够根据车流量来调整通行时间。

仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
9N~{XTCG~HW5E14AWI92WLB.png

仿真图

仿真图


二、程序截图:
1.png


2.png

单片机源程序如下:
  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, 下载次数: 288)

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:104982 发表于 2019-3-5 21:55 | 显示全部楼层
做的不错,学习一下
回复

使用道具 举报

ID:99800 发表于 2019-3-10 20:22 | 显示全部楼层
请问这个是PROTEUS哪个版本的?
回复

使用道具 举报

ID:305384 发表于 2019-3-14 20:35 来自手机 | 显示全部楼层
XZC955 发表于 2019-3-10 20:22
请问这个是PROTEUS哪个版本的?

8.6版本
回复

使用道具 举报

ID:491603 发表于 2019-3-15 17:39 | 显示全部楼层
不错,参考一下
回复

使用道具 举报

ID:472050 发表于 2019-3-17 12:51 | 显示全部楼层
多谢分享,找了好久了
回复

使用道具 举报

ID:498758 发表于 2019-3-27 21:32 | 显示全部楼层
虽然看不懂,但是好高级的样子
回复

使用道具 举报

ID:540610 发表于 2019-5-18 12:22 | 显示全部楼层
大佬,是51单片机吗
回复

使用道具 举报

ID:581789 发表于 2019-7-11 08:09 来自手机 | 显示全部楼层
各位大佬,下载了之后要怎么打开才对吖,为什么我打开乱码
回复

使用道具 举报

ID:305384 发表于 2019-8-18 00:16 来自手机 | 显示全部楼层
8686kaixin 发表于 2019-7-11 08:09
各位大佬,下载了之后要怎么打开才对吖,为什么我打开乱码

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

使用道具 举报

ID:282095 发表于 2019-8-18 09:13 | 显示全部楼层
在keil下面运行应该就不会有太大的问题了
回复

使用道具 举报

ID:581300 发表于 2019-8-25 08:47 来自手机 | 显示全部楼层
怎么样可以改一下,不让黄灯一起闪烁呢?
回复

使用道具 举报

ID:91721 发表于 2019-9-19 10:53 | 显示全部楼层
学习一下,这个做出来会不会有人要呀?
回复

使用道具 举报

ID:484951 发表于 2019-9-21 17:34 | 显示全部楼层
为啥我打开乱码!!!
回复

使用道具 举报

ID:617814 发表于 2019-10-8 11:02 | 显示全部楼层
照实例做做试试
回复

使用道具 举报

ID:617814 发表于 2019-10-8 11:03 | 显示全部楼层
看起来有点复杂
回复

使用道具 举报

ID:268524 发表于 2019-12-10 16:54 | 显示全部楼层
学习一下,挺好的
回复

使用道具 举报

ID:583775 发表于 2019-12-21 14:48 | 显示全部楼层
是51的吗
回复

使用道具 举报

ID:665331 发表于 2019-12-22 00:06 来自手机 | 显示全部楼层
不错不错
回复

使用道具 举报

ID:537677 发表于 2019-12-23 09:25 | 显示全部楼层
很不错,值得学习
回复

使用道具 举报

ID:672039 发表于 2019-12-24 09:35 | 显示全部楼层
这个设计非常棒,可以让我理解更深刻
回复

使用道具 举报

ID:720022 发表于 2020-4-10 16:29 来自手机 | 显示全部楼层
xla 发表于 2019-12-24 09:35
这个设计非常棒,可以让我理解更深刻

有原理图吗
回复

使用道具 举报

ID:741483 发表于 2020-5-4 11:55 | 显示全部楼层
做的不错,学习一下
回复

使用道具 举报

ID:487206 发表于 2020-6-15 22:42 | 显示全部楼层
看起来很强大
回复

使用道具 举报

ID:715969 发表于 2020-6-17 09:49 | 显示全部楼层
51黑有你更精彩
回复

使用道具 举报

ID:1093453 发表于 2023-9-13 18:18 | 显示全部楼层
很不错,学习学习
回复

使用道具 举报

ID:1115639 发表于 2024-4-7 15:17 | 显示全部楼层
请问调节时间是自动还是手动,用的什么传感器?
回复

使用道具 举报

ID:166101 发表于 2024-4-11 09:08 | 显示全部楼层
功能强大,楼主厉害,学习学习
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表