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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

查理復用控制十二個燈

  [復制鏈接]
跳轉到指定樓層
樓主
四個引腳控制十二個燈,每次亮四顆燈(1234、2345、3456……)程序和思路怎么實現....
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1131666 發表于 2024-9-9 16:25 | 只看該作者
跑馬燈每次亮四顆,大神們應該怎么實現
回復

使用道具 舉報

板凳
ID:1131074 發表于 2024-9-10 11:52 | 只看該作者
一個燈一個燈亮,分12次。
回復

使用道具 舉報

地板
ID:404160 發表于 2024-9-10 14:30 | 只看該作者
硬件部分:
假設4個控制引腳分別連接到單片機的P0.0~P0.3。
12個燈分別連接到外部電路,通過控制引腳的高低電平來點亮或熄滅。
軟件部分:
循環控制: 采用循環語句實現燈的順序點亮。
數據表示: 使用一個12位的二進制數來表示12個燈的狀態,每一位對應一個燈。
移位操作: 通過移位操作來實現燈的順序變化。
輸出控制: 將表示燈狀態的二進制數輸出到P0口。
C51代碼實現
C
#include <reg51.h>

unsigned char led_data[] = {0x0F, 0x3C, 0x78, 0xF0, 0xC3, 0x8F};  // 存儲燈的順序狀態

void delay(unsigned int t) {
    while(t--);
}

void main() {
    unsigned char i;

    while(1) {
        for(i = 0; i < 6; i++) {
            P0 = led_data[i];  // 輸出到P0口
            delay(5000);     // 延時500ms
        }
    }
}
請謹慎使用代碼。
代碼解釋
led_data數組:
存儲了6種燈的點亮狀態,每種狀態對應4個燈亮。
比如0x0F表示二進制的1111,即前4個燈亮。
delay函數:
用于產生延時,控制燈亮的時長。
main函數:
無限循環,不斷重復點亮燈的順序。
外層循環遍歷led_data數組,每次取出一個狀態。
內層循環產生延時,控制每個狀態的保持時間。
回復

使用道具 舉報

5#
ID:78835 發表于 2024-9-10 14:34 | 只看該作者
定時掃描就好了
回復

使用道具 舉報

6#
ID:192020 發表于 2024-9-10 15:14 | 只看該作者
看圖就懂了,就是反復配高阻態和高低電平,最容易理解就是搞12個判斷來亮燈。首先需要單片機支持IO高阻態

Snipaste_2024-09-10_15-05-46.png (93.97 KB, 下載次數: 9)

Snipaste_2024-09-10_15-05-46.png

評分

參與人數 1黑幣 +15 收起 理由
1109 + 15

查看全部評分

回復

使用道具 舉報

7#
ID:592807 發表于 2024-9-10 16:02 | 只看該作者
如果我是你,我會直接用74HC595  138 之類的IC
回復

使用道具 舉報

8#
ID:344848 發表于 2024-9-10 16:04 | 只看該作者
只需使用三個引腳即可,為何使用四個引腳?使用本站銷售的實驗板即可實現,并含有所需的程序!
回復

使用道具 舉報

9#
ID:807651 發表于 2024-9-10 16:11 | 只看該作者
和掃描矩陣按鍵一樣?3 SEG和 1 CON  分時間開關3組?
回復

使用道具 舉報

10#
ID:195666 發表于 2024-9-10 18:40 | 只看該作者
還有一個思路:用WS2812燈珠或燈帶
回復

使用道具 舉報

11#
ID:67199 發表于 2024-9-10 20:51 | 只看該作者
發表于 2024-9-10 15:14
看圖就懂了,就是反復配高阻態和高低電平,最容易理解就是搞12個判斷來亮燈。首先需要單片機支持IO高阻態

正解!四口復用,逐點掃描。端口用得少,編程麻煩點。
回復

使用道具 舉報

12#
ID:1034262 發表于 2024-9-11 12:04 | 只看該作者
驅動原理(共陰):
任意一個IO輸出低(COM),另外3個IO顯示的輸出高,不顯示的高阻,驅動3個燈。
同理,一共12個燈。
移動電源、無線話筒、小家電等等用的數碼管好多都是這樣的,比如9腳的可以驅動9個數碼管或72個LED。
N個IO可以驅動N*(N-1)個LED。
回復

使用道具 舉報

13#
ID:712493 發表于 2024-9-11 16:30 | 只看該作者
黃youhui 發表于 2024-9-10 16:02
如果我是你,我會直接用74HC595  138 之類的IC

確實,搞一次生不如死
回復

使用道具 舉報

14#
ID:466505 發表于 2024-9-12 09:28 | 只看該作者

單片機要能設IO為高阻,如陣列所示,控制要亮燈的LED兩端的IO,其它的IO設為高阻,然后依次掃描就可以了
回復

使用道具 舉報

15#
ID:57657 發表于 2024-9-12 15:29 | 只看該作者
黃youhui 發表于 2024-9-10 16:02
如果我是你,我會直接用74HC595  138 之類的IC

這幾個型號不能直接驅動,還要加74HC125或74HC126
回復

使用道具 舉報

16#
ID:624769 發表于 2024-9-13 17:56 | 只看該作者
qq475878026 發表于 2024-9-10 15:14
看圖就懂了,就是反復配高阻態和高低電平,最容易理解就是搞12個判斷來亮燈。首先需要單片機支持IO高阻態

你這是偷懶的接法, 你這樣接, 只能一次點一個燈, 12次點燈完成一個循環,不然會亮度不一致,
但是,如果把電阻都接在 LED正極,或者都接在 LED負極,就能1次點三個燈,4次點燈完成一個循環。
回復

使用道具 舉報

17#
ID:192020 發表于 2024-9-14 16:17 | 只看該作者
188610329 發表于 2024-9-13 17:56
你這是偷懶的接法, 你這樣接, 只能一次點一個燈, 12次點燈完成一個循環,不然會亮度不一致,
但是,如果 ...

假如三個LED同時亮功率也是個問題吧?還得加驅動電路?
回復

使用道具 舉報

18#
ID:101869 發表于 2024-9-14 18:38 來自手機 | 只看該作者
基本思路,把每個燈點亮熄滅做成函數,然后放在1毫秒定時器中
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久成人精品视频 | 精品乱码久久久久 | 又爽又黄axxx片免费观看 | 久色一区| 婷婷不卡 | 国产亚洲一区二区三区 | 精品欧美一区二区三区久久久 | 国产一区二区精品在线 | 午夜免费观看体验区 | 888久久久 | 欧美日韩精品 | 国产精品成人品 | 国产剧情一区 | 一区二区三区视频免费观看 | 亚洲狠狠爱| 在线观看国产网站 | 国产精品视频入口 | 国产精品免费一区二区三区四区 | 久久免费小视频 | www一级片| 久久久婷 | 国产一区二区三区四区 | 免费在线视频精品 | 亚洲精品乱码久久久久久按摩观 | 亚洲国产视频一区 | 日韩亚洲一区二区 | 亚洲精品乱码久久久久久蜜桃91 | 91免费小视频 | 国产精品18hdxxxⅹ在线 | 国产免费让你躁在线视频 | 日操操夜操操 | 老司机精品福利视频 | 久久99精品久久久久子伦 | 精品在线免费观看视频 | 一区二区视频免费观看 | 久久亚洲春色中文字幕久久久 | 一级网站| 欧美 日韩 国产 成人 在线 91 | 天天操操| 亚洲精品乱码 | 中文字幕在线看人 |