自编测试代码如下:
#include "w77e58.h "
xdata unsigned char TxPnt;
xdata unsigned char ComTxbyte[]={0x00,0x00,0xff,0xff};
xdata unsigned char aa;
void Com1_INT(void) interrupt 4
{
if(RI)
// {
RI=0;
//RxByte();
// }
if(TI)
{
TI=0;
if(TxPnt <=3)
{
REN=0;
SBUF=ComTxbyte[TxPnt];
TxPnt++;
}
else TxPnt=0;
}
}
void Opencom(void)
{
TMOD|=0x20;
TH1=0xFD;
TL1=0xFD;
SCON=0x50;
EA=1;
ES=1;
TR1=1;
REN=1;
}
void main()
{
PMR|=0x01;
aa=0x00;
TxPnt=0;
Opencom();
while(1)
{
xdata unsigned char i;
if(TxPnt==0)
{
SBUF=0x00;
//SBUF=ComTxbyte[0];
//REN=0;
}
//TXD=0;
for(i=0;i <5;i++){}
aa++;
}
}
环境用的是ADEK仿真器320W,我对TXD直接置低,可以.
对SBUF直接赋值,没反应,郁闷,这么点代码都会这样!
那位前辈不吝赐教,谢先!
------解决方案--------------------
什么没反应,LZ说得不明白,发送没必要放在中断完成,直接拿出来