标题:
proteus里程序不跑,大佬帮忙看一下
[打印本页]
作者:
戚戚是我
时间:
2019-12-18 02:00
标题:
proteus里程序不跑,大佬帮忙看一下
#include <reg51.h>
#include <intrins.h>
#define uchar unsigned char
#define uint unsigned int
unsigned char code table[] = {0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F}
uchar key_mode=0;
uchar RXD_time=11;
sbit H_RED=P1^0;
sbit H_GREEN=P1^1;
sbit H_YELLOW=P1^2;
sbit L_RED=P1^4;
sbit L_GREEN=P1^5;
sbit L_YELLOW=P1^6;
sbit k1=P2^0;
sbit k2=P2^1;
sbit k3=P2^2;
sbit k4=P2^3;
sbit LED_com1=P2^6;
sbit LED_com2=P2^7;
void delay_LED(unsigned int i)
{
unsigned int j;
for(j=0;j<i;j++)
}
void display(uchar RXD_time)
{
uchar shi,ge;
shi=RXD_time/10;
ge=RXD_time%10;
LED_com1=1;
LED_com2=1;
LED_com1=0;
P0=table[shi];
LED_com2=1;
delay_LED(20);
LED_com1=1;
P0=table[ge];
LED_com2=0;
delay_LED(20);
}
void int0() interrupt 0
if (k1==0) key_mode=1;
if (k2==0) key_mode=2;
if (k3==0) key_mode=3;
if (k4==0) key_mode=4;
}
void T0_int() interrupt 1
{
uchar i;
TH0=0x3C ;
TL0=0xB0;
i++;
if(i==10)
{
i=0;
L_YELLOW=~L_YELLOW;
H_YELLOW=~H_YELLOW;
}
}
void T1_int() interrupt 3
{
uchar i;
TH1=0x3C;
TL1=0xB0 ;
i++;
if(i==220)
{
i=0;
RXD_time--;
}
}
void main(void)
{
IT0=1;
EX0=1 ;
TMOD=0x11 ;
TH0=0x3C ;
TL0=0xB0 ;
ET0=1 ;
TH1=0x3C ;
TL1=0xB0 ;
ET1=1 ;
EA=1 ;
P1=1 ;
while(1)
{
if(key_mode==1)
{
L_RED=0;
H_RED=0;
}
if (key_mode==2)
{
TR0=1;
}
if (key_mode==3)
{
H_GREEN=0;
L_RED=0;
}
if (key_mode==4)
{
L_RED=0;
delay_LED(11000);
L_GREEN=0;
H_GREEN=0;
delay_LED(8000);
H_YELLOW=0;
delay_LED(3000);
H_RED=0;
TR1=1;
}
while(1);
}
}
作者:
xianfajushi
时间:
2019-12-18 10:09
while(1);这个何用?上仿真图看看是虾米
作者:
SroneBridge
时间:
2019-12-18 11:17
xianfajushi 发表于 2019-12-18 10:09
while(1);这个何用?上仿真图看看是虾米
很明显,不是不跑,是跑完一遍就被死循环了。
作者:
dreamerbao
时间:
2019-12-18 15:11
先说解决方案,去掉后面一个while(1);
解释:前一个 while(1){......}可以根据if后面不同的条件选择,并循环。但是 if (key_mode==4)也结束判断之后,你的程序进入了第二个 while(1); 之后,程序只在这里循环,而不是前一个大的while语句中循环。你的程序框架如下所示:
while(1)
{
if (key_mode==1) { };
if (key_mode==2) { };
if (key_mode==3) { };
if (key_mode==4) { };
while(1)
{ 空 };
};
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1