求助;51单片机编程问题
搜狐2011/03/09电子技术 IP:河北
       编一倒计时程序,要求计数p3—1  p3-2脚低电平时间 并以倒计时通过p1 p2口led显示出来,倒计时及显示程序都已完成,就是不知道怎么在显示倒计时的同时计数p3-1 p3-2的时间,其实就是倒计时红绿灯的程序,p3-1低电平时红灯亮 并倒计时
p3-2低电平时绿灯亮并倒计时。怎样通过计数p3-1 -2低电平的时间并赋值下一次循环的红 绿的倒计时 时间求各位帮忙。或者有现成成品双色倒计时红绿灯程序的朋友帮一下。谢谢。
来自:电子信息 / 电子技术
4
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
搜狐 作者
13年10个月前 IP:未同步
284789
成品倒计时交通灯 是通过信号机给出P3-1低电平红灯亮 P3-2黄灯亮 P3-3绿灯亮并根据信号机控制的时间自动修正倒计时的时间 我就是不会怎么样根据信号机控制的时间自动修正倒计时的时间。这是我写的手动赋值的程序,怎么根据P3-1,P3-3低电平时间自动赋值Sec。著第二个定时器还没用上。

#include <reg52.h>

typedef   unsigned char  uchar;
typedef   unsigned int   uint;          
          
sbit  r = P3^1;        
sbit  y = P3^2;
sbit  g = P3^3;          
          
bit   control=0;




uchar  Count,Sec,n,numberr,numberg,s,t;

uchar code  LEDData[ ] = {0xdf,0x06,0xbb,0x2f,0x66,0x6d,0xfd,0x07,0xff,0xef,};
  
uchar data  display[4];

char code reserve [3] _at_ 0x3b;  //保留0x3b开始的3个字节

/**********************************************************

延时函数                                            

**********************************************************/
void delayms(uint ms)
{
   uchar t;
   while(ms--)
   {
     for(t = 0; t < 114; t++);
   }
}

/**********************************************************

独立键盘扫描子函数

*********************************************************/
void  keyscan()
{
   P3=0xff;                     //置P1端口为输入
  delayms(1);
                  
   if(P3 !=0xff)                //读P1口
   {
  
          
           if((r|control)==0)
        
          {            
              TR0=1;
              Sec= 18;  
            control=1;
                 if(Sec==0)
             {
            TR0=0;
             }
                
          

           if((g|control)==0)
          {
              TR0=1;          //启动运行
              Sec=14;      
               control=1; }
               if(Sec==0)
        
            {    TR0=0; }
            
             if((y|control)==0)
           {
            TR0=0;
               Sec=0;
                
           }





        }
        
     }
   }


/********************************************************

主函数

*********************************************************/
main()
{
   P1=0x00;
   P2=0x00;
   Count=0x00;
   Sec=0;
   n=0x00;
   numberr=0x00;
   numberg=0x00;
  
   TMOD=0x01;
   TH0=0x4c;           //50ms定时
   TL0=0x00;      
   ET0=1;
  
   T2CON=0x00;         //设置T2CON寄存器        
   TH2=0xfc;           //1ms定时
   TL2=0x66;
   ET1=1;               //启用Timer2中断
   EA=1;               //总中断允许
   TR2=0;
   TR0=0;
                //启动定时器2
  
   while(1)
   {
      keyscan();
     led();
   }
}

/*********************************************************

  Timer0中断函数

**********************************************************/
void Timer0() interrupt 1
{
   TH0=0x4c;                 //50ms定时
   TL0=0x00;
   ++Count;
   if(Count==20)
   {
     Count=0;
     --Sec;            
      
     if(Sec==0)
     {
       TR0=0;
       control=0;
      // P1=0X00;
      // P2=0X00;    
          
     }
   }
}

/*********************************************************

  Timer2中断函数

**********************************************************/
void  timer1() interrupt 5
{
  

                      
   TH2=0xfc;                  
   TL2=0x66;

        
  
}

/**********************************************************

    显示子函数

/**********************************************************/
led()
{
     if(Sec!=0)
      {
            s  = LEDData[Sec/10];    
           t  = LEDData[Sec%10];
          
        if(Sec/10==0)
            {
                s=  0x00;
            }
            
               P1 = s;
            P2 = t;                      
              
        }
  }
/*************************************************************
引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

所属专业
所属分类
上级专业
同级专业
文件下载
加载中...
{{errorInfo}}
{{downloadWarning}}
你在 {{downloadTime}} 下载过当前文件。
文件名称:{{resource.defaultFile.name}}
下载次数:{{resource.hits}}
上传用户:{{uploader.username}}
所需积分:{{costScores}},{{holdScores}}下载当前附件免费{{description}}
积分不足,去充值
文件已丢失

当前账号的附件下载数量限制如下:
时段 个数
{{f.startingTime}}点 - {{f.endTime}}点 {{f.fileCount}}
视频暂不能访问,请登录试试
仅供内部学术交流或培训使用,请先保存到本地。本内容不代表科创观点,未经原作者同意,请勿转载。
音频暂不能访问,请登录试试
支持的图片格式:jpg, jpeg, png
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}