#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。
调了好久还是显示不出来,也不知道是哪里错了,给我指点下吧,谢谢啦
|