找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4870|回复: 9
打印 上一主题 下一主题
收起左侧

简易交通灯的设计

  [复制链接]
跳转到指定楼层
楼主
ID:103072 发表于 2016-1-25 21:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
加强版红绿灯.rar (70.03 KB, 下载次数: 70)






QQ截图20160125213145.jpg (133.69 KB, 下载次数: 174)

QQ截图20160125213145.jpg

评分

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

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏2 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:103072 发表于 2016-1-25 21:42 | 只看该作者
程序见附件: 交通灯程序.rar (54.29 KB, 下载次数: 22)

以下为部分程序预览:
  1. #include "use.h"
  2. #include "main.h"

  3. uchar code seg_du[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
  4. uchar code seg_we[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
  5. uchar BackupGreen,BackupRed,CopyLight;

  6. void Seg_Display(uchar number,uchar wei)        //数码管动态显示程序
  7. {
  8.         P0=0XFF;
  9.         we=1;
  10.         we=0;
  11.         P0=seg_du[number];
  12.         du=1;
  13.         du=0;
  14.         P0=seg_we[wei];
  15.         we=1;
  16.         we=0;
  17. }
  18. void UrgentScan()                                                    //紧急情况运行扫描
  19. {
  20.         Seg_Display(BackupGreen/10,0);
  21.         Seg_Display(BackupGreen%10,1);
  22.         Seg_Display(BackupRed/10,2);
  23.         Seg_Display(BackupRed%10,3);
  24. }
  25. void SetModel()                                                                //红绿灯设置模式
  26. {
  27.         if(StaSysterm==NormalRun)
  28.         {
  29.                 StaSysterm=ResetGreen;  //状态机
  30.             BackupGreen=GreenTime;
  31.             BackupRed=RedTime;       
  32.                 CopyLight=P2;                        //对数据进行备份
  33.                 P2=0X09;
  34.         }
  35.         else if(StaSysterm==ResetGreen)
  36.         {
  37.             StaSysterm=ResetRed;
  38.         }
  39.         else if(StaSysterm==ResetRed)
  40.         {
  41.                 StaSysterm=NormalRun;
  42.                 P2=CopyLight;                        //恢复数据
  43.         }
  44. }
  45. void ADDTime()                                                            //红绿灯时间加
  46. {
  47.         if(StaSysterm==ResetGreen)
  48.         {
  49.                 BackupGreen++;
  50.                 if(BackupGreen>=BackupRed)           BackupGreen=BackupRed;
  51.         }
  52.         else if(StaSysterm==ResetRed)
  53.         {
  54.             BackupRed++;
  55.         }
  56. }
  57. void SUBTime()                                                                   //红绿灯时间减
  58. {
  59.         if(StaSysterm==ResetGreen)
  60.         {
  61.                 BackupGreen--;
  62.        
  63.         }
  64.         else if(StaSysterm==ResetRed)
  65.         {
  66.             BackupRed--;
  67.                 if(BackupGreen>=BackupRed)           BackupRed=BackupGreen;
  68.         }
  69. }

  70. /****************
  71. void Confirm()                                                                   //备用函数
  72. {
  73.         if(StaSysterm!=NormalRun && StaSysterm!=UrgentRun)
  74.         {
  75.                 GreenTime=BackupGreen;
  76.                 RedTime=BackupRed;
  77.                 StaSysterm=NormalRun;
  78.         }

  79. }
  80. **************/
  81. void UrgentModel()                                                           //紧急模式
  82. {
  83.         if(StaSysterm==NormalRun)
  84.         {       
  85.                 StaSysterm=UrgentRun;
  86.                 CopyLight=P2;                         //对数据进行备份
  87.                 P0=0XFF;
  88.                 we=1;
  89.                 we=0;
  90.         }
  91.         else if(StaSysterm==UrgentRun)
  92.         {       
  93.                 StaSysterm=NormalRun;
  94.                 P2=CopyLight;                           //恢复数据
  95.         }
  96.         else if(StaSysterm==ResetGreen || StaSysterm==ResetRed)
  97.         {
  98.                 StaSysterm=NormalRun;
  99.                 GreenTime=BackupGreen;
  100.             RedTime=BackupRed;                   //重新设置红绿灯时间
  101.         }
  102. }
复制代码


回复

使用道具 举报

板凳
ID:147506 发表于 2016-11-12 12:37 | 只看该作者
很棒的样子。
回复

使用道具 举报

地板
ID:162469 发表于 2017-2-10 19:53 | 只看该作者
路过看看。。
回复

使用道具 举报

5#
ID:189362 发表于 2017-5-3 22:05 | 只看该作者
好东西 !谢谢分享!
回复

使用道具 举报

6#
ID:196280 发表于 2017-5-3 22:51 | 只看该作者
厉害了,符合我的毕业设计呢
回复

使用道具 举报

7#
ID:196488 发表于 2017-5-4 14:29 来自手机 | 只看该作者
毕业设计可以用
回复

使用道具 举报

8#
ID:217098 发表于 2017-7-6 19:23 | 只看该作者
你好,请问在数码管动态显示中:
        we=1;
        we=0;是什么含义,谢谢
       
回复

使用道具 举报

9#
ID:217753 发表于 2017-7-6 22:10 | 只看该作者
nz1 发表于 2016-1-25 21:42
程序见附件:

以下为部分程序预览:

好棒哦
回复

使用道具 举报

10#
ID:247623 发表于 2017-12-7 20:26 | 只看该作者
程序文件编译不成功的,有问题的。
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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