Keil-C51-基本使用方法 (1) 。。。。2
C51程序在Keil C51下的调试步骤

C51程序在Keil C51下的调试步骤现在广泛使用的C51集成开发环境是Keil软件。
要使用Keil软件,首先要正确安装Keil软件,该软件的Eval版本可以直接去http://www. 下载,其步骤与一般Windows 程序安装类似,这里就不再赘述了。
Keil软件的详细说明见相关资料,这里仅作简要说明,以便于读者在后面的章节中实际动手调试、仿真程序。
1.建立工作项目文件图1启动Keil μVison2启动Keil μVison2,如果打开后就有打开的文件,单击“Project->Close Project”菜单将其关闭。
单击“File->New... ",打开一个新的文件输入窗口,在这个窗口里输入上述源程序。
输入完毕之后,选择“File-->Save",给这个文件取名保存,取名字的时候必须要加上扩展名,一般C语言程序均以“.c”为扩展名(一定要加扩展名,否则后面添加文件就找不到该文件,这是初学者很容易忘记的),这里将其命名为mytest.c。
图2 建立工程文件单击“Project->New Project...",出现对话框,要求给将要建立的工程起一个名字,这里起名为test,不需要输入扩展名。
单击“保存”按钮,出现第二个对话框,如图3所示:图3 CPU选择窗口这个对话框要求选择工程中所用的单片机型号,这里选择Atmel公司的89S52芯片。
单击ATMEL前面的“+”号,展开该层,单击其中的89S52,然后再单击“确定”按钮,会出现一个对话框,询问是否要将标准的8052启动代码加入工程,单击“是”按钮。
此时,在工程窗口的文件页中出现了“Target 1”,前面有“+”号,单击“+”号展开,可以看到下一层的“Source Group 1 ",需要手动把刚才编写好的源程序加入,方法如下:单击“Source Group 1 ",使其反白显示,然后单击鼠标右键,出现一个下拉菜单,如图4所示。
KEILC51和PROTEUS的使用

KEILC51和PROTEUS的使用KEILC51是一款针对51系列单片机的集成开发环境,可以方便地进行编译、调试和仿真。
PROTEUS是一款集成电路设计软件,可以用于电路图的设计、仿真和调试。
本文将介绍KEILC51和PROTEUS的使用方法。
一、KEILC51的安装和使用2. 安装完成后,打开KEIL C51,创建一个新项目。
选择新建一个“Project”。
在对话框中输入项目名称,并选择项目的存放路径。
3.在项目内部,可以添加源文件、库文件和头文件。
可以通过右键单击项目名称,选择“添加”,然后选择相应的文件类型进行添加。
4. 在源文件中编写C语言程序。
可以使用标准的C语法进行编写,也可以使用Keil C51提供的51系列特定的语法进行编写。
5. 进行编译和生成可执行程序。
在菜单栏中选择“Project”->“Build Target”,或者使用快捷键“Ctrl+F7”进行编译。
编译完成后,会在项目目录下生成相应的可执行程序。
6. 进行调试和仿真。
在菜单栏中选择“Debug”->“Start/Stop Debug Session”,或者使用快捷键“F5”进行调试。
可以设置断点、单步执行、查看变量值等进行调试。
二、PROTEUS的安装和使用2. 安装完成后,打开PROTEUS,创建一个新电路。
选择“Schematic Capture”->“Design”创建一个新的电路图。
在电路图中添加所需的元件,例如电阻、电容、晶体管等。
3.连接元件之间的引脚,可以使用连线工具进行连线。
在连线时,可以使用自动连接功能快速连接元件之间的引脚。
4.设置仿真属性。
在电路图中选择“P”工具,然后在对话框中选择相应的仿真模型和仿真参数,例如选择51系列单片机的仿真模型。
5. 进行仿真和调试。
在菜单栏中选择“Debug”->“Start Debugging”,或者使用快捷键“F5”进行仿真。
可以查看元件的工作状态,观察电路的波形等进行调试。
keil c51 详细中文手册

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使用详解

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 使用教程

Keil C51使用教程---开发系统基本知识(一)第一节系统概述Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后再使用C来开发,体会更加深刻。
Keil C51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。
另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil C51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
下面详细介绍Keil C51开发系统各部分功能和使用。
第二节 Keil C51单片机软件开发系统的整体结构C51工具包的整体结构,如图(1)所示,其中uVision与Ishell分别是C51 for Windows和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。
开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。
然后分别由C51及A51编译器编译生成目标文件(.OBJ)。
目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。
ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。
图(1) C51工具包整体结构图第三节 Keil C51工具包的安装1. C51 for Dos在Windows下直接运行软件包中DOS\C51DOS.exe然后选择安装目录即可。
完毕后欲使系统正常工作须进行以下操作(设C:\C51为安装目录):修改Autoexec.bat,加入path=C:\C51\BinSet C51LIB=C:\C51\LIBSet C51INC=C:\C51\INC然后运行Autoexec.bat2. C51 for Windows的安装及注意事项:在Windows下运行软件包中WIN\Setup.exe,最好选择安装目录与C51 for Dos 相同,这样设置最简单(设安装于C:\C51目录下)。
Keil C51软件使用说明

}
10
MCS-51单片机原理、接口及应用
第6章 单片机的C51语言编程
(3)其它头文件
math.h:数学运算函数,如求绝对值、平方根、指数、正弦等
函数。 ctype.h:提供两类重要的函数:字符测试函数和字符大小转化 函数。 例如,判断一个整型变量是数字、字母、换行符、控制符等。 stdio.h:标准输入输出函数头文件,用于从标准输入设备读取 字符、数字,或向标准输出设备输出字符、字符串等。
整型
signed int
unsigned int singed long
2B
2B 4B
-32768~+32767
0~65535 -2147483648~+2147483647
unsigned long
实型
14
4B
4B
0~4294967295
1.176E-38~6.40E+38
MCS-51单片机原理、接口及应用
17
MCS-51单片机原理、接口及应用
第6章 单片机的C51语言编程
(2)compact模式
所有参数及局部变量都放在外部RAM区的一页(最大256B), 这和用pdata定义变量的作用相同。 具体哪一页,可由P2口定义,并在STARTUP.A51文件中说明。 一般默认的是外部RAM的低256B。
特点:存储器空间比small 模式大,但速度较small 模式慢,却比
reg52.h比reg51.h多了几行定义T2寄存器的内容。
7
MCS-51单片机原理、接口及应用
第6章 单片机的C51语言编程
sfr P1=0x90; /*定义P1口的地址为90H*/ sfr TCON=0x88; sfr TMOD=0x89; sfr TL0=0x8A; sfr16 T2=0xCC; T2L=0CCH,T2H=0CDH*/ sbit ET0=IE^1; /*指定ET0为中断允许控制寄存器IE的第1位*/ sbit ET0=0xaa;/*指定ET0为可寻址位0AAH,即IE.1。*/
keil C51入门教程

第三章 C51语言作者:彭保基 西安交通大学 电信学院 电子2002级 版本:V1.1 写作时间:2004年12月---2005年3月本章主要介绍在Keil 的集成环境下用C 语言编程,并对C51语言与标准的C 语言的异同进行比较。
由于篇幅有限并考虑到读者大部分已经学过标准的C 语言,不再对C 语言进行深入的讲解;如果读者想深入了解和掌握C 语言,则可查阅和参考其他相关资料。
第一节 C51简介汇编语言是编写单片机程序的常用语言之一,很多老的单片机开发者使用汇编语言已经成为了一种习惯;汇编语言编写的程序所生成的代码效率很高,能直接操作硬件,指令的执行速度快。
但其指令系统的固有格式受硬件结构的限制很大,且难于编写与调试,可移植性也差。
随着单片机硬件性能的提高,其工作速度越来越快,因此在编写单片机应用系统程序时,更着重于程序本身的编写效率。
与汇编语言相比,C 语言在功能、结构、可读性和可维护性上有明显的优势,因而易学易用;在开发大型软件时更能体现其高级语言的优势。
因此,近些年来越来越多地人喜欢用C 语言来编写单片机的应用程序。
本章所说的C51语言就是标准C 语言的变种,是标准C 语言的扩展;关于两者的区别,将在下一节中详细的介绍。
第二节 C51与ANSI C 的比较Keil C51编译器是一个完全支持ANSI 标准C 语言的编译器,除了少数关键的地方之外,Keil C51和标准ANSI C 语言是基本类似的;但由于51单片机的特殊性,Keil C51在标准C 语言基础上进行了扩展,使其能够更有效地利用单片机各种有限的资源。
深入理解和掌握C51对标准C 语言的扩展,是学好C51语言的关键。
一、 Keil C51扩展关键字关键字 用 途 说 明bit 声明一个位标量或位类型的函数sbit 位标量声明声明一个可位寻址变量 Sfr 声明一个特殊功能寄存器 Sfr16 特殊功能寄存器声明声明一个16位的特殊功能寄存器 data 直接寻址的内部数据存储器 bdata可位寻址的内部数据存储器idata 间接寻址的内部数据存储器 pdata 分页寻址的外部数据存储器xdata 外部数据存储器 code 存储器类型说明 程序存储器interrupt 中断函数说明 定义一个中断函数 reentrant 再入函数说明 定义一个再入函数 using 寄存器组定义定义芯片的工作寄存器_at_ 绝对定位_task_ alien small compact large存储模式附表3- C51编译器的扩展关键字二、 数据类型Keil C51编译器支持下表列出的数据类型。
Keil C51 基本使用方法

附录:一、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)。
ORG 0000HLJMP MAINORG 030HMAIN: MOV P0,#00HMOV P1 ,#00HMOV P2 ,#00HMOV P3 ,#00HACALL DELMOV P0 ,#0FFHMOV P1 ,#0FFHMOV P2 ,#0FFHMOV P3 ,#0FFHACALL DELAJMP MAINORG 0200HDEL: MOV R5,#04HF3: MOV R6,#0FFHF2: MOV R7,#0FFHF1: DJNZ R7,F1DJNZ R6,F2DJNZ R5,F3RETEND图5 建立源程序文件程序输入完成后,选择“文件”,在下拉菜单中选中“另存为”,将该文件以扩展名为.asm格式(如my-test.asm)保存在刚才所建立的一个文件夹中(my-test)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
、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这个组里了,随后关闭此对话窗口。
图 6 添加文件到当前项目组中
4、编译(汇编)文件
选择主菜单栏中的“工程”,在下拉菜单中选中“重建
所有目标文件”,这时输出窗口出现源程序的编译结果,如图7所示。
如果编译出错,将提示错误ERROR(S)的类型和行号。
图7 编译文件
5、检查并修改源程序文件中的错误
我们可以根据输出窗口的提示重新修改源程序,直至编译通过为止,编译通过后将输出一个以HEX为后缀名的目标文件,如my-test.HEX。
6、软件模拟仿真调试
在主菜单中打开“除错”界面,点击“开/关DEBUG”,出现2K代码限制的提示窗口后点确定,这时进入软件模拟仿真调试界面(图3-8)。
点击“除错”栏,可看到下拉菜单中的“单步到之外”快捷键为F10,按一下F10,程序的光标箭头往下移一行。
打开“外围设备”栏,在其下拉菜单中
选“I/O-Ports>Port0”、“I/O-Ports>Port1”、“I/O-Ports>Port2”、“I/O-Ports>Port3”,将四个输出窗口全部打开(图9)。
鼠标在程序的光标箭头上点一下,随后继续按动F10,可发现Port0~3依次变为低电平(打勾消失),再按动F10,同时注意观察左边寄存器窗口中的Sec(时间)数值,可发现,Port0~3输出低电平到高电平的时间间隔约为0.5秒,反复循环。
仿真调试通过后,关闭Keil C51开发环境。
图3-8 软件模拟仿真调试界面
图9 打开四个输出窗口
二、Keil 程序调试窗口
1、程序调试时的常用窗口
Keil软件在调试程序时提供了多个窗口,主要包括输出窗口(Output Windows)、观察窗口(Watch&Call Statck W indows)、存储器窗口(Memory Window)、反汇编窗口(Dis sambly Window)串行窗口(Serial Window)等。
进入调试模式后,可以通过菜单View下的相应命令打开或关闭这些窗口。
图1是输出窗口、观察窗口和存储器窗口,各窗口的大小可以使用鼠标调整。
进入调试程序后,输出窗口自动切换到
Command页。
该页用于输入调试命令和输出调试信息。
图10 输出窗口、观察窗口和存储器窗口
2、存储器窗口
存储器窗口中可以显示系统中各种内存中的值,通过在A ddress后的编缉框内输入“字母:数字”即可显示相应内存值,其中字母可以是C、D、I、X,分别代表代码存储空间、直接寻址的片内存储空间、间接寻址的片内存储空间、扩展的外部RAM空间,数字代表想要查看的地址。
例如输入D:0即可观察到地址0开始的片内RAM单元值、键入C:0即可显示从0开始的ROM单元中的值,即查看程序的二进制代码。
该窗口的显示值可以以各种形式显示,如十进制、十六进制、字符型等,改变显示方式的方法是点鼠标右键,在弹出的快捷菜单中选择,该菜单用分隔条分成三部份,其中第一部份与第二部份的三个选项为同一级别,选中第一部份的任一选项,内容将以整数形式显示,而选中第二部份的Ascii项则将以字符型式显示,选中Float项将相邻四字节组成的浮点数形式显示、选中Double项则将相邻8字节组成双精度形式显示。
第一部份又有多个选择项,其中Decimal项是一个开关,如果选中该项,则窗口中的值将以十进制的形式显示,否则按默认的十六进制方式显示。
Unsigned和Signed后分别有三个选项:Char、Int、Long,分别代表以单字节方式显示、将相邻双字节组成整型数方式显示、将相邻四字节组成长整型方式显示,而Unsigned和Signed则分别代表无符号形式和有符号形式,究竟从哪一个单元开始的相邻单元则与你的设置有关,以整型为例,如果你输入的是I:0,那么00H和01H单元的内容将会组成一个整型数,而如果你输入的是I:1,01H和02H单元的内容全组成一个整型数,以此类推。
有关数据格式与C语言规定相同,请参考C语言书籍,默认以无符号单字节方式显示。
第三部份的Modify Memory at X:xx用于更改鼠标处的内存单元值,选中该项即出现如图12所示的对话框,可以在对话框内输入要修改的内容。
图11 内存窗口
图12 修改内存值
3、工程窗口寄存器页
图13是工程窗口寄存器页的内容,寄存器页包括了当前的工作寄存器组和系统寄存器,系统寄存器组有一些是实际存在的寄存器如A、B、DPTR、SP、PSW等,有一些是实际中并不存在或虽然存在却不能对其操作的如PC、Status等。
每当程序中执行到对某寄存器的操作时,该寄存器会以反色(蓝底白字)显示,用鼠标单击然后按下F2键,即可修改该值。
图13 工程窗口寄存器。