45
汽汽汽汽 汽汽汽汽汽汽汽汽汽汽汽汽 汽汽汽汽汽汽汽汽汽汽 ------ 汽汽汽汽 C 汽汽 (2)

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

汽车学院

电子设计大赛培训系列之三

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

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

汽车学院

电子设计大赛培训系列之三

第三讲 Keil C 和 STC-

ISP 软件的使用

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

汽车学院

电子设计大赛培训系列之三

3.1 Keil C 软件使用

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

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

汽车学院

电子设计大赛培训系列之三

3.1.1 启动 Keil C51 软件

启动 KeilC51 时的屏幕

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

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

汽车学院

电子设计大赛培训系列之三进入 KeilC51 时的编辑界面

几秒钟后出现编辑界面,屏幕如下图所示。

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

汽车学院

电子设计大赛培训系列之三

6.1.2 简单程序建立过程简介

在 KeilC51 中建立一个新工程

下面通过简单的编程、调试操作和演示,让大家学习和掌握 Keil C51 软件的基本使用方法和基本调试技巧。

1 、建立工程。单击“ Project” 菜单准备建立一个新工程,在弹出的下拉菜单中选中“ New Project” 选项(见下图)。

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

汽车学院

电子设计大赛培训系列之三将新工程保存到指定目录

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

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

汽车学院

电子设计大赛培训系列之三

单片机的选型

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

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

汽车学院

电子设计大赛培训系列之三

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

KeilC51中的一个

空项目界面

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

汽车学院

电子设计大赛培训系列之三

在下图中,单击“ File” 菜单再在下拉菜单中单击“ New” 选项;

准备新建一个文件

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

汽车学院

电子设计大赛培训系列之三

新建文件后屏幕如图所示

新建文件界面

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

汽车学院

电子设计大赛培训系列之三

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

保存新建文件及其类型

界面

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

汽车学院

电子设计大赛培训系列之三

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

在 KeilC51 中的一个空项目里加入文件

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

汽车学院

电子设计大赛培训系列之三

然后单击“ AddFiletoGroup‘SourceGroup1’” 屏幕如图所示

C 源程序被加入空项目里

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

汽车学院

电子设计大赛培训系列之三

选中 Text1.c ,然后单击“ Add” 屏幕如图所示,

C 源程序被加入空项目后的界面

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

汽车学院

电子设计大赛培训系列之三

此时‘ Source Group1’ 文件夹中多了一个子项“ Text1.c” ,子项的多少与所增加的源程序的多少相同。

6 、编辑源程序。在光标闪烁的代码编辑区输入如下 C 语言源程序;

#include<reg52.h>#include<stdio.h>void main(void){SCON = 0x52; // 串口方式 1, 允许接收TMOD = 0x20;// 定时器 T1 工作在方式 2TH1 = 0xF3; // 选定波特率TR1 = 1; // 启动定时器,此行及以上 3 行为 printf 函数所

必须printf("Hello I am KEIL.\n") ;printf("I will be your friend.\n") ;while(1);}

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

汽车学院

电子设计大赛培训系列之三

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

C 源程序在项目中被编辑的效果

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

汽车学院

电子设计大赛培训系列之三

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

C 源程序在执行

Ctrl+F5后的效果

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

汽车学院

电子设计大赛培训系列之三

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

C 源程序最后的执行结果

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

汽车学院

电子设计大赛培训系列之三

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

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

汽车学院

电子设计大赛培训系列之三

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

汽车学院

电子设计大赛培训系列之三

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

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

汽车学院

电子设计大赛培训系列之三HEX 代码产生的设置

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

汽车学院

电子设计大赛培训系列之三

3.1.3 Keil C 的调试

1、编译

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

汽车学院

电子设计大赛培训系列之三

2 、除错模式 CTRL+F5

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

汽车学院

电子设计大赛培训系列之三

查看堆栈单步运行

复位

连续运行

跟踪运行 运行到光标处

停止运行源程序 /反汇编

窗口切换

查看串行口

调试工具

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

汽车学院

电子设计大赛培训系列之三

除错模式界面

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

汽车学院

电子设计大赛培训系列之三

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

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

汽车学院

电子设计大赛培训系列之三

3.1.4 IO port 模拟

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

汽车学院

电子设计大赛培训系列之三

01. 可自行控制 P0 脚位

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

汽车学院

电子设计大赛培训系列之三

02.P1 、 P2 变化

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

汽车学院

电子设计大赛培训系列之三

单片机以 STC89C52RC 单片机为主芯片,用串口线即可完成程序的下载,电源采用USB 口供电,更加方便携带,一台计算机足以完成程序的开发及下载工作。

3.2 3.2 用 stc-isp 软件将 HEX 文件写入单片机芯片中

3.2.1 开发板和 STC 下载线的配置

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

汽车学院

电子设计大赛培训系列之三单片机最小系统、下载线和上位机之间的配置图

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

汽车学院

电子设计大赛培训系列之三

stc-isp 软件在视窗系统桌面的快捷方式

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

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

汽车学院

电子设计大赛培训系列之三

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

在 stc-isp 软件中

选择单片机

型号

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

汽车学院

电子设计大赛培训系列之三

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

在 stc-isp 软件中

HEX 文件的导入

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

汽车学院

电子设计大赛培训系列之三

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

在 stc-isp 软件中对串行口和波特率的选择

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

汽车学院

电子设计大赛培训系列之三

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

在 stc-isp 软件中设定其他选项

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

汽车学院

电子设计大赛培训系列之三

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

在 stc-isp 软件中正常下载界面

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

汽车学院

电子设计大赛培训系列之三

点亮发光二极管:

#include<reg51.h>sbit D1=P3^7;void main(){ while(1) D1=1;}

3.3实例

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

汽车学院

电子设计大赛培训系列之三

点亮发光二极管:

#include<reg51.h>sbit D1=P3^7;void main(){

while(1)D1=0;

}

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

汽车学院

电子设计大赛培训系列之三

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

}

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

汽车学院

电子设计大赛培训系列之三

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

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

汽车学院

电子设计大赛培训系列之三

课后训练

1. 第一个发光管以间隔 200ms 闪烁2. 8 个发光管由上至下间隔 1s流动,其中每个管亮 500ms, 灭

500ms,亮时蜂鸣器响,灭时关闭蜂鸣器,一直重复下去。3. 8 个发光管来回流动,第个管亮 100ms,流动时让蜂鸣器发

出“滴滴”声。4. 用 8 个发光管演示出 8 位二进制数累加过程。5. 8 个发光管间隔 200ms由上至下,再由下至上,再重复一次,

然后全部熄灭再以 300ms间隔全部闪烁 5 次。重复此过程。6. 间隔 300ms 第一次一个管亮流动一次,第二次两个管亮流动,

依次到 8 个管亮,然后重复整个过程。7. 间隔 300ms先奇数亮再偶数亮,循环三次;一个灯上下循环

三次;两个分别从两边往中间流动三次;再从中间往两边流动三次; 8 个全部闪烁 3 次;关闭发光管,程序停止。

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

汽车学院

电子设计大赛培训系列之三

Thank you very much

谢谢大家!