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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

交通燈的設計,程序有些許問題,還望大神幫忙

[復制鏈接]
跳轉到指定樓層
樓主
ID:405670 發表于 2018-10-9 11:16 來自手機 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
問題都有:控制東西方向通行時間加一的按鍵按下(或者控制南北方向的按鍵按下)再次啟動后東西方向的數碼管會胡亂顯示數字,比如 35 25 29這樣,然而南北方向的數碼管就不會,可是這兩個按鍵采用的是一樣的編程思想呀,求大神指教,另外想加一個夜間模式,所有黃燈閃爍,還請多多指教。
仿真圖如下
程序如下
#include <reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar code a[10]={                          //數碼管段選表
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f};
uchar code b[4]={0xfe,0xfd,0xfb,0xf7};         //數碼管位碼組合
uchar code c[4]={0xf3,0xf5,0xde,0xfe,};         //綠紅,黃綠,紅綠,紅黃,黃黃
uchar H=5,NB=25,DX=30,NBG=15,DXG=15;
uchar i,k=0,cnt=0,j=0;
sbit K0=P3^4;            //支干道通行     
sbit K1=P3^5;            //主干道通行
sbit K4=P3^6;            //返回
sbit K3=P3^2;            //設置時間
sbit K2=P3^3;            //夜間模式
void delay(uchar t);         //定義延時函數
void key();              //定義按鍵程序
void display();          //定義顯示程序
void settime();          //定義時間設置顯示程序
void init(void)
{                                 //程序初始化
TMOD=0x01;               //使用定時器方式1
TH0=0x3c;                //(65536-5000)/256
TL0=0xb0;                                 //(65536-5000)%256
IT0=1;
ET0=1;
TR0=1;
EA=1;
EX0=1;
EX1=1;
P1=c[k];              //開啟交通燈
}
void delay(uchar t)
{                               //延時函數
uchar i;
for(;t>0;t--)
for(i=0;i<20;i++);
}
void int0(void) interrupt 0  //通行時間設置
{
EA=0;
P1=0xf6;               //紅燈全亮
for(;;)
{
settime();
if(K1==0)            //P3^6=0設置主干道通行時間
   {
delay(40);
if(K1==0)
     {
while(!K1)
{settime();}
DXG++;                                //主干道通行時間加1
if(DXG==100)
DXG=0;
     }
   }
if(K0==0)          //P3^5=0設置支干道通行時間
{
delay(40);
if(K0==0)
{
while(!K0)
{settime();}
NBG++;           //支干道通行時間加1
if(NBG==100)
NBG=0;
}
}
if(K4==0)                //P3^6=0返回
{
delay(40);
if(K4==0)
{
while(!K4)
{
}
k=0;P1=c[k];
NB=NBG;DX=DXG+H;
display();
EA=1;
break;
}
}
}
}

void time1(void) interrupt 1    //交通燈控制程序
{
TH0=0x3c;             //定時50ms
TL0=0xb0;
cnt++;
if(cnt>=20)         //每20*50ms=1s自減1
{
NB--;
DX--;
cnt=0;
if(NB==0||DX==0)
  {
k++;
if(k>3)
k=0;
switch(k)
   {
case 0:
NB=NBG,DX=NBG+H;j=0;P1=c[k];break;     //主干道通行顯示綠紅
case 1:
NB=H;j=1;P1=c[k];break;         //主干道黃燈閃爍
case 2:
NB=DXG+H,DX=DXG;j=0;P1=c[k];break;     //支干道通行顯示紅綠
case 3:
DX=H;j=2;P1=c[k];break;         //支干道黃燈閃爍
   }
  }
}
}
void  key()                                //按鍵程序
{
if(K1==0)                            //主干道有車支干道無車
{  
delay(40);
if(K1==0)                         
   {
while(!K1)
     {  
display();
     }
k=0,P1=c[k];cnt=0;
NB=NBG, DX=NBG+H;
display();
   }
}
if(K0==0)                                            //支干道有車主干道無車
{  
delay(40);
if(K0==0)
   {
while(!K0)
     {
display();
      }
k=2,P1=c[k];cnt=0;
NB=DXG+H,DX=DXG;
display();
        }
}

}
void settime()
{
P2=b[0],P0=a[(NBG+H)%10];                        //顯示主干道通行時間
delay(20);
P2=b[1],P0=a[(NBG+H)/10];
delay(20);
P2=b[2],P0=a[(DXG+H)%10];                        //顯示支干道通行時間
delay(20);
P2=b[3],P0=a[(DXG+H)/10];
delay(20);
}
void display()
{                    //顯示程序
P2=b[0],P0=a[NB%10];
delay(20);
P2=b[1],P0=a[DX/10];
delay(20);
P2=b[2],P0=a[DX%10];
delay(20);
P2=b[3],P0=a[DX/10];
delay(20);
}
void main(void)                                  //主程序
{
init();
for(;;)
{
display();
key();
//黃燈閃爍程序
while(j==1)
//主干道黃燈閃爍
{
P1=0xfd;
for(i=83;i>0;i--){display();}
P1=c[k];
for(i=83;i>0;i--){display();}
}
while(j==2)
//支干道黃燈閃爍
{  
P1=0xef;
for(i=83;i>0;i--){display();}
P1=c[k];
for(i=83;i>0;i--){display();}
}
}
}                                                                                                


2018-10-09_11.14.16.jpg (55.5 KB, 下載次數: 47)

2018-10-09_11.14.16.jpg
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:140489 發表于 2018-10-9 14:55 | 只看該作者
把你的仿真文件發上來,我給你調調
回復

使用道具 舉報

板凳
ID:382454 發表于 2018-10-9 16:56 | 只看該作者
那么多,那么亂,我只能說看到眼花。
回復

使用道具 舉報

地板
ID:405670 發表于 2018-10-10 13:00 來自手機 | 只看該作者
lids 發表于 2018-10-9 14:55
把你的仿真文件發上來,我給你調調

方便加下QQ或者微信么,這學期剛開始學單片機,也是第一次做項目,有的地方不太明白,還希望能多多指教
(QQ:1011520053
微信:18438608208)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久久久久国产精品mv | 成人午夜精品 | 免费看的av | 亚洲精品在线免费观看视频 | 台湾a级理论片在线观看 | 毛片毛片毛片毛片毛片 | 午夜影视 | 天天操网| 国产黄色在线观看 | 亚洲国产精品成人 | 久久久www成人免费无遮挡大片 | 亚洲天堂中文字幕 | 日日网 | 成人h电影在线观看 | 日韩毛片在线免费观看 | 国产综合在线视频 | 精品免费国产视频 | 日本成人中文字幕 | 密室大逃脱第六季大神版在线观看 | 国产精品成人av | 一区二区三区在线 | 欧 | 久久亚洲春色中文字幕久久久 | 亚洲a毛片 | 香蕉视频在线播放 | 亚洲一二三区在线观看 | 成人在线视频一区 | 91资源在线播放 | 日本精品视频在线观看 | 国产精品自拍啪啪 | 亚洲成人二区 | 日本精品一区 | 欧美综合一区二区三区 | 中文字幕一区二区三区精彩视频 | 一区二区三区四区在线 | 欧美日韩视频在线播放 | 欧洲一区在线观看 | 国产精品高潮呻吟久久 | 国产一级电影在线观看 | 欧美性生活一区二区三区 | 国产欧美精品一区二区色综合朱莉 | 成人三级网址 |