智能车制作

 找回密码
 注册

扫一扫,访问微社区

查看: 949|回复: 0
打印 上一主题 下一主题

做点阵LED动态扫描,LED出现很快的闪烁

[复制链接]

9

主题

20

帖子

0

精华

注册会员

Rank: 2

积分
146
威望
94
贡献
30
兑换币
34
注册时间
2014-6-20
在线时间
11 小时
毕业学校
HIT
跳转到指定楼层
1#
发表于 2014-7-11 20:39:20 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <hidef.h>      /* common defines and macros */
#include "derivative.h"      /* derivative-specific definitions */
#include "MC9S12XS128.h"

static unsigned char j = 0;
uchar LedChar[] = {0x3C,0x3C,0x3C,0x00,0x00,0x3C,0x3C,0x3C};

#pragma CODE_SEG __NEAR_SEG NON_BANKED


void interrupt 16 TOI_ISR(void)
{

  TFLG2_TOF = 1;
  PORTA = 0xff;
  switch(j)
  {
      case 0: PORTB_PB5=0; PORTB_PB6=0; PORTB_PB7=0; break;
      case 1: PORTB_PB5=1; PORTB_PB6=0; PORTB_PB7=0; break;
      case 2: PORTB_PB5=0; PORTB_PB6=1; PORTB_PB7=0; break;
      case 3: PORTB_PB5=1; PORTB_PB6=1; PORTB_PB7=0; break;
      case 4: PORTB_PB5=0; PORTB_PB6=0; PORTB_PB7=1; break;
      case 5: PORTB_PB5=1; PORTB_PB6=0; PORTB_PB7=1; break;
      case 6: PORTB_PB5=0; PORTB_PB6=1; PORTB_PB7=1; break;
      case 7: PORTB_PB5=1; PORTB_PB6=1; PORTB_PB7=1; break;
      default: break;
  }
  PORTA=LedChar[j++];

}

#pragma CODE_SEG DEFAULT

void main(void) {
  /* put your own code here */

  TSCR1_TEN = 1;   //中断使能
  TSCR2_TOI = 1;   //溢出中断允许
  TC0 = 0xfacb;    //赋初值,1ms
  DDRB=0xff;
  PORTB_PB4=1;
  DDRA = 0xff;
  PORTA = 0xff;
  EnableInterrupts;
  for(;;)
  {
    if(j>=8) j=0;
  } /* loop forever */
  /* please make sure that you never leave main */
}


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

关于我们|联系我们|小黑屋|智能车制作 ( 黑ICP备2022002344号

GMT+8, 2024-12-29 16:38 , Processed in 0.050242 second(s), 29 queries , Gzip On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表