欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2769|回復: 4
收起左側

求分享 使用Charlieplexing查理復用技術使用5個io口控制16個LED的51單片機程序

[復制鏈接]
ID:488281 發表于 2022-4-12 14:27 | 顯示全部樓層 |閱讀模式
50黑幣
如題

最佳答案

查看完整內容

5個IO口最多可以控制20個LED,現成的程序不太好找。這有個實例,STC8G1K08A就6個IO口,能用的就只剩3個,無奈才寫了3個IO口控制4個LED的程序。由于LED數量太少,就沒有費神精煉代碼,只把4個LED驅動封裝成函數調用。權當拋磚引玉。
回復

使用道具 舉報

ID:213173 發表于 2022-4-12 14:27 | 顯示全部樓層
5個IO口最多可以控制20個LED,現成的程序不太好找。這有個實例,STC8G1K08A就6個IO口,能用的就只剩3個,無奈才寫了3個IO口控制4個LED的程序。由于LED數量太少,就沒有費神精煉代碼,只把4個LED驅動封裝成函數調用。權當拋磚引玉。

  1. void LED1()
  2. {
  3.         P3M0=0x03;//P3.0推、3.1推、3.2高0000 0011
  4.         P3M1=0x04;//P3.0推、3.1推、3.2高0000 0100
  5.         P30=0;P31=1;P32=1;
  6. }

  7. void LED2()
  8. {
  9.         P3M0=0x03;//P3.0推、3.1推、3.2高0000 0011
  10.         P3M1=0x04;//P3.0推、3.1推、3.2高0000 0100
  11.         P30=1;P31=0;P32=1;
  12. }

  13. void LED3()
  14. {
  15.         P3M0=0x06;//P3.0高、3.1推、3.2推0000 0110
  16.         P3M1=0x01;//P3.0高、3.1推、3.2推0000 0001
  17.         P30=1;P31=0;P32=1;
  18. }

  19. void LED4()
  20. {
  21.         P3M0=0x06;//P3.0高、3.1推、3.2推0000 0110
  22.         P3M1=0x01;//P3.0高、3.1推、3.2推0000 0001
  23.         P30=1;P31=1;P32=0;
  24. }
復制代碼
回復

使用道具 舉報

ID:732794 發表于 2022-4-12 19:55 | 顯示全部樓層
參考這個,電路和思路都有
百度這篇文章
基于Charlieplexing(查理復用算法)實現4個GPIO控制12個LED燈
回復

使用道具 舉報

ID:69038 發表于 2025-2-17 15:50 | 顯示全部樓層
16個LED,如沒有特別要求,用5個IO是可以的,但某些燈與其它燈互斥,最好的方法就是擴口,用74HC595,比138之類的譯碼器電路好用,因為595是三態鎖存口(8位同步),可以級聯,2個595就能驅動16個IO了。
595的電路網上到處都是。驅動也簡單。
曾經做過6個IO驅動4位7段時鐘屏。用的就是查理復用的方式。不難。
回復

使用道具 舉報

ID:1034262 發表于 2025-2-18 11:22 | 顯示全部樓層
可以參考大量使用的充電寶的驅動方式,5個IO最多可以驅動20個LED,驅動原則是:
分5個時隙驅動,每次驅動時一個IO做COM驅動,另外4個IO做SEG驅動。
不顯示的SEG為高阻,顯示的SEG和COM為推挽輸出。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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