标题:
我是单片机的新人,做流水灯遇到点小麻烦,求大神帮忙
[打印本页]
作者:
不是大神的小韩
时间:
2016-9-25 11:14
标题:
我是单片机的新人,做流水灯遇到点小麻烦,求大神帮忙
#include<reg52.h>
#include<intrins.h>
#define uint unsigned int
#define uchar unsigned char
uchar temp,tt,flag;
//void delay(uint z);
void main()
{
temp=0Xfe;
P1=temp;
TMOD=0x01;
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
if(flag==1)
flag=0;
//delay(10000);
temp=_crol_(temp,1);
P1=temp;
}
}
void exter0() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
if(++tt==20000)
{
tt=0;
flag=1;
}
}
这是我做的流水灯程序,可是在灯是全亮的,哪出错了啊,大神帮助我。
作者:
半夏123
时间:
2016-9-25 12:17
感觉延迟有问题啊,程序中是零延迟,你把延迟函数模块具体写出来呗
作者:
半夏123
时间:
2016-9-25 12:23
还有c语言程序中“//”是注释的意思,程序运行时会忽略//后面的内容,所以没有报错
作者:
wxx
时间:
2016-9-25 12:49
加我qq1160188484 给你解决
作者:
a0931727149
时间:
2016-9-25 13:50
程序沒有太大的問題 ,,,猜測是轉態時間過長
if(++tt==20000) 改成 if(++tt== 2) 看看
作者:
a0931727149
时间:
2016-9-27 08:37
a0931727149 发表于 2016-9-25 13:50
程序沒有太大的問題 ,,,猜測是轉態時間過長
if(++tt==20000) 改成 if(++tt== 2) 看看
while(1)
{
if(flag==1)
flag=0;
//delay(10000);
temp=_crol_(temp,1);
P1=temp;
}
改成
while(1)
{
if(flag==1)
{
flag=0;
//delay(10000);
temp=_crol_(temp,1);
P1=temp;
}
}
作者:
STC89C51
时间:
2016-9-27 08:51
楼上正解!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1