450 likes | 636 Views
电子设计大赛系列培训 ------ 单片机和 C 语言 (2). 第三讲 Keil C 和 STC-ISP 软件的使用. 3.1 Keil C 软件使用. Keil C51 是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、 PLM 语言和 C 语言的程序设计,界面友好,易学易用。. 3.1.1 启动 Keil C51 软件. 下面介绍 Keil C51 软件的使用方法,启动 Keil C51 时的屏幕图所示。. 启动 KeilC51 时的屏幕. 几秒钟后出现编辑界面,屏幕如下图所示。. 进入 KeilC51 时的编辑界面.
E N D
3.1 Keil C软件使用 Keil C51是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、PLM 语言和C语言的程序设计,界面友好,易学易用。
3.1.1 启动Keil C51软件 下面介绍Keil C51软件的使用方法,启动Keil C51时的屏幕图所示。 启动KeilC51时的屏幕
几秒钟后出现编辑界面,屏幕如下图所示。 进入KeilC51时的编辑界面
6.1.2 简单程序建立过程简介 下面通过简单的编程、调试操作和演示,让大家学习和掌握Keil C51软件的基本使用方法和基本调试技巧。 1、建立工程。单击“Project”菜单准备建立一个新工程,在弹出的下拉菜单中选中“New Project”选项(见下图)。 在KeilC51中建立一个新工程
2、工程名称。选择要保存的路径,输入工程文件的名字,比如保存到d:\STCproject目录下,工程项目名为P_STCproject,单击“保存”按钮即可,如图。2、工程名称。选择要保存的路径,输入工程文件的名字,比如保存到d:\STCproject目录下,工程项目名为P_STCproject,单击“保存”按钮即可,如图。 将新工程保存到指定目录
3、选择芯片。系统弹出一个对话框要求选择单片机的型号,可以根据所使用的单片机来选择。Keil C51几乎支持所有的MCS-51内核的单片机,虽然这里没有STC的单片机选项,但是选中Atmel中的89C52即可默认是STC89C52RC单片机。如下图所示,选择89C52之后,右边栏是对这个单片机的基本的说明,然后单击“确定”按钮。 单片机的选型
4、建立新文件。完成上一步骤后界面如图所示,到目前为止,在建好的项目中还没有编写一句程序,下面开始编写第一个程序。4、建立新文件。完成上一步骤后界面如图所示,到目前为止,在建好的项目中还没有编写一句程序,下面开始编写第一个程序。 KeilC51 中的一个 空项目 界面
在下图中,单击“File”菜单再在下拉菜单中单击“New”选项;在下图中,单击“File”菜单再在下拉菜单中单击“New”选项; 准备新建一个文件
新建文件后屏幕如图所示 新建文件界面
此时光标在编辑窗口中闪烁,这时可以键入用户编写的源程序了,此处建议保存该空白文件及其类型,单击菜单上的“File”,在下拉菜单中选中“Save as” 项者单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用C语言编写程序则扩展名为.c;如果用汇编语言编写程序,则扩展名必须为.asm。然后,单击“保存”按钮。 保存新建文件及其类型界面
5、将此文件加入该工程。回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键弹出如图所示菜单项;5、将此文件加入该工程。回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键弹出如图所示菜单项; 在KeilC51中的一个空项目里加入文件
选中Text1.c,然后单击“Add”屏幕如图所示, C源程序被加入空项目后的界面
此时‘Source Group1’ 文件夹中多了一个子项“Text1.c”,子项的多少与所增加的源程序的多少相同。 6、编辑源程序。在光标闪烁的代码编辑区输入如下C语言源程序; #include<reg52.h> #include<stdio.h> void main(void) { SCON = 0x52; //串口方式1,允许接收 TMOD = 0x20;//定时器T1工作在方式2 TH1 = 0xF3; // 选定波特率 TR1 = 1; //启动定时器,此行及以上3行为printf函数所必须 printf("Hello I am KEIL.\n") ; printf("I will be your friend.\n") ; while(1); }
在输入上述程序时,Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如图所示 C源程序在项目中被编辑的效果
7、编译调试。然后单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后,再单击“Debug”菜单,在下拉菜单中单击“Start/stop Debug Session”选项(或者使用快捷键Ctrl+F5),界面如下图所示 C源程序 在执行 Ctrl+F5 后的效果
8、运行和停止程序。单击“Debug”菜单,在下拉菜单中单击“go”选项(或者使用快捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击“Stop Runing”选项(或者使用快捷键Esc);再单击“View”菜单,在下拉菜单中单击“Serial Windows#1”选项,就可以看到程序运行后的结果,其结果如图所示 C源程序 最后的 执行结果
或者右击Target1选“Options fo Target ‘Target 1’”也可以用工具栏按钮。 至此,在KeilC51中做了一个完整工程的全过程,但这只是纯软件的开发过程,必须在KeilC51中进行进一步设置才能将已编译好的程序下载到STC单片机中供其运行。 9、输出hex文件(做为烧录文件使用)。 单击“Project”菜单,再在下拉菜单中单击“options for Target ‘Target1’”选项
在对话框中的“Output”选项卡中选中“CreateHEXFile”前的复选框,再编译一次程序,在项目目录中就会产生HEX代码,本例会产生P_STCproject.hex供下载器软件使用。下载器软件会把程序下载到STC89C52RC单片机中。在对话框中的“Output”选项卡中选中“CreateHEXFile”前的复选框,再编译一次程序,在项目目录中就会产生HEX代码,本例会产生P_STCproject.hex供下载器软件使用。下载器软件会把程序下载到STC89C52RC单片机中。
3.1.3 Keil C 的调试 1、编译
调试工具 源程序/反汇编 窗口切换 复位 停止运行 跟踪运行 运行到光标处 查看串行口 连续运行 单步运行 查看堆栈
3.2 用stc-isp软件将HEX文件写入单片机芯片中 3.2.1 开发板和STC下载线的配置 单片机以STC89C52RC单片机为主芯片,用串口线即可完成程序的下载,电源采用USB口供电,更加方便携带,一台计算机足以完成程序的开发及下载工作。
单片机最小系统、下载线和上位机之间的配置图单片机最小系统、下载线和上位机之间的配置图
3.2.2 如何将HEX 文件写入单片机芯片 首先在PC机上安装stc-isp软件(该步骤略去)并启动该软件,可以在http://www.mcu-memory.com下载stc-isp软件,安装好后的软件在桌面上应出现如图所示的图标。双击该图标打开,正式进入软件操作阶段。 stc-isp 软件在 视窗系统 桌面的 快捷方式
1、选择所用的单片机,这里选用与开发板上型号一致的单片机,即STC89C52RC ,如图所示。如果使用的是其他型号的单片机,可以根据所用单片机型号来选择。 在stc-isp 软件中 选择 单片机 型号
2、打开文件(单击Open File→*.hex),选中源程序Text1.C所产生的P_STCproject.hex文件(文件名与项目名有关)并双击它,该文件的十六进制代码被调入右边的文件缓冲区窗口,如下图所示。 在stc-isp 软件中 HEX文件 的导入
3、选择所用的串行口,通常选择COM1,如下图(a)所示。如果所用的PC机有多个串口,或者使用USB到串口的转换装置,就要根据实际情况来选择。最高波特率可以作为默认值使用,如下图(b)所示。如果所用的PC机配置较低,可以选低一些的波特率进行尝试。3、选择所用的串行口,通常选择COM1,如下图(a)所示。如果所用的PC机有多个串口,或者使用USB到串口的转换装置,就要根据实际情况来选择。最高波特率可以作为默认值使用,如下图(b)所示。如果所用的PC机配置较低,可以选低一些的波特率进行尝试。 在stc-isp 软件中对串行口和波特率的选择
*4、选择其他选项。STC单片机可工作于双倍速,这在写片时决定;写片时可以决定单片机内部的振荡电路增益是否减半;下次冷启动时是否需要将P10和P11置为低电平才能正常工作。这些都可以在写片时决定,如图所示。*4、选择其他选项。STC单片机可工作于双倍速,这在写片时决定;写片时可以决定单片机内部的振荡电路增益是否减半;下次冷启动时是否需要将P10和P11置为低电平才能正常工作。这些都可以在写片时决定,如图所示。 在stc-isp 软件中设定其他选项
5、单击“Download”按钮开始下载。注意:一定要先单击“Download”按钮,然后再给单片机电路板通电,如果一切正常,那么将弹出如下图所示界面不断提示工作进程,直至所有下载工作完成。5、单击“Download”按钮开始下载。注意:一定要先单击“Download”按钮,然后再给单片机电路板通电,如果一切正常,那么将弹出如下图所示界面不断提示工作进程,直至所有下载工作完成。 在stc-isp 软件中 正常下 载界面
3.3实例 点亮发光二极管: • #include<reg51.h> • sbit D1=P3^7; • void main() • { • while(1) • D1=1; • }
点亮发光二极管: #include<reg51.h> sbit D1=P3^7; void main() { while(1) D1=0; }
发光二极管闪烁: #include<reg51.h> sbit D1=P3^7; unsigned int a; void main() { while(1) { a=50000; D1=0; while(a--); a=50000; D1=1; while(a--); } }
课堂练习 对照51单片机学习板原理图写程序; 用位操作和总线操作两种方法完成以下题目; 1.熟练建立KEIL工程; 2.点亮第一个发光管; 3.点亮最后一个发光管; 4.点亮1、3、5、7; 5.点亮二、四、五、六; 6.尝试让第一个发光管闪烁; 7.尝试设计出流水灯程序。
课后训练 • 第一个发光管以间隔200ms闪烁 • 8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。 • 8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。 • 用8个发光管演示出8位二进制数累加过程。 • 8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。 • 间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。 • 间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。
Thank youvery much 谢谢大家!