微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 请问如何变成发一个信号动一次如果不发就不动呢(点动)

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

时间:10-02 整理:3721RD 点击:

#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的灯就亮一次,一直发就一直亮不发就不亮

       

各种动作至少都会有两种状态,如开启或关闭,转动或停止,你只控制一种状态,那就永远只有一个状态了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top