74LS138如果用来驱动LED,恐怕最好是用灌电流的方式,(因为没有找到更好的方式)
并且好像也没有人用过这个东西直接驱动数码管,只是用来做的好看点,并且还节省端口,如果谁有好的方法还希望能告诉俺一下,感激万分,共同提高。并且我的这个小灯想加上一些电容,做出一个带尾巴的循环灯效果。
#include "msp430x22x4.h"
extern void Delay();
extern void LEDshow();
static unsigned int ledshows[14]={
0x00,0x01,0x02,0x03,0x04,0x05,0x06,
0x07,0x06,0x05,0x04,0x03,0x02,0x01,}; //依次逐个循环点亮
int main()
{
WDTCTL=WDTPW+WDTHOLD; //关看门狗
P3DIR |= 0xFF; //P3.0-P3.2为LED,接74LS138
P3OUT = 0X00;
P4OUT = 0X00;
while(1)
{
LEDshow();
}
}
//===========================================
//函数名:LEDSHOW
//
//返回值:无
//===========================================
void LEDshow()
{
int i;
for(i = 0;i < 13;i++)
{
P3OUT = ledshows[i];
Delay(200);
}
}
//===========================================
//函数名:延时
//返回值: 无
//===========================================
void Delay(int count)
{
int i;
while(--count != 0)
{
for(i = 0; i < 125; i++);
} // i 从0加到125,在12M晶体下CPU大概耗时1毫秒
}