定时器程序的问题

[复制链接]
3188|9
 楼主| wangwo 发表于 2009-11-21 22:40 | 显示全部楼层 |阅读模式
以下程序是一个四位定时显示程序
a【9】是显示0-9是的代码,c【3】是1-4位数码管点亮代码,b【0】-b【3】用来记录各位的状态,b【4】用来扫描各个数码管
我用的是 stc89c52 要求是从低位开是0123456789......向高位进位是高位点亮,请教各位大侠下面这个程序有什么问题
#include<reg52.h>
int a[9];

int c[3];
delay()//延时函数
{
int i;
for(i=0;i<3340;i++)
;
}
int jishu(int i)//数据显示表格
{

return a;
}
int dingwei(int i)//位置表格
{

return c;
}
main()
{
int b[4];

c[0]=0xfe;
c[1]=0xfd;
c[2]=0xfb;
c[3]=0xf7;

a[0]=0xff;
a[1]=0xf9;
a[2]=0xa4;
a[3]=0xb0;
a[4]=0x99;
a[5]=0x92;
a[6]=0x82;
a[7]=0xf8;
a[8]=0x80;
a[9]=0x90;


for(b[0]=0;b[0]<=9;b[0]++)//最高位
for(b[1]=0;b[1]<=9;b[1]++)//次高位
  for(b[2]=0;b[2]<=9;b[2]++)//次低位
   for(b[3]=0;b[3]<=9;b[3]++)//低位
    for(b[4]=0;b[4]<=3;b[4]++)//定位计数函数
    {
      P3=dingwei(b[4]);
     P0=jishu(b[b[4]]);
      delay();
     }
}
Karlshen 发表于 2009-11-21 22:51 | 显示全部楼层
估计是这里的问题:b[b[4]]
 楼主| wangwo 发表于 2009-11-27 23:07 | 显示全部楼层
b数组设成b【4】时PC乱飞,改成b【5】其他什么都不变,就能按预想执行,困惑
suoma 发表于 2009-11-29 23:11 | 显示全部楼层
顶一下
huamunv 发表于 2009-12-1 13:07 | 显示全部楼层
感觉for语句不对
gfs0521 发表于 2009-12-2 09:01 | 显示全部楼层
C语言没有学好,这里也比较冷清
gfs0521 发表于 2009-12-2 09:03 | 显示全部楼层
int b[4];  //定义4个 int变量数组

分别为:b[0],b[1],b[2],b[3],     b[4]是第5个超出你定义的变量
Karlshen 发表于 2009-12-2 21:51 | 显示全部楼层
同意楼上所说
huamunv 发表于 2009-12-2 23:14 | 显示全部楼层
看看热闹:lol
 楼主| wangwo 发表于 2009-12-3 21:34 | 显示全部楼层
对于高手,略点一下手,我们就受益匪浅了!
对于成功的人,略点一下头,我们的人生就变了!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

99

主题

806

帖子

2

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