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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

剛做的交通燈的程序出現了問題不知道怎么改,求指點

[復制鏈接]
跳轉到指定樓層
樓主
ID:583138 發表于 2019-7-13 08:43 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
sbit Key1 = P3^3;
unsigned char code LedChar[] = {  //數碼管顯示字符轉換表
    0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07,
    0x7F, 0x6F,
};
unsigned char code LedBuff[] = {
0xFF,0xFF
};
unsigned char cnt = 0;
unsigned char sec = 0;
unsigned char cnt200 = 0;  
unsigned int cnt1000 = 0;
void LinghtenLed();
void ShowLed();
void delay();
unsigned char i;
unsigned char buf[2];   //中間轉換緩沖區
void time()
{
TMOD = 0X01;
TH0 = 0xFC;
TL0 = 0x67;
EA = 1;
ET0 = 1;
TR0 = 1;
}
void main()
{
   unsigned char buf[2];   //中間轉換緩沖區
  static unsigned int j;
  while (1)
    {
   if(Key1 == 0)
   {
    EA = 0;
    for(j=0;j<300;j++);
   }
   else
   {
        if (cnt200 >= 200)  //0.2s刷新
        {
            cnt200 = 0;
            LinghtenLed();
        }
        if (cnt1000 >= 1000)  //1s刷新
        {
            cnt1000 = 0;
      sec++;
      P3 = ~0x03;
            ShowLed();
        }
     for (i=1; i>=0; i--)  //從最高為開始,遇到0不顯示,遇到非0退出循環
    {
        if (buf[i] == 0)
            LedBuff[i] = 0x00;
        else
            break;
    }
    for ( ; i>=0; i--)  
      {
        LedBuff[i] = LedChar[buf[i]];
    }
    }
}
}
void LinghtenLed()
{
static unsigned char flag = 0;
if(flag==0)
{
  P0=0x24;
  ShowLed();
  if(sec == 25)
  {

   sec = 0;
   flag = 1;
  }
}
  else if(flag == 1)
  {
   P0=0x90;
   ShowLed();
   if(sec == 20)
   {
    flag = 2;
    sec = 0;
   }
  }
  else if(flag == 2)
  {
   P0 = 0x48;
   ShowLed();
   if(sec == 5)
   {
    flag = 3;
    sec = 0;
   }
   
  }
  else
  {
   P0 = 0xFF;
   ShowLed();
   delay();
   P0 = ~P0;
   flag = 0;
  }
}
void ShowLed()
{
    char i;  
  
    static unsigned long min = 0;  //記錄經過的秒數
   
   min++;
   buf[0]=min%10;
  buf[1]=min/10%10;
   
}
void delay()
{
static unsigned int j;
for(j=0;j<2000;j++);
j=0;
}
/* 定時器0中斷服務函數 */
void InterruptTimer0() interrupt 1
{
    static unsigned char i = 0;   //動態掃描的索引
    TH0 = 0xFC;  //重新加載初值
    TL0 = 0x67;
    cnt200++;
    cnt1000++;
    P2 = 0x00;   
    switch (i)
    {
        case 0:  i++; P2=LedBuff[0]; break;
        case 1:  i++; P2=LedBuff[1]; break;
        default: break;
    }
}



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

使用道具 舉報

沙發
ID:332444 發表于 2019-7-13 09:41 | 只看該作者
回復

使用道具 舉報

板凳
ID:332444 發表于 2019-7-13 09:41 | 只看該作者
回復

使用道具 舉報

地板
ID:282095 發表于 2019-7-13 09:42 | 只看該作者
采用PLC梯形圖編程也能實現交通燈的運行
回復

使用道具 舉報

5#
ID:583390 發表于 2019-7-13 18:05 | 只看該作者
源碼在這

51黑論壇_c源文件.rar

2.33 KB, 下載次數: 8

回復

使用道具 舉報

6#
ID:583138 發表于 2019-7-14 16:12 | 只看該作者
xianfajushi 發表于 2019-7-13 09:41
https://blog.csdn.net/xianfajushi/article/details/80553964

謝謝,代碼簡潔,對我這個初學者幫助很大
回復

使用道具 舉報

7#
ID:583138 發表于 2019-7-14 16:22 | 只看該作者
鵬博士PBs 發表于 2019-7-13 09:42
采用PLC梯形圖編程也能實現交通燈的運行

學習單片機還沒多久,不知道PLC,剛補了一下PLC的介紹,感覺受說的梯形圖中的邏輯關系和元件狀態還不是我所能理解的,也謝謝你的建議
回復

使用道具 舉報

8#
ID:465446 發表于 2019-7-14 18:55 | 只看該作者
unsigned char code LedBuff[]
報錯是因為你對寫到代碼區的數據進行修改,把code去掉就沒錯了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产aa | 欧美三级视频在线观看 | 久草青青草 | 日韩欧美国产成人一区二区 | 日本久久黄色 | 搞av.com| julia中文字幕久久一区二区 | 免费黄色的视频 | 国产精品射| 在线一区二区观看 | 欧美精品二区 | 精品国产伦一区二区三区观看方式 | 亚洲最大福利网 | 日本超碰 | 亚洲国产网站 | 日本中文在线视频 | 精品1区2区 | 天堂免费看片 | 成人国产在线视频 | 午夜精品久久久久99蜜 | 欧美日韩精品一区二区三区四区 | 手机av网| 亚洲第一在线视频 | 亚洲综合色网站 | av在线一区二区三区 | 久草青青草 | 观看av| 亚洲视频在线观看 | 91色在线 | 久久av资源网 | 91夜夜夜| 国产精品美女久久久久久免费 | 美女视频一区 | 国产精品久久精品 | 精品国产乱码久久久久久影片 | 亚洲精品久久久 | 欧美一区不卡 | 亚洲第一成人av | 美女视频黄色片 | 怡红院免费的全部视频 | 亚洲成人在线视频播放 |