keilc51使用说明
- 格式:ppt
- 大小:791.50 KB
- 文档页数:46
Keil C51使用详解V1.0第一章 Keil C51开发系统基本知识 (6)第一节系统概述 (6)第二节Keil C51单片机软件开发系统的整体结构 (6)1. C51 for Dos 72. C51 for Windows的安装及注意事项: (7)第四节Keil C51工具包各部分功能及使用简介 (7)1. C51与A51. 72. L51和BL51. 83. DScope51,Tscope51及Monitor51. 84. Ishell及uVision. 9第二章 Keil C51软件使用详解 (10)第一节Keil C51编译器的控制指令 (10)1. 源文件控制类 (10)2. 目标文件(Object)控制类: (10)3. 列表文件(listing)控制类: (10)第二节dScope51的使用 (11)1. dScope51 for Dos 112. dScope for Windows 12第三节Monitor51及其使用 (13)1. Monitor51对硬件的要求 (13)2. Mon51的使用 (13)3. MON51的配置 (13)4. 串口连接图: (13)5. MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1. Ishell for Dos的使用 (14)2. uVision for windows的使用 (15)第三章 Keil C51 vs 标准C.. 15第二节内存区域(Memory Areas): (16)1. Pragram Area: (16)2. Internal Data Memory: 163. External Data Memory. 164. Speciac Function Register Memory. 16第三节存储模式 (16)1. Small模式 (16)2. Compact模式 (17)3. large模式 (17)第四节存储类型声明 (17)第五节变量或数据类型 (17)第六节位变量与声明 (17)1. bit型变量 (17)2. 可位寻址区说明20H-2FH.. 18第七节Keil C51指针 (18)1. 一般指针 (18)2. 存储器指针 (18)3. 指针转换 (18)第八节Keil C51函数 (19)1. 中断函数声明: (19)2. 通用存储工作区 (19)3. 选通用存储工作区由using x声明,见上例。
Keil C51使用详解keilc51使用详解v1.0电子设计世界!版权所有,热烈欢迎贴文,切勿修正并标明原文。
留存一切权利。
第一章keilc51开发系统基本知识 (6)1第一节系统概述 (6)第二节keilc51单片机软件开发系统的整体结构...6第三节keilc51工具包的加装...71.c51fordos72.c51forwindows的安装及注意事项:...7第四节keilc51工具包各部分功能及使用简介...71.c51与a51.72.l51和bl51.83.dscope51,tscope51及monitor51.84.ishell及uvision.9第二章keilc51软件使用详解 (10)第一节keilc51编译器的控制指令...101.源文件掌控类 (10)2.目标文件(object)控制类:...103.列表文件(listing)控制类:...10第二节dscope51的使用...111.dscope51fordos112.dscopeforwindows12第三节monitor51及其使用...131.monitor51对硬件的要求...132.mon51的使用...133.mon51的配置...134.串口连接图:...135.mon51命令及使用...14第四节集成开发环境(ide)的使用...141.ishellfordos的使用 (14)22.uvisionforwindows的使用 (15)第三章keilc51vs标准c..15第一节keilc51扩展关键字...15第二节内存区域(memoryareas):...161.pragramarea:...162.internaldatamemory:163.externaldatam emory.162.可位串行区表明20h-2fh..18第七节keilc51指针...181.通常指针...182.存储器指针...183.指针切换...18第八节keilc51函数...191.中断函数声明:...192.通用型存储工作区 (19)3.选通用存储工作区由usingx声明,见上例。
Keil C51详细设置一.target名更改打开Keil后,左侧Project Workspace中的target可改,方法:右击Target——Manage Compnents——双击待修改项即可,若要添加,使用对话框内对应工具栏。
二.option for target 设置之TARGET项1 MEMARY MODELSmall:变量存储在内部ram里.Compact:变量存储在外部ram里,使用页8位间接寻址Large:变量存储在外部Ram里,使用16位间接寻址.我们一般使用Small来存储变量,就是说单片机优先把变量存储在内部ram里,如果内部ram不够了,才会存到外部去.Compact的方式要自己通过程序来指定页的高位地址,编程比较复杂,如果外部ram很少,只有256个字节,那么对该256个字节的读取就比较快,用MOVX Ri,A 或MOVX A,Ri 指令.如果超过256字节,那么要不断地进行切换的话,就比较麻烦.Compact模式适用于比较少的外部ram的情况.Large模式,是指变量会优先分配到外部ram里,用MOVX A,DPTR或MOVX DPTR,A 来读取.要注意的是,3种存储方式都支持内部256字节和外部64k字节的ram.区别是变量的优先<或默认>存储在哪里的区别.除非你不想把变量存储在内部ram,才使用后面的Compact,Large模式.因为变量存储在内部ram里,运算速度比存储在外部ram要快的多,大部分的应用都是选择Small 的模式.使用Small的方式:也不是说变量就不可以存储在外部,一样可以存储在外部,只是你要指定,比如:unsigned char xdata a;那么变量a就存储在外部的ram.unsigned char a;变量存储在内部ram.假如用Large的模式:unsigned char xdata a;那么变量a就存储在外部的ram.unsigned char a;变量存储在外部ram.这就是区别,就是说这几个选项只是影响没有特别指定变量的存储空间的时候,默认存储在哪里,比如上面的变量定义unsigned char a .2. CODE ROM SIZESmall: program 2K or less ;适用于89c2051这些芯片,2051只有2k的代码空间,所以跳转地址只有2k,编译的时候会使用ACALL AJMP这些短跳转指令,而不会使用LCALL,LJMP指令.如果你的代码跳转超过2k,那么会出错.Compact:2k functiongs ,64k program:表示每个子函数的程序大小不超过2k,整个工程可以有64k的代码.就是说在main<>里可以使用LCALL, LJMP指令,但在子程序里只会使用ACALL,AJMP 指令.除非你确认你的每个子程序不会超过2k,否则不要用Compact方式.Large:64K program:表示程序或子函数都可以大到64k.使用code bank还可以更大.通常我们都选用该方式.Code Rom Size选择Large方式速度不会比Small慢很多,所以一般没有必要选择Compact和Small的方式.我们这里选择Large方式.3. OPERATINGNONE:不适用操作系统RTX51-TINY:使用TINY操作系统RTX-FULL:使用FULL操作系统Keil C51 提供了Tiny多任务操作系统,使用定时器0来做任务切换,效率很低,无实用价值。
Keil C51实用操作(使用汇编语言)一、建立一个工程项目、选择芯片并确定选项1、可先在D盘上建立一个名为“mytest”的文件夹。
2、进入Keil C51界面,如图1所示。
(图1)3、单击【工程】\【新建工程】选项。
在弹出的【新建工程】窗口中的【文件名】中输入一个文件名如:“test1”,再单击【保存】按钮。
4、在弹出的【为目标’目标1’选择设备】对话框中,选择单片机的型号,此处选【Atmel】\【AT89C51】,如图2所示,再单击【确定】按钮。
(图2)5、在打开的窗口中,单击【工程】\【目标’目标1’属性】选项。
在【目标’目标1’属性】窗口中,设置【目标】\【X晶振频率】选项的晶振频率。
此处设置晶振频率为:11.0592,其它选项可选择默认设置,如图3所示。
(图3)7、选择【输出】\【E生成HEX文件】选项,其它选项可选择默认设置,如图4所示,单击【确定】按钮。
(图4)二、建立源程序文件8、单击【文件】\【新建】选项,在打开的窗口中输入源程序文件。
9、单击【文件】\【另存为】选项,此处设置文件名为:“test1.asm”,注意扩展名为“.asm”。
单击【保存】按钮,将输入的源程序文件保存下来。
三、添加文件到当前项目组中10、单击【目标1】前面的【+】号,再右击【源程序组1】,如图5所示,在弹出的快捷菜单中单击【增加文件到组’源程序组1’】选项。
(图5)11、在打开的【增加文件到组’源程序组1’】窗口中,选择【文件类型】为【Asm 源文件】,【文件名】处选择上面建立的“test1.asm”文件,如图6所示,单击【Add】按钮,再单击【关闭】按钮。
(图6)四、编译(汇编)文件12、单击【工程】\【重新建造所有目标文件】选项,编译源程序。
此时窗口显示编译结果,如图7所示。
(图7)五、软件模拟仿真调试13、单击【调试】\【开始/停止调试】选项,进入软件模拟仿真调试界面,此处并选择【外围设备】\【I/O-Ports】\【Port 1】选项,打开P1输出窗口。
KEILC51的使用
1.环境搭建
2.创建一个新项目
打开KEIL C51后,首先点击"File" -> "New" -> "Project"来创建一个新项目。
在弹出的对话框中,选择合适的项目名称和存储位置,然后点击"OK"。
3.添加源代码文件
在新建的项目中,右键点击"Source Group 1" -> "Add New Item"来添加源文件。
用户可以选择C语言或汇编语言来编写源代码文件。
4.编写代码
5.编译代码
当代码编写完成后,用户可以点击"Project" -> "Build Target"来编译代码。
KEIL C51会自动将代码转换为相应的机器码,并生成可执行文件。
7.调试代码
8.仿真和模拟
9.代码优化
10.版本管理
在KEILC51中,用户还可以使用版本控制工具来管理项目代码的版本。
这些工具可以帮助用户跟踪代码的修改历史,并提供代码版本的回退和合
并功能。
、Keil C51工程建立与仿真1、建立一个工程项目,选择芯片并确定选项双击Keil uVision2快捷图标后进入Keil C51开发环境,单击“工程”菜单,在弹出的下拉菜单选中“新工程”选项,屏幕显示为图1。
附录:一图1 建立一个工程项目在文件名中输入一个项目名“my-test”,选择保存路径(可在“我的文档”中先建立一个同名的文件夹),单击保存。
在随后弹出的“为目标target选择设备”(Select Device for Target “Target1”)对话框中用鼠标单击Atmel前的“+”号,选择“89C51”单片机后按确定,如图2所示。
图 2 选择单片机后按确定选择主菜单栏中的“工程”,选中下拉菜单中“Options for Target ‘Target1’”,出现图3所示的界面。
单击“target”页面,在晶体Xtal(MHz)栏中选择试验板的晶振频率,默认为24MHz,我们讲座试验板的晶振频率为11.0592MHz,因此要将24.0改为11.0592。
然后单击输出“Output”页面,在“建立hex格式文件”前打勾选中,如图3-4。
其它采用默认设置,然后点确定。
图3 选择Target页面图4 选择Output页面2、建立源程序文件图 5 建立源程序文件程序输入完成后,选择“文件”,在下拉菜单中选中“另存为”,将该文件以扩展名为.asm格式(如my-test.asm)保存在刚才所建立的一个文件夹中(my-test)。
3、添加文件到当前项目组中单击工程管理器中“Target 1”前的“+”号,出现“Source Group1”后再单击,加亮后右击。
在出现的下拉窗口中选择“Add Files to Group‘Source Group1’”,如图6所示。
在增加文件窗口中选择刚才以asm格式编辑的文件my-test.asm,鼠标单击“ADD”按钮,这时my-test.asm文件便加入到Source Group1这个组里了,随后关闭此对话窗口。
强制类型转换运算符1.变量赋值时发生的隐式转换,“=”号右边的表达式的数据类型转换成左边变量的数据类型。
如把浮点数赋值给整形变量,小数部分将丢失。
2.所有char 型的操作数转换成int型。
3.两个具有不同数据类型的操作数用运算符连接时,隐式转换会按以下次序进行:如有一操作数是float 类型,则另一个操作数也会转换成float类型;如果一个操作数为long 类型,另一个也转换成long;如果一个操作数是unsigned 类型,则另一个操作会被转换成unsigned 类型。
从上面的规则可以大概知道有那几种数据类型是可以进行隐式转换的。
在C51中只有char, int, long及float这几种基本的数据类型可以被隐式转换。
而其它的数据类型就只能用到显示转换。
要使用强制转换运算符应遵循以下的表达形式:(类型) 表达式用显示类型转换来处理不同类型的数据间运算和赋值是十分方便和方便的,特别对指针变量赋值是很有用的。
表达式语句C语言是一种结构化的程序设计语言。
C语言提供了相当丰富的程序控制语句。
学习掌握这些语句的用法也是C语言学习中的重点。
表达式语句是最基本的一种语句。
不同的程序设计语言都会有不一样的表达式语句,如VB 就是在表达式后面加入回车就构成了VB的表达式语句,而在51单片机的C语言中则是加入分号“;”构成表达式语句。
举例如下:b = b * 10;Count++;X = A;Y = B;Page = (a+b)/a-1;以上的都是合法的表达式语句。
在C 语言中有一个特殊的表达式语句,称为空语句,它仅仅是由一个分号“;”组成。
有时候为了使语法正确,那么就要求有一个语句,但这个语句又没有实际的运行效果那么这时就要有一个空语句。
空语句通常用会以下两种用法。
(1)while,for 构成的循环语句后面加一个分号,形成一个不执行其它操作的空循环体。
我会常常用它来写等待事件发生的程序。
要注意的是“;”号作为空语句使用时,要与语句中有效组成部分的分号相区分,如for (;a<50000;a++);第一个分号也应该算是空语句,它会使a 赋值为0(但要注意的是如程序前有a值,则a的初值为a的当前值),最后一个分号则使整个语句行成一个空循环。
Keil C语言程序设计示例教程(开发C8051F310)使用汇编语言或C语言要使用编译器,以便把写好的程序编译为机器码,才能把HEX可执行文件写入单片机内。
KEIL uVISION是众多单片机应用开发软件中最优秀的软件之一,它支持众多不同公司的MCS51架构的芯片,甚至ARM,它集编辑,编译,仿真等于一体,它的界面和常用的微软VC++的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
因此很多开发51应用的工程师或普通的单片机爱好者,都对它十分喜欢。
在这里以51单片机并结合C程序为例(汇编操作方法类似,唯一不同的是汇编源程序文件名后缀为“.ASM ”),图文描述工程项目的创建和使用方法。
1.首先我们要养成一个习惯:最好先建立一个空文件夹,把您的工程文件放到里面,以避免和其他文件混合,如下图, 创建了一个名为“PRJ_C8051”文件夹2.点击桌面上的Keil uVision4图标,出现启动画面:3.点击“project --- New uVision Project”新建一个工程:4.在对话框,选择放在刚才建立的“PRJ_C8051”文件夹下,给这个工程取个名为Test_C8051F310, 然后保存,工程的后缀为uvporj。
5.弹出一个框,在CPU类型下我们找到并选中“Silicon Laboratories. Inc.”下的C8051F3106.加入C8051起动码7.建立一个源程序文本8.在下面空白区别写入或复制一个完整的C程序:9.输入源程序文件名名称,示例输入“Test_C8051F310.c”,然后保存:10.把刚创建的源程序文件加入到工程项目文件中。
11.设置---目标(第1步~ 第4步)15.工程项目创建和设置全部完成!点击保持并编译16.在C8051F310中的C语言程序示例//-----------------------------------------------------------------------------// Includes// 在c8051f310.h在头文件中定义了C8051F310的寄存器、输入/输出的端口//-----------------------------------------------------------------------------#include <c8051f310.h> // SFR declarations//-----------------------------------------------------------------------------// 16-bit SFR Definitions for 'F30x//-----------------------------------------------------------------------------sfr16 TMR2RL = 0xca; // Timer2 reload valuesfr16 TMR2 = 0xcc; // Timer2 counter//-----------------------------------------------------------------------------// Global CONSTANTS//-----------------------------------------------------------------------------#define SYSCLK 24500000 / 8 // SYSCLK frequency in Hzsbit LED = P0^0; // LED='1' means ON//-----------------------------------------------------------------------------// Function PROTOTYPES//-----------------------------------------------------------------------------void SYSCLK_Init (void);void PORT_Init (void);void Timer2_Init (int counts);void Timer2_ISR (void);//-----------------------------------------------------------------------------// MAIN Routine//-----------------------------------------------------------------------------void main (void){// disable watchdog timerPCA0MD &= ~0x40; // WDTE = 0 (clear watchdog timer// enable)SYSCLK_Init (); // Initialize system clock to// 24.5MHzPORT_Init (); // Initialize crossbar and GPIOTimer2_Init (SYSCLK / 12 / 10); // Init Timer2 to generate// interrupts at a 10Hz rate.EA = 1; // enable global interruptswhile (1) // spin forever{}}//-----------------------------------------------------------------------------// SYSCLK_Init//-----------------------------------------------------------------------------//// This routine initializes the system clock to use the internal 24.5MHz / 8// oscillator as its clock source. Also enables missing clock detector reset.//void SYSCLK_Init (void){OSCICN = 0x80; // configure internal oscillator for// its lowest frequency RSTSRC = 0x04; // enable missing clock detector }//-----------------------------------------------------------------------------// PORT_Init//-----------------------------------------------------------------------------//// Configure the Crossbar and GPIO ports.// P3.3 - LED (push-pull)//void PORT_Init (void){// assignmentsXBR0 = 0x00; // no digital peripherals selectedXBR1 = 0x40; // Enable crossbar and weak pull-ups//P3MDOUT |= 0x08;P0MDOUT |= 0x03; // enable LED as a push-pull output}//-----------------------------------------------------------------------------// Timer2_Init//-----------------------------------------------------------------------------//// Configure Timer2 to 16-bit auto-reload and generate an interrupt at// interval specified by <counts> using SYSCLK/48 as its time base.//void Timer2_Init (int counts){TMR2CN = 0x00; // Stop Timer2; Clear TF2;// use SYSCLK/12 as timebase CKCON &= ~0x60; // Timer2 clocked based on T2XCLK;TMR2RL = -counts; // Init reload valuesTMR2 = 0xffff; // set to reload immediatelyET2 = 1; // enable Timer2 interruptsTR2 = 1; // start Timer2}//-----------------------------------------------------------------------------// Interrupt Service Routines//-----------------------------------------------------------------------------//-----------------------------------------------------------------------------// Timer2_ISR//-----------------------------------------------------------------------------// This routine changes the state of the LED whenever Timer2 overflows.//void Timer2_ISR (void) interrupt 5{TF2H = 0; // clear Timer2 interrupt flagLED = ~LED; // change state of LED}17.KEIL C语言与汇编语言的混合编程方法C语言中加入汇编语言模块的方法:例子:void func(){C语言代码……#pragma asmMOV R6,#23DELAY2: MOV R7,#191DELAY1: DJNZ R7,DELAY1DJNZ R6,DELAY2RET#pragma endasmC语言代码……}汇编部分需要用#pragma asm和#pragma endasm包起来18.KEIL C混合编程中的错误与解决方法1)Keil提示“asm/endasm”出错的解决方法如果只是像1中那样直接加入汇编代码的话,编译将会报错,错误如下:compiling sendata.c...sendata.c(81): error C272: 'asm/endasm' requires src-control to be active sendata.c(87): error C272: 'asm/endasm' requires src-control to be active Target not created解决方法如下:首先project workspace窗口右键单击包含有汇编部分的c语言文件名,然后在如上图所示的菜单中选择带有红色方框的选项在弹出的对话框中,将上图中红色方框选中的两项打上勾(默认的情况下,前面的勾是灰色的,要让这两项前的勾变为黑色的),点击确定。
K51U/Keil_CPU单片机仿真机使用说明K51U/Keil_CPU是一个支持keil c51 设计软件的软件断点仿真机。
使用一片SST89C58 单片机和一片AT90S8515 单片机来实现仿真功能(主CPU 和用户CPU),两片CPU 之间通过一根I/O 引脚通讯(通讯速率在33 兆晶振时约100KBPS),主CPU 负责跟keil c51 通讯,用户CPU 只跟主CPU 通讯.结构框图:一,主要功能和特性:1 支持串口的仿真功能2 串口中断用户可以使用3 不占用定时器24 完全仿真p0 p2 口5 支持89C52 等嵌入式CPU 仿真6 占用1 条I/O : P3.57 ISP 在线编程,在线下载8 仿真频率最高33 兆9 支持同时最多10 个断点10 支持单步,断点,全速运行11 支持汇编,c 语言,混合调试12 支持KEIL C51 的IDE 开发仿真环境UV1 UV2(V5.20 V6.02 V6.10 V6.12 V6.14)13 单步执行时间(60 毫秒)14 程序代码载入(可以重复装载,无需预先擦除用户程序空间)15 SFR 读取速度(128 个)200 毫秒16 跟踪记录(trace record)256 条17 可以仿真标准的89c51 89c52 89c58 等51 内核的单片机仿真二,如何使用:1 如何接仿真机的接线把K51U/Keil_CPU按CPU正视方向插入用户板CPU/实验仪CPU插卡区。
系统通信口:要接到你的电脑的串口,这是跟keil c51 进行通讯的接口,keil c51 通过这个串口发命令到仿真机。
(实验仪通信开关:KB6->51)用户通信口:是连接到你的仿真CPU 的串口的,用来监视你的CPU 的串口发出的数据的.如果你的程序没有用到串口,就不用接到电脑的串口. 如果你想看你的单片机的串口发出的数据,就要连接到你的电脑的串口(这时需要使用你的电脑的两个串口.)2 如何设置Keil C51 仿真机的工作参数?这里拿keil c51 V6.14 来说明keil c51,v6.02,v6.10,v6.12 的设置跟v6.14是一样的.1.先打开一个工程文件,如果你没有工程文件就要先建立一个,这里拿keil c51提供的hello.prj 为例子说明用鼠标点击菜单的project 选择open project 如图:2.选择keil\c51\examples\hello\hello,点击打开如图:3 选择菜单的Project->Option for Target 'Simulator',如图:3.1,选择C51 栏的设置如图:删掉define:里的MONITOR51 这几个字母,如果define 栏是空的可以跳过这一步:删掉MONTOR51 之后的设置如下图,不要点击确定,因为还要进行其他设置:附注:3.1 的步骤是调试keil 提供的这个Hello 工程才需要做的,对你自己建立的工程不需要这个设置,你自己的工程可以跳过这步,直接进行下一个设置.在这里用红色来写这个说明,是需要引起用户注意,一些用户买回仿真机之后,然后说调试到第二步就死机了.把仿真机退回换一个新的,结果还是这样,我检查了退回的仿真机,仿真机没有问题.而是忽略了要做这一步的设置.这是我的说明文件漏掉了这一步的说明,特此更正.4 选择debug 栏的设置项目Us e:Keil Monitor-51 DriverLoad Application at Star t:选择这项之后keil 才会自动装载你的程序代码Go till mai n:调试c 语言程序时可以选择这一项,pc会自动运行到main 程序处点击上图的Settings,打开新的窗口,Port:设置你的串口号为仿真机的串口连接线所连接的串口Baudrate:设置为57600 仿真机固定使用57600bps 跟keil 通讯Serial Interrupt:选中它Cache Options: 可以选也可以不选,推荐选它这样仿真机会运行的快一点,最后点击ok 和确定关闭你的设置5 编译你的程序选择Project -> Rebuild all target files6.编译完毕之后选择Debug->Start/Stop Debug Session,就进入仿真了7 装载代码之后在左下角显示如图Connected to Monitor-51 V1.0表示连接到仿真机仿真机的版本号为1.0 这是我的第一个版本Load "C:\\Keil\\C51\EXAMPLES\\HELLO\\HELLO"表示代码装载成功8 其他的调试方法跟软件仿真是一样的三,K51U/Keil_CPU开关设置1,如何使用用户板的晶振答:板上有一个拨码开关是8 路的默认的设置如上图设置的位置如下1 ON2 OFF3 OFF4 OFF5 OFF6 OFF7 OFF8 ON拨码开关拨到右边为ON, 左边为OFF其中的123 路拨码开关是设置使用仿真板的晶振还是用用户板的晶振默认是用仿真板上的晶振为11059200 hz 的要使用用户板的晶振请将123 路设置为1 OFF2 ON3 ON2,如何使用用户板的复位其中的第4 路拨码开关是设置使用仿真板的复位RESET 还是用用户板的复位(RESET),默认是用仿真板上的复位,就是SST89C58 的RESET 脚不连到用户板,要使用用户板的复位就是SST89C58 的RESET 脚连到用户板,请将第4 路设置:4 ON使用看门狗复位时最好设置为OFF .3,如何在仿真板脱机运行用户程序1 ON2 OFF3 OFF4 OFF5 OFF6 OFF7 ON8 ON4,如何使用板上的电平转换电路其中的第5 6 路拨码开关是设置使用仿真板的MAX232 做为电平转换还是用用户板的电平转换,默认是用用户板上的转换,要使用仿真板的串口将第5 6 路设置为5 ON6 ON这时才可以通过我提供的第二条串口线来查看串口的输入输出5, 我的程序可以使用P3.5 吗答:由于监控系统要使用P3.5 来进行通讯,最好不要使用。
单片机仿真软件Keil C51 软件的使用教程(中文版)keil uvision2 C51 软件是目前功能最强大的单片机c 语言集成开发环境,本软件及视频教程可以本站下载。
下面我们通过图解的方式来Keil C51 软件的使用教程,学习最简单的,如何输入源程序→ 新建工程→ 工程详细设置→ 源程序编译得到目标代码文件。
第一步:双击Keil uVision2 的桌面快捷方式(图1),启动Keil 集成开发开发软件。
软件启动后的界面如图 2 所示。
1:启动Keil uVision2 单片机集成开发环境2:软件启动后的界面第二步:新建文本编辑窗。
点击工具栏上的新建文件快捷按键,即可在项3 所示。
图3:新建文本编辑窗第三步:输入源程序。
在新的文本编辑窗中输入源程序,可以输入C语言程序,也可以输入汇编语言程序,见图4。
4:输入源程序第四步:保存源程序。
保存文件时必须加上文件的扩展名,如果你使用汇编语言编程,那么保存时文件的扩展名为“.asm”,如果是C语言程序,文件的扩展名使用“*.C ”。
图5:保存源程序注:第3 步和第4 步之间的顺序可以互换,即可以先输入源程序后保存,也可以先保存后输入源程序。
第五步:新建立Keil 工程。
如图 6 所示,点击" 工程" → " 新建工程" 命令,将出现保存对话框(图7)。
6:新建工程图7:保存工程对话框在保存工程对话框中输入你的工程的文件名,Keil 工程默认扩展名为".uv2" ,工程名称不用输入扩展名(见图7),一般情况下使工程文件名称和源文件名称相同即可,输入名称后保存,将出现" 选择设备" 对话框(图8),在对话框中选择CPU的型号。
第六步:选择C PU型号。
如图8 所示,为工程选择CPU型号,本新建工程选择了ATMEL公司的AT89C51单片机。
图8:选择CPU型号对话框第七步:加入源程序到工程中。
Keil C51使用详解V1.0第一章 Keil C51开发系统基本知识 (6)第一节系统概述 (6)第二节Keil C51单片机软件开发系统的整体结构 (6)第三节Keil C51工具包的安装 (7)1. C51 for Dos 72. C51 for Windows的安装及注意事项: (7)第四节Keil C51工具包各部分功能及使用简介 (7)1. C51与A51. 72. L51和BL51. 83. DScope51,Tscope51及Monitor51. 84. Ishell及uVision. 9第二章 Keil C51软件使用详解 (10)第一节Keil C51编译器的控制指令 (10)1. 源文件控制类 (10)2. 目标文件(Object)控制类: (10)3. 列表文件(listing)控制类: (10)第二节dScope51的使用 (11)1. dScope51 for Dos 112. dScope for Windows 12第三节Monitor51及其使用 (13)1. Monitor51对硬件的要求 (13)2. Mon51的使用 (13)3. MON51的配置 (13)4. 串口连接图: (13)5. MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1. Ishell for Dos的使用 (14)2. uVision for windows的使用 (15)第三章 Keil C51 vs 标准C.. 15第一节Keil C51扩展关键字 (15)第二节内存区域(Memory Areas): (16)1. Pragram Area: (16)2. Internal Data Memory: 163. External Data Memory. 164. Speciac Function Register Memory. 16第三节存储模式 (16)1. Small模式 (16)2. Compact模式 (17)3. large模式 (17)第四节存储类型声明 (17)第五节变量或数据类型 (17)第六节位变量与声明 (17)1. bit型变量 (17)2. 可位寻址区说明20H-2FH.. 18第七节Keil C51指针 (18)1. 一般指针 (18)2. 存储器指针 (18)3. 指针转换 (18)第八节Keil C51函数 (19)1. 中断函数声明: (19)2. 通用存储工作区 (19)3. 选通用存储工作区由using x声明,见上例。
20.1 工程项目的建立、源程序文件的建立及加载Keil C51软件UVision打开后,程序窗口的左边有一个项目工作区管理窗口,该窗口有3个标签,分别是Files、Regs和Books,这3个标签页分别显示当前项目的文件结构、CPU的寄存器及部分特殊功能寄存器的值(调试时才出现)和所选CPU的附加说明文件,如果是第一次启动Keil C51,那么这3个标签页全是空的(图20-1)。
图20-1 Keil C51打开后界面20.1.1 建立工程文件在单片机开发项目中,有时有多个的源程序文件,并且还要为项目选择CPU以确定编译、汇编、连接的参数,指定调试的方式等。
为便于管理,Keil C51使用工程项目(Project)的方法,将这些参数设置和所需的所有文件都放在一个工程项目中,只能对工程项目而不能对单一的源程序进行编译(汇编)和连接等操作。
一、先在硬盘上建立一个需保存工程文件的目录(例如在“我的文档” 中建立一个test的文件夹),为便于管理及使用,目录名称可与工程名称一致。
二、1、选择“工程>新工程”菜单(图20-2)。
弹出对话框,要求给将要建立的工程起一个名字,可以在编辑框中输入一个名字(例如test),扩展名不必输入(默认的扩展名为.uv2)。
点击“保存”按钮(图20-3)。
2、随后弹出一个“为目标target选择设备”(Select Device for Target “Target1”)对话框,这个对话框要求选择目标CPU(即你所用单片机开发板芯片的型号),Keil C51支持的CPU很多,我们选择Atmel公司的AT89C51(或AT89S51)芯片,用鼠标单击Atmel前的“+”号,选择“AT89C51(或AT89S51)”单片机后按确定(图20-4)。
随即系统弹出是否拷贝8051启动代码到工程项目并添加到当前项目组的提示(Copy Standard 8051 Startup Code to Project Folder and Add File to Project ?),我们选否。
Keil C51仿真器的使用说明一、Keil uVison3编程软件的安装(1)如计算机中已经安装此软件,无须再安装。
(2)打开随箱的软件安装光盘,在keil750AHK(3000TC)\setup 目录下,双击setup图标,显示如图2,点击Full V ersion,顺序点击Next、Y es等,在图3中,输入序列号:k1dzp-5iush-a01ue,其他任意。
安装完成后,默认安装目录为C:\Keil,此目录下还包括一些实验例程。
图2图3二、Keil C51仿真器的使用(1)仿真器的连接:将仿真器的40孔插头插入图4所示的插座中,另一端的USB口插入计算机的USB插孔中。
(2)仿真器驱动程序的安装:打开实验箱电源开关,在计算机上将显示“未知硬件”,按照图5、6的指示,安装硬件驱动(驱动程序在随箱的软件光盘中)。
驱动安装后,在计算机硬件属性串口中可以看到如图7所示的新USB接口设备ProlificUSB-to-Serial Bridge(COM5),COM5表示此设备占用了5号COM口(注:不同的计算机安装后占用的COM口可能不同)。
在图7中点击上端的“端口设置”,可看到如图8所示,此窗口用于设置串口的的波特率等信息,设置的各项参数要与Keil uVision软件中串口设置的一样,方能保证通讯正常。
图4图5图6图7图8(3)K eil uVision2软件中对仿真器的设置:启动Keil uVision2软件,在主界面中,点击工具栏Project(项目)选项中的New Project(新项目),如图9,文件名任意,点保存后出现图10,在器件目录的Atmel目录中选择所要仿真的芯片(如:A T89S51)后确认。
点击主界面的工具栏Project(项目)选项中的“为目标1设置选项”,出现如图11所示,此界面用于设置项目的各项参数,在“目标”选项中设置单片机的晶振时钟,在“调试”选项中,选择使用“Keil Monitor-51 Driver”仿真器,点击框后的“设置”按钮,弹出仿真器通讯参数设置选项,这里的参数要设置与计算机中串口设置的参数一致(见第2步)。
使用Keil C51软件的开发流程1. 准备工作在使用Keil C51软件进行开发之前,需要进行以下准备工作: - 下载并安装Keil C51软件 - 确保计算机上安装了相应的驱动程序 - 准备所需的硬件设备和器件2. 创建新项目•打开Keil C51软件,选择“File”菜单,点击“New Project”选项•在弹出的对话框中,选择项目保存的文件夹和名称,点击“Save”•在弹出的对话框中,选择“8051”系列的芯片类型,点击“OK”•在弹出的对话框中,选择芯片型号,点击“OK”3. 配置项目选项•在项目窗口中,点击鼠标右键,选择“Options for Target”选项•在弹出的对话框中,可以进行各项项目选项的配置,如存储器映射、优化选项等•配置完成后,点击“OK”按钮保存配置4. 编写程序代码•在项目窗口中,选择“Source Group”文件夹,点击鼠标右键,选择“Add Files to Group”选项•在弹出的对话框中,选择要添加的代码文件,点击“Add”•在代码编辑器中编写程序代码5. 编译程序•点击Keil C51软件界面的“Build”按钮,开始编译程序•若编译过程中出现错误提示,需要根据错误信息进行代码修改•编译无误后,将生成的目标文件保存在指定的文件夹中6. 调试程序•连接硬件设备到计算机上•在Keil C51软件界面的“Debug”选项中,选择“Start/Stop Debug Session”选项•在弹出的对话框中,选择调试使用的硬件接口,点击“OK”•进入调试模式,可以进行单步调试、断点设置等操作,查看程序运行情况7. 烧写程序•在Keil C51软件界面的“Flash”选项中,选择“Download”选项•在弹出的对话框中,选择要烧写的目标芯片和烧写方式,点击“OK”•点击“Start”按钮开始烧写程序到目标芯片中•烧写完成后,断开硬件连接,程序即可在目标芯片上运行8. 测试与调试•将目标芯片插入到目标系统中•针对项目的需求,进行测试和调试工作•根据测试结果进行代码的优化和修改,重新编译、烧写程序9. 打包与发布•最终确定程序无误后,可以将程序进行打包•打包后的程序可以发布到目标设备或进行产品交付以上就是使用Keil C51软件的开发流程的基本步骤。