打印

菜鸟求助;我编的程序哪里出问题了?

[复制链接]
1784|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hzocce|  楼主 | 2009-12-16 19:12 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 hzocce 于 2009-12-16 19:15 编辑

程序如下所示,是89C52单片机,其中的P1口接了8个LED,
用库函数是学会了怎样让LED闪烁。
今天是我是想用编码表依次让8个LED 闪烁。可我编好后下载到开发板后发现只有LED1,2,7,8一直亮着,其他的没有任何反应。

这是为什么,请大师帮我分析下,小弟感激不尽!
当然我只是想用编码表让LED闪烁。



#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
void delay();
uchar num;
uchar code table[]=
{0xfe,0xfd,0xfb,0xf7,
0xef,0xdf,0xbf,0x7f
};
void main()
{

while(1)
{
P1=table;
delay();
for(num=0;num<8;num++);
}
}
void delay()
{
uint x,y;
for(x=500;x>0;x--)
for(y=500;y>0;y--);
}

相关帖子

沙发
不亦心| | 2009-12-16 19:37 | 只看该作者
试试:
uchar num=0;
void main()
{
            while(1)
             {
                           P1=table[num];
                           delay();   
                           num++;
                           if(num==8)   num=0;                        
             }
}

使用特权

评论回复
板凳
huangqi412| | 2009-12-16 19:52 | 只看该作者
P1=table;

使用特权

评论回复
地板
at80s| | 2009-12-16 20:13 | 只看该作者
2楼的说的是对的,你直接用
P1=table 不行 table只是一个地址你要指向里面的代码??

使用特权

评论回复
5
danpianjizui| | 2009-12-16 21:27 | 只看该作者
你定义的table是个数组,p1=table[num]  才能依次调用数组里的数值,从而点亮数码管

使用特权

评论回复
6
ningling_21| | 2009-12-17 09:18 | 只看该作者
二楼正解...

使用特权

评论回复
7
comelon| | 2009-12-17 09:39 | 只看该作者
LZ得好好复习C语言了!:)

使用特权

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

本版积分规则

127

主题

561

帖子

4

粉丝