久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1580|回復: 0
打印 上一主題 下一主題
收起左側

我的燈在自動顯示函數里能閃爍 但是在另一個子函數就亮不了 不知道怎么回時

[復制鏈接]
跳轉到指定樓層
樓主
ID:420849 發表于 2018-11-15 14:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg51.h>
#include<absacc.h>
sbit  dxr=P1^0; //東西的紅黃綠燈
sbit  dxy=P1^1;
sbit  dxg=P1^2;
sbit  nbr=P1^3;  //南北的紅黃綠燈
sbit  nby=P1^4;
sbit  nbg=P1^5;
sbit  dxdr=P1^6;
sbit  dxdy=P1^7;
sbit  dxdg=P3^7;
sbit  nbdr=P3^6;
sbit  nbdy=P3^5;
sbit  nbdg=P3^4;
sbit k1=P3^0;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
#define   on 0  //燈開   
#define  off 1  //燈關
//#define temp P3
#define uchar unsigned char
#define uint unsigned int
unsigned int  m=0,ss=10,flag,shan;
void delay(unsigned  char ms)//延時函數
{ unsigned int i,j;
for(i=ms;i>0;i--)
for(j=125;j>0;j--);
  
}
unsigned char code c[12]={
0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x00,0xff}; //數碼管的段碼顯示0~9還有全滅和全量兩種情況               
unsigned char code s[4]={0xfe,0xfd,0xfb,0xf7};//數碼管的位碼1~4
void disp(unsigned char a ,unsigned char b) //數碼管顯示程序
{
   if(a+b>0)
{ P2=s[0];  //位碼
P0=c[a];   //段碼
delay(1);
P0=0xff;

P2=s[1];
P0=c[b];
delay(1);
P0=0xff; }
   if(a+b==0) //數碼管為0時不顯示
   { P2=s[0];  //位碼
P0=c[11];   //數碼管不顯示
delay(1);
P0=0xff;
P2=s[1];
P0=c[11];
delay(1);  
P0=0xff;
   }

  
}
void aut() //交通燈自動模式 在這個里面黃燈可以閃爍
{unsigned char a1,a0; //a1,a0為數碼管個位十位  s等待時間
  unsigned int x,i;  //判斷南北紅綠燈切換的條件

    if(m==20& i==0) // i為判斷s等待時間是否到0的條件
                {        m=0;
                        ss--;  if(x%2==0){dxg=on;dxy=off;dxr=off;  // 顯示等待時間時紅黃綠燈暗滅情況
         nbg=off;nby=off;nbr=on;
         dxdg=on;dxdy=off;dxdr=off;
         nbdg=off;nbdy=off;nbdr=on;}
         else {dxg=off;dxy=off;dxr=on;
         nbg=on;nby=off;nbr=off;
          dxdg=off;dxdy=off;dxdr=on;
           nbdg=on;nbdy=off;nbdr=off;
         }   
    }
                  a0=ss%10;
                a1=ss/10;
                disp(a1,a0);   //顯示函數
  
                if(ss==0& m==20)  //到0后數碼管不顯示
                {
                   i++;  //每一秒加一次
                }  
    if(i!=0)
    {  if(i<=3&m==20) //到0后數碼管不顯示3s
                    {        m=0;  if(x%2==0){dxg=off;dxdg=off;
              dxy=on;dxdy=on;delay(3);dxy=off;dxdy=off; //黃燈閃爍
              dxr=off;dxdr=off;   //  數碼管不顯示時,燈的暗滅情況
              nbg=off;nbdg=off;nby=off;nbdy=off;nbdr=on;nbr=on; }
            else {dxg=off;dxdg=off;dxy=off;dxdy=off;dxr=on; dxdr=on;
               nbg=off;nbdg=off;nbdy=on;nby=on;delay(3);nby=off;nbdy=off;  //黃燈閃爍
             nbr=off;nbdr=off;}
                        
                     }
         if(i>3) {ss=10;m=0;i=0;x++;} //當大于3s后循環
               a0=ss%10;
               a1=ss/10;
               disp(a1,a0);
    }      
}
void shanshuo()// 在這里面黃燈閃爍不了
{while(1){nby=~nby;delay(10);
  
  nbg=off;nbdg=off;nbr=off;nbdr=off;
     dxg=off;dxdg=off;dxr=off;dxdr=off;
  //disp(0,0) ;  //讓數碼管滅
   }
   

}
void keyscan()//按鍵掃描
{  if(k1==0)  {delay(2);
       if(k1==0)  
      { flag++;
      aut();while(k1==0);}
     }
     
if(k2==0)  {delay(2);
      if(k2==0){shan++;
    while(k2==0);}
    }
      
}

void main()
{
        TMOD=0x01;
        TR0=1;
        TH0=(65536-50000)/256;// 由于晶振為12,故所記次數應為50000,計時器每隔50000微秒發起一次中斷。
        TL0=(65536-50000)%256;
        ET0=1;
        EA=1;
  
        while(1)
        {keyscan();
     
     if(flag==0)aut();
     if(shan!=0) shanshuo();
     
        }
}
void time0() interrupt 1
{
TH0=(65536-50000)/256;
        TL0=(65536-50000)%256;
        m++;
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 草草网 | 亚洲精品一区av在线播放 | 国产免费av网 | 国产精品99久久免费观看 | 91亚洲精| 国产一级淫片免费视频 | 夜夜夜夜夜夜曰天天天 | 男女视频91 | 欧美综合一区二区三区 | 日韩在线免费播放 | 亚洲免费在线 | 精品久久久久久18免费网站 | 黑人巨大精品欧美一区二区免费 | 亚洲成人中文字幕 | 亚洲国产aⅴ精品 | www.99热这里只有精品 | 一区二区三区久久 | 国精品一区二区 | 久久久久久久亚洲精品 | 国产一区二区三区在线免费观看 | 精品国产乱码久久久久久图片 | 国产精品a免费一区久久电影 | 日韩av网址在线观看 | 一级毛片视频在线 | 免费黄色大片 | 国产成人免费视频网站视频社区 | 国产精品久久久久久久免费观看 | 一区二区高清 | 国内成人免费视频 | 伊人久久综合 | 成人高潮片免费视频欧美 | 亚洲精品中文字幕在线观看 | 国产黄色在线观看 | 欧美在线一二三 | 欧美一级一 | 亚洲天堂av网 | 亚洲视频在线看 | 欧美日韩免费视频 | 91精品国产乱码久久久久久久久 | 99re视频在线| 红色av社区 |