標題:
MSP430實現(xiàn)節(jié)日燈變換顯示(3種以上花樣)
[打印本頁]
作者:
達達君
時間:
2018-11-29 22:22
標題:
MSP430實現(xiàn)節(jié)日燈變換顯示(3種以上花樣)
本帖最后由 達達君 于 2018-11-30 22:36 編輯
源の代碼:
//編程用Timer_A控制 MSP430F249單片機P4口的8個LED
//以0.5秒的間隔從P4.0到P4.7依次發(fā)光。
#include
<msp430f249.h>
unsigned
char
md
=
0x01
;
void
PortInit
(
void
) {
P4SEL
=
0x00
;
// P4 I/O
P4DIR
=
0xff
;
// P4 輸出
P4OUT
=
0Xff
;
// 初始時,所有LED均不亮
}
void
TimerInit
(
void
) {
CCR0
=
16384
;
//ACLK=32768Hz,定時時間間隔0.5S
CCTL0
=
CCIE;
//CCR0中斷允許
TACTL
=
TASSEL_1
+
MC_1;
//定時器A時鐘源ACLK,增計數(shù)模式
}
void
main
(
void
) {
WDTCTL
=
WDTPW
+
WDTHOLD;
// Stop WDT
PortInit
();
TimerInit
();
_BIS_SR
(LPM3_bits
+
GIE);
// Enter LPM3 w/ interrupt
}
#pragma
vector
=
TIMERA0_VECTOR
//定時器A0中斷服務唾棄
__interrupt
void
Timer_A
(
void
) {
P4OUT
=
~
md;
//P4輸出位控值,控制一個引腳的LED亮
md
<<=
1
;
//右移位模型
while
(
1
) {
int
i
=
0
,j,k;
if
(i
==
0
) {
//花樣1
md
=
0x42
;
P4OUT
=
~
md;
i
++
;
}
for
(j
=
0
;j
<
5
;j
++
)
for
(k
=
0
;k
<
30000
;k
++
);
if
(i
==
1
) {
//花樣2
md
=
0xa5
;
P4OUT
=
~
md;
i
++
;
}
for
(j
=
0
;j
<
5
;j
++
)
for
(k
=
0
;k
<
30000
;k
++
);
if
(i
==
2
) {
//花樣3
md
=
0x66
;
P4OUT
=
~
md;
i
++
;
}
for
(j
=
0
;j
<
5
;j
++
)
for
(k
=
0
;k
<
30000
;k
++
);
if
(i
==
3
) {
//花樣4
md
=
0x99
;
P4OUT
=
~
md;
i
++
;
}
for
(j
=
0
;j
<
5
;j
++
)
for
(k
=
0
;k
<
30000
;k
++
);
if
(md
==
0
)md
=
0x01
;
//如掃描完8位,恢復位模型初值
}
}
sy1-2.zip
2018-11-29 22:21 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
879 Bytes, 下載次數(shù): 9, 下載積分: 黑幣 -5
節(jié)日燈實驗
作者:
qwj5201314
時間:
2018-12-3 13:15
支持支持
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1