大家来帮我看看这个程序错在哪里了!!!!???

2019-07-15 21:26发布

#include<reg52.h>
sbit p1_1=P1^0;
sbit p1_2=P1^1;
sbit p1_3=P1^2;
sbit p1_4=P1^3;
sbit p1_5=P1^4;
sbit p1_6=P1^5;
sbit p1_7=P1^6;
sbit p1_8=P1^7;
unsigned int a;
void main()
{
        a=50000;
        p1_1=0;
        p1_2=1;
        p1_3=0;
        p1_4=1;
        p1_5=0;
        p1_6=1;
        p1_7=0;
        p1_8=1;
        while(a--);
        a=50000;
        p1_1=1;
        p1_2=0;
        p1_3=1;
        p1_4=0;
        p1_5=1;
        p1_6=0;
        p1_7=1;
        p1_8=0;
        while(a--);
}

上面这个程序实现不了八个灯的间接闪烁
而下面这个程序确实是可以实现两个灯的闪烁的
请哪位高手指教
#include<reg52.h>
sbit p1_1=P1^0;
sbit p1_2=P1^1;
unsigned int a;
void main()
{
        a=50000;
        p1_1=0;
        p1_2=0;
        while(a--);
        a=50000;
        p1_1=1;
        p1_2=1;
        while(a--);
}
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
qq729101414
1楼-- · 2019-07-16 03:00
程序没错啊 会不会是驱动的方式不合适?灯是地电平亮么?
UltraFire
2楼-- · 2019-07-16 04:41
a没赋初值,并且延时不是这样的~
xiaohuoabs
3楼-- · 2019-07-16 07:53
 精彩回答 2  元偷偷看……
702095693
4楼-- · 2019-07-16 10:40
我觉得这段程序虽然不好看,但是应该没什么错误吧。是不是单片机端口的负载能力比较小啊?
feifei0409
5楼-- · 2019-07-16 11:08
我怎么感觉只能亮灭一次,没在while(1)循环里面
城东
6楼-- · 2019-07-16 15:54
首先感谢各位!
今天我弄了很久,终于弄好了!
程序没有任何的问题,之所以点亮不了发光管是因为我自己操作不对的原因,我是新手,所以对于KELL的很多地方多不是很熟,今天我新建了一个工程,在把这个文件添加到工程里就成功了,我想昨天没有成功是因为没有保存就编译的原因吧!
说到KELL,我有一个地方不懂,就是生成HEX文件的时候我要编译两次,生成两次才能够生成HEX文件,我也不知道是KELL的原因还是操作的原因,有哪位高人有相同的经历的吗?
最后还是再谢谢大家的关注!

一周热门 更多>