本帖最后由 peiyang 于 2014-3-12 11:37 编辑
串口输出不是我想要的,前几天还好好的,突然就不知咋回事了!!!求高人指导!!!程序代码:
#include"reg52.h"
//#include"intrins.h"
unsigned char s=0;
void initUART(void)//串口初始化
{
TMOD=0x25;//定时器1,工作方式2
SCON=0x50;//串口工作方式2,8位自动重装载
// PCON=0;//波特率不倍增
EA=1; //开总中断
ES=1; //开串口中断
TH1=TL1=0xfd;//自动重装值和初始值
TR1=1; //定时器1开
}
void main(void)
{
initUART();
while(1);
}
void inser() interrupt 4 //串口中断服务程序
{
s=SBUF;
RI=0;
SBUF=s;
while(!TI);
TI=0;
}
在Protuse里运行的,用虚拟串口仿真,电路图如下:
右上角的是虚拟终端,调试用的,右下角的是Protuse里调用串口用的,已用虚拟串口软件创建了COM1,COM2串口
晶振是11.0592的,设置波特率9600,仿真如下:
返回值应该是q的ASCII值,可他不是!
以前还好好的,突然就这样了,求指教!!!!
|