请问如何变成发一个信号动一次如果不发就不动呢(点动)

2019-07-15 09:34发布



#include<reg52.h>
#define i 30
#define uchar unsigned char
uchar flag;
char table2[i];
int num=0;

void init()
{

TMOD=0x20;
        TH1=0xfd;
        TL1=0xfd;
        TR1=1;
        REN=1;
        SM0=0;
        SM1=1;
        EA=1;
        ES=1;
}

void ser() interrupt 4
{if(RI==1)
    {
        RI=0;
        flag=SBUF;
        if(flag!='D')
        {
                table2[num]=flag;
                num++;
        }
        else{
       
                num=0;
               
                }
               
                ti=1;
                SBUF=flag;
                }}
       
void main()
{
        init();
        while(1){
        switch(table2[24])
{
case '9' : switch(table2[25])
{
case'3':P2=0xf5;}

break;
case '3' : switch(table2[25])
{
case'4':P2=0xfa;}

break;
default:P2=0xfd;break;

}}
//while(1);
}

        现在是上位机发一个信号后执行case后的语句,会一直执行case后语句,如何发一个信号只执行一次呢,我想做点动的,就是上位机发个信号P2的灯就亮一次,一直发就一直亮不发就不亮


       

0条回答

一周热门 更多>