流水燈最簡易的模型應該有以下幾個部分:
1.電源
2.soc(51微控制器之類)以及基礎的周圍電路
3.以“電阻+單個led”為單位的單個燈模型
而流水燈這個實驗的要點是學會如何使用延時功能。
1.學會點燈
這個只需要根據電路圖,控制soc的管腳的正確開合(邏輯0與邏輯1)即可。
2.新增延時。
當令到目標led全部點亮之後,就可以在各個led邏輯之間新增延時函式來實現依次點亮。
一般來說,可以靠soc的晶振電路來算出單個邏輯運算的時間,然後透過簡單的不斷相加來達到你想要的延時。
所以可以透過新增迴圈運算加法來實現延遲。
例如n=0 進入邏輯n+1 n<100 跳回去n+1 相當於運算100個邏輯時間。
來到這一步,事實上已經用了很原始的方式來實現了你的目標功能。
但是如果想更深一步,就可以使圖將led燈的邏輯電路歸納,透過額外新增迴圈之類的方法,來減少這種暴力實現功能的手段。
例如led邏輯閘0-9
首先
n=0
進入迴圈1
亮燈第n號
進入延時迴圈
走出迴圈
關閉第n號
n=n+1
n<10
回到迴圈1
否則跳出迴圈
程式完結
基本上就是這樣子,至於更加高階的中斷之類的,那是另外一回事了。
流水燈最簡易的模型應該有以下幾個部分:
1.電源
2.soc(51微控制器之類)以及基礎的周圍電路
3.以“電阻+單個led”為單位的單個燈模型
而流水燈這個實驗的要點是學會如何使用延時功能。
1.學會點燈
這個只需要根據電路圖,控制soc的管腳的正確開合(邏輯0與邏輯1)即可。
2.新增延時。
當令到目標led全部點亮之後,就可以在各個led邏輯之間新增延時函式來實現依次點亮。
一般來說,可以靠soc的晶振電路來算出單個邏輯運算的時間,然後透過簡單的不斷相加來達到你想要的延時。
所以可以透過新增迴圈運算加法來實現延遲。
例如n=0 進入邏輯n+1 n<100 跳回去n+1 相當於運算100個邏輯時間。
來到這一步,事實上已經用了很原始的方式來實現了你的目標功能。
但是如果想更深一步,就可以使圖將led燈的邏輯電路歸納,透過額外新增迴圈之類的方法,來減少這種暴力實現功能的手段。
例如led邏輯閘0-9
首先
n=0
進入迴圈1
亮燈第n號
進入延時迴圈
走出迴圈
關閉第n號
n=n+1
n<10
回到迴圈1
否則跳出迴圈
程式完結
基本上就是這樣子,至於更加高階的中斷之類的,那是另外一回事了。