打印

哪位高手帮小弟解决一下

[复制链接]
1578|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
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
       }
------
------

使用特权

评论回复
5
heilongqq|  楼主 | 2009-9-26 16:27 | 只看该作者
好,我试试

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

25

主题

48

帖子

0

粉丝