哪位高手帮小弟解决一下

[复制链接]
 楼主| heilongqq 发表于 2009-9-25 20:45 | 显示全部楼层 |阅读模式
/*设置单片机工作在方式0,间隔循环发送十六进制数0xaa,然后用双路示波器观察P3.0和P3.1口波形。*/
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
void delayms(uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
  for(j=113;j>0;j--);
}
void init()
{
SCON=0x00;//串口方式0,不接受数据。
EA=1;
ES=1;
TI=0;//软件清零
}
void main()
{
init();
while(1)
{
   SBUF=0xaa;
   delayms(1);
  }
}
void ser() interrupt 4
{
TI=0;
}

为什么P3.0或P3.1总是输出高电平
NE5532 发表于 2009-9-25 20:56 | 显示全部楼层
你的波特率设置在什么地方?
   SBUF=0xaa;
   delayms(1);
串口发数据用查询方式是这样写的?
 楼主| heilongqq 发表于 2009-9-25 20:59 | 显示全部楼层
这个是串口方式0,不是波特率可控的
hyg1984 发表于 2009-9-26 12:35 | 显示全部楼层
方式0,很少有人用啊
从程序上看,好像没什么问题
不过中断可以不用啊,反正你也没有用中断发送
这样改看行吗,中断的可以不要
-----
------
     while(1)
       {
                SBUF = 0xaa;
                    while(!TI);
                    TI = 0;
               delayms(1)//建议你延长一下时间看看,如20ms
       }
------
------
 楼主| heilongqq 发表于 2009-9-26 16:27 | 显示全部楼层
好,我试试
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

48

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部