标题: 简易交通灯的设计 [打印本页]

作者: nz1    时间: 2016-1-25 21:42
标题: 简易交通灯的设计
加强版红绿灯.rar (70.03 KB, 下载次数: 70)






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

QQ截图20160125213145.jpg

作者: nz1    时间: 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. }
复制代码



作者: 907445055    时间: 2016-11-12 12:37
很棒的样子。
作者: 51SCM    时间: 2017-2-10 19:53
路过看看。。
作者: 汕头皇帝    时间: 2017-5-3 22:05
好东西 !谢谢分享!
作者: huzhixin    时间: 2017-5-3 22:51
厉害了,符合我的毕业设计呢
作者: 100086    时间: 2017-5-4 14:29
毕业设计可以用
作者: jhy123    时间: 2017-7-6 19:23
你好,请问在数码管动态显示中:
        we=1;
        we=0;是什么含义,谢谢
       
作者: 文丽    时间: 2017-7-6 22:10
nz1 发表于 2016-1-25 21:42
程序见附件:

以下为部分程序预览:

好棒哦

作者: yilinghai    时间: 2017-12-7 20:26
程序文件编译不成功的,有问题的。




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