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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機流水燈循環點亮的同時按下按鍵可以控制數碼管顯示數值程序問題

[復制鏈接]
跳轉到指定樓層
樓主
初學單片機想問下大神。
項目上要求,開關開啟后LED流水燈要循環點亮,同時按下按鍵可以控制數碼管顯示數值
我找了網上好多資料,掃描鍵盤用的是while 死循環,可是開關開啟后LED的循環閃躍也是用的while死循環,
他們同時出現在主函數main()中肯定是無法運行的,想知道有沒有什么辦法可以讓LED或是按鍵掃描中的一個,不用死循環也能達到運行效果;
主函數單片機代碼如下,求大神解答

void main()
{
      
        while(1)
        {
                Key_Proc();//按鍵判斷
                Seg_Proc();//數據采集及轉換,用于數據顯示
        }
        while(1)
        {
                led_Disp(0X01);//反復使用延時函數
                Delaynms(500);
                led_Disp(0X02);
                Delaynms(500);
                led_Disp(0X04);
                Delaynms(500);
                led_Disp(0X08);
                Delaynms(500);
                led_Disp(0X10);
                Delaynms(500);
                led_Disp(0X20);
                Delaynms(500);
                led_Disp(0X40);
                Delaynms(500);
                led_Disp(0X80);
                Delaynms(500);
        }

}

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

使用道具 舉報

沙發
ID:86926 發表于 2020-11-10 09:37 | 只看該作者
都放在一個死循環里,延時用一個1ms的或者更小的,用計數的方法來累計延時,其中把掃描按鍵以及數碼管加進去。或者用定時器中斷,定時掃描按鍵。
回復

使用道具 舉報

板凳
ID:213173 發表于 2020-11-10 11:21 | 只看該作者
程序在絕大多數情況下都得跑起來,不可以隨便使用死循環和阻滯延時。雖然指令是逐條執行的,但由于單片機速度很快,主觀感覺許多任務在同時執行。給你一個流水燈和數碼管動態顯示的簡單示例參考。仿真圖只代表邏輯正確,完善后才能用于實際電路。

  1. #include<reg51.h>
  2. unsigned char code table[]={//共陰數碼管段碼"0~f-."
  3.                 0x3f,0x06,0x5b,0x4f,
  4.                 0x66,0x6d,0x7d,0x07,
  5.                 0x7f,0x6f,0x77,0x7c,
  6.                 0x39,0x5e,0x79,0x71,0x40,0x80};
  7. unsigned char code wela[8]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//位碼
  8. unsigned char data dis_buf[8];//顯示緩存
  9. unsigned int i,j,k,l;//計數變量
  10. void main()
  11. {
  12.         P1=0xfe;//流水燈初始化
  13.         while(1)
  14.         {
  15.                 //i,j,k計數
  16.                 i++;
  17.                 if(i>=1000)
  18.                 {
  19.                         i=0;
  20.                         j++;
  21.                         if(j>9999)
  22.                         {
  23.                                 j=0;
  24.                                 k++;
  25.                                 if(k>9999)
  26.                                         k=0;
  27.                         }
  28.                         //流水燈
  29.                         P1=P1<<1|0x01;
  30.                         if(P1==0xff)
  31.                                 P1=0xfe;
  32.                 }
  33.                 //分解數據
  34.                 dis_buf[0]=table[k/1000%10];
  35.                 dis_buf[1]=table[k/100%10];
  36.                 dis_buf[2]=table[k/10%10];
  37.                 dis_buf[3]=table[k%10];
  38.                 dis_buf[4]=table[j/1000%10];
  39.                 dis_buf[5]=table[j/100%10];
  40.                 dis_buf[6]=table[j/10%10];
  41.                 dis_buf[7]=table[j%10];
  42.                 //數碼管動態顯示
  43.                 P0=0x00;//消隱段碼
  44.                 P2=wela[l];//位碼
  45.                 P0=dis_buf[l];//段碼
  46.                 l++;//數碼管動態計數
  47.                 if(l>=8)
  48.                         l=0;
  49.         }
  50. }
復制代碼



回復

使用道具 舉報

地板
ID:841085 發表于 2021-2-16 10:06 | 只看該作者
藍魄 發表于 2020-11-10 09:37
都放在一個死循環里,延時用一個1ms的或者更小的,用計數的方法來累計延時,其中把掃描按鍵以及數碼管加進 ...

明白了,謝謝
回復

使用道具 舉報

5#
ID:841085 發表于 2021-2-16 10:07 | 只看該作者
wulin 發表于 2020-11-10 11:21
程序在絕大多數情況下都得跑起來,不可以隨便使用死循環和阻滯延時。雖然指令是逐條執行的,但由于單片機速 ...

謝謝你,我明白了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 粉嫩av久久一区二区三区 | 午夜网 | 992人人草 | 欧美三级视频在线观看 | 亚洲精品国产电影 | 亚洲一区中文字幕 | 日韩中文字幕视频在线观看 | 91视视频在线观看入口直接观看 | 免费视频一区 | 看亚洲a级一级毛片 | 久久久影院 | 久久久久久久国产精品视频 | 日韩视频在线播放 | 亚洲一页| 久久精品国产一区 | 三级黄色片在线 | av一二三区 | 99爱在线免费观看 | 日本黄色免费片 | 亚洲成av人影片在线观看 | 午夜精品久久久 | 欧美日韩福利 | 91在线视频观看免费 | 日韩在线观看一区二区三区 | 免费在线观看av的网站 | 精品国产一二三区 | 综合网在线| 亚洲欧洲日韩精品 中文字幕 | 久久久毛片 | 久在线观看 | av一二三区 | 喷水毛片 | 成人性视频在线 | 在线中文一区 | 亚洲精品永久免费 | 夜夜久久| 亚洲欧美视频一区 | 在线播放第一页 | 亚洲a视频| av黄色在线观看 | 欧美伊人|