LED动态扫描显示六个数字

2019-03-24 15:55发布

#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。 调了好久还是显示不出来,也不知道是哪里错了,给我指点下吧,谢谢啦 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
3条回答
risher365
2019-03-24 21:04
<

自己调出来了,这句话P3OUT= 0xfe<<cnt不对

换了另外一种表达方式就出来了,改成这种形式P3OUT=dress[Dre++];

谢谢大家啊

一周热门 更多>

相关问题

    相关文章