标题:
MSP430实现节日灯变换显示(3种以上花样)
[打印本页]
作者:
达达君
时间:
2018-11-29 22:22
标题:
MSP430实现节日灯变换显示(3种以上花样)
本帖最后由 达达君 于 2018-11-30 22:36 编辑
源の代码:
//编程用Timer_A控制 MSP430F249单片机P4口的8个LED
//以0.5秒的间隔从P4.0到P4.7依次发光。
#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,增计数模式
}
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, 下载次数: 9, 下载积分: 黑币 -5
节日灯实验
作者:
qwj5201314
时间:
2018-12-3 13:15
支持支持
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1