1 开发环境与流水灯实验
使用的是IAR 7.10
新建工程的细节看这里:https://blog.csdn.net/x1131230123/article/details/106956182
需要在debug模式下设置,
编译后hex文件在proName\Debug\Exe下
proteus设置时钟:
代码:
#include <MSP430x24x.h>
#define uchar unsigned char
#define uint unsigned int
void delayms( uint t )
{
uint i;
while ( t-- )
for ( i = 1330; i > 0; i-- )
;
/* 进过参数的调整 */
}
void main( void )
{
uchar i;
WDTCTL = WDTPW + WDTHOLD; /* 关闭看门狗 */
P4DIR = 0x01;
P1SEL = 0; /* 设置为普通I/O 口 */
P1DIR = 0xFF; /* 设置方向 */
P1OUT = 0xFF; /* 设置初始值 */
while ( 1 )
{
for ( i = 0; i < 8; i++ )
{
P1OUT = ~(1 << i);
delayms( 50 ); /* 延时 */
}
for ( i = 0; i < 8; i++ )
{
P1OUT = ~(1 << 7 - i);
delayms( 50 ); /* 延时 */
}
}
}
即可运行:
2 数码管轮流显示0到9
#include <MSP430x24x.h>
#define uchar unsigned char
#define uint unsigned int
uchar const table[] = { 0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, /* 共阴数码管段选码表,无小数点 */
0x7f, 0x6f, 0x77, 0x7c, 0x39, 0x5e, 0x79, 0x71 };
void delayms( uint t )
{
uint i;
while ( t-- )
for ( i = 1330; i > 0; i-- )
;
/* 进过参数的调整 */
}
void main( void )
{
uchar i;
WDTCTL = WDTPW + WDTHOLD; /* 关闭看门狗 */
P1DIR = 0xFF; /* 设置方向 */
P1SEL = 0; /* 设置为普通I/O 口 */
P1OUT = 0x00;
while ( 1 )
{
for ( i = 0; i < 10; i++ )
{
P1OUT = table[i];
delayms( 100 );
}
}
}
3 更多的自行探索
在我的下载栏目资源中有:https://download.csdn.net/download/x1131230123/12609567