|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2009-12-10 14:50:36
|
显示全部楼层
第二天:点亮led
十月革_命的一声炮响,给我们带来了马克思主义。
led点亮标志着我们学会430的最基本IO操作了。
/***************************************************************************
作者:赵永科
日期:2009-6-10
功能:使430板子上数码管显示数字,从左到右。
***************************************************************************/
#include "msp430x14x1.h"
#include "led.h"
unsigned char buffer[6]={0,1,2,3,4,9};/*显存,可在程序中更改*/
int main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
init_led();
while(1)
{
show(buffer);
}
}
led.h
#ifndef _kkk_164led_h
#define _kkk_164led_h
void send164(unsigned char a);
void delay_led(unsigned int a);
void show(unsigned char *d);
void init_led(void);
#endif
led.c
/**************************************************************************
发送164数据
**************************************************************************/
#include "msp430x14x1.h"
void send164(unsigned char a)
{
unsigned char i;
for(i=0;i<8;i++)
{
if(a&0x80)
{
P5OUT|=0x80;
}
else
{
P5OUT&=~0x80;
}
P5OUT&=~0x40;
P5OUT|=0x40;
a<<=1;
}
}
void delay_led(unsigned int a)
{
while(a--);
}
/*************************************************************************
显示函数,参数需要一个至少6字节的数组
*************************************************************************/
void show(unsigned char *d)
{
unsigned char i;
const unsigned char table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x7e,0x71};
for(i=0;i<6;i++)
{
send164(~(1<<i));
send164(table[d[5-i]]);
delay_led(450);
}
}
void init_led(void)
{
P5DIR|=0xc0;
} |
|