作者deo2000 (800IM)
看板ASM
标题[问题] PC 收不到 51 送出的字串
时间Wed Jan 9 01:50:17 2013
经由P2的LED得知,P2的值确实有在变化
但是PC都收不到任何字串 (用超级终端机看)
#include "AT89X51.h"
/*
P2 读取ADC
P1,2,3 预留输出控制
*/
unsigned char ucADC0804;
main()
{
IE=0x90; /* (中断Enable)EA=1,(串列中断)ES=1*/
P2=0xFF; /* P2为读取Port */
SCON=0x70; /*Serial Port mode1*/
TMOD=0x20; /*Timer mode1(Auto Load)*/
TH1=0xFD; /*
[email protected]*/
TR1=1; /*Timer1 启动!*/
ucADC0804=P2;
TI=1; /*发射中断启动!*/
while(1)
{
//如果ADC0804输出的值有变化
if(P2!=ucADC0804){
ucADC0804=P2;
TI=1;
}
}
}
void serial_INT(void) interrupt 4
{
if(TI)
{
TI=0;/*清除*/
SBUF=ucADC0804;
while(!TI); /*等待发射完毕*/
TI=0;
P1=~(P1&=0x01); /*中断观测用*/
}
}
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.122.165.222
1F:→ deo2000:发现是RxTx接反,可是接对後还是一堆乱码 01/09 02:26
2F:→ deo2000:找到每次传4bit的方法,但还是无法理解为何这样不行? 01/09 06:05
3F:→ hongsiangfu:你直接传回P2的值是乱码很正常 01/09 09:48
4F:→ hongsiangfu:超级终端机接到资料後会对应ascii code显示对应字元 01/09 09:49
5F:推 hongsiangfu:sorry 没看到下面那篇 01/09 09:51
6F:→ deo2000:感谢! 下面那篇是我书上方法改,我还是想知道这篇的原因 01/09 12:46
7F:推 cwl751005:直接在主程式打SBUF=ucADC0804就会传啦 01/09 17:54