1 / 45

电子设计大赛系列培训 ------ 单片机和 C 语言 (2)

电子设计大赛系列培训 ------ 单片机和 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 时的编辑界面.

Download Presentation

电子设计大赛系列培训 ------ 单片机和 C 语言 (2)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 电子设计大赛系列培训------单片机和C语言(2)

  2. 第三讲 Keil C和STC-ISP软件的使用

  3. 3.1 Keil C软件使用 Keil C51是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编、PLM 语言和C语言的程序设计,界面友好,易学易用。

  4. 3.1.1 启动Keil C51软件 下面介绍Keil C51软件的使用方法,启动Keil C51时的屏幕图所示。 启动KeilC51时的屏幕

  5. 几秒钟后出现编辑界面,屏幕如下图所示。 进入KeilC51时的编辑界面

  6. 6.1.2 简单程序建立过程简介 下面通过简单的编程、调试操作和演示,让大家学习和掌握Keil C51软件的基本使用方法和基本调试技巧。 1、建立工程。单击“Project”菜单准备建立一个新工程,在弹出的下拉菜单中选中“New Project”选项(见下图)。 在KeilC51中建立一个新工程

  7. 2、工程名称。选择要保存的路径,输入工程文件的名字,比如保存到d:\STCproject目录下,工程项目名为P_STCproject,单击“保存”按钮即可,如图。2、工程名称。选择要保存的路径,输入工程文件的名字,比如保存到d:\STCproject目录下,工程项目名为P_STCproject,单击“保存”按钮即可,如图。 将新工程保存到指定目录

  8. 3、选择芯片。系统弹出一个对话框要求选择单片机的型号,可以根据所使用的单片机来选择。Keil C51几乎支持所有的MCS-51内核的单片机,虽然这里没有STC的单片机选项,但是选中Atmel中的89C52即可默认是STC89C52RC单片机。如下图所示,选择89C52之后,右边栏是对这个单片机的基本的说明,然后单击“确定”按钮。 单片机的选型

  9. 4、建立新文件。完成上一步骤后界面如图所示,到目前为止,在建好的项目中还没有编写一句程序,下面开始编写第一个程序。4、建立新文件。完成上一步骤后界面如图所示,到目前为止,在建好的项目中还没有编写一句程序,下面开始编写第一个程序。 KeilC51 中的一个 空项目 界面

  10. 在下图中,单击“File”菜单再在下拉菜单中单击“New”选项;在下图中,单击“File”菜单再在下拉菜单中单击“New”选项; 准备新建一个文件

  11. 新建文件后屏幕如图所示 新建文件界面

  12. 此时光标在编辑窗口中闪烁,这时可以键入用户编写的源程序了,此处建议保存该空白文件及其类型,单击菜单上的“File”,在下拉菜单中选中“Save as” 项者单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用C语言编写程序则扩展名为.c;如果用汇编语言编写程序,则扩展名必须为.asm。然后,单击“保存”按钮。 保存新建文件及其类型界面

  13. 5、将此文件加入该工程。回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键弹出如图所示菜单项;5、将此文件加入该工程。回到编辑界面后,单击“Target1”前面的“+”号,然后在“SourceGroup1”上单击右键弹出如图所示菜单项; 在KeilC51中的一个空项目里加入文件

  14. 然后单击“AddFiletoGroup‘SourceGroup1’”屏幕如图所示 C源程序被加入空项目里

  15. 选中Text1.c,然后单击“Add”屏幕如图所示, C源程序被加入空项目后的界面

  16. 此时‘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); }

  17. 在输入上述程序时,Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如图所示 C源程序在项目中被编辑的效果

  18. 7、编译调试。然后单击“Project”菜单,再在下拉菜单中单击“Built Target”选项(或者使用快捷键F7),编译成功后,再单击“Debug”菜单,在下拉菜单中单击“Start/stop Debug Session”选项(或者使用快捷键Ctrl+F5),界面如下图所示 C源程序 在执行 Ctrl+F5 后的效果

  19. 8、运行和停止程序。单击“Debug”菜单,在下拉菜单中单击“go”选项(或者使用快捷键F5),然后再单击“Debug”菜单,在下拉菜单中单击“Stop Runing”选项(或者使用快捷键Esc);再单击“View”菜单,在下拉菜单中单击“Serial Windows#1”选项,就可以看到程序运行后的结果,其结果如图所示 C源程序 最后的 执行结果

  20. 或者右击Target1选“Options fo Target ‘Target 1’”也可以用工具栏按钮。 至此,在KeilC51中做了一个完整工程的全过程,但这只是纯软件的开发过程,必须在KeilC51中进行进一步设置才能将已编译好的程序下载到STC单片机中供其运行。 9、输出hex文件(做为烧录文件使用)。 单击“Project”菜单,再在下拉菜单中单击“options for Target ‘Target1’”选项

  21. 在对话框中的“Output”选项卡中选中“CreateHEXFile”前的复选框,再编译一次程序,在项目目录中就会产生HEX代码,本例会产生P_STCproject.hex供下载器软件使用。下载器软件会把程序下载到STC89C52RC单片机中。在对话框中的“Output”选项卡中选中“CreateHEXFile”前的复选框,再编译一次程序,在项目目录中就会产生HEX代码,本例会产生P_STCproject.hex供下载器软件使用。下载器软件会把程序下载到STC89C52RC单片机中。

  22. HEX代码产生的设置

  23. 3.1.3 Keil C 的调试 1、编译

  24. 2、除错模式 CTRL+F5

  25. 调试工具 源程序/反汇编 窗口切换 复位 停止运行 跟踪运行 运行到光标处 查看串行口 连续运行 单步运行 查看堆栈

  26. 除错模式界面

  27. 3、周边除错辅助工具(用以模拟)

  28. 3.1.4 IO port 模拟

  29. 01.可自行控制P0脚位

  30. 02.P1、P2变化

  31. 3.2 用stc-isp软件将HEX文件写入单片机芯片中 3.2.1 开发板和STC下载线的配置 单片机以STC89C52RC单片机为主芯片,用串口线即可完成程序的下载,电源采用USB口供电,更加方便携带,一台计算机足以完成程序的开发及下载工作。

  32. 单片机最小系统、下载线和上位机之间的配置图单片机最小系统、下载线和上位机之间的配置图

  33. 3.2.2 如何将HEX 文件写入单片机芯片 首先在PC机上安装stc-isp软件(该步骤略去)并启动该软件,可以在http://www.mcu-memory.com下载stc-isp软件,安装好后的软件在桌面上应出现如图所示的图标。双击该图标打开,正式进入软件操作阶段。 stc-isp 软件在 视窗系统 桌面的 快捷方式

  34. 1、选择所用的单片机,这里选用与开发板上型号一致的单片机,即STC89C52RC ,如图所示。如果使用的是其他型号的单片机,可以根据所用单片机型号来选择。 在stc-isp 软件中 选择 单片机 型号

  35. 2、打开文件(单击Open File→*.hex),选中源程序Text1.C所产生的P_STCproject.hex文件(文件名与项目名有关)并双击它,该文件的十六进制代码被调入右边的文件缓冲区窗口,如下图所示。 在stc-isp 软件中 HEX文件 的导入

  36. 3、选择所用的串行口,通常选择COM1,如下图(a)所示。如果所用的PC机有多个串口,或者使用USB到串口的转换装置,就要根据实际情况来选择。最高波特率可以作为默认值使用,如下图(b)所示。如果所用的PC机配置较低,可以选低一些的波特率进行尝试。3、选择所用的串行口,通常选择COM1,如下图(a)所示。如果所用的PC机有多个串口,或者使用USB到串口的转换装置,就要根据实际情况来选择。最高波特率可以作为默认值使用,如下图(b)所示。如果所用的PC机配置较低,可以选低一些的波特率进行尝试。 在stc-isp 软件中对串行口和波特率的选择

  37. *4、选择其他选项。STC单片机可工作于双倍速,这在写片时决定;写片时可以决定单片机内部的振荡电路增益是否减半;下次冷启动时是否需要将P10和P11置为低电平才能正常工作。这些都可以在写片时决定,如图所示。*4、选择其他选项。STC单片机可工作于双倍速,这在写片时决定;写片时可以决定单片机内部的振荡电路增益是否减半;下次冷启动时是否需要将P10和P11置为低电平才能正常工作。这些都可以在写片时决定,如图所示。 在stc-isp 软件中设定其他选项

  38. 5、单击“Download”按钮开始下载。注意:一定要先单击“Download”按钮,然后再给单片机电路板通电,如果一切正常,那么将弹出如下图所示界面不断提示工作进程,直至所有下载工作完成。5、单击“Download”按钮开始下载。注意:一定要先单击“Download”按钮,然后再给单片机电路板通电,如果一切正常,那么将弹出如下图所示界面不断提示工作进程,直至所有下载工作完成。 在stc-isp 软件中 正常下 载界面

  39. 3.3实例 点亮发光二极管: • #include<reg51.h> • sbit D1=P3^7; • void main() • { • while(1) • D1=1; • }

  40. 点亮发光二极管: #include<reg51.h> sbit D1=P3^7; void main() { while(1) D1=0; }

  41. 发光二极管闪烁: #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--); } }

  42. 课堂练习 对照51单片机学习板原理图写程序; 用位操作和总线操作两种方法完成以下题目; 1.熟练建立KEIL工程; 2.点亮第一个发光管; 3.点亮最后一个发光管; 4.点亮1、3、5、7; 5.点亮二、四、五、六; 6.尝试让第一个发光管闪烁; 7.尝试设计出流水灯程序。

  43. 课后训练 • 第一个发光管以间隔200ms闪烁 • 8个发光管由上至下间隔1s流动,其中每个管亮500ms,灭500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。 • 8个发光管来回流动,第个管亮100ms,流动时让蜂鸣器发出“滴滴”声。 • 用8个发光管演示出8位二进制数累加过程。 • 8个发光管间隔200ms由上至下,再由下至上,再重复一次,然后全部熄灭再以300ms间隔全部闪烁5次。重复此过程。 • 间隔300ms第一次一个管亮流动一次,第二次两个管亮流动,依次到8个管亮,然后重复整个过程。 • 间隔300ms先奇数亮再偶数亮,循环三次;一个灯上下循环三次;两个分别从两边往中间流动三次;再从中间往两边流动三次;8个全部闪烁3次;关闭发光管,程序停止。

  44. Thank youvery much 谢谢大家!

More Related