文档视界 最新最全的文档下载
当前位置:文档视界 › 仿真调试简单的C语言程序案例.

仿真调试简单的C语言程序案例.

仿真调试简单的C语言程序案例.
仿真调试简单的C语言程序案例.

仿真调试简单的C语言程序案例

编写一个简单程序,要求输出“Hello,Keil C!”,这个程序可以按原来学习《C语言程序设计》的方法编写。

#include

main()

{

printf(“Hello,Keil C!\n”);

}

本程序很简单,主函数只用到了一个printf函数,但当按照上节介绍的步骤调试运行该程序的时候,并没有看到想要的输出结果,这是为什么呢?

如果这个程序在Turbo C中编译运行的话,肯定在屏幕上可以看到“Hello,Keil C!”,因为在Windows中,标准的输入/输出设备为键盘和显示器,当该程序在Windows 中运行时,printf()函数向显示设备输出实符串,但是在单片机的编译器Keil中,系统默认的输入/输出设置是串行口,所以这样的语句在Keil中并不能产生效果,于是要对上述程序进行修改。

SCON=0x52; //设置串行口控制寄存器SCON

TMOD=0x20; //定时器1工作于方式2

TH1=0xE8; //11.0592MHz,1200波特率

TR1=1; //启动定时器1

许多教材把上述语句写在一个函数中,即串行口初始化函数serial_initial(),虽然目前对上述语句还不懂,但不要紧,以后学习了串行口的工作原理后就会明白。

对修改完的源程序进行编译,进入调试运行状态,还要打开串口输出窗口,其方法就是单击运行和调试工具条中的‘1#’串行窗口“”,或选择“view”下拉菜单

的“Serial Windows #1”选项,如图1所示,之后就会在主窗口中出现标题为“Serial #1”的子窗口,串口的输出就是在这个窗口中显示出来。为方便观察,可以选择

“Window→Cascade",使多个子窗口成为层叠的形式,如图2所示。

图1 View菜单图2 串口调试窗口

运行程序,在“Serial #1”中看到了输出结果,发现输出的实符串不断在跳动,当单击“停止”按钮时,发现输出的字符串不一定是完整的,如图3所示。这是由于运行程序后,单片机是连续运行,因此在串行口输出窗口中不断出现该字符串,所以经常在程序的最后添加一个语句:

while(1){}

有一个循环保证程序不会中上,即可解决上述问题。

图3 Serial #1窗口显示的结果

相关文档