标题:
程序为什么调不通?
[打印本页]
作者:
浅水初探
时间:
2016-8-31 09:36
标题:
程序为什么调不通?
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar flag,a;
//uchar code table[]="I get " //此句若加上,程序为什么调不通????、
void main()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1)
{
if(flag==1)
{
ES=0;
flag=0;
// for (i=0;i<6;i++)
SBUF='1';//28;
while(!TI);
TI=0;
SBUF='2';//28;
while(!TI);
TI=0;
SBUF='3';//28;
while(!TI);
TI=0;
ES=1;
}
}
}
void ser() interrupt 4
{
RI=0;
// P1=SBUF;
a=SBUF;
flag=1;
}
作者:
浅水初探
时间:
2016-8-31 11:31
#include<reg52.h>
#define uchar unsigned char
//#define uint unsigned int
uchar flag,a,b,i;
uchar code table[]="I get ";
void main()
{
TMOD=0x20;//设置定时器1为工作方式2
TH1=0xfd;
TL1=0xfd;
TR1=1;
REN=1;
SM0=0;
SM1=1;
EA=1;
ES=1;
while(1)
{
if(flag==1) //如果有数据则进入这个语句
{
ES=0; //进入发送数据时先关闭串行中断
for(i=0;i<6;i++)
{
SBUF=table[i];
while(!TI)
TI=0;
}
SBUF=a; //将数据原样发回
while(!TI); //等待数据发完
TI=0; //关闭发送中断
ES=1; //退出前再打开串行中断
flag=0;
}
}
}
void ser() interrupt 4
{
RI=0;
// P1=SBUF;
a=SBUF;
flag=1;
}
感谢,已调试通过。
作者:
淡然若梦
时间:
2016-8-31 11:45
0.0代码都没看完
作者:
13088180561
时间:
2016-8-31 14:02
SBUF=a; //将数据原样发回
while(!TI); //等待数据发完
TI=0; //关闭发送中断
a没有赋值的地方,其值应是随机的,这几句是啥意思?
作者:
浅水初探
时间:
2016-8-31 15:18
前面SBUF已接受了数据table【i】
SBUF=a; //将数据原样发回 串口接受寄存器收到数据后发送数据给a;
while(!TI); //等待数据发完,TI!=0是程序在循环
TI=0; //关闭串口中断服务程序
ES=1; //退出前再打开串行中断
flag=0;
作者:
我操擦
时间:
2016-8-31 16:02
再仔细看一下
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1