|
STC學(xué)習(xí)筆記1-簡(jiǎn)易呼吸燈的制作視頻:
介紹:只需要三個(gè)元件做一個(gè)簡(jiǎn)易的呼吸燈,可以隨意調(diào)整呼吸的時(shí)間和呼/吸時(shí)間比。
比模擬電路搭的呼吸燈簡(jiǎn)潔并且成本低很多,但是可控性絕對(duì)比模擬電路制作的好。
材料:
STC15F104E單片機(jī)一片
100Ω電阻一個(gè)
LED一個(gè),顏色隨意
還有必備的一個(gè)STC單片機(jī)程序下載器,這個(gè)可以參考官網(wǎng)的MAX232串口下載器
或者購(gòu)買的成品USB下載線。
需要引出四個(gè)引腳VCC,TX,RX,GND即可。
電路原理圖:
其中P3.0和P3.1接下載線下載。雖然可以在工作狀態(tài)下載,不過(guò)避免干擾,我們盡量少使用P3.0和P3.1引腳。
編寫以下程序:
有兩個(gè)版本,一個(gè)是單純的漸亮漸滅;第二個(gè)是亮滅時(shí)間比不同的,更接近實(shí)際的呼吸曲線。
版本1,漸亮漸滅時(shí)間一樣,但是肉眼看上去效果不好:
- #include
- sbit Pin = P3 ^ 3;
- int bright = 0;
- void Delay10us(unsigned int a)
- {
- unsigned int i;
- while( a-- != 0)
- {
- for(i = 0; i < 6; i++) {};
- }
- }
- main()
- {
- int i;
- bit mark=0;
- while(1)
- {
- if(bright == 255||bright==0) mark=!mark;
- (mark==1)?(bright++):(bright--);
- for(i = 0; i < 255; i++)
- {
- if(i < bright)
- {
- Pin = 0;
- Delay10us(2);
- }
- else
- {
- Pin = 1;
- Delay10us(2);
- }
- }
- }
- }
復(fù)制代碼
版本2,漸亮漸滅時(shí)間不一致,但是視覺(jué)效果比較好(亮滅時(shí)間比9:4,滅到盡的時(shí)候等待500ms。):
- /*
- STC15F104E 呼吸燈
- 時(shí)鐘頻率5.004MHz
- 燈在P3.3引腳
- By:Ansifa 2012-1-25
- */
- #include
- sbit Pin = P3 ^ 3;
- void Delay(unsigned int a)
- {
- while( a-- != 0)
- {
- }
- }
- void Delay2(unsigned long a)
- {
- while( a-- != 0)
- {
- }
- }
- main()
- {
- int i, delaytime;
- bit mark = 0;
- int bright = 0;
- while(1)
- {
- if(bright == 0) Delay2(50000);
- if(bright == 255 || bright == 0) mark = !mark;
- if(mark == 1)
- {
- bright++;
- delaytime = 9;
- }
- else
- {
- bright--;
- delaytime = 4;
- }
-
-
- for(i = 0; i < 255; i++)
- {
- if(i < bright)
- {
- Pin = 0;
- Delay(delaytime);
- }
- else
- {
- Pin = 1;
- Delay(delaytime);
- }
- }
- }
- }
復(fù)制代碼
用Keil uVersion2編輯編譯。
用STC-ISP下載程序下載程序。
注意,是先按STC-ISP軟件上的按鈕,然后關(guān)閉單片機(jī)電源,再打開(kāi),才能進(jìn)行開(kāi)始下載:
如果使用USB下載線下載,但是軟件一直卡死在等待連接單片機(jī)的話,先檢查TX,RX有沒(méi)接反。還有單片機(jī)有沒(méi)電源。
然后降低下載軟件波特率:“最低波特率”=1200和“最高波特率”=1200,一般就能下載,如果不行的話,要考慮換一個(gè)下載線。
上圖的MAX232串口下載線是最穩(wěn)定的。在任何速率都能使用。
|
-
-
呼吸燈工程文件.rar
2016-4-13 19:30 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
1.55 KB, 下載次數(shù): 68, 下載積分: 黑幣 -5
|