乙個I O口控制兩個LED燈

2021-06-26 12:03:28 字數 993 閱讀 4722

方案1:

優點:平時基本沒有功耗;

缺點:電路複雜。

經本人在pic18f4550測試板上測試,完全沒有問題。

方案二:

本人沒有測試。

優點:電路簡單

缺點:平時還有功耗,二極體vd1一直導通態。

微控制器中有的i/o口可設定為三種狀態:高電平、低電平和高阻態,利用這一點,就可以用乙個i/o口實現對2個led的四種狀態的控制。下面從硬體和軟體兩方面描述其實現:

第一種方法:

1.硬體電路連線: 

將兩個led串聯後和1n4148併聯,兩端分別接板子上的5v電源(引入電源串接一電阻)和地,將兩二極體的中間接i/o口,就可以控制兩led的四種狀態了

2.軟體設計: 

當要使上面的led亮時,i/o口置為低電平。此時下面的led無電流流過,不會亮。 

當要使下面的led亮時,i/o口置為高電平。此時上面的led1無電流流過,不會亮。 

當要兩led均不亮時,將i/o口置為高阻態,此時發光管被併聯的1n4148旁路,故不會亮。 

當要兩led一起亮,則讓i/o口在某一固定頻率下以50%的占空比進行高低電平不停轉換,利用視覺暫留,使人眼感覺兩個燈都為亮的狀態

第二種方法:

電路上有考究,發光二極體的門限電壓為2v,串聯之後為4v,將兩隻二極體串聯後正極接+3.6v,負極接地,兩隻發光二極體均不亮,00。 

中間接io口,當io輸出為懸空時,兩隻發光二極體均不亮; 

當io輸出為高時,下面的發光二極體亮; 

當io輸出為低時,上面的發光二極體亮; 

當io輸出為高低交替的振盪時,兩個發光二極體均亮。 

完成,乙個io控制四種狀態。

連線:

點亮乙個LED燈

設計定義 二選一多路器 兩個輸入io,a b。可以是高電平,輸入按鍵按下時,led燈與a埠狀態保持一致,按鍵釋放時,led燈與b埠狀態保持一致 設計輸入 建立乙個project 編寫功能 input a 輸入埠a,b input b input key in 按鍵輸入,實現輸入通道的選擇 outpu...

第乙個程式點亮乙個LED燈

include 引用52包檔案 可以理解為命名空間 sbit p1 0 p1 0 定義p1管腳0 void main 主程式 c語言所必需要有的 以下非程式 上面的程式,首先引用reg52.h,這裡有對操作微控制器相關資料的封裝,方便使用者使用 接著,用p1 0這個sbit型別的變數,引用p1口的第...

關於按鍵消抖以及LED燈控制的乙個例項

要求 1.未按建則所有led全黑 2.按k1按鈕,則用前8個led燈二進位制顯示25 3.按k2按鈕,則12只led合併顯示流水燈效果,3個led點亮並向右流水。注 是hr 240b fpga 創新實驗系統,其核心板的核心晶元為 epm240t100c5n 分析 led是共陰極,所以點亮led需要高...