找回密码
 立即注册

QQ登录

只需一步,快速开始

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

keil C51写的单片机倒计时程序时间值怎么改?

[复制链接]
跳转到指定楼层
楼主
ID:434347 发表于 2018-12-3 21:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
求帮忙修改一下KEIL的代码,把单片机倒计时时间修改一下!感谢
这份代码原来应该是东西通行时间为20倒数到1,南北通行时间为15倒数到1,黄灯时间为5倒数到1。
请问怎么把东西通行时间修改成从29倒数到0,南北通行时间修改成从19倒数到0,黄灯显示时间修改成从4倒数到0.
不是很看的懂这份代码呀,希望大家帮下忙,谢谢了

单片机源码:
  1. #include<reg51.h>
  2. #include<intrins.h>
  3. #include"delay.h"
  4. #define uchar unsigned char
  5. #define uint unsigned int
  6. sbit LSA=P1^0;
  7. sbit LSB=P1^1;
  8. sbit LED1=P2^0;
  9. sbit LED2=P2^1;
  10. sbit LED3=P2^2;
  11. sbit LED4=P2^3;
  12. sbit LED5=P2^4;
  13. sbit LED6=P2^5;
  14. #define GPIO_DIG  P0
  15. //#define GPIO_TRAFFIC  P1
  16. uchar code dis_duan[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
  17. uchar dis_buf[4]={0,0,0,0};
  18. uchar n;
  19. uchar i;
  20. uchar Q=45;
  21. uchar miao,miao1;
  22. void display();

  23. void main()
  24. {
  25.         TMOD=0x01;
  26.         IE=0x82;
  27.         TH0=(65536-50000)/256;
  28.         TL0=(65536-50000)%256;
  29.     TR0=1;
  30.         while(1)
  31.         {
  32.            display();
  33.            if(Q==0)
  34.            {Q=45;}
  35.         }
  36.                  
  37. }

  38. void display()
  39. {
  40.    uchar i;            
  41.     if((Q<=45)&&(Q>25))                      //南北通
  42.         {
  43.            miao=Q-30;miao1=Q-25;
  44.            if(miao1<=5){miao=miao1;}
  45.                    dis_buf[0]=miao/10;                         //南北数字
  46.                 dis_buf[1]=miao%10;
  47.                 if(dis_buf[0]==0)
  48.                    {dis_buf[0]=10;}
  49.            for(i=0;i<2;i++)
  50.                 {
  51.                     P1=_crol_(0x71,i);
  52.                     P0=dis_duan[dis_buf[i]];
  53.                     delay_ms(2);
  54.                     P0=0xff;                        
  55.                 }
  56.               dis_buf[2]=miao1/10;            //东西数字
  57.                   dis_buf[3]=miao1%10;
  58.                  if(dis_buf[2]==0)
  59.                    {dis_buf[2]=10;}
  60.               for(i=0;i<2;i++)
  61.                   {
  62.                     P1=_crol_(0x74,i);
  63.                     P0=dis_duan[dis_buf[i+2]];
  64.                     delay_ms(2);
  65.                     P0=0xff;                        
  66.                    }                                                //南北绿灯
  67.                LED3=0;
  68.            LED1=1;
  69.            LED2=1;               
  70.                    LED6=0;
  71.                    LED4=1;
  72.            LED5=1;
  73.             if((Q<=33)&&(Q>30)&&(n%10==0)) //南北绿灯闪烁
  74.                    {
  75.                LED3=~LED3;
  76.                 }
  77.             if((Q<=30)&&(Q>25))
  78.                 {
  79.                LED2=0;
  80.            LED1=1;
  81.            LED3=1;               
  82.                    LED6=0;
  83.                    LED4=1;
  84.            LED5=1;
  85.                
  86.             }
  87.     }
  88.        if((Q<=25)&&(Q>0))                      //东西通
  89.         {
  90.            miao=Q-5;miao1=Q;
  91.            if(miao1<=5){miao=miao1;}
  92.                    dis_buf[0]=miao/10;                         //南北数字
  93.                 dis_buf[1]=miao%10;
  94.                 if(dis_buf[0]==0)
  95.                    {dis_buf[0]=10;}
  96.            for(i=0;i<2;i++)
  97.                 {
  98.                     P1=_crol_(0x71,i);
  99.                     P0=dis_duan[dis_buf[i]];
  100.                     delay_ms(2);
  101.                     P0=0xff;                        
  102.                 }
  103.               dis_buf[2]=miao1/10;            //东西数字
  104.                   dis_buf[3]=miao1%10;
  105.                  if(dis_buf[2]==0)
  106.                    {dis_buf[2]=10;}
  107.               for(i=0;i<2;i++)
  108.                   {
  109.                     P1=_crol_(0x74,i);
  110.                     P0=dis_duan[dis_buf[i+2]];
  111.                     delay_ms(2);
  112.                     P0=0xff;                        
  113.                    }                                                //东西绿灯
  114.                LED1=0;
  115.            LED2=1;
  116.            LED3=1;               
  117.                    LED4=0;
  118.                    LED5=1;
  119.            LED6=1;
  120.             if((Q<=8)&&(Q>5)&&(n%10==0)) //东西绿灯闪烁
  121.                    {
  122.                LED4=~LED4;
  123.                 }
  124.             if((Q<=5)&&(Q>0))
  125.                 {
  126.                LED1=0;
  127.            LED2=1;
  128.            LED3=1;               
  129.                    LED5=0;
  130.                    LED4=1;
  131.            LED6=1;
  132.                
  133.             }
  134.     }
  135. }

  136. void T0_time() interrupt 1
  137. {
  138.           TH0=(65536-50000)/256;
  139.         TL0=(65536-50000)%256;
  140.         n++;
  141.         if(n==20){n=0;miao--;miao1--;Q--;}   
  142. }
复制代码

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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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