标题:
请教一下,这个程序,哪里有问题?执行几步就不动
[打印本页]
作者:
jovew
时间:
2020-1-7 18:55
标题:
请教一下,这个程序,哪里有问题?执行几步就不动
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit B1 = P0^0;
sbit G1 = P0^1;
sbit R1 = P0^2;
sbit Y1 = P0^3;
uint i,j;
uint l=305;
void main()
{
P0 = 0xff;
TMOD = 0x02;
TH0 = 256-200;
TL0 = 256-200;
IE = 0x82;
TR0 = 1;
while(1);
}
void LED_Flash_and_Scroll() interrupt 1
{
++j;
switch(i)
{
case 0:
B1=0;
G1=1;
R1=1;
Y1=0;
break;
case 1:
B1=0;
G1=1;
R1=1;
Y1=1;
break;
case 2:
B1=1;
G1=0;
R1=0;
Y1=1;
break;
case 3:
B1=1;
G1=1;
R1=0;
Y1=1;
break;
}
i++;
if(j==300);
j = 0;
}
作者:
阔爱的钊钊
时间:
2020-1-7 21:02
i++;一直执行。执行三步就不再执行了,写程序记得变量清零这是一个很重要的东西
作者:
阔爱的钊钊
时间:
2020-1-7 21:03
if(i<=3)i++; else i=0;
作者:
阔爱的钊钊
时间:
2020-1-7 21:05
还有没明白你j++用起来干啥。
作者:
csmyldl
时间:
2020-1-7 21:28
i的变化是0-65535,而case语句中只列出了i为0 1 2 3 其他情况的i使程序在等待状态
作者:
my_qianhe
时间:
2020-1-7 21:36
<div class="blockcode"><blockquote><div>#include <reg52.h></div><div>
</div>#define uchar unsigned char
<div>#define uint unsigned int</div><div>
</div>sbit B1 = P0^0;
sbit G1 = P0^1;
sbit R1 = P0^2;
<div>sbit Y1 = P0^3;</div><div>
</div>uint i = 0;
void main()
{
P0 = 0xff;
TMOD = 0x02;
TH0 = 256-200;
TL0 = 256-200;
IE = 0x82;
TR0 = 1;
while(1);
}
void LED_Flash_and_Scroll() interrupt 1
{
switch(i)
{
case 0:
B1=0;
G1=1;
R1=1;
Y1=0;
break;
case 1:
B1=0;
G1=1;
R1=1;
Y1=1;
break;
case 2:
B1=1;
G1=0;
R1=0;
Y1=1;
break;
case 3:
B1=1;
G1=1;
R1=0;
Y1=1;
break;
}
i++;
if(i==4)
i = 0;
}
复制代码
你试试
作者:
tyrl800
时间:
2020-1-7 21:45
200us一次共4次就结束了,等65536个以后再4次;另外j变量没有用呀
作者:
jovew
时间:
2020-1-8 12:28
my_qianhe 发表于 2020-1-7 21:36
你试试
谢谢。。。。。。
程序是可以运行。
主要是我需要每个段 都要有不同的时间段。
作者:
jovew
时间:
2020-1-8 12:31
J变量 是延时用的。
删除了J变量,那么,每个片段时间都一样了。
我需要case 1 是延时十秒钟, CASE 2 延时 一分钟。等等。
怎么增加?
作者:
jizhongbiao
时间:
2020-1-8 13:43
要么i清掉,要么把default分支加上。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1