我的疑惑是,如果count一开始赋值为2,它第一次加入中断函数不是马上进行加法求和,可这个时候不是没有给data1和data2赋值吗?那不是没有已经赋值了的data1和data2用来进行运算吗?
#include <REGX52.H>
#include "UART.h"
unsigned char data1,data2,count=2,sum;
void main()
{
UART_Init();
while(1)
{
}
}
void UART_Routine() interrupt 4
{
if(RI==1) //返回电脑输入第一个数据函数,十六进制
{
RI=0;
if(count==0)
{
data1=SBUF;
count=1;
}
else if(count==1)
{
data2=SBUF;
count=2;
}
}
if(count==2)
{
sum=data1+data2;
if(sum<=9) //hex模式相当于发送ASCII值,hex模式接收该ASCII对应的十六进制数,当sum<10时,sum不变例如ASCII=9对应0x09
UART_SendByte(sum);
else
{
sum=sum+6; //hex模式相当于发送ASCII值,hex模式接收该ASCII对应的十六进制数,当sum>10时,sum+6例如ASCII=16对应0x10
UART_SendByte(sum);
}
count=0;
}
}