asust2p4 当前离线
注册会员
#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编辑过]
订阅 TOP
caopengly 当前离线
版主
论坛元老
你的硬件是什么?
一般常用的单片机上都有串口控制器,通过它可以很好的访问上位机。
从你的程序上看,你没有使用什么硬件资源,计算机怎么接受你的信息呢?
TOP
我这里用的是keil的软件仿真(simulator),根据教材(见Keil Cx51 V7.0单片机高级语言编程与uVision2应用实践P13~15)的说法:用户程序里采用scanf()和printf()所进行的输入输出操作,都是通过串行窗口1实现的
百思不得其解的是完全按照书上来的却行不通
[此贴子已经被作者于2007-2-25 23:51:06编辑过]
guode 当前离线
你的程序里面没有对串行口进行设置,
165198646 当前离线
中级会员
你没有写串口通讯协议的代码加上就好了
SCON = 0x50; //串口方式1,允许接收TMOD = 0x20; //定时器1 定时方式2TCON = 0x40; //设定时器1 开始计数TH1 = 0xE8; //11.0592MHz 1200 波特率TL1 = 0xE8;TI = 1;TR1 = 1; //启动定时器