打印

我的Keil是不是有问题?仿真不正常实际却正常!附工程文件

[复制链接]
2148|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cnchip|  楼主 | 2009-3-9 22:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题终于查清,稍后发帖说明,你也可以不用回复了,自然下沉吧...
详情请见:https://bbs.21ic.com/club/bbs/ShowAnnounce.asp?id=3260149
2009.3.10  20:02
----------------------------------------------------------
是AT89C51SND1的片子,这是工程文件,关于printf函数的
软件仿真总是死在监测TI那里,但实际运行却正常!

#include <stdio.h>
#include "AT89C51SND1_REG.H"

void main(void)
{
    unsigned char i;
    CKCON |= 0x01;   ////CKCON.0=X2=1,    设置为6分频,清除则为12分频
    BDRCON |= 0x10;  // BRR:启动波特率发生器
    BDRCON |= 0x08;  // TBCK:发送,选择波特率发生器代替Time1
    BDRCON |= 0x04;  // RBCK:接受,
    BDRCON |= 0x02;  // SPD:SPD置1
             
    BRL = 191;    //波特率重装寄存器
    PCON |= 0x80;   //PCON高两位是串口模式控制
    TR1 = 1;  //启动定时器,即操作TCON
    SCON &= 0x7f;
    SCON |= 0x43;  //用printf时,即RI、TI也置1了
    
    for(i=0;i<10;i++)
    {
        printf("%bx:hello... ",i);
    }
    printf("STOP......");
    while(1) ;
}

这是实际运行效果:


不顶了,谢谢二楼兄弟!

相关帖子

沙发
渤海三叠浪| | 2009-3-9 22:19 | 只看该作者

你的keil没有问题!!你的程序有问题!!

keil 仿真和实际硬件有时候是不一样的!!
这种不一样对编程者来说是有好处的。
你的程序我看不懂 我估计实际运行也是不正常的,只不过看不出来。

我学单片机仅有几个月,故以上所言纯属猜想!!完毕!

使用特权

评论回复
板凳
zgl7903| | 2009-3-9 23:12 | 只看该作者

应该是定时器没有设置好

软调波特率等于0 
设置好定时器的模式和波特率(装载数)

使用特权

评论回复
地板
laden| | 2009-3-10 09:04 | 只看该作者

试试这个:SCON = 0x52;

使用特权

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

本版积分规则

214

主题

1375

帖子

1

粉丝