[AVR单片机] 求怎么用AVR mega16依次点亮数码显示管!!

[复制链接]
 楼主| 那木罕 发表于 2010-3-22 08:59 | 显示全部楼层 |阅读模式
本帖最后由 那木罕 于 2010-3-26 17:53 编辑

:dizzy: 求一个解决办法。或者是一个思想。没有代码也行,只要是有思想就好。小弟初学,只有多多求教了。谢谢各位老师。。。。
int delay(void);
int main(void)
{   unsigned char table[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f} ;   //共阴
unsigned char  led[4]={0xFe,0xFc,0xF8,0xF0};
  int i,j;
  DDRA = 0xFF;
  DDRB = 0XFF;
  PORTA=0XFF;
  PORTB=0XFF;
  
  for(j=0;j<4;j++)
   {
    PORTB=led[j];
     for(i=0;i<10;i++)
      {
       PORTA=table;
   
   delay();
      }
    delay();  
   }
  return 0;

}
int delay(void)
{
int n;
for(n=1000;n>0;n--)
{;}
}


我写的这个是从0到9999的循环,不知道错在哪里了。。。小弟初学,只有多多求教了。谢谢各位老师。。。。





liao_fangxing 发表于 2010-3-23 13:17 | 显示全部楼层
int delay(void)
{
int n;
for(n=1000000000000000;n>0;n--)   -------------"1000000000000000":L
{;}
}
yanwuxu 发表于 2010-3-23 16:43 | 显示全部楼层
int n;
n能赋1后面跟着这么多0的值?
liao_fangxing 发表于 2010-3-23 17:10 | 显示全部楼层
unsigned char  led[4]={0xFe,0xFc,0xF8,0xF0};
这个表………………
xiaomifan 发表于 2010-3-23 19:41 | 显示全部楼层
PORTA=table;数组可以这样赋值?
int delay(void)函数,int型变量不超过65535
贾君鹏子 发表于 2010-3-23 22:50 | 显示全部楼层
这种网上一找一大堆
麻辣鸭脖子 发表于 2010-3-24 22:10 | 显示全部楼层
小小一段程序这么多问题
dragonzxs 发表于 2010-4-21 19:55 | 显示全部楼层
几位的?。我就说下方法吧,4位的为例。依次显示1,2,3,4.每位有7个LED,每位一共7个I/o口控制,我不知道你了解数码管不?我简单说下,4位的数码管的每位的7个LED是并联的,还有4个管脚引出用来做位的选择开关,这样可以省下I/o口,你想显示第一位就选择一开关,然后再通过那7个I/o口发送相应电平来点亮第一位数码管。依此类推了。如果I/o不够就用74hc595来扩张.不知道你明白没
dragonzxs 发表于 2010-4-21 19:59 | 显示全部楼层
刚才没仔细看你问题。。不好意思。
for(j=0;j<4;j++)
   {
这个循环是不是有问题啊。这个循环会执行到PORTB=led[4];
你数组总共才4个元素,led[4]已经是第五个元素了,数组越界了
suoma 发表于 2010-4-21 21:36 | 显示全部楼层
unsigned char table
一般好像放外面吧
chzhjn 发表于 2010-7-26 12:32 | 显示全部楼层
“unsigned char table[10]”改为“unsigned char code table[10]”
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部

7

主题

26

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部