如何在 KEIL C51
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的使用免费
KEIL和C51是一款强大的集成开发环境和一种流行的8051系列单片
机C语言编译器。
KEIL提供了C51编译器和调试器,以及丰富的软件库
和开发工具,使得开发人员能够更方便地编写、调试和测试嵌入式系统。
全面使用KEIL和C51需要掌握以下几个方面的内容:
2.创建工程:在KEIL中创建工程是开始开发的第一步。
可以选择新
建空白工程或者导入已有的工程。
在工程中,可以添加源文件、头文件、
库文件等。
同时,还需要指定目标芯片型号和连接器脚本。
4.编译和调试:编写完程序后,可以选择编译和调试。
KEIL的C51
编译器会将源代码编译成可以在目标芯片上运行的机器码。
编译过程中,
会检查语法错误、类型错误、符号错误等,并生成可执行文件。
调试过程中,可以设置断点、查看变量值、单步运行等功能,以便调试和测试程序。
此外,KEIL还提供了一系列的工具和功能,如性能分析器、内存监
视器、逻辑分析器等,用于进一步提高开发效率和调试能力。
全面使用KEIL和C51需要学习的知识较多,可以通过以下途径进一
步深入学习:。
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 的入门教程。
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这个组里了,随后关闭此对话窗口。
KEILC51中C语言加入汇编语言的使用方法
KEILC51中C语言加入汇编语言的使用方法一、为什么使用汇编语言?汇编语言是一种底层的编程语言,其主要目的是实现对硬件的直接控制,具有高度灵活性和效率。
在开发单片机程序时,通常使用高级语言来编写大部分的代码,但是在一些特定的情况下,使用汇编语言能够更好地满足需求,例如对一些硬件寄存器的操作、实现高速计算等。
二、C语言与汇编语言相结合的方法在KEILC51中,可以通过使用内联汇编或者使用汇编模块的方式将C 语言与汇编语言相结合。
1.内联汇编内联汇编是将汇编代码直接嵌入到C语言代码中。
使用内联汇编可以获得更高的性能和灵活性,但也增加了代码的可读性和可维护性。
在C语言中使用内联汇编需要使用__asm关键字,并在括号中编写要嵌入的汇编代码。
以下是一个示例:```void delay(unsigned int count)__asmMOVR1,loop:INCR1CJNE R1, count, loop}```在上述示例中,使用了__asm关键字将一段简单的汇编代码嵌入到了C函数delay中,以实现一个延时功能。
2.汇编模块另一种将C语言与汇编语言相结合的方法是使用汇编模块。
汇编模块是一个独立的文件,其中包含了汇编语言代码。
可以通过使用extern关键字将C语言代码与汇编模块连接起来。
首先,需要创建一个汇编模块的文件,例如delay.asm,其中包含了要实现的汇编代码:```; delay.asmPUBLIC delaydelay PROCMOVR1,loop:INCR1CJNE R1, R2, loopRETdelay ENDP```在上述示例中,创建了一个名为delay的汇编函数,该函数实现了一个简单的延时功能。
接下来,在C语言代码中使用extern关键字声明要调用的汇编函数:```// main.cextern void delay(unsigned int count);void maindelay(1000);```在上述示例中,使用extern关键字声明了一个名为delay的汇编函数。
单片机仿真软件Keil C51软件的使用教程(中文版)
单片机仿真软件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单片机。
图8:选择CPU型号对话框第七步:加入源程序到工程中。
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安装教程
keil c51安装教程Keil C51安装教程一、引言Keil C51是一款功能强大且广泛使用的嵌入式C语言开发工具,用于开发基于Intel 8051系列单片机的应用程序。
本文将为您提供Keil C51的安装教程,以帮助您快速上手该开发工具。
二、准备工作在开始安装Keil C51之前,您需要准备以下工作:1. 一台装有Windows操作系统的计算机;2. Keil C51的安装文件;3. 一台Intel 8051系列单片机开发板(可选)。
三、安装Keil C51按照以下步骤,您可以轻松安装Keil C51:1. 双击安装文件,运行安装程序,在安装向导中选择“安装Keil C51”;2. 阅读并接受许可协议,选择安装路径,并选择是否创建桌面快捷方式;3. 选择组件,您可以选择安装所有组件,也可以按需选择需要的组件;4. 点击“安装”按钮,等待安装程序完成。
四、配置Keil C51安装完成后,您需要进行一些配置工作,以确保Keil C51可以正确地运行和调试您的应用程序。
1. 打开Keil C51,选择“Options for Target”菜单下的“Atmel 8051”(如果您使用的是Intel 8051系列单片机,请选择对应的厂商);2. 在“Target”选项卡中,选择您的单片机型号,并配置相关参数,如时钟频率、中断向量表等;3. 在“Debug”选项卡中,选择合适的调试器,并设置连接方式和串口参数;4. 完成配置后,点击“OK”按钮保存设置。
五、创建项目在Keil C51中,您可以创建项目来组织和开发您的应用程序。
1. 在“Project”菜单下选择“New”;2. 在弹出的对话框中,选择“C51”作为项目类型,输入项目名称,并选择项目路径;3. 点击“Save”按钮,创建项目;4. 在项目中添加源文件和其他资源文件,并进行相应的设置。
六、编写代码在Keil C51中,您可以使用C语言编写应用程序的源代码。
使用keilc51编程的流程
使用keilc51编程的流程1. 安装keilc51•打开浏览器,访问Keil官方网站。
•在网站上找到适用于您的操作系统的Keil C51软件,并下载安装程序。
•双击安装程序,并按照提示完成软件的安装过程。
2. 创建新的keilc51项目•打开keilc51软件。
•在菜单栏中选择“File”,然后选择“New Project”选项。
•在弹出的对话框中,选择项目的保存位置和项目的名称,并点击“OK”按钮。
•在新建项目的对话框中,选择适用于您的目标芯片的设备。
•点击“OK”按钮,创建新的keilc51项目。
3. 编写程序代码•在keilc51的界面中,选择“File”,然后选择“New”选项,创建新的源文件。
•在源文件中编写您的程序代码,使用C语言进行编写。
•注意使用合适的注释,以及编写代码的规范和清晰度。
4. 编译代码•点击keilc51工具栏上的“Build”按钮,或者使用快捷键“Ctrl + F7”来编译您的代码。
•编译过程中,keilc51会检查代码中的语法错误和警告,并生成相应的编译报告。
5. 下载程序到目标芯片•确保您的目标芯片通过编程器连接到您的计算机。
•点击keilc51工具栏上的“Download”按钮,或者使用快捷键“Ctrl + F8”来下载程序到目标芯片。
•keilc51会通过编程器将程序下载到目标芯片上。
6. 调试和仿真•在keilc51的界面中,选择“Debug”,然后选择“Start/Stop Debug Session”选项。
•在调试过程中,您可以使用keilc51提供的调试工具来单步执行程序、查看变量值和观察芯片的状态。
•通过调试和仿真,您可以验证程序的功能和逻辑是否符合要求。
7. 优化程序性能•在keilc51的界面中,选择“Project”,然后选择“Options for Target”选项。
•在弹出的对话框中,选择“C51”选项卡,并进行适当的优化设置。
•优化设置包括选择合适的编译器优化级别、优化寄存器分配和使用嵌入式汇编等。
KEIL软件的操作步骤(精)
KEIL软件的操作步骤(精)
KEIL软件的操作步骤
1.运行KeiL C51
双击KeiL C51图标,运行软件。
2.建立一个新工程(Project)
对于一次新的程序设计可以建立一个新工程,实际上就是建立一个存放本次工作文件的一个文件夹,按软件提示输入工程文件名。
3.选中Atmel公司的AT89C51
由于我们用的单片机是Atmel公司的AT89C51,所以在KeiL C51中选中AT89C51,以保证KeiL C51调用对应的库文件。
4.编辑汇编程序
可直接在KeiL C51中编写C51程序,也可将其他文本编写的C51程序复制到KeiL C51的文本编辑区中。
5.将汇编程序添加到工程中
将以编写好的C51程序进行保存,注意保存时一定要在文件名后加后缀“.asm”,然后将文件添加到工程中。
6.设置使KeiL C51对C51程序编译后输出“HEX文件”
右键单击工程文件管理窗口中的“工程名”,在右键菜单上选“Options for Target‘工程名’”,在‘Output’选项卡中,选中‘Create HEX File’选项(打上勾),单击确定键,完成设置。
7.对C51程序进行编译
选择菜单或单击编译工具对C51程序进行编译,若编译结果无错误,就可以将HEX文件下载到单片机。
1。
KEILC51编译软件使用方法
KEILC51编译软件使用方法
2.创建一个新项目
打开KEIL C51软件,点击“Project” -> “New µVision Project”创建一个新的项目。
选择项目所在的文件夹和项目名称,然后点击“Save”。
3.添加源文件
在新创建的项目中,右键点击"Source Group 1",选择"Add New
Item to Group"。
选择您要添加的源文件类型,比如.C文件,然后点击"Add"。
4.编写代码
5.配置单片机参数
在"Project" -> "Options"中选择"Target"选项卡。
选择您正在使用
的目标芯片型号,并配置相关参数,如时钟频率等。
6.编译代码
在工具栏中点击"Build"按钮,或者按下"F7"键来编译代码。
KEIL
C51将会编译源文件,并生成可执行文件。
8.调试程序
9.仿真运行
在工具栏中选择"Start/Stop Simulation"按钮,或按下"F9"键,
KEIL C51将会启动一个仿真器运行您的程序。
您可以在仿真器中监视程
序的运行状态。
10.生成可烧录文件
在成功编译程序后,您可以在工具栏中选择"Output"按钮,或按下CTRL+F7键,KEIL C51将生成可烧录到单片机的HEX文件。
将生成的HEX 文件用于烧录器烧录到目标芯片即可。
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步)。
使用keilc51软件的开发流程
使用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软件的开发流程的基本步骤。
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++); }
单片机KeilC51软件的使用方法
Keil C51软件的使用Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑、编译、仿真于一体,支持汇编和 C 语言的程序设计,界面友好、易学易用。
下面介绍Keil C51软件的使用方法:1.启动Keil C51,界面如下图。
启动Keil C51时的屏幕进入Keil C51后的编辑界面2.建立一个新工程。
(1)单击工程菜单,在弹出的下拉菜单中选中新建工程选项。
(2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51,如下图所示,然后点击保存。
(3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,Keil C51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定。
(4)完成上一步骤后,屏幕如下图所示。
(5)单击文件菜单,再在下拉菜单中单击新建选项,屏幕如下图所示。
此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,建议首先保存该空白的文件,单击文件菜单,在下拉菜单中选中另存为选项单击,屏幕如下图所示,在文件名栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。
编写程序,则扩展名必须为.asm。
然后,单击保存按钮。
回到编辑界面后,单击目标1前面的+号,然后在源程序组1上单击右键,弹出如下菜单,然后单击增加文件到组‘源程序组1’,屏幕如下图所示,选中c51.asm,然后单击Add,屏幕如下图所示,(7)输入如下的汇编语言源程序,程序输入完毕后如下图所示。
(8)单击工程菜单,再在下拉菜单中单击建造目标选项(或者使用快捷键F7),编译成功后,再单击调试菜单,在下拉菜单中单击开始/停止调试(或者使用快捷键Ctrl+F5),屏幕如下所示。
(9)调试程序,在上图中单击调试菜单,在下拉菜单中单击运行到选项(或者使用快捷键F5),然后再单击调试菜单,在下拉菜单中单击停止运行选项(或者使用快捷键Esc),通过寄存器窗口、存储器窗口以及外围设备窗口等就可以看到程序运行后的结果。
KeilC51教程
新建文件
• 1.打开File中的New.
• 2.把程序输入新文件。 • 3.保存文件,左击工具栏的保存工具。
• 4.在文件名栏中输入文件名,如 Text1.asm。在点保存。你输入的文件是 C语言为Text1.c,输入的文件是汇编为 Text1.asm。
加载
• 1.右击Project window栏里的Source Group1,点开Add Files to Group‘ Source Group1’。
• 3.Debug Toolbar工具栏里第一个为复位 键,第二个为全速运行,第三个为暂停, 第四个为单步运行,第五个为单步循环 里运行,第六个为跳出循环。
• 2.如图找到文件类型里的a*类型。
• 3.如图找到你保存asm 文件,然后电击 添加就行了。
参数设置
• 1.右击Project window 栏里的Target1 ,点 开 Options for Target ‘Target1’。
• 2.在Target选项卡里把“Xtal(MHZ):”的参 数改为你单片机用的频率数。如12MHZ 等。
• 3.在Output选项卡里把Create Hex Fi选中。 这是生成hex文件用于ISP下载。最后点确 定就行了。
软件仿真
• 1.编辑文件,单击Build Toolbar栏的三个 • 快捷键,进行编辑。看有无错误。警告 没影响。
• 2.打开菜单栏里的Debug的Start/stop Debug Sesion
KeilC51教程
新建一项目
1.打开工具栏里的Project。
2.打New Proபைடு நூலகம்ect。看我们的项目放在我们理想 的什么位置。如我们放到桌面上,先新建一 个文件夹。
KeilC51使用教程
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语言文件名,然后在如上图所示的菜单中选择带有红色方框的选项在弹出的对话框中,将上图中红色方框选中的两项打上勾(默认的情况下,前面的勾是灰色的,要让这两项前的勾变为黑色的),点击确定。
Keil共存的方法-KeilMDK兼容KeilC51,实操可行
Keil共存的⽅法-KeilMDK兼容KeilC51,实操可⾏
记录⼀下成功使Keil MDK和Keil C51共存的过程!
之前⼀直⽤Keil C51开发,最近需要⽤到ARM9内核的IC,就需要Keil C51和Keil MDK共存。
看了⼀下⽹上⼏个教程,⽅法⼤同⼩异。
总结起来就是两个版本的Keil分别安装在不同的⽂件夹,再将Keil C51中的⽂件夹复制到Keil MDK中。
有的说必须先安装C51,有的说必须先安装MDK;有的说先注册,还有说先不注册(和谐注册⽅法⽹上⼀⼤堆,google可查,百度也可查);
同⼯异曲,因为之前已经安装了Keil C51,按照现有环境来直接就接着安装了Keil MDK,细节如下:
软件版本:
① Keil C51:c51v956
② Keil MDK:MDK529
过程很简单
1、 Keil C51是先安装并破解的,安装过程⼀路Next,路径可以⾃⼰选择,路径中不能出现中⽂字符,我的路径是D:\Keil_v5。
2、 Keil MDK的安装过程也是⼀样,安装完之后破解,安装路径D:\Keil_v5_mdk。
3、之后,将Keil_v5中的C51⽂件夹整个复制到⽂件夹Keil_v5_mdk中。
4、将Keil_v5中的UV4⽂件夹复制到Keil_v5_mdk⽂件夹中(重要提⽰:提⽰同名⽂件是否替换时选择跳过)
5、将Keil_v5中TOOLS.INI⽂件中的内容复制,粘贴⾄Keil_v5_mdk⽂件夹中TOOLS.INI⽂件的尾部。
并修改安装路径,将复制内容中的Keil_v5改为Keil_v5_mdk。
⾄此,打开之前的C51程序,能够正常编译下载。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何在 KEIL C51(v6.21)中调用汇编函数的一个示例 [ycong_kuang]
有关c51调用汇编的方法已经有很多帖子讲到,但是一般只讲要点,很少有对整个过程作详细描述,对于初学者是不够的,这里笔者
通过一个简单例子对这个过程进行描述,希望能对初学者有所帮助。
几年来,在这个论坛里笔者得到很多热心人指导,因此也希望
藉此尽一点绵薄之力。
在这个例子里,阐述了编写c51程序调用汇编函数的一种方法,这个外部函数的入口参数是一个字符型变量和一个位变量,返回值是
一个整型变量。
例中,先用c51写出这个函数的主体,然后用SRC控制指令编译产生asm文件,进一步修改这个asm文件就得到我们所
要的汇编函数。
该方法让编译器自动完成各种段的安排,提高了汇编程序的编写效率。
step1. 按写普通c51程序方法,建立工程,在里面导入main.c文件和CFUNC.c 文件。
相关文件如下:
//main.c文件
#include < reg51.h >
#define uchar unsigned char
#define uint unsigned int
extern uint AFUNC(uchar v_achr,bit v_bflag);
void main()
{
bit BFLAG;
uchar mav_chr;
uint mvintrslt;
mav_chr=0xd4; BFLAG=1;
mvintrslt=AFUNC(mav_chr,BFLAG); }
//CFUNC.c文件
#define uchar unsigned char
#define uint unsigned int
uint AFUNC(uchar v_achr,bit v_bflag) {
uchar tmp_vchr;
uint tp_vint;
tmp_vchr=v_achr;
tp_vint=(uint)v_bflag;
return tmp_vchr+(tp_vint<<8);
}
step2. 在 Project 窗口中包含汇编代码的 C 文件上右键,选择“Options for ...”,点击右边的“Generate Assembler SRC
File”和“Assemble SRC File”,使检查框由灰色变成黑色(有效)状态;
step3. 根据选择的编译模式,把相应的库文件(如 Small 模式时,是
Keil\C51\Lib\C51S.Lib)加入工程中,该文件必须作为工
程的最后文件;
step4. build这个工程后将会产生一个CFUNC.SRC的文件,将这个文件改名为CFUNC.A51(也可以通过编译选项直接产生CFUNC.A51文
件),然后在工程里去掉库文件(如C51S.Lib)和CFUNC.c,而将CFUNC.A51添加到工程里。
//CFUNC.SRC文件如下
.\CFUNC.SRC generated from: CFUNC.c
NAME CFUNC
?PR?_AFUNC?CFUNC SEGMENT CODE
?BI?_AFUNC?CFUNC SEGMENT BIT OVERLAYABLE
PUBLIC ?_AFUNC?BIT
PUBLIC _AFUNC
RSEG ?BI?_AFUNC?CFUNC
?_AFUNC?BIT:
v_bflag?041: DBIT 1
; #define uchar unsigned char
; #define uint unsigned int
;
; uint AFUNC(uchar v_achr,bit v_bflag)
RSEG ?PR?_AFUNC?CFUNC
_AFUNC:
USING 0
; SOURCE LINE # 5
;---- Variable 'v_achr?040' assigned to Register 'R7' ----
; {
; SOURCE LINE # 6
; uchar tmp_vchr;
; uint tp_vint;
;
; tmp_vchr=v_achr;
; SOURCE LINE # 10
;---- Variable 'tmp_vchr?042' assigned to Register 'R5' ----
MOV R5,AR7
; tp_vint=(uint)v_bflag;
; SOURCE LINE # 11
MOV C,v_bflag?041
CLR A
RLC A
;---- Variable 'tp_vint?043' assigned to Register 'R6/R7' ---- ; return tmp_vchr+(tp_vint<<8);
; SOURCE LINE # 12
MOV R6,A
MOV R4,#00H
CLR A
ADD A,R5
MOV R7,A
MOV A,R4
ADDC A,R6
MOV R6,A
; }
; SOURCE LINE # 13
?C0001:
RET
; END OF _AFUNC
END
step5. 检查main.c的“Generate Assembler SRC File”和“Assemble SRC File”是否有效,若是有效则点击使检查框变成无效状
态;再次build这个工程,到此你已经得到汇编函数的主体,修改函数里面的汇编代码就得到你所需的汇编函数了。