找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 10592|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

STM32的流水燈程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:99082 發(fā)表于 2015-12-10 01:00 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
記得小時(shí)候有玩具電動(dòng)車,車玩壞了就拆了,最高興的就是能拆出電機(jī)和燈泡,玩這兩樣?xùn)|西的樂(lè)趣不比玩玩具車少。

用干電池就能讓小燈泡亮起來(lái),也能讓電機(jī)轉(zhuǎn)起來(lái),雖然現(xiàn)象很簡(jiǎn)單,但卻融入了自己的控制和想象,這是很有意思的。想讓一個(gè)燈泡亮起來(lái),給一個(gè)適當(dāng)?shù)碾妷壕涂梢裕@是中學(xué)物理都學(xué)過(guò)的。其實(shí)小燈泡的工作電壓是2-3V,干電池的電壓是1.5V,所以小時(shí)候小孩子玩的時(shí)候用一節(jié)電池或兩節(jié)電池小燈泡都會(huì)亮。而且暗和亮的程度不一樣,電機(jī)轉(zhuǎn)動(dòng)的狀態(tài)也不一樣,這就對(duì)電學(xué)有個(gè)直觀的認(rèn)識(shí)。

現(xiàn)在燈泡越來(lái)越少了,越來(lái)越多被LED取代。LED就是Lighting Emitting Diode的縮寫(xiě),即發(fā)光二極管。LED只能往一個(gè)方向?qū)?/strong>,即給LED加上正向偏壓,當(dāng)電流流過(guò)時(shí),電子與空穴在其內(nèi)復(fù)合而發(fā)出單色光,這叫電致發(fā)光效應(yīng),而光線的波長(zhǎng)、顏色跟其所采用的半導(dǎo)體材料種類與摻入的元素雜質(zhì)有關(guān)。

LED的工作電壓大概2V左右,不同的材料不同型號(hào)的LED電壓稍稍會(huì)有些偏差,但對(duì)實(shí)際使用的影響不大。


--為什么要跑流水燈


流水燈實(shí)驗(yàn)是學(xué)單片機(jī)的經(jīng)典例程,可以說(shuō)是單片機(jī)學(xué)習(xí)中的"HELLO WORLD"。

那么怎么通過(guò)STM32把一個(gè)LED點(diǎn)亮呢?想讓LED發(fā)光當(dāng)然需要給LED加一個(gè)正向偏壓。STM32的引腳輸出電壓高電壓為3.3V,低電壓為0V。想要用STM32控制LED的亮和滅,這里有兩種方式可以把給一個(gè)LED加上正向偏壓:第一種方法就是把LED的負(fù)極和電路的地(0V)相連,當(dāng)STM32輸出低電平時(shí),LED兩端沒(méi)有電勢(shì)差。當(dāng)STM32輸出高電平時(shí),LED正極就加上了3.3V的電壓,這樣LED就亮了,但是這時(shí)候LED可能亮的有點(diǎn)不正常,因?yàn)長(zhǎng)ED的工作電壓約為2V,所以這時(shí)候LED可能是特別亮,但可能亮了一段時(shí)間就會(huì)燒壞。為了LED能長(zhǎng)期正常工作,所以要讓LED在2V的工作電壓,所以加一個(gè)電阻起保護(hù)作用,電阻選470歐或510歐。

第二種方法就是將LED的正極連著3.3V的電源上,負(fù)極連在STM32的引腳上,當(dāng)STM32的引腳輸出低電平時(shí)LED就會(huì)亮。

為什么要通過(guò)流水燈的形式來(lái)完成實(shí)驗(yàn)?zāi)兀?span style="color: rgb(0, 176, 80); ">因?yàn)槟茏杂傻目刂埔粋(gè)燈泡的亮和滅、能自由的控制一個(gè)燈亮的時(shí)長(zhǎng)和滅的時(shí)長(zhǎng),這樣也就證明已經(jīng)掌握了一個(gè)STM32的IO口高低電平的輸出,這就已經(jīng)可以做很多事情了。


--怎么控制小燈的亮滅


當(dāng)然是寫(xiě)程序控制了,先從思路上理順一遍就是:


以下邊電路圖中3個(gè)LED為例:


先讓第一個(gè)燈亮(因?yàn)閳D中LED采用的是上一段介紹的第二種電路,所以應(yīng)該讓和LED1相連的STM32引腳輸出0V低電平),亮一會(huì)(這個(gè)通過(guò)延時(shí)函數(shù)來(lái)實(shí)現(xiàn));把第一個(gè)熄滅(同理,讓引腳輸出高電平即可熄滅),接著(在程序上編程語(yǔ)句的執(zhí)行肯定有先后之分,因?yàn)闆](méi)有延時(shí)函數(shù),STM32工作頻率很高,所以就是“同時(shí)”)把第二個(gè)燈點(diǎn)亮,亮一會(huì);把第二個(gè)燈熄滅,接著點(diǎn)亮第三個(gè)燈,亮一會(huì);把三個(gè)燈熄滅,接著把第一個(gè)燈點(diǎn)亮...(這個(gè)省略號(hào)就是周而復(fù)始循環(huán)的意思,在程序?qū)崿F(xiàn)的時(shí)候,我們用一個(gè)循環(huán)函數(shù)就可以實(shí)現(xiàn)。)


這周就是在思路上、電路上介紹例程,下周主要介紹程序的編寫(xiě)。


以下是本系列教程文章列表:歡迎大家踴躍討論,有問(wèn)題可在51黑論壇回帖提出.


STM32教程(1)-大學(xué)里沒(méi)碰見(jiàn)像STM32一樣吸引我的姑娘:http://www.torrancerestoration.com/bbs/dpj-41167-1.html
STM32教程(2)-各種應(yīng)用和外設(shè)簡(jiǎn)單介紹:http://www.torrancerestoration.com/bbs/dpj-41168-1.html
STM32教程(3)-芯片引腳性質(zhì)介紹:http://www.torrancerestoration.com/bbs/dpj-41169-1.html
STM32教程(4)-最小系統(tǒng)的設(shè)計(jì):http://www.torrancerestoration.com/bbs/dpj-41170-1.html
STM32教程(5)-庫(kù):http://www.torrancerestoration.com/bbs/dpj-41171-1.html
STM32教程(6)-STM32的流水燈程序:http://www.torrancerestoration.com/bbs/dpj-41162-1.html

STM32編程基礎(chǔ)(1)-Keil編程軟件的安裝:http://www.torrancerestoration.com/bbs/dpj-41163-1.html
STM32編程基礎(chǔ)(2)-Keil庫(kù)的修改:http://www.torrancerestoration.com/bbs/dpj-41164-1.html
STM32編程基礎(chǔ)(3)-Keil建立工程模版:http://www.torrancerestoration.com/bbs/dpj-41165-1.html
STM32編程基礎(chǔ)(4)-Keil工程設(shè)置http://www.torrancerestoration.com/bbs/dpj-41166-1.html
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表