亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1422|回復: 16
收起左側

初學單片機:兩個LED交替閃爍的實現思路請教

  [復制鏈接]
ID:1168250 發表于 2026-3-16 09:54 來自觸屏版 | 顯示全部樓層 |閱讀模式
大家好~我是剛接觸單片機的新手,這次作業要求用Proteus繪制電路并編寫代碼,實現兩個LED交替閃爍的效果。

目前我的思路是:
1.用51單片機的兩個IO口分別控制兩個LED,通過延時函數實現交替亮滅。
2.電路部分:LED串聯限流電阻后接到P1.0和P1.1口,另一端接GND。
3.代碼部分:在while循環里輪流給兩個IO口高低電平,配合delay延時。
回復

使用道具 舉報

ID:227818 發表于 2026-3-16 11:01 | 顯示全部樓層
思路是可以實現,不過 程序是阻塞式的,也就是說延時是通過“死等”實現的,程序最好是無阻塞運行,可以看看這篇帖子:
http://www.denmoz.com/bbs/dpj-195153-1.html
回復

使用道具 舉報

ID:619259 發表于 2026-3-16 11:14 | 顯示全部樓層
newlined 發表于 2026-3-16 11:01
思路是可以實現,不過 程序是阻塞式的,也就是說延時是通過“死等”實現的,程序最好是無阻塞運行,可以看 ...

人家是新手
回復

使用道具 舉報

ID:227818 發表于 2026-3-16 11:26 | 顯示全部樓層

我感覺這個新手還是可以的,一開始就有這樣清晰的思路,不過那篇帖子,有難度,不過真是好貼。
回復

使用道具 舉報

ID:69038 發表于 2026-3-16 11:41 | 顯示全部樓層
還可以是一個IO,輸出高點亮一個LED,輸出低點亮另一個LED
回復

使用道具 舉報

ID:332444 發表于 2026-3-16 11:54 | 顯示全部樓層
即使是初學,理解阻塞“死等”與查詢的優劣對比沒壞處,而且越早理解越好;例如:2個阻塞延時,當執行時則必須死等一個執行完畢才輪到第二個,而好的做法是詢問2個哪個已經完成,猶如分配任務給2個人詢問哪個完成即可,不是傻等一個完成才去問另一個。
回復

使用道具 舉報

ID:1153341 發表于 2026-3-16 12:05 | 顯示全部樓層
后續升級程序盡量使用定時器,這樣不會阻塞程序的運行。
回復

使用道具 舉報

ID:1168257 發表于 2026-3-16 12:14 | 顯示全部樓層
可以去看看定時器,定時器會比較方便
回復

使用道具 舉報

ID:1168257 發表于 2026-3-16 12:15 | 顯示全部樓層
可以去嗶哩嗶哩看一下單片機的定時器功能,定時器比較好一點
回復

使用道具 舉報

ID:996773 發表于 2026-3-16 13:11 | 顯示全部樓層
newlined 發表于 2026-3-16 11:01
思路是可以實現,不過 程序是阻塞式的,也就是說延時是通過“死等”實現的,程序最好是無阻塞運行,可以看 ...

高手也是從死等過來的,其實也符合新手,因為單片機就點了一個燈也不干其他啥事,那只能死等嘍
等程序越來越復雜,需要去點亮一個液晶屏,然后再去查詢一下按鈕,發現有遲緩卡頓了,自然知道不
能讓單片機死等了,先死等程序也沒錯,要一步步走,比那種一輩子死扛手動編程要好
回復

使用道具 舉報

ID:230500 發表于 2026-3-16 13:30 | 顯示全部樓層
你的思路完全正確。什么優化不優化的先不要考慮, 以先實現目標任務為主。
回復

使用道具 舉報

ID:774370 發表于 2026-3-16 15:28 | 顯示全部樓層
2.電路部分:LED串聯限流電阻后接到P1.0和P1.1口,另一端接VCC。詳見單片機IO拉電流與灌電流
回復

使用道具 舉報

ID:296348 發表于 2026-3-16 16:53 | 顯示全部樓層
單片機GPIO輸出電流能力有限,盡量控制為低電平開啟高電平關閉(VCC-- R限流 -- +LED- -- GPIO )。初步嘗試可以先用delay在while中循序,考慮到目前還在點燈階段未接觸到定時器可以采用如下方式減少系統延遲:
  1. while(1)
  2. {
  3.    delay_ms(10);  //10ms 心跳
  4.    count++;
  5.    if(count>100)
  6.    {
  7.       LED0 = 0;
  8.       LED1 = 1;
  9.      count = 0;
  10.    }
  11.   else
  12.   {
  13.       LED0 = 1;
  14.       LED1 = 0;
  15.    }
  16. }。
復制代碼


注:建議都嘗試幾種思路有利于提高編程能力。
回復

使用道具 舉報

ID:1080149 發表于 2026-3-16 18:13 | 顯示全部樓層
如果是傳統的51單片機,高電平驅動電流只有微安級別,點不亮led的,需要加驅動電路;可以考慮LED共陽,利用灌電流低電平點亮。。。如果是現代增強型51,設置推挽輸出點燈就無壓力
回復

使用道具 舉報

ID:584814 發表于 2026-3-17 13:44 | 顯示全部樓層
這玩易用AI就可以完成。
回復

使用道具 舉報

ID:996773 發表于 2026-3-18 13:25 | 顯示全部樓層
man1234567 發表于 2026-3-17 13:44
這玩易用AI就可以完成。

樓主就是個AI,今天冒出好多新手求帶帶,和樓主AI一樣扔完問題就跑,枉費了下面回答個熱乎勁
回復

使用道具 舉報

ID:1110944 發表于 2026-3-18 20:44 | 顯示全部樓層
xianfajushi 發表于 2026-3-16 11:54
即使是初學,理解阻塞“死等”與查詢的優劣對比沒壞處,而且越早理解越好;例如:2個阻塞延時,當執行時則 ...

說的對,越早越好。否則以后寫出來的程序就是個瘸子
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表