返回该小组首页 回复主题
pa2792

pa2792

小组等级:     E币:742  (E币换礼)

#1楼主:用CodeVisionAVR C Compiler在MEGA32中,怎样实现流水灯?

文章发表于:2008-06-30 09:22

我看了很多的流水灯例子,都是用到统一的IO组,而且当LED输出端口重新定义是得到程序里修改,我想先在开头先定义好端口,然后利用数组的方式
想点数码管的方式实现,可是本人才刚刚接触单片机,苦思多夜也不得其解,望高手给我解一下。
用CodeVisionAVR C Compiler在MEGA32中,怎样实现流水灯?(从LED1到LED12循序点亮,IO输出高电平为点亮。)
#include <mega32.h>
#include <delay.h>
#define  led1   PORTA.0      // 定义PORTA.0口为LED1
#define  led2   PORTA.1      // 定义PORTA.1口为LED2
#define  led3   PORTA.2
#define  led4   PORTA.3
#define  led5   PORTA.4
#define  led6   PORTA.5
#define  led7   PORTA.6
#define  led8   PORTB.0
#define  led9   PORTB.2
#define  led10   PORTD.1
#define  led11   PORTD.2
#define  led12   PORTD.3
实现构想:
做一个数组
LED[ ]={        
led1
led2
led3
led4
led5
led6
led7
led8
led9
led10
led11
led12 
}
怎样定义数组呢?
后面怎么写来实现它?

tozzz

   小组等级:    E币:114  (E币换礼)

#2

文章发表于:2008-09-19 18:46

不能这样用数组,前面定义的PORTX.n 是位操作。
而数组不能用bit组成。
几个端口共同组成的流水灯程序相对复杂一些。你可以定义一个int变量,然后做一个函数,用这个变量2进制对应led1-led16个led,然后对这个int变量进行左右移操作,就可以完成流水灯

总共 , 当前 /

快速回复主题--如果想加入编辑器功能,建议使用 [高级回复]

您目前还不是小组成员,请先加入

回复贴子区

用户名:    您没有注册?

密码:    忘记了密码?

内容:

  • DesignDesign
  • HTMLHTML

浏览该小组的用户还看过...

所有小组精华文章