記錄|嵌入式實(shí)驗(yàn)|發(fā)光二極管——流水燈的實(shí)現(xiàn)

關(guān)于proteus 8的一些基本操作在另一篇記錄中。

實(shí)驗(yàn)原理圖如下(直接在proteus中繪制):

第一個(gè)LED旁邊多了一個(gè)元器件,手誤不小心畫(huà)上去的,不礙事,去掉即可

繪圖時(shí)的注意事項(xiàng):

1.電阻不可過(guò)大,最好不能超過(guò)1k,不然的話,電路雖然可以正常運(yùn)行,但是燈不亮。
2.選用的二極管,在libraries中輸入LED時(shí)能發(fā)現(xiàn)好幾個(gè)LED種類(lèi),比如說(shuō):LED-BIBY、LED_BIGY ,LED_BIRG等,在這個(gè)實(shí)驗(yàn)里區(qū)別不大。我選用的是LED-BIBY,最后兩個(gè)字母的意思是連接在兩種極性上LED顯示不同的顏色:B-blue,Y-yellow。
3.及時(shí)保存,可能是破解版不太穩(wěn)定的緣故,我的打開(kāi)了一個(gè)上午沒(méi)有保存,結(jié)果到了下午發(fā)現(xiàn)保存不了,只能重新畫(huà)一次。

程序相關(guān)(我是直接在老師提供的案例里修改的):

安裝好Keil uVision5后在老師提供的資料里的USER文件夾有一個(gè)LED.uvprojx文件,雙擊可修改程序。


main.c

鼠標(biāo)選中上圖中的LED_pmd(),右擊選擇“Go To Definition of'LED_pmd' ”,就能跳轉(zhuǎn)到下圖。
下面這張有修改(其實(shí)就是復(fù)制粘貼修改了一下):


LED.c

關(guān)于時(shí)間間隔的調(diào)整:
程序里有“delay_ms(500)”,括號(hào)里數(shù)字的可以修改。

同樣選中“K_Data_Write”右擊選擇Go To Definition of'K_Data_Write' 跳轉(zhuǎn)到led.h


led.h

在這里就加了一行

define K_Data_Write(num) PEout(8)=(num&0x01);PEout(9)=((num>>1)&0x01);PEout(10)=((num>>2)&0x01);PEout(11)=((num>>3)&0x01);PEout(12)=((num>>4)&0x01);PEout(13)=((num>>5)&0x01);PEout(14)=((num>>6)&0x01);PEout(15)=((num>>7)&0x01);

其實(shí)就是在上面的程序上面修改了一點(diǎn)然后復(fù)制粘貼下來(lái)。
~是取反的意思。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容