#include "msp430x44x.h "
const unsigned char led_table[]={
0xd7, //*"0"*//
0x14, //*"1"*//
0xcd, //*"2"*//
0x5d, //*"3"*// // LED 显示代码LED
0x1e, //*"4"*//
0x5b, //*"5"*//
0xdb, //*"6"*//
0x15, //*"7"*//
0xdf, //*"8"*//
0x5f, //*"9"*//
};
unsigned char cnt=0;
void main(void)
{
WDTCTL = WDT_ADLY_1_9; // 设置看门狗定时时间为1.9ms
IE1 |= WDTIE;
P3DIR=0xff; // 端口3,4 初始化
P4DIR=0x03;
P4OUT=0x00;//设置初始值
P3OUT=0x00;
_EINT(); // 中断允
_BIS_SR(LPM3_bits); // 进入LPM3
}
#pragma vector = WDT_VECTOR
__interrupt void watchdog_timer(void)
{
P4OUT=0x01;
P3OUT= 0xfe<<cnt;
P4OUT&=~0x01;//位选
P4OUT=0x02;
P3OUT =led_table[cnt];
P4OUT&=~0x02;//段选
cnt++;
if (cnt==6)cnt=0;
}
LED原理:P3.0~P3.7 既为LED 的显示段码输出,又为LED 的位选输出,通过F449 的P4.1、P4.2 口控制74HC373 的LE 端来选择来实现输出的有效数据。其工作方式为:
当P4.1 为高电平,P3.0~P3.7 为LED 的显示段码输出,依次对应LED 的a、f、b、g、c、h、d、e。
当P4.0 为高电平,P3.0~P3.5 为LED 位选输出,依次对应D5、D4、D3、D2、D1、D0。
调了好久还是显示不出来,也不知道是哪里错了,给我指点下吧,谢谢啦
此帖出自
小平头技术问答
一周热门 更多>