单片机流水灯小程序问题

2019-07-16 02:15发布

刚买了STC90C516单片机,做一个简单的流水灯,八个灯从上到下依次点亮熄灭,亮时蜂鸣器响,灭时蜂鸣器不响。程序是这样的:
#include <reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp;
sbit beep=P1^5;
void delay(uint);
void main()
{
    temp=0xFE;
    P1=temp;
    while(1)
  {  
     beep=0;
     temp=_crol_(temp,1);
     beep=1;
     delay(420);
     P1=temp;
}
}
void delay(uint z)
{
uint x,y;
for(x=100;x>0;x--)
  for(y=z;y>0;y--);
}
但是运行结果却是灯6一直亮,而且灯8不亮。请教各位大侠,这是为什么。程序有什么问题吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
14条回答
yan503072699
1楼-- · 2019-07-16 07:17
 精彩回答 2  元偷偷看……
yatoo
2楼-- · 2019-07-16 09:05
虽然 你 while循环的逻辑有点复杂, 但是貌似 没有错误, 结果不正确的话,你可以考虑是不是延时不够....建议加大delay中 for的计数次数试试......
in发烧友ing
3楼-- · 2019-07-16 13:37
我已经在我的实验版上试过了,你程序没有错误,在我实验板上是成功的,也许你的实验板的电路图不一样吧,或者是其他的问题,我也学单片机一个月!
曼兵
4楼-- · 2019-07-16 16:02
yan503072699 发表于 2013-3-7 15:23
while  循环了  所以灯一直亮

不循环8个灯怎么亮熄灭亮熄灭个不停呢,问题是我的电路图上蜂鸣器是和P1.5连接的,而8个灯也是由P1口控制的,所以有些冲突。换成其他的口,灯都不亮了。
我是单片机新手,才学没多长时间,所以有些简单的问题不懂。谢谢你们的帮忙。
邓健dk
5楼-- · 2019-07-16 18:16
我也要去买个开发板,以后试一下罗
denganhui
6楼-- · 2019-07-16 19:09
 精彩回答 2  元偷偷看……

一周热门 更多>