从单片机基础到程序框架(全集 2019pdf版) - 第49页
/*---C 语言学习区 域的开始。 ----- ----------- ---------- ----------- ---------- */ void main( ) //主函数 { //...初始化区域 ,也就 是主要用来给 初学者学习 C 语言的区域。 while(1) { } } /*---C 语言学习区 域的结束。 ----- ----------- ---------- ----------- ---------- */…

}
}
}
【11.2 模板程序的使用说明。】
图 11.2.1 带串口的单片机最小系统
大多数初学者在学习 C 语言的时候,往往是在电脑端安装上 VC 平台软件来练习 C 语言,这种方法只要
在代码里调用 printf 语句,编译后就可以看到被 printf 语句调用的变量,挺方便的。本教程没有用这种方
法,既然本教程的 C 语言主要针对单片机,所以我想出了另外一种方法,这种方法就是直接在单片机上练习
C 语言,这样会让初学者体验更深刻。这种方法对硬件平台要求不高,只要 51 学习板上有一个 9 针的串口就
可以,这个串口既可以用来烧录程序,也可以用来观察代码里的某个变量,只要在代码里调用 View 函数就
可以达到类似 VC 平台软件下 printf 语句的效果,View 函数可以向串口输出某个变量的十进制,十六进制和
二进制,大家只要在电脑端的串口助手软件就可以看到某个变量的这些信息,View 函数能查看的变量最大数
值范围是 4 个字节的 unsigned long 变量,十进制的范围是从 0 到 4294967295,也可以查看 unsigned int 和
unsigned char 的类型变量(数据的进制以及 long,int,char 等知识点大家目前还没接触到,因此不懂也没
关系,当前只要有个大概的认识就可以,暂时不用深入理解,后面章节还会详细介绍)。View 函数是我整个
模板程序的其中一部分,所以要用这种方法就必须先复制我整个模板程序,初学者练习代码的活动范围仅仅
局限于模板程序里的“C 语言学习区域”,在此区域里有一个 main 主函数,main 主函数内有一个初始化区域,
初学者往往在这个初始化区域里练习 C 语言就够了,初学者最大的活动范围不能超过从“C 语言学习区域的
开始”到“C 语言学习区域的结束”这个范围,
这个范围之外其它部分的代码主要用来实现数据处理和串口发送的功能,大家暂时不用读懂它,直接复制过
来就可以了。比如:

/*---C 语言学习区域的开始。-----------------------------------------------*/
void main() //主函数
{
//...初始化区域,也就是主要用来给初学者学习 C 语言的区域。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
上述例子中,初学者练习代码只能在从“C 语言学习区域的开始”到“C 语言学习区域的结束”这个范
围,此范围外的代码直接复制过来不要更改。我们再来分析分析下面节选的 main 函数源代码:
/*---C 语言学习区域的开始。-----------------------------------------------*/
void main() //主函数
{
unsigned char a; //定义一个变量 a。
unsigned int b; //定义一个变量 b。
unsigned long c; //定义一个变量 c。
a=100; //给变量 a 赋值。
b=10000; //给变量 b 赋值。
c=1000000000; //给变量 c 赋值。
View(a); //在电脑串口端查看第 1 个数 a。
View(b); //在电脑串口端查看第 2 个数 b。
View(c); //在电脑串口端查看第 3 个数 c。
while(1)
{
}
}
/*---C 语言学习区域的结束。-----------------------------------------------*/
上述节选的 main 函数代码里,比如“a=100; //给变量 a 赋值。”这行代码,所谓的“赋值”
就是“=”这个语句,它表面上像我们平时用的等于号,实际上不是等于号,而是代表“给”的意思,把“=”
符号右边的数复制一份给左边的变量,比如“a=100;”就是代表把 100 这个数值复制一份给变量 a,执行这
条指令后,a 就等于 100 了。这里的分号“;”代表一条程序指令的结束。 而双斜线“//”是注释语句,双
斜线“//”这行后面的文字或字符都是用来注释用的,编译器会忽略双斜线“//”这一行后面的文字或字符,
编译器不把注释文字或字符列入源代码,也就是“//”这一行中后面的文字或字符是不占单片机内存的。当
然“//”仅仅局限于当前一行代码。上面除了“//”是注释语句外,上面的“/*”和“*/”之间也是注释语

句,跟”//”的作用一样,只不过“/*”是注释开始,“*/”是注释结束,它们的范围不局限于一行,而是
从“/*”到“*/”的范围,因此可以用于注释连着的多行文字或者字符。
接着 在 分析 上 述 代 码 中 最 重 要 的函 数 ,也 是 本节 最 核 心 最 重 要 的 函 数 View( 某 个变 量) 。比 如
“ View(a); ”这行代码,View(a)就是要把变量 a 的十进制,十六进制和二进制的数值都发送到串口,我
们通过 USB 转串口线让学习板连接上电脑,在电脑串口助手软件上就能看到被 View 函数调用的变量 a 的信
息。
【11.3 如何在电脑上使用串口助手软件查看被 View 函数调用的变量?】
前面章节在讲烧录程序时提到一个叫“stc-isp-15xx-v6.85I”的上位机软件,这个软件除了用来烧录
程 序 , 还 集 成 了 串 口 助 手 软 件 的 功 能 。 所 以 本 节 直 接 共 用 烧 录 程 序 时 的 USB 转 串 口 线 和
“stc-isp-15xx-v6.85I”软件就可以了,无需额外再购买新的 USB 转串口线和下载其它串口助手软件,但
是如何设置这个“stc-isp-15xx-v6.85I”上位机软件,还是有一些需要特别注意的地方的,现在把这个详
细的步骤介绍给大家。
第一步:设置烧录软件的选项。
按前面章节介绍烧录程序时所需的步骤,用 USB 转串口线连接 51 学习板和电脑,记录 COM 号,打开
“stc-isp-15xx-v6.85I”软件,选择单片机型号,选择对应的串口号(COM 号),设置最低波特率和最高波
特率,这部分的内容跟烧录程序时的配置步骤是一样的,唯一必须要特别注意的是最高波特率必须选择 9600!
最低波特率建议选择 2400。否则在烧录完程序后,当上位机集成软件自动切换到串口助手软件窗口时,接收
区域显示的一些汉字信息可能会出现乱码。
----------------------------------步骤之间的分割线----------------------------------------