Nick_BW_Zhao_ 2015-10-19 13:15
浏览 1913
已结题

51单片机数组赋值,中断不运行

#include
#define uchar unsigned char
#define uint unsigned int
uchar num,num1,begin,temp,flag;
uchar a[10];

void delay(uint x)
{
uchar y;
for(x;x>0;x--)
for(y=255;y>0;y--);
}

void init()//初始化
{
TMOD=0x20;
TH1=0xfd;//9600
TL1=0xfd;
TR1=1;
SCON=0x50;//方式2
SM2=1;
EA=1;
ES=1;
num1=0;
}

void putchar(uchar ch)//发送数据
{
SBUF=ch;
while(!TI);
TI=0;
}

void main()
{
init();
while(1)
{
if(flag==1)
{
P1=0x0f;//LED灯,直观判断是否进入
for(num=0;num<10;num++)//数组赋值
putchar(a[num]);
}
}
}

void ser() interrupt 4
{
RI=0;
temp=SBUF;
if(temp==0xff||begin==1)//0xff为起始位 如果temp是0xff或者begin是1那么就运行
{
begin=1; //第一次由temp==0xff判定进来时,吧begin赋值1,为了提供下次赋值数组
if(temp!=0xff) //如果不等于0xff就不是起始位,那么进入
{
if(temp!=0xfe)//0xfe是结束位,如果是0xfe也不进行数组赋值
{
a[num1]=temp;
num1++;
}
else if(temp==0xfe) //如果是接受到0xfe,那么结束,begin赋值0,不进入下次赋值,一直到接受到0XFF为止
{
begin=0;
num1=0;//下次接受num1是从0开始接受
flag=1;//结束后,主函数运行
}
}
}
}

//现在问题是不进行中断部分出错,flag不为1

  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥100 关于使用MATLAB中copularnd函数的问题
    • ¥20 在虚拟机的pycharm上
    • ¥15 jupyterthemes 设置完毕后没有效果
    • ¥15 matlab图像高斯低通滤波
    • ¥15 针对曲面部件的制孔路径规划,大家有什么思路吗
    • ¥15 钢筋实图交点识别,机器视觉代码
    • ¥15 如何在Linux系统中,但是在window系统上idea里面可以正常运行?(相关搜索:jar包)
    • ¥50 400g qsfp 光模块iphy方案
    • ¥15 两块ADC0804用proteus仿真时,出现异常
    • ¥15 关于风控系统,如何去选择