#include<stdio.h>
main()
{int i,s=0;
i=1;
while(i<=100)
{s=s+i;
i++;
}
printf("1+2+3+`````+100=%d\n",s);
while(1);
}
基本上原封不动的照超教科书的例子,但在build target进入Debug按下Go以后,Serial#1却什么也没有?按理该显示1+2+3+`````+100=5050不是吗?什么原因呢?
[此贴子已经被作者于2007-2-23 16:06:02编辑过]
你的硬件是什么?
一般常用的单片机上都有串口控制器,通过它可以很好的访问上位机。
从你的程序上看,你没有使用什么硬件资源,计算机怎么接受你的信息呢?
我这里用的是keil的软件仿真(simulator),根据教材(见Keil Cx51 V7.0单片机高级语言编程与uVision2应用实践P13~15)的说法:用户程序里采用scanf()和printf()所进行的输入输出操作,都是通过串行窗口1实现的
百思不得其解的是完全按照书上来的却行不通
[此贴子已经被作者于2007-2-25 23:51:06编辑过]
你的程序里面没有对串行口进行设置,
你没有写串口通讯协议的代码加上就好了
SCON = 0x50; //串口方式1,允许接收
TMOD = 0x20; //定时器1 定时方式2
TCON = 0x40; //设定时器1 开始计数
TH1 = 0xE8; //11.0592MHz 1200 波特率
TL1 = 0xE8;
TI = 1;
TR1 = 1; //启动定时器
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |