打印
[AVR单片机]

求怎么用AVR mega16依次点亮数码显示管!!

[复制链接]
2139|10
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
那木罕|  楼主 | 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};
这个表………………

使用特权

评论回复
5
xiaomifan| | 2010-3-23 19:41 | 只看该作者
PORTA=table;数组可以这样赋值?
int delay(void)函数,int型变量不超过65535

使用特权

评论回复
6
贾君鹏子| | 2010-3-23 22:50 | 只看该作者
这种网上一找一大堆

使用特权

评论回复
7
麻辣鸭脖子| | 2010-3-24 22:10 | 只看该作者
小小一段程序这么多问题

使用特权

评论回复
8
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来扩张.不知道你明白没

使用特权

评论回复
9
dragonzxs| | 2010-4-21 19:59 | 只看该作者
刚才没仔细看你问题。。不好意思。
for(j=0;j<4;j++)
   {
这个循环是不是有问题啊。这个循环会执行到PORTB=led[4];
你数组总共才4个元素,led[4]已经是第五个元素了,数组越界了

使用特权

评论回复
10
suoma| | 2010-4-21 21:36 | 只看该作者
unsigned char table
一般好像放外面吧

使用特权

评论回复
11
chzhjn| | 2010-7-26 12:32 | 只看该作者
“unsigned char table[10]”改为“unsigned char code table[10]”

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

26

帖子

0

粉丝