KeilC51使用教程
Keil C51软件入门
Keil C51软件入门1、新建一个文件夹,用来存放本次操作的文件。
2、启动Keil C51,进入Keil C51开发环境。
图1 启动Keil C51时的屏幕3、点击Project(工程)→New Project(新建工程),进入“Create New Project(创建新工程)”对话框。
图2 新建工程4、在“文件名”栏输入程序项目名称zdx,单击“保存”按钮,即保存一个zdx.uv2文件。
进入选择芯片对话框(Select Device for Target …Target 1‟)。
图3 保存工程5、进入选择芯片对话框(Select Device for Target …Target 1‟)。
在对话框中找到Atmel(Intel)公司,点击下来菜单找到AT89C51(8051AH)。
单击确定,弹出“启动代码选择”对话框,单击“是”,添加启动代码,单击“否”则以后需要再添加,一般选择“否”。
图4 选择单片机芯片6、点击Project(工程)→Options for Target…Target 1‟(项目选项)或在Target 1(目标1)上右击鼠标,出现“Options for Target…Target 1‟”对话框。
选择“Target(项目)”页面,将Xtal(时钟)栏的时钟改为12MHz。
再选择Output(输出)页面,勾选Create Hex File(输出十六进制文件)复选框。
(文件编译后可生成Hex 文件,在Proteus中可直接加载),其他默认,单击确认按钮。
7、点击File (文件)→New (新建),即新建“Text1(文本)”文件,在该文件编辑栏编写汇编程序。
完成后,点击File (文件)→Save As (保存为),在弹出的对话框的文件名栏输入“zdx.asm”(汇编程序)或”zdx.c”(C 程序)(必须输入后缀名)。
8、回到Keil C51开发环境,单击Target 1的下拉菜单,在Source Croup 1(源程序)上右击,选择“Add File to Group …Source Croup1‟(添加文件到源程序)命令,在弹出的“Add File to Group …Source Croup1‟”对话框的文件类型栏,选择Asm Source file (汇编源程序) 或C Source file (C 源程序),查找““zdx.asm”文件,单击Add 按钮,将源程序添加到Source Croup 1。
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 使用教程
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实用操作
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、首先建立一个工程点击Project→New Project 如下图所示。
则会出现如下图。
注意工程保存在什么位置(要方便自己查找),输入文件,保存类开会自动生成,不用管,然后点保存,则会出如下图则会出现。
则出现可点是或否,影响不大。
则会出现:这样应建立了一个新的工程。
可在保存的位置找工程文件名。
2、建立一个汇编语言文件。
点击File→New,如下图所示则出现Text1为文件名,先要保存一下。
选为文件保存的位置,文件名要注意一下,用汇编语言编写则后缀(扩展名)为.ASM,如果用C 语言编写则为.C。
设置好后点击保存,则程序文件应建立好了。
在保存的位置可找到该文件。
3、程序录入编辑及编译(1)在程序编辑区录入程序(2)将程序文件添加到工程文件中右键单击Source Group1如下图则出现点击,Add Files to Group Source Group 1 则出现如下图选好文件类型为C Source file (*.C),再在保存位置中找到刚才编辑好的程序文件,然后点Add 即可。
(3)必要的参数设置点击Project→Option for Target则会出现如下图:在Target 选项卡中设置好晶振频率。
再选Output选项卡,如下图:设置好各项后点击确定,必要的参数应设置完毕。
(4) 程序编译检查点击Project→Build target files 如下图所示则在界面的最下面出现指示:如果有错误要改正程序的错误,再进行编译,一直到没有错误为止,要生成HEX文件,我们才能下载到单片机中。
程序下载到单片机的程序应用1、启动软件:在桌面找到图,双击将会出现如下图必须要选择正确的端口及单片机型号,然后调入从KEIL C51编译生成的HEX文件。
2、调入HEX文件:左键单击调入FLASH,如下图所示:将会出现HEX文件选择窗口:选择正确文件后,点打开,则出现如下图3、将HEX文件下载到单片机芯片选择正确后,检查单片机是否连接好,准备好后就点击自动,则会出现如下图,程序下载完成后,就会看到单片机板上LED灯在点亮了。
keic51使用方法
2)然后单击快捷菜单中的“Add File to Group ‘Source Group1’”项,弹出如图1.14所示的添加文件对话框。
图14添加文件对话框
3)在图1.14中,通过“查找范围”列表栏找到前面保存的“paomadeng.C”所在文件夹,即“dz”文件夹,如图1.15所示,再点击“文件类型”中的下拉列表框,从中选取“Cfile(*.c;)”项。(注意:以后要根据不同的文件类型来选取不同列表项)
{
P2=~(1<<i);
delay_ms(200);
}
P2=0XFF;
for(i=0;i<8;i++) //轮流点亮P0口LED
{
P0=~(1<<i);
delay_ms(200);
}
P0=0XFF;
}
}
说明:
在输入上述程序过程中,你会发现keil软件的的优势:即Keil c51会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后,如图1.17所示
port_init();
while(1)
{
for(i=0;i<8;i++) //轮流点亮P1口LED
{
P1=~(1<<i);
delay_ms(200);
}
P1=0XFF;
for(i=0;i<8;i++) //轮流点亮P3口LED
{
P3=~(1<<i);
delay_ms(200);
}
P3=0XFF;
for(i=0;i<8;i++) //轮流点亮P2口LED
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中,用户还可以使用版本控制工具来管理项目代码的版本。
这些工具可以帮助用户跟踪代码的修改历史,并提供代码版本的回退和合
并功能。
KeilC51的使用
Kei使用说明
1. 软件的安装
2. 安装完之后打开“Keil uVision2”
3. 建立一个“Project”
点击“Project”->“New Project…”,选择工程文件要存放的路径,输入工程文件名LED,单击保存。
4. 弹出选择CPU 厂商和型号的对话框
5. 我们这里使用的是Atmel 公司的AT89C51
6. 下面的对话框,选择“是”
7. 如下图,新建一个51文件;
8. 点击保存后,如下图:
9. 接下来就是将ASM文件添加到这个Project中
点击“Source Group1”使其反白显示,然后,点击鼠标右键,出现一个下拉菜单,如下图所示,选中其中的“Add file to Group”Source Group1”,出现一个对话框,要求寻找源文件。
10. 将刚才新建的“LED.ASM”文件“Add”进来
11. 参数设置
◆单击“Option for Target”按钮
◆弹出如下下图所示对话
12. 在编辑框里面输入以下代码
13. 编译
14. 调试
15. 调试时常用的窗口
存储器窗口
存储器窗口中可以显示系统中各种存储器中的值,通过在Address后的编辑框内输入“字母:数字”即可显示存储器某一单元中的值。
其中字母可以是C(可以省略)、D和X,分别代表程序存储器空间、片内数据存储器空间和片外数据存储器空间;数字代表想要查看单元的地址。
工程窗口寄存器页
外围接口。
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 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型号对话框第七步:加入源程序到工程中。
KEILC51操作步骤
KEILC51操作步骤1、在桌面或者其他盘(D盘或E盘),新建一空白文件夹TEST1。
2、在桌面上双击:Keil uVision4。
3、点击Project\New uVision Project...,在弹出的对话框中选中目标文件夹(即在步骤1建立的文件夹下),建立一工程,文件名为test1,后点击保存。
4、在弹出的对话筐中选择Atmel中的AT89C51,点击OK,在弹出的uVision对话筐中,选“是”。
5、点击File\New...,建立一空白文档,敲入所需程序,点击保存,在弹出的对话框中输入文件名为test1.c,后点击保存即可。
6、鼠标点击左边project对话框中Target1前面的“+”号,会出现“Source Group 1”。
然后鼠标选中“Source Group 1”右击,选择”Add files to ‘Group Source Group 1’...,在弹出的对话筐中,选择刚才保存的TEST1文件夹下的test1.c单击,再点击Add,最后点击Close关闭对话框即可。
7、点击Project\Options for Target‘Target 1’...,在弹出的对话筐中点击”Output”,在Creat Hex前的方框内打勾,点击OK 即可。
8、点击Project\Translate.....后,在屏幕下方Build Output 对话框中出现"test1" - 0 Error(s), 0 Warning(s).然后再点击Project\Build target,下方出现"test1" - 0 Error(s), 0 Warning(s).最后点击Project\Rebulid all target files。
即编译完成,在屏幕下方出现creating hex file from "test"..."test1" - 0 Error(s), 0 Warning(s).即为正确调试。
附录4 Keil C51使用入门
附件四:Keil C51使用入门1.第一课建立您的第一个C 项目KEIL uVISION2 是众多单片机应用开发软件中最常的软件之一,它支持大部分不同公司的MCS51 架构的芯片,它集编辑、编译、仿真等于一体,同时还支持PLM 、汇编和 C 语言的程序设计,它的界面和常用的微软VC++ 的界面相似,界面友好,易学易用,在调试程序,软件仿真方面也有很强大的功能。
因此很多开发51 应用的工程师或普通的单片机爱好者,都对它十分喜欢。
要使用KEIL51 软件,必需先要安装它。
KEIL51 是一个商业的软件,对于学习用,可以到KEIL 中国代理周立功公司的网站上下载一份能编译2K 的评估版软件,基本可以满足一般的个人学习和小型应用的开发。
下面就以建立一个小程序项目来学习Keil c51的使用。
首先当然是运行KEIL51 软件出现如图4.1 的屏幕,接着按下面的步骤建立您的第一个项目。
附录图4.1 启动时的屏幕(1)点击Project 菜单,选择弹出的下拉式菜单中的New Project ,如图4.2。
接着弹出一个标准Windows 文件对话窗口,如图 4.3,在“文件名”中输入您的第一个 C 程序项目名称,这里我们用“ex1”,“保存”后的文件扩展名为uv2 ,这是KEIL uVision2 项目文件扩展名,以后我们可以直接点击此文件以打开先前做的项目。
附录图4.2 New Project 菜单附录图4.3 文件窗口(2)选择所要的单片机,这里我们选择常用的Ateml 公司的AT89C51 。
此时屏幕如图4.4 所示。
在图4.4中右边有简单的介绍附录图4.4 选取芯片(3)首先我们要在项目中创建新的程序文件或加入旧程序文件。
如果您没有现成的程序,那么就要新建一个程序文件。
在KEIL 中有一些程序示例,在这里我们还是以一个 C 程序为例介绍如何新建一个 C 程序和如何加到项目中。
点击图 4.5 中a 的新建文件的快捷按钮,在b中出现一个新的文字编辑窗口,这个操作也可以通过菜单File -New 或快捷键Ctrl+N 来实现。
KEILC51使用说明
2015-2-3 4
图 1-6 把文件加入到项目文件组中
2015-2-3 5
(5)编译运行。看图 1-7 ,图中 1、2、3 都是编译按钮,
不一样是 1 是用 于编译单个文件。2 是编译链接当前项目,如 果先前编译过一次之后文件没有做动编辑改动, 这个时候再点 击是不会再次重新编译的。3 是重新编译,每点击一次均会再次 编译链接一次,不 管程序是否有改动。在 3 右边的是停止编译 按钮,只有点击了前三个中的任一个,停止按钮 才会生效。5 是菜单中的它们。在 4 中能看到编译的错误信息和使用的系统 资源情况等, 以后我们要查错就靠它了。6 是有一个小放大镜 的按钮,这就是开启\关闭调试模式的按钮, 它也存在于菜单 Debug-Start\Stop Debug Session,快捷键为 Ctrl+F5。
附:keil C51 使用简介
(1)点击 Project 菜单,选择弹出的下拉式菜单中 的 New Project,如图 1-2。
图 1-2 New Project 菜单
2015-2-3 1
(2)选择所要的单片机,这里选择常用的 Ateml 公 司的 AT89c52。此时屏幕如图 1-4 所示。
这个操作也能通过菜单 File-New 或 快捷键 Ctrl+N 来实现。好了, 现在能编写程序了。
图 1-5 新建程序文件 2015-2-3
3
(4)保存文件,程序命名为 test1.c,保存在项目所 在的目录中,这个时候您会发现程序单词有了不一样的 颜色,说明 KEIL的C语言语法检查生效了。如图 1-6 鼠标在屏幕左边的 Source Group1 文件夹图标上右击弹 出菜单,在这里能在项目中增加减少文件等操作。选 “Add File to Group ‘Source Group 1’” 弹出文件窗口, 选择刚刚保存的文件,按 ADD 按钮,关闭文件窗,程 序文件已加到项目中了。这个时候在 Source Group1 文 件夹图标左边出现了一个小+号说明,文件组中有了文 件,点击它能展开查看。
使用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软件的开发流程的基本步骤。
KeilC51安装和使用说明
图5新建立的工程
2 源文件的添加 如果用户没有现成的程序,那么就要新建一个程序文件。在这里我们以一个ASM程序为例,介
绍如何新建一个ASM程序和如何将它添加到工程中。单击“文件->新建”菜单,如图6所示,新建一 个源文件。
图6 源程序的建立
此时在项目窗口的右侧打开一个新的文本编辑窗口,如图7所示:
jmp start
loop1:mov P0,a
;将要显示的代码送P0口
mov r4,#20
;延时200ms(0.2S)
call delay
;调用延时
inc dptr
;DPTR加1,为读取下一个地址的内容作准备
jmp loop
;************** 延时子程序 ****************
单步跟踪运行使用菜单调试单步进入或相应的命令按钮或使用快捷键f11可以单步跟踪执行程序在这里我们按下f11键即可执行该箭头所指程序行每按一次f11可以看到源程序窗口的左边黄色调试箭头指向下一行当箭头指向calldelay行时再次按下f11会发现箭头指向了延时子程序delay的第一行不断按f11键即可逐步执行延时子程序如图24所示图24单步跟踪运行单步运行如果delay程序有错误可以通过单步跟踪执行来查找错误但是如果delay程序已正确每次进行程序调试都要反复执行这些程序行会使得调试效率很低为此可以在调试时使用f10来替代f11也可使用菜单单步跳过或相应的命令按钮在执行到calldelay时将该行作为一条语句快速执行完毕
图12 编辑源程序
3 工程的设置
有三种打开工程设置对话框的方法:
A)点击工具栏上的 按钮,如图13所示。
图13 使用工具栏图标按钮打开工程设置对话框
B)单击工程窗口下的Target1,使其高亮显示,再点击菜单“项目->目标‘target1’选项” 如图 14所示。
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),通过寄存器窗口、存储器窗口以及外围设备窗口等就可以看到程序运行后的结果。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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语言文件名,然后在如上图所示的菜单中选择带有红色方框的选项在弹出的对话框中,将上图中红色方框选中的两项打上勾(默认的情况下,前面的勾是灰色的,要让这两项前的勾变为黑色的),点击确定。