筆記3_流水燈
學習目標::
1 延時函數的原理及使用
2 for循環語句的使用,while循環的使用。(最好看看書學這些語法)
目的:使8個或多個LED燈按照你的設計亮滅。
各種軟件分享:
http://www.zg4o1577.cn/bbs/dpj-897-1.html
延時函數:
yanshi(注:這個名字自己起) (int a)
{
int i,j,a;
for(i=0;i<a;i++)
for(j=0;j<110;j++)
}
每一條語句的執行都會用一點時間,這個函數就是讓單片機不停的執行沒有什么用的語句,從而消耗時間,達到延時的目的。
讓8個燈閃爍的程序:
#include<reg52.h>
yanshi (int a)
{
int i,j,a;
for(i=0;i<a;i++)
for(j=0;j<110;j++)
}
main ()
{
while(1)
{
P1=1;
yanshi (100);//延時100毫秒,讓燈亮100ms
P1=0;
yanshi (100);//讓燈滅100毫秒。
}
}
用從上面的程序可以試著去改寫一個流水燈程序。
不管程序多長,它都是模塊化的,不要看見程序很長就不敢讀,一個模塊一個模塊的讀,弄懂每一個模塊的功能就很簡單了。
答案:
#include<reg52.h>
yanshi (int a)
{
int i,j,a;
for(i=0;i<a;i++)
for(j=0;j<110;j++)
}
main ()
{
while(1)
{
P1=0;//讓全部的燈滅。
P1^0=1
yanshi (100);//讓燈1亮100ms
P1^1=1;
yanshi (100);//讓燈2亮100ms
P1^2=1
yanshi (100);//讓燈3亮100ms
P1^3=1
yanshi (100);//讓燈4亮100ms
P1^4=1
yanshi (100);//讓燈5亮100ms
P1^5=1
yanshi (100);//讓燈6亮100ms
P1^6=1
yanshi (100);//讓燈7亮100ms
P1^7=1
yanshi (100);//讓燈8亮100ms
}
}
真的沒想到會有這么多人會關注我的公眾號,這個公眾號剛剛開通的時候一直沒有人關注,我以為或許是我的方法不被人接受,結果今天看了一下竟然增加了這么多人。感謝大家的認可,我也會認真學習,把學習過程中的經驗給大家分享。或許我不能教你們什么,但希望新手能在入門時少走彎路。
|