资源文件夹包含:proteus仿真+原理图;keil编写的C语言程序。
资源链接:加我QQ:1271370903

一、设计要求及内容

该控制系统中,主要由AT89C51单片机芯片、时钟电路、复位电路、数码管显示电路、按键电路、发光二极管LED组成,在正常的情况下东西直行时间为52s运行,黄灯5秒闪烁,东西左转绿灯61秒,最后黄灯5秒闪烁;接着南北直行时间为70s运行,黄灯5秒闪烁,南北左转绿灯64秒,最后黄灯5秒闪烁,依次循环。在遇到特殊交通情况时,需要交通控制人员人工控制系统的运行,通过按键的方式,对系统的指示作出调整。这时复位电路和按键电路都会通过AT89C51单片机的作用,把信号传递给驱动电路,驱动电路控制把信号显示在LED电路中,LED电路又会把信号传递给复位电路,进而实现循环形式的系统控制过程。

二、仿真器件清单

单片机,排阻,发光二极管 ,晶振 ,电容 ,电阻 ,按键 ,数码管,等,网络标号导线

三、组成

1、最小应用系统
单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机可以工作的系统。
2.晶振电路即时钟电路,是AT89C51单片不可或缺的电路,在其工作运行时它起到控制信号的作用。时钟信号对单机片内部电路的影响极大,在它的作用下,单片机会遵循基本的设计原则通过时序指令完成工作。本设计通过数据的分析采用频率为12MHz的晶振,22pF的电容。
3.单片机小系统采用上电自动复位和手动按键复位两种方式实现系统的复位操作。所谓复位电路,就是在AT89C51的引脚RET端接入的一个能产生复位信号的电路。单片机在进行工作的同时,把关于内部的数据恢复到原来的参数。
数码管时间显示电路
4、数码管
共阴极数码管是把所有LED的阴极连接到共同接点COM,而每个led的阳极分别为A、B、C、D、E、F、G及DP(小数点),如下图所示。图3-8中的8个led分别与A~DP各段相对应,通过控制各个led的亮灭来显示数字。
5、驱动电路
数码管显示模块采用2位8段LED共阴数码管。数码管的段码线与单片机P0口相连。为了让数码管的显示更加明显,采用一个驱动模块来驱动数码管,驱动模块由4个NPN管和4个10K的电阻组成。由于对面的数码管的显示是相同的,所以将相对的数码管的位选端接在一起,当需要显示数字时同时选中个位或十位,实现同时显示。其中数码管的显示用到了74HC573锁存器,数码管的段选端连在锁存器的输出端,东西南北的数码管一共用了四个,并连接在第二个锁存器的输出端。锁存器作用是可以把数据输入端与输出端进行隔离或连接。
U2为段选锁存器,U3为位选锁存器。由于是共阴极数码管,当数码管亮起时位选端的电流为几个LED的电流之和,设每个数码管段的驱动电流为10ma—15ma,则位选端的电流会很大,如果直接导入锁存器的引脚可能会损坏引脚或减小锁存器的寿命。为了减小导入锁存器引脚的电流,采用三极管将位选端的大部分电流导入GND,极小的电流会导入锁存器的引脚,从而解决了该问题。
本文采用PNP三极管作为驱动器驱动数码管的显示,由于每个发光二极管额定电流3-10UA,故在电路中加限流电阻,经计算取该电阻为 330欧姆。
其中U2的输出端直接接在数码管上时可能会产生较大的电流,使数码管段烧毁,所以需要串联一个限流电阻。
6.根据数码管的驱动方式不同,可以分为静态显示和动态显示两类。
本次设计采用的是动态显示驱动,数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔段同名端连在一起,另外为每个数码管的公共极 COM增加位选通控制电路,位选通有各自独立的I/O线控制,当单片机输出字型码时,所有数码管都接收到相同的字型码,但究竟是哪个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,改为就显示出字形,没有选通的数码管就不会亮。通过分时轮流控制各个数码管的点亮时间为1~2毫秒,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上个位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态是一样的,能够节省大量的T门端口.而日功耗更低。
7、倒计时模块由4个8位数码管来显示等待或者通行时间。为了数码管的倒计时为准确倒计时,所以不能采用平时的delay方法,而是要用更精确的定时器来实现倒计时。在定时器T0中断中的主要工作是将数码管要显示的数字变量每隔一秒自减,然后根据情况使显示数字变量做相应的变化。
8.信号灯电路
我们在设计初时已给出红绿灯变化的规则:东西直行时间为52s运行,黄灯5秒闪烁,东西左转绿灯61秒,最后黄灯5秒闪烁;接着南北直行时间为70s运行,黄灯5秒闪烁,南北左转绿灯64秒,最后黄灯5秒闪烁,依次循环。
交通灯信号显示模块,采用红黄绿三种LED灯模拟十字路口的交通灯。信号灯电路的设计通过AT89C51单片机P1端口的指示,芯片会控制16个发光二极管的信号模式。东西方向的红、黄、绿、左转绿灯分别接到单片机的P1.3、P1.4、P1.5、P1.8,南北方向的红、黄、绿、左转绿灯分别接到单片机的P1.0、P1.1、P1.2、P1.6。
9.功能按键电路
在实际道路交通中,一定会出现紧急的交通情况,这时系统很难对现场的交通情况进行指挥,这时就需要根据实时交通堵塞情况,进行人为系统控制模式。交通人员可以一边观察一边控制,使系统的控制开关可以起到作用,并能使交通恢复当时适应的状态。
为了让交通灯实现基础的功能之外还增加了其他控制功能,而这些其他功能按键组在一起新的电路。该项目一共使用了二个按键,每一个按键都对应一个特定的功能。如第一个按键(夜间模式):此按键按下时,关闭定时器,改变显示标志位,关闭数码管,并在while循环中判断此按键,实现黄灯闪烁。第二个按键(紧急模式):此时四个方向的红灯都亮起。
为了节省按键占用的I/O口,也为了去除查询按键的时间占用,减轻CPU的负担,所以按键使用外部中断的方式,通过74LS148扩展中断。此时只需要使用三个I/O口,使用中断的好处是只有触发中断时程序才回去执行按键功能,增加了程序运行的效率。
四、整体仿真图
1.

2、程序流程

3.黄灯模式

4.紧急模式

5.正常模式

五、部分代码

sbit dula=P3^6;   //段选锁存器锁存端
sbit wela=P3^7;      //位选锁存器锁存端
sbit EW=P1^4;   //东西黄灯
sbit SN=P1^1;  //南北黄灯char time1=52;  //初值东西
char time2=52;  //初值55秒
char huang=5;  //黄灯时间
char time11=70,time22=70; //南北时间70s
char zzz=61,aaa=64;     //东西,南北左转时间
char t1=60,t2=60,chose=0;uchar time1_2,temp=0,p=0,tab;
uchar shi1,ge1,shi2,ge2,q;
uchar status,key,flag;
uchar zhuangtai_flag=0;//共阴极数字显示编码
uchar code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
uchar code wei[]={0xfd,0xfe,0xf7,0xfb,0xdf,0xef,0x7f,0xbf}; //位选void delay(uint x)
{uint i,j;for(i=x;i>0;i--)          //定时x毫秒for(j=110;j>0;j--);
}
void display(uint ge1,uint shi1,uint ge2,uint shi2) //数码管显示
{//显示北wela=1; //打开位选锁存器P0=wei[0]; //送入位选码(北个位)wela=0; //关闭位选锁存器P0=0;  //消影dula=1; //打开段选锁存器P0=table[ge1]; //送入段选dula=0;    //关闭段选锁存器delay(1);wela=1; //打开位选锁存器P0=wei[1]; //送入位选码(北十位)wela=0; //关闭位选锁存器P0=0;dula=1; //打开段选锁存器P0=table[shi1]; //送入段选dula=0; //关闭段选锁存器delay(1);//显示东西wela=1; //打开位选锁存器P0=wei[2];   //送入位选码(东个位)wela=0; //关闭位选锁存器P0=0;dula=1; //打开段选锁存器P0=table[ge2];dula=0; //关闭段选锁存器delay(1);wela=1; //打开位选锁存器P0=wei[3]; //送入位选码(东十位)wela=0; //关闭位选锁存器P0=0;  dula=1; //打开段选锁存器P0=table[shi2];dula=0;  //关闭段选锁存器delay(1);
}
void key1_6()
{   void dis(); //第一个按键(夜间模式)if(key==3){p=1;TR0=0;if(p)dis();  //不显示函数P1=0x12    ;while(1){P1=0x00;delay(800);P1=0x12  ;delay(800);}}if(key==6){temp=0;  //计数值清零p=0;TR0=1;  //定时器0开始计时}//第二个按键if(key==7)    //红灯全亮{time1=0;time2=0;temp=0;    //计数值清零p=0;TR0=0;P1=0x09;}}void dis()
{wela=1;P0=0xff;wela=0;
}    void zhuangtai1()
{P1=0x21;  //刚开始东西通,南北禁行if(time1<0){     time1=huang;       //东西黄灯时间准备time2=huang;zhuangtai_flag=1;       //转状态}}
void main()
{P1=0x21;  //刚开始东西通,南北禁行TMOD=0x01;TH0=(65535-10000)/256;TL0=(65535-10000)%256;   //初值EA=1;     //打开总中断ET0=1;      //定时器0允许中断TR0=1;       //定时器0开始计时EX0=1;       //外部中断0允许位IT0=1;       //外部中断0触发方式(下降沿)while(1){if(flag){switch(status)        //判断按键{case 0xfc:key=3;break;case 0xf9:key=6;break;case 0xf8:key=7;break;}key1_6();   //按键程序flag=0;}   if(!p){shi1=time1/10;  //南北十位ge1=time1%10;    //南北个位shi2=time2/10;   //东西十位ge2=time2%10;    //东西个位  display(ge1,shi1,ge2,shi2); //显示函数}

基于单片机的十字路口交通灯设计(带左转、紧急、夜间模式且每个绿灯后都有黄灯二)相关推荐

  1. 基于单片机的十字路口交通灯课程设计

    1.设计要求: 设计一个十字路口交通灯控制器.用单片机控制LED灯模拟指示.模拟东西方向的十字路口交通信号控制情况.东西向通行时间为80s,南北向通行时间为60s,缓冲时间为3s. 2.设计思路: 通 ...

  2. 基于51单片机的十字路口交通灯系统

    1 设计名称 基于51单片机的十字路口交通灯系统(C语言.Proteus开发环境) 2 设计要求 1. 基于51系列单片机设计一个十字路口交通灯控制系统,用于模拟道路十字路口交通灯实际运行的场景. 2 ...

  3. J015基于AT89C51的十字路口交通灯紧急+夜间

    基于AT89C51的十字路口交通灯紧急+夜间 仿真图proteus 7.8 程序编译器:keil 4/keil 5 编程语言:C语言 编号J015 目录标题 基于AT89C51的十字路口交通灯紧急+夜 ...

  4. 【毕业设计】基于PLC的十字路口交通灯控制系统设计【仿真+源码+论文】

    摘 要 本次设计的课题是基于PLC的十字路口交通灯控制系统设计,传统的十字路口交通灯多采用单片机集成电路作为控制系统,单片机系统虽然在功能上能够实现十字路口交通灯的各种控制需求,但是单片机控制系统在设 ...

  5. 基于Verilog的十字路口交通灯控制电路设计

    基于Verilog的十字路口交通灯控制电路设计 一.设计要求 二.设计方案 三.电路原理图 四.代码实现 1. Verilog代码: 2. Testbench代码 五.仿真结果 一.设计要求 设计并实 ...

  6. 基于Proteus仿真的交通信号灯设计——利用汇编语言实现

    基于Proteus仿真的交通信号灯设计--利用汇编语言实现 文章目录 基于Proteus仿真的交通信号灯设计--利用汇编语言实现 设计要求 基本信息 交通状态 电路仿真原理图 电路总体布局 复位电路 ...

  7. 基于单片机病房呼叫系统数码管显示房号设计-基于单片机工业生产现场的光照强度控制设计-基于单片机多功能智能台灯设计-基于单片机二维码LCD显示设计-基于单片机多功能时钟闹钟万年历控制系统设计【毕设分享】

    1641基于单片机病房呼叫系统数码管显示房号设计 设计思路:此设计实现的功能通过按键模拟房号,当按键按下时会将房号编号发送到数目管上进行显示,并通过声光进行提示.包含的电路有:数码管显示电路.按键电路 ...

  8. 基于单片机的八层电梯设计

    设计简介: 本设计是基于单片机的八层电梯设计,主要实现以下功能: ①可实现通过内机按键和外机按键控制电梯到达楼层 ②可实现通过一个四相步进电机控制电梯升降,另一个四相步进电机控制电梯开关门 ③可实现通 ...

  9. 基于单片机的智能宠物喂食器设计

     word完整版可点击如下下载>>>>>>>> 基于单片机的智能宠物喂食器设计-硬件开发文档类资源-CSDN下载内容包括详细设计文档word版,附带开题 ...

最新文章

  1. 《深入理解Java虚拟机》(第二版)学习2:垃圾收集算法
  2. 剑指offer_第19题_顺时针打印矩阵_Python
  3. buildroot管理uboot+kernel+rootfs
  4. HTTPS协议,SSL协议及完整交互过程
  5. MSM8974 fastboot烧写软件
  6. 什么是缓存一致性问题?如何解决呢?
  7. 如何将 image 转成 base64 字符串?
  8. java 创建以太坊代币_以太坊 (五)编写智能合约-建立简易加密代币
  9. 隐私与AI兼得,蚂蚁金服是如何做到的?
  10. 实力分享,聚焦分布式高可用消息队列
  11. Linux从初学到精通
  12. 资源 | 这套1600赞的NLP课程已开放,面向实战,视频代码都有
  13. NGN学习笔记6——NGN的业务提供技术
  14. layer数据加载中,loading的显示
  15. MacOS Monterey 12.2 (21D49) OC 0.7.8 / Cl 5143 / PE 三分区原版黑苹果镜像
  16. 【第8题】求 s=a+aa+aaa+aaaa+aa...a 的值
  17. 服务器Raid数据恢复,磁盘阵列数据恢复,raid 5数据恢复算法原理
  18. 字节跳动大数据中心17万服务器硬实力支撑今日头条等产品线(公号回复“字节跳动”下载PDF典型资料,欢迎转发、赞赏支持科普)
  19. 免费拥有个人云主机——AWS免费EC2套餐
  20. 将字符串中的特殊字符进行转义

热门文章

  1. 视频格式那么多,MP4/RMVB/MKV/AVI 等,这些视频格式与编码压缩标准 mpeg4,H.264.H.265 等有什么关系?...
  2. ActivityNet 2018介绍
  3. scratch一级考纲
  4. 会员通系统:如何利用微信公众号/个人号做线上线下整合营销?
  5. 7 客户端认证方式 之 client_secret_jwt
  6. 绕过AMSI详细指南:如何利用DLL hijack轻松绕过AMSI
  7. [work] 如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】
  8. 查询服务器硬盘上电时间,鲁大师检测硬盘通电时间怎么操作?检测硬盘通电时间教程...
  9. 摄像模组中光学相关知识(三)
  10. spi sync async