keil c51调试相关问题

keilc51实验课程老师要求写一个程序,需要输入数据,调试过程中运行到scanf语句后还能不能输入数据继续运行下去... keil c51实验课程老师要求写一个程序,需要输入数据,调试过程中运行到scanf语句后还能不能输入数据继续运行下去 展开
 我来答
神木雕像
2014-04-30 · TA获得超过413个赞
知道答主
回答量:59
采纳率:100%
帮助的人:71.8万
展开全部
答案是:不能运行下去。

原因说明:
1、如果你在KEIL里面打开HELP,然后再搜索里面输入scanf,KEIL对该函数的解释中,第一句便这么说:
The scanf function reads data from the input stream using the getchar routine.

意思是函数scanf将以调用函数getchar的方式来从输入流中读取数据。

继续搜索getchar,同样KEIL会解释说:
The getchar function reads a single character from the input stream using the _getkey function.

意思是getchar调用_getkey来实现,幸运的是_getkey这个函数,KEIL给出了源代码:
就在 C:\Keil\C51\LIB 的getkey.c中:如下

char _getkey () {
char c;

while (!RI);
c = SBUF;
RI = 0;
return (c);
}

看到了吧,呵呵,里面有个循环查询 while (!RI);,你觉得程序还会继续运行吗。。。

也就是说,如果你想继续运行程序,你就得修改函数_getkey,将他写成中断的形式,
KEIL之所以给出代码,估计他们自己也觉得采用查询的方式不靠谱。。
追问
那对于这样的程序我怎样能检验是否能得到我想要的结果?也就是说老师怎样对我进行验收
追答
仿真 或者 把程序下载到单片机里面去运行看看。
程序要求,应该就是验收要求吧,这个不清楚了。。。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式