基於Proteus的4個LED燈閃爍實驗

2021-10-06 07:42:05 字數 1452 閱讀 2831

p0口是個多功能的引腳,它既可以向外部儲存器傳送位址資訊和資料資訊,也可以作為乙個通用的i/o介面和其他硬體之間來傳輸資料資訊,但是p0口無法輸出高電平,本實驗為實現四個led燈的閃爍,在p0口外加乙個上拉電阻來實現其引腳輸出高電平,從而實現4個led燈閃爍。

//定義標頭檔案

sbit led1=p0^

0;

sbit led2=p1^0;

sbit led3=p0^1;

sbit led4=p1^1;

//定義引腳

void

delay

(int ms)

//定義延時子函式

void

main()

//main代表主函式,程式執行的部分

}①三極體及符號

三極體分為npn型和pnp型(p為正極,n為負極)

(b為基極,c為集電極,e為發射極)

npn型

pnp型

特性:例如用npn型,當給基極b通高電平時,c與e是導通的,當給基極b通低電平時,c與e是截止的。

②p0口內部結構

p0口是個多功能的引腳,它既可以向外部儲存器傳送位址資訊和資料資訊,也可以作為乙個通用的i/o介面和其他硬體之間來傳輸資料資訊,p0口就是通過多路開關來實現這兩個功能的切換,當開關打到a時就執行第乙個功能,當開關打到b時就執行第二個功能。

關於d鎖存器,當給它乙個高電平1時,他的q¯引腳就輸出低電平0,當給它輸入低電平0時,q¯就輸出高電平1。

v1,v2這兩個mos管的性質和npn型的三極體是相似的,也就是給它輸入乙個高電平時,是導通的,反之,給他輸乙個低電平時,是截止的。

③p0無法輸出高電平之問題分析及解決

當p0口作為通用i/o介面時(開關打到b),也就是v1這個mos管是截止的,此時高電平不可以通過v1傳輸到p0引腳, 也就是不能輸出高電平。

當給d鎖存器乙個高電平1時,則q¯輸出0低電平,v2截止,

當給d鎖存器乙個低電平0時,則q¯輸出1低電平,v2導通,p0口輸出低電平0(v2接地),為了輸出高電平1,可外加乙個上拉電阻來實現,此時d3就可以被點亮,而程式無需再做改動。

基於Proteus的乙個LED燈閃爍實驗

根據原理圖對微控制器進行程式設計,使led燈每隔一小段時間就改變一下量變狀態,若上乙個時間段為點亮狀態,則隔段時間熄滅,間隔時間可相同可不同,這裡我們假定led燈量變間隔時間相同。定義標頭檔案 sbit led p0 0 定義引腳 int i,j void main main代表主函式,程式執行的部...

基於proteus的狀態機設計

參考資料 理論上說,任何乙個需要周而復始的執行一系列任務 例如cpu中按順序從儲存器取出指令 再執行指令 的時序系統都可以用狀態機 state machine 模型來描述。時序系統的執行週期可以描述為乙個預定順序的時間週期序列,每個週期都對應狀態機中乙個指定的狀態。狀態機在每個週期中產生特定的操作,...

基於arm的乙個簡單的led驅動

在學寫驅動的時候一定不要盲目的跟從,要有自己的方法。要記住一點,學習驅動要學習驅動的模板,每個驅動程式其結構基本上都是一樣的。只要大家掌握了驅動的結構以後在寫驅動的時候就相對來說要簡單一些。只要大家學會寫驅動過後後頭來看其實驅動都是大同小異的。在這裡我給大家介紹乙個簡單的led驅動的寫法,defin...