找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 19823|回复: 39
收起左侧

AT89C51单片机十字路口交通灯设计(仿真、keil源代码以及实物图)

  [复制链接]
ID:312573 发表于 2018-5-7 10:09 | 显示全部楼层 |阅读模式
制作出来的实物图如下:
洞洞板实物图.jpg

这是一个十字路口的交通灯设计仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

仿真

仿真


keil单片机源程序如下:

  1. /*****************************************************
  2. *   王瑾毕设-交通灯
  3. *
  4. *
  5. *
  6. *****************************************************/
  7. #include<include.h>

  8. sbit NS_GRE = P2^5;      
  9. sbit NS_YEL = P2^4;
  10. sbit NS_RED = P2^3;   
  11. sbit EW_GRE = P2^2;  
  12. sbit EW_YEL = P2^1;  
  13. sbit EW_RED = P2^0;   



  14. uint8  EW_Timer = unused8;  //东西方向红灯定时器
  15. uint8  NS_Timer = unused8;  //南北方向红灯定时器
  16. uint8  YEL_Timer = unused8; //黄灯 5s定时器

  17. int main(void)
  18. {

  19.     Timer_Init();    //定时器初始化
  20.     INT0_Init();     //外部中断初始化   
  21.     EA=1;            //打开全局中断
  22.    
  23.     NS_GRE = OFF;    //所有的灯都灭   
  24.     NS_YEL = OFF;
  25.     NS_RED = OFF;   
  26.     EW_GRE = OFF;  
  27.     EW_YEL = OFF;  
  28.     EW_RED = OFF;   
  29.     P3 = 0xFF;      //所有显示灭

  30.     //先让东西方向红灯亮 南北方向通行
  31.     EW_Timer = EWTime_Count;//东西方向开始计时

  32.     while(1)
  33.     {
  34.            
  35.            if((EW_Timer != unused8) && (EW_Timer != 0)){ //东西方向做红灯倒计时
  36.                 display1(EW_Timer/10, EW_Timer%10);      //东西方向显示时间 南北方向不显示
  37.                 EW_RED_ON();                             //东西方向保持红灯
  38.                 NS_GRE_ON();                             //南北方向保持绿灯
  39.            }
  40.            else if((EW_Timer != unused8) && (EW_Timer == 0) && (YEL_Timer == unused8)){//东西方向红灯计时到 东西方向保持红灯 南北方向变黄灯 开始黄灯5s计时
  41.                 EW_RED_ON();                             //东西方向红灯
  42.                 NS_YEL_ON();                             //南北方向黄灯
  43.                 YEL_Timer = YELTime_Count;               //5s计时
  44.            }
  45.            if((EW_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){
  46.                 display1(YEL_Timer/10, YEL_Timer%10);    //东西方向显示时间 南北方向不显示
  47.            }
  48.            if((EW_Timer != unused8) && (YEL_Timer == 0)){    //东西方向红-南北方向黄灯5s计时到 东西红灯定时器关 黄灯定时器关 南北红灯 东西绿灯 南北计时器开
  49.                 EW_Timer = unused8;                      //东西红灯定时器关
  50.                 YEL_Timer = unused8;                     //黄灯定时器关
  51.                 NS_RED_ON();                             //南北变红灯
  52.                 EW_GRE_ON();                             //东西变绿灯
  53.                 NS_Timer = NSTime_Count;                 //南北红灯定时器开
  54.            }



  55.            if((NS_Timer != unused8) && (NS_Timer != 0)){ //南北红灯定时器正在计时
  56.                 display2(NS_Timer/10, NS_Timer%10);      //南北方向显示时间 东西方向不显示
  57.                 EW_GRE_ON();                             //东西保持绿灯
  58.                 NS_RED_ON();                             //南北保持红灯
  59.            }
  60.            else if((NS_Timer != unused8) && (NS_Timer == 0) && (YEL_Timer == unused8)){ //南北方向红灯计时到 南北方向保持红灯 东西方向变黄灯 开始黄灯5s计时
  61.                 NS_RED_ON();                             //南北方向保持红灯
  62.                 EW_YEL_ON();                             //东西方向变黄灯
  63.                 YEL_Timer = YELTime_Count;               //5s计时
  64.            }
  65.            if((NS_Timer != unused8) && (YEL_Timer != unused8) && (YEL_Timer != 0)){   
  66.                 display2(YEL_Timer/10, YEL_Timer%10);   //南北方向显示时间 东西方向不显示
  67.            }
  68.            if((NS_Timer != unused8) && (YEL_Timer == 0)){  //南北方向红-东西方向黄灯5s计时到 南北方向定时器关 黄灯定时器关 东西方向变红灯 南北方向变绿灯 东西方向红灯计时器开始计时
  69.                 NS_Timer = unused8;
  70.                 YEL_Timer = unused8;
  71.                 EW_RED_ON();                           //东西方向变红灯
  72.                 NS_GRE_ON();                           //南北方向变绿灯
  73.                 EW_Timer = EWTime_Count;               //东西方向开始计时
  74.            }


  75.            if(Flag_Key == 1){        //如果急停按键按下 则全红灯 显示灭
  76.                 P3 = 0xFF;           //所有显示灭
  77.                 EW_RED_ON();         //东西方向红灯
  78.                 NS_RED_ON();         //南北方向红灯
  79.                
  80.                 EW_Timer = unused8;  //关闭所有定时器
  81.                 NS_Timer = unused8;
  82.                 YEL_Timer = unused8;
  83. ……………………

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

所有资料51hei提供下载:
基于AT89C51的十字路口交通灯设计.zip (1.31 MB, 下载次数: 1085)

评分

参与人数 3黑币 +60 收起 理由
KaKaaaaa + 5 赞一个!
花落雨 + 5 共享资料的黑币奖励!
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:406166 发表于 2018-11-19 19:29 | 显示全部楼层
谢谢,很好用
回复

使用道具 举报

ID:431149 发表于 2018-11-22 13:52 | 显示全部楼层
试试看,支持楼主
回复

使用道具 举报

ID:458813 发表于 2018-12-30 23:18 | 显示全部楼层
谢谢楼主 我会仔细学习的
回复

使用道具 举报

ID:573727 发表于 2019-7-8 22:02 | 显示全部楼层
请教 您的数字显示器是什么型号的?  淘宝网类型很多

还具体的分为 共阴 和 共阳  两类。。。谢谢了
回复

使用道具 举报

ID:582432 发表于 2019-7-11 16:55 | 显示全部楼层
谢谢楼主,正发愁的说
回复

使用道具 举报

ID:582432 发表于 2019-7-11 19:15 | 显示全部楼层
这用的是共阴极的数码管么,我想知道复位电路还有时钟电路的设计是不是都是一样的哇
回复

使用道具 举报

ID:603072 发表于 2019-8-26 15:42 | 显示全部楼层
谢谢 很不错
回复

使用道具 举报

ID:610734 发表于 2019-9-12 09:57 | 显示全部楼层
感谢楼主
回复

使用道具 举报

ID:617818 发表于 2019-9-29 09:05 | 显示全部楼层
优秀,必须得赞
回复

使用道具 举报

ID:620329 发表于 2019-10-8 08:58 | 显示全部楼层
很好啊
回复

使用道具 举报

ID:633996 发表于 2019-11-1 18:17 | 显示全部楼层
谢谢楼主
回复

使用道具 举报

ID:633996 发表于 2019-11-3 18:53 来自手机 | 显示全部楼层
谢谢了(^~^)
回复

使用道具 举报

ID:634898 发表于 2019-11-3 20:28 | 显示全部楼层
很实用  谢谢楼主
回复

使用道具 举报

ID:654517 发表于 2019-12-2 19:47 | 显示全部楼层
verygood
回复

使用道具 举报

ID:657987 发表于 2019-12-8 11:09 | 显示全部楼层
感谢感谢
回复

使用道具 举报

ID:657987 发表于 2019-12-8 11:10 | 显示全部楼层
太谢谢楼主 但是代码放进仿真怎么用不了
回复

使用道具 举报

ID:676526 发表于 2019-12-29 12:33 | 显示全部楼层
感谢提供参考
回复

使用道具 举报

ID:757513 发表于 2020-5-21 16:29 | 显示全部楼层
nice 很好
回复

使用道具 举报

ID:726998 发表于 2020-5-29 15:24 | 显示全部楼层
很好用,内容全面,程序讲解详细,作者太厉害了
回复

使用道具 举报

ID:768216 发表于 2020-6-3 10:59 来自手机 | 显示全部楼层
有下载的吗。参考一下
回复

使用道具 举报

ID:669432 发表于 2020-6-4 19:21 | 显示全部楼层
下载看看 嘻嘻嘻
回复

使用道具 举报

ID:780697 发表于 2020-6-16 10:06 | 显示全部楼层
这个是共阴还是共阳啊
回复

使用道具 举报

ID:765181 发表于 2020-6-16 11:07 来自手机 | 显示全部楼层
谢谢楼主,期末实验有着落了,但貌似代码超出了我的知识范畴
回复

使用道具 举报

ID:783033 发表于 2020-6-18 11:43 | 显示全部楼层
这个可以呀
回复

使用道具 举报

ID:783079 发表于 2020-6-18 12:22 | 显示全部楼层
挺好用
回复

使用道具 举报

ID:789675 发表于 2020-6-25 22:27 | 显示全部楼层
谢谢,楼主很厉害。
回复

使用道具 举报

ID:789179 发表于 2020-6-26 11:24 | 显示全部楼层
很不错
回复

使用道具 举报

ID:592703 发表于 2020-6-26 16:14 | 显示全部楼层
优秀,必须得赞
回复

使用道具 举报

ID:849795 发表于 2020-11-28 09:14 | 显示全部楼层
程序是可以执行的吗?
回复

使用道具 举报

ID:850624 发表于 2020-11-28 12:13 | 显示全部楼层
内容很实用
回复

使用道具 举报

ID:858736 发表于 2020-12-13 12:06 | 显示全部楼层
有PCB原理封装图吗
回复

使用道具 举报

ID:841604 发表于 2020-12-13 14:37 | 显示全部楼层
内容很实用
谢谢楼主
回复

使用道具 举报

ID:639102 发表于 2020-12-16 00:23 | 显示全部楼层
谢谢up,有很大收获
回复

使用道具 举报

ID:62553 发表于 2021-5-4 17:58 | 显示全部楼层
谢谢楼主的共享   谢谢
回复

使用道具 举报

ID:918313 发表于 2021-5-10 18:18 | 显示全部楼层
谢谢,过程很详细,内容清晰易懂
回复

使用道具 举报

ID:1023528 发表于 2022-5-3 15:35 | 显示全部楼层
谢谢楼主感谢,很实用
回复

使用道具 举报

ID:1013575 发表于 2022-5-6 20:48 | 显示全部楼层
大佬 你光有程序 没有图 proteus仿真实验图
回复

使用道具 举报

ID:262 发表于 2022-5-7 04:17 | 显示全部楼层
元宝66 发表于 2022-5-6 20:48
大佬 你光有程序 没有图 proteus仿真实验图

看到没,这个就仿真,这个贴有好几年了,那时候估计是用的Proteus7.5版本
51hei.png
回复

使用道具 举报

ID:67312 发表于 2022-5-17 10:27 | 显示全部楼层
谢谢分享,收藏了
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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