Keil C51详细设置
keil-C51各仿真窗口详细介绍
资料来源于互联网,仅供学习使用!!!首先:打开一个已经编译通过的单片机项目(如何新建与编译单片机程序项目这里省略)选择Debug下面的Start/Stop Debug Session,这个选项可以打开调试也可以关闭调试下面具体说说相关子窗口的功能:1:左侧的ProjectWorkspaceRegs是片内内存的相关情况值,Sys是系统一些累加器、计数器等。
Regs很简单就不多说。
具体介绍一下Sysa 累加器ACC,往往在运算前暂存一个操作数(如被加数),而运算后又保存其结果(如代数和)。
b 寄存器B ,主要用于乘法和除法操作spsp_maxdptr 数据指针DPTRPC $states 执行指令的数量sec 执行指令的时间累计(单位秒)psw 程序状态标志寄存器PSW,八位寄存器,用来存放运算结果的一些特征,如有无进位、借位等。
p 奇偶标志P。
反映累加器ACC内容的奇偶性,如果ACC中的运算结果有偶数个1(如11001100B,其中有4个1),则P为0,否则,P=1。
f1ov 溢出标志位OV。
MCS-51反映带符号数的运算结果是否有溢出,有溢出时,此位为1,否则为0。
rsf0ac 辅助进位标志AC。
又称半进位标志,它反映了两个八位数运算低四位是否有半进位,即低四位相加(或减)有否进位(或借位),如有则AC为1状态,否则为0。
cy 进位标志CY(PSW7)。
它表示了运算是否有进位(或借位)。
如果操作结果在最高位有进位(加法)或者借位(减法),则该位为1,否则为0由于PSW存放程序执行中的状态,故又叫程序状态字?运算器中还有一个按位(bit)进行逻辑运算的逻辑处理机(又称布尔处理机)根据指令执行的不同上述值会有相应的变化,也正是为了监测这些在单片机中看不到的值而达到调试的目的。
虽然软件调试无法实现硬件调试那样的信号输出,但是可以通过软件窗口的模拟监测输出信号的高低电平以及单片机相关端口的变化。
上图所示,Port0,Port1,Port2,Port3就对应于单片机的四个P0,P1,P2,P3 口,共32个针脚。
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所示。
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实用操作(使用汇编语言)一、建立一个工程项目、选择芯片并确定选项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输出窗口。
KEIL C51 的使用
KEIL的使用
1、安装KEIL C51
2、安装完后打开KEIL,进入KEIL界面
3、进入KEIL工作界面
4、新建工程点击Project→New µVsion Project
5、然后选择你要保存的路径,输入工程文件的名字,如下所示:
5、选择单片机类型,如A TC8951,然后点击是
6、完成以上步骤后,展开Taget 1,如下图所示:
7、用记事本输入如下程序:
9、输入完后保存后缀为.asm 的格式(汇编语言)(注意:如果是C语言的,就保存后缀为.C 格式)。
10、把刚才编写好程序添加到soursce group 1,过程如下所示:
11、展开soursce group 1,如下所示:
12、双击打开KEIL C51,工作界面如下:
13、单击“Project”菜单,再在下拉菜单中单击“” 在下图中,单击“Output”中单击“Create HEX File” 选项,使程序编译后产生HEX代码,供下载
器软件使用。
(或右键打开Targe 1 再选择)
14、这里还可以改变晶振的周期,如下所示:
15、设置完以上的设置后,然后单击“Project”菜单,再在下拉菜单中单击“Buid target”(创建目标文件)。
16、如有语句错误,则不能创建成功,如下所示,直到把错误排除,才能创建成功。
以上是KEIL C51 的入门教程。
KEILC51的使用
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) 。。。。2
、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这个组里了,随后关闭此对话窗口。
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)。
Keil C51在线仿真功能详解
仿真机复位按键1.首先将附配的232 DB9Ping连接线接入学习板的232端口,将另一端接入PC机的232端口,再将附配的USB连接线接入学习板的USB端口,将另一端插入PC机的USB端口,完成学习板向PC机取电的工作,是仿真机工作,先不要按下学习 板上的电源开关.3.点击上图画了红色圆圈的图标按钮,会弹出下面的窗口:4.出现如上图的窗口,再点击"调试"按钮,出现如下图的选择框:21如果你要在目标板上看到程序全速运行的结果,那么此项目必须选择,否则程序只是调试,程序将不能加载到仿真器中,就在目标板上看不到运行效果!35.按照上图红色的表识的进行设置,然后点击"确定"按钮,此时按下学习板的电源开关,使仿真机供电,再将坊真机的 复位按钮按一下,是仿真机先复位(注意每次启动仿真机都要复位)复位按键在第一个图片画红色圆圈的那个按键哦6.再点击上图画红色圆圈"调试"7.出现上图画红色方框的字样,则表示Keil软件已经识别到仿真机型号和版本,现在你可以在线调试你的设计程序了 而不需要每次都下载到单片机上,才知道程序是否能正常运行.能即时发现程序哪里出错,并能立即修改和运行. 现在你可以开始你的程序在线仿真了!8.如果你在连接仿真机进行仿真的时候,出现下图的提示,你要检查学习板上的电源开关有没有按下,板上的电源指示灯有没有亮,40Ping专用仿真线有没有插反.上图红色圆圈的三角形位置,不可接反,否则会损坏仿真机!特别注意例:现在以教程中“APW-C51学习板实验程序带源码语句”文件夹中的“流水灯实验(C语言,汇编)” 子文件夹中“LED流水灯(汇编)”的文件为例,介绍仿真器的使用方法:1.首先启动"Keil uVision2"软件,如下图点击 建立一个设计工程,选择"N新建工程",如下图:文件名:就写"流水灯实验"吧!然后选择CPU(就是单片机型号),我们以AT89C51为例,点击"确定".在点击 新建一个程序文件,本例就直接将文件复制过来,"LED流水灯(汇编)"文件中的将源码语句如上图所示复制到新建文档中,再点击 将文件保存起来,保存名字假如为:写好文件名,就点击"保存"按钮,再点击 此图的加号,如下图所示:将鼠标移动到 此文件上,点击右键,选择"增中文件到组Source Group1"出现下图:选择之前保存过的文件 选择文件后如下图所示:点击"Add"选择文件,如下图所示,表示添加成功.然后编译文件点击 会出现如下图所示:然后就按照最初的仿真器与KEIL软件的设置,点击 选择"开始调试"开始调试仿真程序,如下图所示:点击 你会看见,程序在学习板上运行,你可以开始调试仿真了,不但可以在本学习板上实现仿真,也其他的目标板上运行,只需要将仿真线的另一头接到你的目标板上就可以了,可以选择不同的频率晶体,进行仿真超频.注意每次使用前和使用后都要将仿真器复位(按一下复位开关)。
Keil C51 软件使用方法(第八章)
第一节概述1. 主窗口(Mainframe Window)可设置其它各种调试窗口,设置断点、观察点,修改地址空间,加载文件等等;2. 调试窗口(DEBUG Window)支持用户程序的各种显示方式,可连续运行,单步运行用户程序,并可在线汇编;3. 命令窗口(Command Window)支持命令行的输入;4. 观察窗口(Watch Window)可设置所要观察的变量、表达式等;5. 寄存器窗口(Registe Window)显示内部寄存器的内容,程序运行次数等;6. 串口窗口(Serical Windows)显示串口接收和发送的数据;7. 性能分析窗口显示所要观察的各程序段占用CPU的空间;8. 内存窗口(Memory Window)显示所选择的内存中的数据;9. 符号浏览窗口(Symbol Browser Window)显示各种符号名称,包括专有符号,用户自定义符号(函数名、变量、标号)等;10. 调用线窗口(Call-Stack Window)动态显示当前执行的程序段的函数调用关系;11. 代码覆盖窗口提供当前模块内各程序段中被执行代码的比率;。
12. 外围设备窗口(peripherals)可显示I/O口,定时器,中断,串口等外围设备状态;第二节dScope for Windows基本操作1. 指定初始化文件在uVision的Option菜单dScope Debugger中指定dScope的初始化文件,用uVision的RUN启动dScope将自动加载此初始化文件,自动执行其中命令;下面是一个例子,可以看出调入一个调试代码的过程。
Ds51.ini:load 8051.dllload testslog>>test.logxtal=11.0592define button "go to main","g,main"ws RevCounterws rm.rg,mainPA RESETPA serialPA timer02. 观察变量方法1:命令行WS expression [, numberbase ] [ LINE ]其中numberbase为显示数制,10对应10进制,16对应16进制,缺省为16进制。
单片机开发与仿真软件keilc51的使用
单片机开发与仿真软件Keil C51的使用一、Keil C51 操作入门Keil C51 简介Keil C51 是德国知名软件公司Keil(现已并入ARM 公司)开发的基于8051 内核的微控制器软件开发平台,是目前开发8051 内核单片机的主流工具。
Keil 51支持汇编语言、C语言等各种开发语言。
其中,uVision2集成开发环境包含项目管理、源代码编辑和强大的程序调试环境。
uVision2调试器是一个强大的全特性调试器,允许用户在PC机上完全模拟目标程序、指令集和片内外围功能。
实验所用的是Keil C51 评估版。
Keil C51 的启动双击桌面上的“Keil uVision2”图标,启动Keil C51程序,启动界面如图1所示。
图1 Keil C51的启动界面建立第1 个Keil C51 程序Keil C51 是一个功能很强大的软件,但是使用起来并不复杂。
现在就通过建立一个简单的LED(发光二极管)闪烁发光的实例来初步掌握Keil C51的基本用法。
硬件电路参见图2,单片机I/O 输出低电平可点亮LED。
图2 LED 闪烁发光电路●新建工程。
执行Keil C51 软件的菜单“Project | N ew Project…”,弹出一个名为“Create New Project”的对话框。
先选择一个合适的文件夹准备来存放工程文件,比如“E:\Project\LedFlash”,其中“LedFlash”是新建的文件夹。
建议:今后每新建一个工程都要在适当的磁盘位置新建一个文件夹用来保存工程文件,以方便管理,并养成良好的习惯。
最后,为工程取名为“LedFlash”,并保存。
参见图3。
图3 新建Keil C51 工程●选择CPU。
紧接着,Keil C51 提示选择CPU 器件。
8051 内核单片机最早是由鼎鼎大名的Intel 公司发明的,后来其他厂商如Philips 、Atmel 、Winbond 等先后推出其兼容产品,并在8051 的基础上扩展了许多增强功能。
单片机仿真件KeilC51软件的使用教程(中文版)
单片机仿真软件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的型号。
第六步:选择 CPU型号。
如图 8 所示,为工程选择 CPU型号,本新建工程选择了 ATMEL企业的 AT89C51单片机。
Keil-C51详细设置
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集成开发环境的使用
Keil C51集成开发环境的使用1、创建项目启动uVision2并创建一个项目。
从Project(项目)菜单中选择New Project(新项目),建议为每一项目建立一个单独的文件夹并命名,打开子文件夹并键入项目的名称,如“跑马灯”确定。
接着弹出Select Device for Target(选择项目装置)对话框,需要为项目选择一个CPU。
如选Atmel 89C51。
2、新建一个源文件单击File(文件)菜单New新建一个源文件,在源程序窗口出现一个新的文件输入窗口,单击File Save(保存),给源文件取名保存,要求和上述建立的项目名称一样并保存在同一文件夹,取名字时必须要加上扩展名,如“跑马灯.asm”。
单击左侧列表框目录Target1(目标1)下的Source Group子目录,使其反白显示;然后左击鼠标,在出现的快捷菜单中选择“Add File to Group `Source Group1'”出现如下对话框。
选择“Asm Source file(*.s*;*.src;*a*”,双击要加入的文件名,如双击“跑马灯.asm”,然后单击Add按钮,将文件加入到工程中去。
3、工程的设置工程建立好以后,还要对工程进行进一步设置,以满足每个工程的个性化要求。
单击左侧列表框目录Target1,使其高亮显示;然后选择“Project(项目)菜单→Option for target 'targetl'”,或单击工具条出现对工程设置对话框,选择如下:● Xtal(MHz):设置单片机工作频率,默认是24.0 MHz。
上面图示取12 MHz。
● Use On-chip ROM(0x0-oxFFF):表示使用片上的Flash ROM,AT89C51有4KB的可重编程的Flash ROM,该选项取决于单片机应用系统,如果单片机的EA接高电平,则选中这个选项,表示便用内部ROM,如果单片机的EA接低电平,表示便用外部ROM,则不选中这个选项。
keil c51 详细中文手册
KeilC51使用详解V1.0第一章KeilC51开发系统基本知识 (6)第一节系统概述 (6)第二节KeilC51单片机软件开发系统的整体结构 (6)第三节第四节1.C512.L51第一节1.2.3.第二节1.dScope51forDos112.dScopeforWindows12第三节Monitor51及其使用 (13)1.Monitor51对硬件的要求 (13)2.Mon51的使用 (13)3.MON51的配置 (13)5.MON51命令及使用 (14)第四节集成开发环境(IDE)的使用 (14)1.IshellforDos的使用 (14)2.uVisionforwindows的使用 (15)第三章KeilC51vs标准C..15第一节KeilC51扩展关键字 (15)1.bit2.可位寻址区说明20H-2FH..18第七节KeilC51指针 (18)1.一般指针 (18)2.存储器指针 (18)3.指针转换 (18)第八节KeilC51函数 (19)2.通用存储工作区 (19)3.选通用存储工作区由usingx声明,见上例。
(19)4.指定存储模式 (19)5.#pragmadisable.196.递归或可重入函数指定 (19)7.指定PL/M-51函数 (20)1.2._at_3.第二节1.2.第三节1.2.C513.4.第四节段名协定与程序优化 (25)1.段名协定(SegmentNamingConventions)252.程序优化 (25)第五章KeilC51库函数参考 (26)第一节本征库函数(intrinsicroutines)和非本征证库函数 (26)第二节几类重要库函数 (26)1.专用寄存器include文件 (26)2.绝对地址include文件absacc.h.263.动态内存分配函数,位于stdlib.h中 (27)4.缓冲区处理函数位于“string.h”中 (27)5.输入输出流函数,位于“stdio.h”中 (27)第三节KeilC51库函数原型列表 (27)1.CTYPE.H..27第一节第二节2.调试窗口(DEBUGWindow) (32)3.命令窗口(CommandWindow) (32)4.观察窗口(WatchWindow) (32)5.寄存器窗口(RegisteWindow) (32)6.串口窗口(SericalWindows) (32)7.性能分析窗口 (32)8.内存窗口(MemoryWindow) (32)9.符号浏览窗口(SymbolBrowserWindow) (33)10.调用线窗口(Call-StackWindow) (33)11.代码覆盖窗口 (33)12.外围设备窗口(peripherals)33第二节dScopeforWindows基本操作 (33)1.指定初始化文件 (33)第三节8.指针: (38)9.dScope命令语句 (38)10.函数 (43)第一章KeilC51开发系统基本知识第一节系统概述KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil C51编程调试教程
Keil C51集成开发环境编程与调试教程山东师大传媒学院刘新阳编一、Keil中进行C语言编程的基本步骤同VC之类的通用C语言集成开发环境(IDE)一样,Keil也采用“工程”(Project)的方式管理源代码及相关文件,这种管理方式为由多个源代码文件组成的大型程序开发提供了方便。
不管是最简单的C51程序,还是复杂的多文件程序都需要以下步骤:1)先建立新的工程文件;2)在工程中新建源代码文件,或是将已经存在的源代码文件加入工程;3)编译;4)调试,修正错误再编译;5)将生成的二进制文件*.hex烧入单片机。
本教程重点介绍上述前4个步骤。
二、Keil中新建工程的步骤1. 单击菜单“Project——New uVision Project……”出现新建工程对话框:在此对话框中选择存放工程各类文件的路径和文件夹,然后为工程的主文件取个名字,以后单击该主文件即可打开这个工程项目。
2. 选择单片机型号上个窗口关闭后,马上会呈现下面这个窗口,在这里我们要选择所使用的单片机型号。
具体到这里,我们选择Atmel文件夹下的AT89C51。
(也可以选择下面的AT89C52、AT89S51或AT89S52)注意:单击OK后会出现下面这个提示信息:这里一定要选“否”,即:不需要自动添加起始代码。
完成后,即可看到Keil主界面:此时可以看到屏幕左侧的“Project”窗口(工程文件管理器)中,Target1下面的Source Group1(源代码文件组1)为空,即现在新建的工程中还不包含任何源代码文件。
所以,接下来要做的就是新建源代码文件。
3. 新建源代码文件单击菜单“File——New……”之后,即可在编辑区看到新建了一个名为text1的文本文件。
单击工具栏上的“保存”(图标为磁盘)按钮,可以在保存文件对话框中选择这个文本文件的保存位置(一般和工程文件保存在同一级文件夹)和文件的主名及扩展名。
如果只有一个源代码文件,一般主名命名为工程名,若是C语言源代码,扩展名设置为.c即可。
Keil C51仿真器的使用说明
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使用和操作步骤
Keil软件安装完毕后,会在桌面上生成Keil uVision4图标,双 击该图标,或选择“开始”-“程序”-Keil uVision4,卽 可进入Keil软件的集成开发环境。
1、工程项目的建立 (1)点击 “Project->NewProject ”菜单,出现一个对 话框,要求给将要建立的工程起一个名字,你可以在编缉框中 输入一个名字(设为 exam1),不需要扩展名。点击“保存” 按钮,将你的项目文件名存入指定的路径下的文件夹里,此时 会出现第二个对话框。 (需要预先/或即时在指定的路径下建立一个文件夹) (2)选择你所用CPU芯片的型号。 (3)选择 Atmel 公司的 AT89C51 芯片。 (4)点击“OK”确认 (5)点击“否”后建立项目完成
(2)给源文件起个名,请记住,文件名后面一定要加上后缀“.C”,点击快捷键“保存”,将 文件保存在指定的文件夹里。
3、给工程加入源文件
(1)在项目管理窗里,用右键点击“Source Group 1”
出现下一个提示: (2)点击“ (3)选择刚建立的源程序,点击“Add”
4、工程项目的设置
(1)点击项目管理窗中的 出现一个新的对话窗:在Greate HEX File HEXFomat选项上打上勾
” 出现一个新的对话框。
2、源文件的建立
(1)使用菜单“File ->New”或者点击工具栏的新建文件按钮,即可在项目窗口的右侧打开一个 新的文本编缉窗口,在该窗口中输入以下C语言源程序。
#include <reg51.h> //包含头文件REG51.H,定义了51单片机的 特殊功能寄存器。 sbit P2_0=P2^0; //定义位名称 void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) { P2_0=0; //点亮信号灯 delay(255); //调用延时函数,实际变量为255 P2_0=1; //熄灭信号灯 delay(255); //调用延时函数,实际变量为255 } } //函数名:delay //函数功能:实现软件延时 void delay(unsigned char i) //延时函数,无符号字符型变量i为形式参数 { unsigned char j,k; //定义无符号字符型变量j和k for(k=0;k<i;k++) //双重for循环语句实现软件延时 for(j=0;j<255;j++); }
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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来做任务切换,效率很低,无实用价值。
Full 需要用户使用外部RAM,且需要单独购买运行库,不能使用,默认选NONE。
4. 存储器选择1. Use On-chip ROM(0x0-0x1fff)这个选项是使用片上的Flash Rom,我们知道At89c52有8k的flash Rom.取决于你的应用系统,你的单片机的EA接高电平的话,请选中这个选项,如果你的单片机的EA接低电平,表示使用外部Rom,那么不要选中该选项.我们在这里选中它2. Off-chip Code memory表示你在片外接的Rom的开始地址和大小,如果你没有外接程序存储器,那么不要填任何数据.我们在这里假设使用一个片外的Rom,地址从0x8000开始(不要填成8000,如果是8000,是10进制的数,一般填16进制的数),Size为外接Rom的大小.假设接了一块0x1000字节的rom.最多可以外接3块Rom,如果你还用了别的地址,那么就添上.3. Off-Chip Xdata Memory那么可以填上你外接的Xdata(外部数据存储器的起始地址和大小,一般的应用是接一个62256,我们在这里特殊的指定Xdata的起始地址为0x2000,大小为0x8000;5. Code Banking使用Code Banking技术.keil可以支持程序代码超过64k的情况,最大可以有2兆的程序代码.如果你的代码超过64k,那么就要使用Code Banking技术,以支持更多的程序空间.Code Banking是一个高级的技术,支持自动的Bank的切换,是建立一个大型系统的需要,比如你要在单片机里实现汉字字库,实现汉字输入法,都要用到该技术.我们会在以后的文章里论述Bank技术.我们在这里不选中它.二.option for target 设置之output项select folder for object:选择编译之后的目标文件所存放的目录,默认存放在工程文件夹中。
name of executable:设置生成的目标文件的名字,默认是工程名。
creat executable:生成OMF和HEX文件,OMF文件名同工程文件名但没有扩展名。
creat hex file:选中该项编译后生成可以少些的HEX文件。
creat library:生成lib库文件,默认不选。
after make :1.beep when complete:编译完成后提示声响2.start debugging:编译完成后马上启动调试(软件仿真或硬件仿真),默认不选中3.run user program1,run user program2:根据需要设置编译之后的应用程序,比如自己编写的烧写芯片的程序,或调用外部仿真程序。
3.listingselect folder for listings:选择列表文件存放的目录,默认为工程文件所在的目录。
*.lst,*.m51文件对了解程序用到了哪些idata、data、bit、xdata、code、RAM、ROM、Stack等有很重要的作用。
Assembly code生产汇编的代码,根据需要决定是否选择。
4.c51用于对Keil的C51编译器编译过程进行控制,其中比较常用的是“code optimization”组,该组中level是优化等级,C51在对源程序进行编译时可以对代码多至9级优化,默认使用8级,一般不必修改。
如果在编译中出现一些问题可以降低优化级别试一试。
emphasis是选择编译优先方式,第一项是代码量优化(最终生成的代码量小),第二项是速度优先(最终生成的代码速度快),第三项是默认的,是速度优先,可根据需要更改。
5.BL51 locat使用KeilC51软件,可以很方便地将代码或者数据绝对定位到某个地址。
1、代码定位:方法1:使用伪指令CSEG。
比如要将MyFunc1定位到代码区C:0x1000,则新建一个A51文件,添加以下内容:PUBLIC MYFUNC1CSEG AT 1000HMYFUNC1:;其它代码RET在其它源文件中,就可以调用MyFunc()函数了。
需要注意的是,编译器不检测传递参数的数目,仅检测函数是否有返回值。
方法2:使用BL51 Locate选项。
比如在main.c中定义了一个MyFunc2函数,并且要将该函数定位到代码区C:0x2000,则从菜单中选择Project->Options for Target 'Target1',在弹出的对话框中选择BL51 Locate页,在下面的code栏中写上?PR?MYFUNC2?MAIN(0x2000)即可。
如果想定位多个函数,也可以使用*通配符。
2、变量定位:只有全局变量可以绝对定位,局部变量无法实现绝对定位。
方法1:使用_at_关键字。
声明一个全局变量unsigned char data MyBuf1[8] _at_ 0x20;方法2:使用BL51 Locate选项。
比如将main.c中定义的所有data型的全局变量定位到数据区D:0x28开始的空间,则从菜单中选择Project->Options for Target 'Target1',在弹出的对话框中选择BL51 Locate页,在下面的data栏中写上?DT?MAIN(0x28)即可。
如果是idata,则使用?ID?MAIN(0x28),如果是xdata,则使用?XD?MAIN(0x28),如果是pdata,则使用?PD?MAIN(0x28)3、堆栈定位:在STARTUP.A51文件中定义了堆栈区?STACK,其起始地址同样可以在BL51 Locate页中设置,在Stack栏写上?STACK(0x80)4.函数定位:假如要把C源文件 tools.c 中的函数int BIN2HEX(int xx){...}放在CODE MEMORY的0x1000处,先编译该工程,然后打开该工程的M51文件,在* * * C O D E M E M O R Y * * *行下找出要定位的函数的名称,应该形如:CODE xxxxH xxxxH UNIT ?PR?_BCD2HEX?TOOLS然后在:Project->Options for Target ...->BL51 Locate:Code中填写如下内容:?PR?_BCD2HEX?TOOLS(0x1000)再次Build,在M51中会发现该函数已放在CODE MEMORY的0x1000处了2、赋初值的变量定位:要将某变量定位在一绝对位置且要赋初值,此时用 _at_ 不能完成,则如下操作:在工程中建立一个新的文件,如InitVars.c,在其中对要处理的变量赋初值(假设是code变量):char code myVer = {"COPYRIGHT 2001-11"};然后将该文件加入工程,编译,打开M51文件,若定义的是code型,则在* * * C O D E M E M O R Y * * *下可找到:CODE xxxxH xxxxH UNIT ?CO?INITVARS然后在:Project->Options for Target ...->BL51 Locate:Code中填入:?CO?INITVARS(0x200)再次编译即可。