記錄|嵌入式實驗|發光二極管——流水燈的實現

關於proteus 8的一些基本操作在另一篇記錄中。

實驗原理圖如下(直接在proteus中繪製):

記錄|嵌入式實驗|發光二極管——流水燈的實現

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

繪圖時的注意事項:

1.電阻不可過大,最好不能超過1k,不然的話,電路雖然可以正常運行,但是燈不亮。2.選用的二極管,在libraries中輸入LED時能發現好幾個LED種類,比如說:LED-BIBY、LED_BIGY ,LED_BIRG等,在這個實驗裡區別不大。我選用的是LED-BIBY,最後兩個字母的意思是連接在兩種極性上LED顯示不同的顏色:B-blue,Y-yellow。3.及時保存,可能是破解版不太穩定的緣故,我的打開了一個上午沒有保存,結果到了下午發現保存不了,只能重新畫一次。

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

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


記錄|嵌入式實驗|發光二極管——流水燈的實現

main.c

鼠標選中上圖中的LED_pmd(),右擊選擇“Go To Definition of'LED_pmd' ”,就能跳轉到下圖。下面這張有修改(其實就是複製粘貼修改了一下):


記錄|嵌入式實驗|發光二極管——流水燈的實現

LED.c

關於時間間隔的調整:程序裡有“delay_ms(500)”,括號裡數字的可以修改。

同樣選中“K_Data_Write”右擊選擇Go To Definition of'K_Data_Write' 跳轉到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);

其實就是在上面的程序上面修改了一點然後複製粘貼下來。

~是取反的意思。


分享到:


相關文章: