Keil C 上机的基本方法

上传人:枫** 文档编号:552355373 上传时间:2023-09-04 格式:DOCX 页数:11 大小:41.31KB
返回 下载 相关 举报
Keil C 上机的基本方法_第1页
第1页 / 共11页
Keil C 上机的基本方法_第2页
第2页 / 共11页
Keil C 上机的基本方法_第3页
第3页 / 共11页
Keil C 上机的基本方法_第4页
第4页 / 共11页
Keil C 上机的基本方法_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《Keil C 上机的基本方法》由会员分享,可在线阅读,更多相关《Keil C 上机的基本方法(11页珍藏版)》请在金锄头文库上搜索。

1、第 2 章 从标准 C 转向 Keil C2.1 概述常用的单片机应用系统的软件编写语言有汇编、BASIC、C、C+等,对51单片机而言, 使用最为广泛的还是汇编语言和C语言。有经验的程序员用汇编语言可编写出高效率的程 序,但用汇编语言不便于表达人们日常解决问题的思路和方法,还有编程工作量大、容易出 现 Bug (程序中的错误)、编写的程序不容易移植等缺点,故汇编语言一般只用于小型程序的 编写或整个软件中对执行效率要求较高的关键部分。用 C 语言编写程序比汇编更符合人们的思维习惯,开发者可以更专心考虑算法,对于 51单片机而言,最著名的C语言开发工具是Kell Software公司的yVisi

2、on3集成开发环境, 一般将其中的C语言称为C51。C51对ANSI(标准)C作了扩展,使C51和汇编浯言一样可 直接访问8051的硬件资源。对绝大多数51单片机应用系统可只用C语言,不使用汇编就可 完成软件开发任务;但即使是用C语言编写程序,也须理解51单片机的内部结构,特别是 内存、中断、串行通信口等资源的使用方法,否则很难实现一个实际的应用系统。C51 是专门为 51 系列单片机设计的,根据 51 单片机自身的特点进行了若干扩展,与 ANSI C在语法和库函数方面存在稍许差别,但绝大部分是兼容的。卩Vision3集成开发环境 (IDE)包括项目(Project)管理器、程序编辑器、Cx5

3、1编译器、Ax5l宏汇编器、BL51/Lx5l连 接定位器、 RTX51 实时操作系统、 Simulator 软件模拟器以及 Monitor51 硬件目标调试器, 所有这些功能均可在卩Vision3提供的单一而灵活的开发环境中极为简便地进行操作。 卩Vision3提供了强大的项目管理功能,可以十分方便地进行结构化多模块程序设计。 开发一个单片机系统的一般步骤如下: 设计并制作好硬件电路板(目标板)。 根据目标板各功能模块,用Keil C或其他开发工具编写目标板功能模块测试程序。 拔下目标板上的CPU,将仿真器的仿真头插人目标电路板的CPU插座,并将仿真器 与 PC 的通信电缆(一般用串口)连接

4、好,然后给目标电路板和仿真器加电,这样仿真器内的 CPU 就可代替(模拟)目标电路板的 CPU。 在PC上运行仿真器配套的测试软件,编写或打开第步得到的模块测试程序,运行 并调试程序。程序调试的方法与TC、VC等环境下程序调试的方法相似,如目标板不能实 现所需功能,应检查井更正目标板软、硬件设计中的错误,然开重复步,直至目标板 各功能模块测试正确为止。 目标板硬件功能通过测试后,编写单片机应用系统的软件,采用与步相似的方法, 测试单片机系统软硬件的正确性,直至系统软硬件功能正确。 将开发工具生成的可执行文件固化到芯片中。软硬件调试正确后,用Keil C或其他 开发工具生成可执行文件。如程序在目

5、标板CPU片内运行,则用编程器将生成的可执行文 件写入CUP中;如程序在片外运行,则将可执行文件写入ROM芯片中。 目标板断电,拔下仿真头,将写入程序后的CPU及ROM芯片插入目标扳后加电, 验证目标板是否实现了所需功能;如不正确.则应重复一步,直至正确。许多厂商都能生产符合Keil C公司Mon51标准、能在Keil C集成开发环境中使用的 Mon51仿真器,如广州周立功公司的TKS系列仿真器。当采用Kell C配合Mon51仿真器 作为开发工具时,Keil C既是软件编与工具,也是程序调试工具,可避免在各种开发工具间 反复切换,方便软件开发。随着软件技术的发展,在实际的开发过程中,程序调试

6、的绝大多数工作可不依赖硬仿真 器,也不必非等到目标板完成制作后才开始软件测试。与目标板外围电路无关的部分,可利 用Keil C的8051软仿真器来完成程序稠试;与目标板相关的部分,可利用Protues软件与 Keil C 联合仿真的方法进行软件调试。单片机应用要求较多的综合知识,与电子技术、自动控制技术、通信技术等知识紧密相 关,建议有条件的读者实际上手完成书中介绍的 PID 温度控制器,以真正完成知识综合、 理论到实践的学习过程。2.2 C51 程序的一般结构与标准C语言相同,C51程序由一个或多个函数构成,其中至少包含一个主函数main。 程序执行时一定是从主函数开始,调用其它函数后又返回

7、主函数;被调函数如果位于主调函 数前面,可以直接调用,否则要先声明后调用。这里函数与汇编语言中的子程序类似,函数 之间也可以互相调用。C51 程序的一般结构如下:预处理命令/* 用于包含头文件等 */全局变量定义/* 全局变量可以被本程序的所有函数引用 */函数1 声明函数n声明/* 主函数 */Main( ) 局部变量定义; /* 局部变量只能在所定义的函数内部引用 */ 执行语句;函数调用(形式参数表);/* 其它函数定义 */ 函数1(形式参数)局部变量定义; /* 局部变量只能在所定义的函数内部引用 */ 执行语句;函数调用(形式参数表)函数n (形式参数)局部变量定义; /* 局部变

8、量只能在所定义的函数内部引用 */ 执行语句;函数调用(形式参数表);2.3 Keil C 上机的基本方法一、p Vision3中编程的基本步骤采用 Keil C 开发 8051 单片机应用程序一般需要以下步骤:1)在p Vision3集成开发环境中创建一个新项目(Project),并为该项目选定合适的单 片机型号。2)利用p Vision3的文件编辑器编写C语言(或汇编语言)源程序文件,并将文件添加到项目中去。一个项目可以包含多个文件,除源程序文件外还可以有库文件或文本说明文 件。3) 通过p Vision3的各种选项,配置Cx51编译器、Ax51宏汇编器、BL51 / Lx51连 接定位器

9、以及Debug调试器的功能。4) 利用p Vision3的构造(Build)功能对项目中的程序文件进行编译链接,生成绝对 目标代码和可选的 HEX 格式的可执行文件,如果出现编译链接错误则返回第 2)步,修改 源程序中的错误后重新构造整个项目。5) 将没有错误的绝对目标代码装入p Vision3调试器进行仿真调试,调试成功后用编 程器将可执行文件写入到单片机应用系统的程序存储器或单片机内部的Flash ROM中。 二、 p Vision3 上机实例下面,我们以实例来介绍在p Vision3集成开发环境中,如何创建一个应用程序。/*【例2.1】从键盘输入两个数,在屏幕上输出较大者。其源程序写在m

10、ax.c文件中。*/ max.c 源程序如下:#include reg51.h#include stdio.hvoid serial_initial(void)SCON = 0x50;TMOD = 0x20;TH1 = 0xf3;TR1 = 1;TI = 1;/* serial_initial对串行口实行初始化,以便调用scanf()和printf()函数*/ /*能在串行窗口#1中正确接收或显示数据*/* 串口工作方式 1、允许接收 */* 定时器/计数器 1 工作于方式2 , 8 位自动重装载 */* f=12MHz SMOD=0 波特率=2400 的重装载值*/* 启动定时器 1 */*

11、 TI置位以便发送通用异步收发器的第一个字符*/int max(int x,int y) int z;if(xy) z = x; else z = y; return(z);main()int a,b,c;serial_initial(); printf(Please Input a,b:n); scanf(%d,%d,&a,&b);c = max(a,b);printf(max = %dn,c);while(1);/*死循环,防止CPU取到非法指令*/在上例的结尾,有一条死循环语句:while(1),为什么要加这条死循环语句?在程序执行时,CPU会根据当前指令的长度自动修改指令指针寄存器(P

12、C)的值,以 使PC指向下一条指令。如果应用程序只占用程序存储区的一部分,则程序存储器中除应用 程序外的其它部分是无意义的内容。若上例的最后没有while(1 )这条死循环语句,则程序执 行完printf(“max = %dn”,c)函数调用后,PC就会指向没有用户程序的存储区,从而取到非 法指令而导致错误。为防止这种错误,C51应用程序的main函数常用如下结构:void main( ) /初始化部分while(1) /其他代码在PC机上编写的C程序由于有Windows等操作系统的支持,不必采用这种结构。上机的具体步骤:(1)启动 Keil uVision3双击桌面上的Keil uVisio

13、n3图标或者单击屏幕左下方的“开始”,在弹出的对话框中选 择“程序”;再在弹出的程序对话框中,单击Keil uVision3选项,则进入Keil uVision3集 成开发环境。( 2) 建立项目文件选择ProjectINew Project菜单项,则弹出Create New Project界面,单击其中的“保存在” 下拉按钮,选择“E盘”,再单击创建新文件夹按钮,给文件夹起名为“MyProject”然后 双击MyProject文件夹进入。在“文件名”文字框输入程序项目名称,这里输入“Myexample”, 保存后的文件名扩展名为uv2,以后可以双击此文件打开该项目。在uVision3中,一个

14、项目是由包括项目文件(.uv2文件)、源程序等在内的很多文件组 成,为例便于管理,通常为每个项目建一个文件夹,本例建立了项目文件夹MyProjecto(3) 选择CPU器件项目文件夹保存完毕后将弹出Select Device for TargitTargit 1界面,用于为新建项目选 择一种CPU器件,本例选Atmel公司的AT89C51,选定后“Vision3将按所选器件自动设置 默认的工具选项,从而简化了项目的配置过程。窗口的Description列表框对所选的CPU的 I/O线,内部RAM、FLASH ROM容量等主要性能作了简要描述。(4) 加入Keil C提供的启动文件STARTUP

15、. A51完成CPU器件选择后,点击0K,则弹出是否增加启动文件到本项目界面,此处可以 选择“是”。 STARTUP. A51 是用汇编语言编写的源文件,一般用户无须修改;高级用户可 修改其中的内容,以定制堆栈管理、动态存储分配等相关设置。创建一个新项目后,在项目管理窗口(Project Workspace)中自动生成一个默认的目标 (Targit 1)和文件组(Souce Group 1)。在项目管理窗口的底部,有5个选项卡:“文件(File) 选项卡、用于在项目中快速定位、添加、移除文件;“寄存器(Regs)”选项卡,用于程序仿 真运行时显示寄存器的值;“书籍(Book)”选项卡,用于打开帮助文件;“函数(Functions)” 选项卡,用于在项目中快速定位已定义的函数;“模板(Templates)”选项卡,对C语言不 太熟悉的初学者可利用该选项卡提供的功能快速输入 C 语言的各种语句,减少源程序的语 法错误。(5) 编辑源程序文件选择FilelNew菜单项,从打开的编辑界面中输入前面列出的max.c。注意:输入源程序 可采取先保存文件(以文件名max.c保存),然后再输入的方法。同学自可体会其中的优点。(6) 将源程序加入到项目中源程序文件可以是已有的,也可以是新建的。|JVi

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 解决方案

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号