3種效果的程序編寫
發(fā)布時(shí)間:2013/11/16 15:18:08 訪問次數(shù):679
程序的PWM頻率設(shè)置為最高的37.5kHz。BYM11-600-E3/76之所以選擇這么高的頻率是為了不影響動(dòng)態(tài)掃描。試想,如果PWM頻率為100Hz,那么還怎么動(dòng)態(tài)掃描呢?在程序中,動(dòng)態(tài)掃描實(shí)際的頻率為62Hz。這已經(jīng)足夠騙過人的眼睛,讓我們看不到燈的閃爍。
在單片機(jī)的中斷代碼中,程序每過26 us就會(huì)產(chǎn)生溢出中斷一次,通過變量count計(jì)數(shù)中斷次數(shù)。當(dāng)中斷的次數(shù)達(dá)到50次時(shí),就更換下~個(gè)LED燈,顯示它對應(yīng)的亮度。LED的亮度存儲(chǔ)到led[]這個(gè)數(shù)組中,每個(gè)LED燈通過載入對應(yīng)的亮度值,即通過改變PWM產(chǎn)生寄存器的OCROA與OCROB,來實(shí)際控制高低電平脈寬長度,最終實(shí)現(xiàn)亮度的控制。當(dāng)然,每次通過PWM控制亮度,都要先根據(jù)LED的驅(qū)動(dòng)電平方式,重新設(shè)置PWM的控制模式。在此之前,還要記得設(shè)置不相關(guān)的引腳為高阻態(tài)。
LED的3種效果控制程序能夠?qū)崿F(xiàn)LED燈不斷地變換,只要調(diào)用就能分別實(shí)現(xiàn)如下功能:所有LED燈的呼吸效果;逐個(gè)點(diǎn)亮和熄滅LED燈.LED燈流水顯示的效果。從編程的思路上講,led數(shù)組存放了12個(gè)元素,每個(gè)元素所存內(nèi)容,即對應(yīng)每個(gè)LED燈亮度值。耍改變某個(gè)LED燈亮度,都是通過設(shè)置led[]數(shù)組中對應(yīng)元素的PWM緩沖數(shù)值來實(shí)現(xiàn)自動(dòng)變換。要讓所有的燈全亮只需設(shè)置數(shù)組中的每個(gè)元素的數(shù)值都為255即可。如果要一半的亮度就設(shè)置為1 28。要讓某個(gè)燈單獨(dú)最亮,只要設(shè)置這個(gè)LED燈元素?cái)?shù)值為255.其他的元素為0。如果任意LED要產(chǎn)生漸漸變亮的效果,那么只要對應(yīng)數(shù)組元素中的數(shù)值從O逐漸變?yōu)?55即可。同理,漸漸變暗,數(shù)值就從255變成0。要實(shí)現(xiàn)什么樣的效果,大家可以通過改變led[]數(shù)組來實(shí)現(xiàn)。
在單片機(jī)的中斷代碼中,程序每過26 us就會(huì)產(chǎn)生溢出中斷一次,通過變量count計(jì)數(shù)中斷次數(shù)。當(dāng)中斷的次數(shù)達(dá)到50次時(shí),就更換下~個(gè)LED燈,顯示它對應(yīng)的亮度。LED的亮度存儲(chǔ)到led[]這個(gè)數(shù)組中,每個(gè)LED燈通過載入對應(yīng)的亮度值,即通過改變PWM產(chǎn)生寄存器的OCROA與OCROB,來實(shí)際控制高低電平脈寬長度,最終實(shí)現(xiàn)亮度的控制。當(dāng)然,每次通過PWM控制亮度,都要先根據(jù)LED的驅(qū)動(dòng)電平方式,重新設(shè)置PWM的控制模式。在此之前,還要記得設(shè)置不相關(guān)的引腳為高阻態(tài)。
LED的3種效果控制程序能夠?qū)崿F(xiàn)LED燈不斷地變換,只要調(diào)用就能分別實(shí)現(xiàn)如下功能:所有LED燈的呼吸效果;逐個(gè)點(diǎn)亮和熄滅LED燈.LED燈流水顯示的效果。從編程的思路上講,led數(shù)組存放了12個(gè)元素,每個(gè)元素所存內(nèi)容,即對應(yīng)每個(gè)LED燈亮度值。耍改變某個(gè)LED燈亮度,都是通過設(shè)置led[]數(shù)組中對應(yīng)元素的PWM緩沖數(shù)值來實(shí)現(xiàn)自動(dòng)變換。要讓所有的燈全亮只需設(shè)置數(shù)組中的每個(gè)元素的數(shù)值都為255即可。如果要一半的亮度就設(shè)置為1 28。要讓某個(gè)燈單獨(dú)最亮,只要設(shè)置這個(gè)LED燈元素?cái)?shù)值為255.其他的元素為0。如果任意LED要產(chǎn)生漸漸變亮的效果,那么只要對應(yīng)數(shù)組元素中的數(shù)值從O逐漸變?yōu)?55即可。同理,漸漸變暗,數(shù)值就從255變成0。要實(shí)現(xiàn)什么樣的效果,大家可以通過改變led[]數(shù)組來實(shí)現(xiàn)。
程序的PWM頻率設(shè)置為最高的37.5kHz。BYM11-600-E3/76之所以選擇這么高的頻率是為了不影響動(dòng)態(tài)掃描。試想,如果PWM頻率為100Hz,那么還怎么動(dòng)態(tài)掃描呢?在程序中,動(dòng)態(tài)掃描實(shí)際的頻率為62Hz。這已經(jīng)足夠騙過人的眼睛,讓我們看不到燈的閃爍。
在單片機(jī)的中斷代碼中,程序每過26 us就會(huì)產(chǎn)生溢出中斷一次,通過變量count計(jì)數(shù)中斷次數(shù)。當(dāng)中斷的次數(shù)達(dá)到50次時(shí),就更換下~個(gè)LED燈,顯示它對應(yīng)的亮度。LED的亮度存儲(chǔ)到led[]這個(gè)數(shù)組中,每個(gè)LED燈通過載入對應(yīng)的亮度值,即通過改變PWM產(chǎn)生寄存器的OCROA與OCROB,來實(shí)際控制高低電平脈寬長度,最終實(shí)現(xiàn)亮度的控制。當(dāng)然,每次通過PWM控制亮度,都要先根據(jù)LED的驅(qū)動(dòng)電平方式,重新設(shè)置PWM的控制模式。在此之前,還要記得設(shè)置不相關(guān)的引腳為高阻態(tài)。
LED的3種效果控制程序能夠?qū)崿F(xiàn)LED燈不斷地變換,只要調(diào)用就能分別實(shí)現(xiàn)如下功能:所有LED燈的呼吸效果;逐個(gè)點(diǎn)亮和熄滅LED燈.LED燈流水顯示的效果。從編程的思路上講,led數(shù)組存放了12個(gè)元素,每個(gè)元素所存內(nèi)容,即對應(yīng)每個(gè)LED燈亮度值。耍改變某個(gè)LED燈亮度,都是通過設(shè)置led[]數(shù)組中對應(yīng)元素的PWM緩沖數(shù)值來實(shí)現(xiàn)自動(dòng)變換。要讓所有的燈全亮只需設(shè)置數(shù)組中的每個(gè)元素的數(shù)值都為255即可。如果要一半的亮度就設(shè)置為1 28。要讓某個(gè)燈單獨(dú)最亮,只要設(shè)置這個(gè)LED燈元素?cái)?shù)值為255.其他的元素為0。如果任意LED要產(chǎn)生漸漸變亮的效果,那么只要對應(yīng)數(shù)組元素中的數(shù)值從O逐漸變?yōu)?55即可。同理,漸漸變暗,數(shù)值就從255變成0。要實(shí)現(xiàn)什么樣的效果,大家可以通過改變led[]數(shù)組來實(shí)現(xiàn)。
在單片機(jī)的中斷代碼中,程序每過26 us就會(huì)產(chǎn)生溢出中斷一次,通過變量count計(jì)數(shù)中斷次數(shù)。當(dāng)中斷的次數(shù)達(dá)到50次時(shí),就更換下~個(gè)LED燈,顯示它對應(yīng)的亮度。LED的亮度存儲(chǔ)到led[]這個(gè)數(shù)組中,每個(gè)LED燈通過載入對應(yīng)的亮度值,即通過改變PWM產(chǎn)生寄存器的OCROA與OCROB,來實(shí)際控制高低電平脈寬長度,最終實(shí)現(xiàn)亮度的控制。當(dāng)然,每次通過PWM控制亮度,都要先根據(jù)LED的驅(qū)動(dòng)電平方式,重新設(shè)置PWM的控制模式。在此之前,還要記得設(shè)置不相關(guān)的引腳為高阻態(tài)。
LED的3種效果控制程序能夠?qū)崿F(xiàn)LED燈不斷地變換,只要調(diào)用就能分別實(shí)現(xiàn)如下功能:所有LED燈的呼吸效果;逐個(gè)點(diǎn)亮和熄滅LED燈.LED燈流水顯示的效果。從編程的思路上講,led數(shù)組存放了12個(gè)元素,每個(gè)元素所存內(nèi)容,即對應(yīng)每個(gè)LED燈亮度值。耍改變某個(gè)LED燈亮度,都是通過設(shè)置led[]數(shù)組中對應(yīng)元素的PWM緩沖數(shù)值來實(shí)現(xiàn)自動(dòng)變換。要讓所有的燈全亮只需設(shè)置數(shù)組中的每個(gè)元素的數(shù)值都為255即可。如果要一半的亮度就設(shè)置為1 28。要讓某個(gè)燈單獨(dú)最亮,只要設(shè)置這個(gè)LED燈元素?cái)?shù)值為255.其他的元素為0。如果任意LED要產(chǎn)生漸漸變亮的效果,那么只要對應(yīng)數(shù)組元素中的數(shù)值從O逐漸變?yōu)?55即可。同理,漸漸變暗,數(shù)值就從255變成0。要實(shí)現(xiàn)什么樣的效果,大家可以通過改變led[]數(shù)組來實(shí)現(xiàn)。
上一篇:控制原理LED
熱門點(diǎn)擊
- 本征激發(fā)產(chǎn)生自由電子一空穴對
- 直流通路
- Arduino應(yīng)用
- 色帶電阻器的色碼
- 放大器的靜態(tài)工作點(diǎn)
- LED驅(qū)動(dòng)電源
- 通頻帶(passband)
- 變壓器實(shí)際繞制過程
- 晶體管的制作調(diào)試
- 安裝磁芯
推薦技術(shù)資料
- 繪制印制電路板的過程
- 繪制印制電路板是相當(dāng)重要的過程,EPL2010新穎的理... [詳細(xì)]
- 低功耗14位180MSPS數(shù)模
- 直接數(shù)字頻率合成器(DDS)應(yīng)用分析
- 110V, 75A RMS 集
- 超精密電流感應(yīng)放大器產(chǎn)品介紹
- RJ、16 位定時(shí)器 KB 和 RTC應(yīng)用探
- RL78-S3 CPU 內(nèi)核&
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動(dòng)IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究