本帖最后由 sunminda 于 2020-12-12 17:05 编辑
用串行控制流水灯,我编的程序,keil没报错,但是proteus调试不出来,求大佬指点
单片机源程序如下:
#include<reg51.h>
#include<intrins.h>
unsigned char i=200,j,FLAG1,FLAG2,Temp;
void Init_T0(void)
{ TH0=0xEE;
TL0=0x00;}
void Init_UART(void)
{ SCON=0x50;
PCON=0x00;
TH1=0xFD;
TR1=1;
ES=1;}
void UART_SER(void) interrupt 4 using 1
{ RI=0;
Temp=SBUF;
FLAG2=1;}
void time0_SER(void) interrupt 1 using 2
{ TH0=0xEE;
TL0=0x00;
i--;
if((i==0)&&(FLAG1==0))
{i=200; P1=_crol_(j,1); j=P1;}
else if((i==0)&&(FLAG1==1))
{i=200; P1=_cror_(j,1); j=P1;}}
void main(void)
{ EA=1;
TMOD=0x21;
Init_T0();
Init_UART();
IP=0x10;
while(1)
{if (FLAG2==1)
{ ES=0;
switch(Temp)
{ case 0x55:ET0=1;TR0=1; FLAG1=0; P1=0xfe; j=0xfe; SBUF=Temp;break;
case 0xAA:ET0=1;TR0=1; FLAG1=1; P1=0x7f; j=0x7f; SBUF=Temp;break;
case 0x01:ET0=0;TR0=0;break;
case 0x02:ET0=1;TR0=1;break;}
while(!TI);TI=0;
ES=1;FLAG2=0;}}}
proteus图如下
|