当前位置:文档之家› 单片机开发软件keil使用技巧 联调12

单片机开发软件keil使用技巧 联调12

单片机开发软件keil使用技巧 联调12
单片机开发软件keil使用技巧 联调12

单片机

软件

程序

联调

使用方法

功能

I/O口

内部结构

存储模式决定了没有明确指定存储类型的变量,函数参数等的缺省存储区域,共三种:

1. 1. Small模式

所有缺省变量参数均装入内部RAM,优点是访问速度快,缺点是空间有限,只适用于小程序。

2. 2. Compact模式

所有缺省变量均位于外部RAM区的一页(256Bytes),具体哪一页可由P2口指定,在STARTUP.A51文件中说明,也可用pdata指定,优点是空间较Small为宽裕速度较Small慢,较large要快,是一种中间状态。

3. 3. large模式

所有缺省变量可放在多达64KB的外部RAM区,优点是空间大,可存变量多,缺点是速度较慢。

提示:存储模式在C51编译器选项中选择。

4. 第四节存储类型声明

变量或参数的存储类型可由存储模式指定缺省类型,也可由关键字直接声明指定。各类型分别用:code,data,idata,xdata,pdata说明,例:data uar1

char code array[ ]=“hello!”;

unsigned char xdata arr[10][4][4];

5. 第五节变量或数据类型

C51提供以下几种扩展数据类型:

bit 位变量值为0或1

sbit 从字节中定义的位变量0或1

sfr sfr字节地址0~255

sfr16 sfr字地址0~65535

其余数据类型如:char,enum,short,int,long,float等与ANSI C相同。

6. 第六节位变量与声明

1. 1. bit型变量

bit型变量可用变量类型,函数声明、函数返回值等,存贮于内部RAM20H~2FH。

注意:

(1) 用#pragma disable说明函数和用“usign”指定的函数,不能返回bit值。

(2) 一个bit变量不能声明为指针,如bit *ptr;是错误的

(3) 不能有bit数组如:bit arr[5];错误。

2. 2. 可位寻址区说明20H-2FH

可作如下定义:

int bdata i;

char bdata arr[3],

然后:

sbit bito=in0;sbit bit15=I^15;

sbit arr07=arr[0]^7;sbit arr15=arr[i]^7;

7. 第七节Keil C51指针

C51支持一般指针(Generic Pointer)和存储器指针(Memory_Specific Pointer).

1. 1. 一般指针

一般指针的声明和使用均与标准C相同,不过同时还可以说明指针的存储类型,例如:

long * state;为一个指向long型整数的指针,而state本身则依存储模式存放。

char * xdata ptr;ptr为一个指向char数据的指针,而ptr本身放于外部RAM区,以上的long,char等指针指向的数据可存放于任何存储器中。

一般指针本身用3个字节存放,分别为存储器类型,高位偏移,低位偏移量。

2. 2. 存储器指针

基于存储器的指针说明时即指定了存贮类型,例如:

char data * str;str指向data区中char型数据

int xdata * pow; pow指向外部RAM的int型整数。

这种指针存放时,只需一个字节或2个字节就够了,因为只需存放偏移量。

3. 3. 指针转换

即指针在上两种类型之间转化:

l 当基于存储器的指针作为一个实参传递给需要一般指针的函数时,指针自动转化。

l 如果不说明外部函数原形,基于存储器的指针自动转化为一般指针,导致错误,因而请用“#include”说明所有函数原形。

l 可以强行改变指针类型。

8. 第八节Keil C51函数

C51函数声明对ANSI C作了扩展,具体包括:

1. 1. 中断函数声明:

中断声明方法如下:

void serial_ISR () interrupt 4 [using 1]

{

/* ISR */

}

为提高代码的容错能力,在没用到的中断入口处生成iret语句,定义没用到的中断。

/* define not used interrupt, so generate "IRET" in their entrance */

void extern0_ISR() interrupt 0{} /* not used */

void timer0_ISR () interrupt 1{} /* not used */

void extern1_ISR() interrupt 2{} /* not used */

void timer1_ISR () interrupt 3{} /* not used */

void serial_ISR () interrupt 4{} /* not used */

2. 2. 通用存储工作区

3. 3. 选通用存储工作区由using x声明,见上例。

4. 4. 指定存储模式

由small compact 及large说明,例如:

void fun1(void) small { }

提示:small说明的函数内部变量全部使用内部RAM。关键的经常性的耗时的地方可以这样声明,以提高运行速度。

5. 5. #pragma disable

在函数前声明,只对一个函数有效。该函数调用过程中将不可被中断。

6. 6. 递归或可重入函数指定

在主程序和中断中都可调用的函数,容易产生问题。因为51和PC不同,PC使用堆栈传递参数,且静态变量以外的内部变量都在堆栈中;而51一般使用寄存器传递参数,内部变量一般在RAM中,函数重入时会破坏上次调用的数据。可以用以下两种方法解决函数重入:

a、在相应的函数前使用前述“#pragma disable”声明,即只允许主程序或中断之一调用该函数;

b、将该函数说明为可重入的。如下:

void func(param...) reentrant;

KeilC51编译后将生成一个可重入变量堆栈,然后就可以模拟通过堆栈传递变量的方法。

由于一般可重入函数由主程序和中断调用,所以通常中断使用与主程序不同的R寄存器组。

另外,对可重入函数,在相应的函数前面加上开关“#pragma noaregs”,以禁止编译器使用绝对寄存器寻址,可生成不依赖于寄存器组的代码。

7. 7. 指定PL/M-51函数

由alien指定。

4. 第四章Keil C51高级编程

本章讨论以下内容:

l 绝对地址访问

l C与汇编的接口

l C51软件包中的通用文件

l 段名转换与程序优化

1. 第一节绝对地址访问

C51提供了三种访问绝对地址的方法:

1. 1. 绝对宏:

在程序中,用“#include”即可使用其中定义的宏来访问绝对地址,包括:

CBYTE、XBYTE、PWORD、DBYTE、CWORD、XWORD、PBYTE、DWORD

具体使用可看一看absacc.h便知

例如:

rval=CBYTE[0x0002];指向程序存贮器的0002h地址

rval=XWORD [0x0002];指向外RAM的0004h地址

2. 2. _at_关键字

直接在数据定义后加上_at_ const即可,但是注意:

(1)绝对变量不能被初使化;

(2)bit型函数及变量不能用_at_指定。

例如:

idata struct link list _at_ 0x40;指定list结构从40h开始。

xdata char text[25b] _at_0xE000;指定text数组从0E000H开始

提示:如果外部绝对变量是I/O端口等可自行变化数据,需要使用volatile关键字进行描述,请参考absacc.h。

3. 3. 连接定位控制

此法是利用连接控制指令code xdata pdata \data bdata对“段”地址进行,如要指定某具体变量地址,则很有局限性,不作详细讨论。

2. 第二节Keil C51与汇编的接口

1. 1. 模块内接口

方法是用#pragma语句具体结构是:

#pragma asm

汇编行

#pragma endasm

这种方法实质是通过asm与ndasm告诉C51编译器中间行不用编译为汇编行,因而在编译控制指令中有SRC以控制将这些不用编译的行存入其中。

2. 2. 模块间接口

C模块与汇编模块的接口较简单,分别用C51与A51对源文件进行编译,然后用L51将obj文件连接即可,关键问题在于C函数与汇编函数之间的参数传递问题,C51中有两种参数传递方法。

(1) 通过寄存器传递函数参数

最多只能有3个参数通过寄存器传递,规律如下表:

参数数目char int long,float 一般指针

123 R7R5R3 R6 & R7R4 & R5R2 & R3 R4~R7R4~R7 R1~R3R1~R3R1~R3

(2) 通过固定存储区传递(fixed memory)

这种方法将bit型参数传给一个存储段中:

?function_name?BIT

将其它类型参数均传给下面的段:?function_name?BYTE,且按照预选顺序存放。

至于这个固定存储区本身在何处,则由存储模式默认。

(3) 函数的返回值

函数返回值一律放于寄存器中,有如下规律:

return type Registev 说明

bit 标志位由具体标志位返回

char/unsigned char 1_byte指针R7 单字节由R7返回

int/unsigned int 2_byte指针R6 & R7 双字节由R6和R7返回,MSB在R6

long&unsigned long R4~R7 MSB在R4, LSB在R7

float R4~R7 32Bit IEEE格式

一般指针R1~R3 存储类型在R3 高位R2 低R1

(4) SRC控制

该控制指令将C文件编译生成汇编文件(.SRC),该汇编文件可改名后,生成汇编.ASM文件,再用A51进行编译。

3. 第三节Keil C51软件包中的通用文件

在C51\LiB目录下有几个C源文件,这几个C源文件有非常重要的作用,对它们稍事修改,就可以用在自己的专用系统中。

1. 1. 动态内存分配

init_mem.C:此文件是初始化动态内存区的程序源代码。它可以指定动态内存的位置及大小,只有使用了init_mem( )才可以调回其它函数,诸如malloc calloc,realloc等。

calloc.c:此文件是给数组分配内存的源代码,它可以指定单位数据类型及该单元数目。

malloc.c:此文件是malloc的源代码,分配一段固定大小的内存。

realloc.c:此文件是realloc.c源代码,其功能是调整当前分配动态内存的大小。

2. 2. C51启动文件STARTUP.A51

启动文件STARTUP.A51中包含目标板启动代码,可在每个project中加入这个文件,只要复位,则该文件立即执行,其功能包括:

l 定义内部RAM大小、外部RAM大小、可重入堆栈位置

l 清除内部、外部或者以此页为单元的外部存储器

l 按存储模式初使化重入堆栈及堆栈指针

l 初始化8051硬件堆栈指针

l 向main( )函数交权

开发人员可修改以下数据从而对系统初始化

常数名意义

IDATALEN 待清内部RAM长度

XDA TA START 指定待清外部RAM起始地址

XDA TALEN 待清外部RAM长度

IBPSTACK 是否小模式重入堆栈指针需初始化标志,1为需要。缺省为0

IBPSTACKTOP 指定小模式重入堆栈顶部地址

XBPSTACK 是否大模式重入堆栈指针需初始化标志,缺省为0

XBPSTACKTOP 指定大模式重入堆栈顶部地址

PBPSTACK 是否Compact重入堆栈指针,需初始化标志,缺省为0

PBPSTACKTOP 指定Compact模式重入堆栈顶部地址

PPAGEENABLE P2初始化允许开关

PPAGE指定P2值

PDA TASTART 待清外部RAM页首址

PDA TALEN 待清外部RAM页长度

提示:如果要初始化P2作为紧凑模式高端地址,必须:PPAGEENAGLE=1,PPAGE为P2值,例如指定某页1000H-10FFH,则PPAGE =10H,而且连接时必须如下:

L51 PDA TA(1080H),其中1080H是1000H-10FFH中的任一个值。

以下是STARTUP.A51代码片断,红色是经常可能需要修改的地方:

;------------------------------------------------------------------------------

; This file is part of the C51 Compiler package

; Copyright KEIL ELEKTRONIK GmbH 1990

;------------------------------------------------------------------------------

; STARTUP.A51: This code is executed after processor reset.

;

; To translate this file use A51 with the following invocation:

;

; A51 STARTUP.A51

;

; To link the modified STARTUP.OBJ file to your application use the following

; L51 invocation:

;

; L51 , STARTUP.OBJ

;

;------------------------------------------------------------------------------

;

; User-defined Power-On Initialization of Memory

;

; With the following EQU statements the initialization of memory

; at processor reset can be defined:

;

;; the absolute start-address of IDATA memory is always 0

IDATALEN EQU 80H ; the length of IDA TA memory in bytes.

;

XDA TASTART EQU 0H ; the absolute start-address of XDA TA memory

XDA TALEN EQU 0H ; the length of XDA TA memory in bytes.

;

PDA TASTART EQU 0H ; the absolute start-address of PDA TA memory

PDA TALEN EQU 0H ; the length of PDA TA memory in bytes.

;

; Notes: The IDA TA space overlaps physically the DATA and BIT areas of the

; 8051 CPU. At minimum the memory space occupied from the C51

; run-time routines must be set to zero.

;------------------------------------------------------------------------------

;

; Reentrant Stack Initilization

;

; The following EQU statements define the stack pointer for reentrant

; functions and initialized it:

;

; Stack Space for reentrant functions in the SMALL model.

IBPSTACK EQU 0 ; set to 1 if small reentrant is used.

IBPSTACKTOP EQU 0FFH+1 ; set top of stack to highest location+1.

;

; Stack Space for reentrant functions in the LARGE model.

XBPSTACK EQU 0 ; set to 1 if large reentrant is used.

XBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.

;

; Stack Space for reentrant functions in the COMPACT model.

PBPSTACK EQU 0 ; set to 1 if compact reentrant is used.

PBPSTACKTOP EQU 0FFFFH+1; set top of stack to highest location+1.

;

;------------------------------------------------------------------------------

;

; Page Definition for Using the Compact Model with 64 KByte xdata RAM

;

; The following EQU statements define the xdata page used for pdata

; variables. The EQU PPAGE must conform with the PPAGE control used

; in the linker invocation.

;

PPAGEENABLE EQU 0 ; set to 1 if pdata object are used.

PPAGE EQU 0 ; define PPAGE number.

;

;------------------------------------------------------------------------------

3. 3. 标准输入输出文件

putchar.c

putchar.c是一个低级字符输出子程,开发人员可修改后应用到自己的硬件系统上,例如向CLD或LEN输出字符。

缺省:putchar.c是向串口输出一个字符XON|XOFF是流控标志,换行符“\*n”自动转化为回车/换行“\r\n”。

getkey.c

getkey函数是一个低级字符输入子程,该程序可用到自己硬件系统,如矩阵键盘输入中,缺省时通过串口输入字符。

4. 4. 其它文件

还包括对Watch-Dog有独特功能的INIT.A51函数以及对8×C751适用的函数,可参考源代码。

4. 第四节段名协定与程序优化

1. 1. 段名协定(Segment Naming Conventions)

C51编译器生成的目标文件存放于许多段中,这些段是代码空间或数据空间的一些单元,一个段可以是可重定位的,也可以是绝对段,每

一个可重定位的段都有一个类型和名字,C51段名有以下规定:

每个段名包括前缀与模块名两部分,前缀表示存储类型,模块名则是被编译的模块的名字,例如:

?CO?main1 :表示main1模块中的代码段中的常数部分

?PR?function1?module 表module模块中函数function1的可执行段,具体规定参阅手册。

2. 2. 程序优化

C51编译器是一个具有优化功能的编译器,它共提供六级优化功能。确保生成目标代码的最高效率(代码最少,运行速度最快)。具体六级优化的内容可参考帮助。

在C51中提供以下编译控制指令控制代码优化:

OPTIMIZE(SJXE):尽量采用子程序,使程序代码减少。

NOAREGS:不使用绝对寄存器访问,程序代码与寄存器段独立。

NOREGPARMS:参数传递总是在局部数据段实现,程序代码与低版本C51兼容。

OPTIMIZE(SIZE)AK OPTIMIZE(speed)提供6级优化功能,缺省为:OPTIMIZE(6,SPEED)。

5. 第五章Keil C51库函数参考

C51强大功能及其高效率的重要体现之一在于其丰富的可直接调用的库函数,多使用库函数使程序代码简单,结构清晰,易于调试和维护,下面介绍C51的库函数系统。

1. 第一节本征库函数(intrinsic routines)和非本征证库函数

C51提供的本征函数是指编译时直接将固定的代码插入当前行,而不是用ACALL和LCALL语句来实现,这样就大大提供了函数访问的效率,而非本征函数则必须由ACALL及LCALL调用。

C51的本征库函数只有9个,数目虽少,但都非常有用,列如下:

_crol_,_cror_:将char型变量循环向左(右)移动指定位数后返回

_iror_,_irol_:将int型变量循环向左(右)移动指定位数后返回

_lrol_,_lror_:将long型变量循环向左(右)移动指定位数后返回

_nop_:相当于插入NOP

_testbit_:相当于JBC bitvar测试该位变量并跳转同时清除。

_chkfloat_:测试并返回源点数状态。

使用时,必须包含#inclucle 一行。

如不说明,下面谈到的库函数均指非本征库函数。

实验一 Keil软件的使用及简单程序的调试方法

实验一 Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下: 几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程

名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示 单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。

Proteus和Keil的使用与联调

Proteus和Keil的使用与联调 Proteus7.0 是目前最好的模拟单片机外围器件的工具,非常不错。可以仿真51 系列、AVR,PIC 等常用的MCU 及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC 器件等等),虽然有那么多优点和长处,但还是与实际情况有不少的差别。如果条件允许,还是买一块单片机开发板或自己做一个单片机应用系统,实实在在的学习和体会一下,仿真毕竟还是仿真,不能代替实际操作,许多实际问题是在仿真中碰不到的。当然,条件不允许,我们可以采用仿真,达到学习的目的。 如果学习和使用单片机,除了灵活应用Protel等绘制原理图和PCB图以外,那么Keil C51 软件应该要掌握,我们要通过它来编写和调试单片机程序。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。下面就三个问题分别进行介绍。 一、proteus的使用 1. 软件打开 双击桌面上的ISIS 7 Professional图标或者单击屏幕左下方的“开始”→“程序”→“Proteus 7 Professional”

→“ISIS 7 Professional”,出现如图1-1所示界面,随后就进入了Proteus ISIS集成环境。 图1-1 启动时的界面 2. 工作界面 Proteus ISIS的工作界面是一种标准的Windows界面,如图1-2所示。包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。

关于如何使用Proteus和keil4联调

一、关于如何使用Proteus。软件下载地址:http://59.77.2.173/edown25/ Proteus有点类似protel,在本学期的单片机实验课中所起的作用主要是考虑到同学们只利用上课时间在单片机实验室编程时间比较紧,所以陈老师采用Proteus让大家可以自己先做仿真,看看实验现象,关于Proteus大家不用懂得太多,只要懂得如何用Proteus看现象及与如何与Keil uVision4联调即可。 当然,软件要先安装好,并且是破解好的。否则会出错。 下面先讲讲如何用Proteus看实验现象。其实就是助教会在下一周实验前将Proteus电路图画好,大家直接打开电路图,在51芯片上双击出窗口导入.hex文件(编译.成功asm或.c 文件时会生成),然后点击运行即可观看现象。想要停止,点击停止就OK。以观察实验二的例子为例。如图。打开.DSN文件 出现如下界面。 双击单片机芯片,出现对话框 运行、停止

双击单片机芯片,出现对话框 点击运行或者停止即可观察实验室现象。二、如何使用Keil uVision4与Proteus联调。 打开 Keil uVision4 。如下图所示。 此处导入同文件夹下的.hex文件

1、菜单栏的project菜单下新建一个工程。 2、保存工程名称后,出现如下菜单。

选择Atmel下的A T89C51,点击OK后在跳出来的菜单后点击“否”。 出现如下对话框。

Output框下将“Create HEX file”前打钩,使得在编译成功后能生成.hex文件,用于在Proteus 中作仿真,也是用于烧录的。 Debug框将“Use:Proteus VSM Simulator”选择,如下图显示: 注意,在设置“debug”前要将keil与Proteus的联调软件安装好!

实验一-Keil软件的使用及简单程序的调试方法

实验一Keil软件的使用及简单程序的调试方法 一、实验目的 掌握Keil的使用方法和建立一个完整的单片机汇编语言程序的调试过程及方法。 二、实验器材 计算机1台 三、实验内容 1.Keil的使用方法。 2.建立一个单片机汇编语言程序的调试过程及方法 四、实验步骤 1.Keil的使用方法。Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,PLM 语言和C 语言的程序设计,界面友好,易学易用。启动Keil 后的界面如下:

几秒钟后即进入Keil的编辑界面。用户便可建立项目及应用程序。 2.简单程序的调试方法 Keil是通过项目工程来管理汇编程序的。因此在调试程序前必须建立一个工程,工程名称及保存位置由用户来指定,注意每位同学的工程名称用“学号姓名实验*”来命名。 (1)建立一工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项。并在弹出的对话框中确定保存的位置及工程名称。 又弹出一对话框,要求用户选择相应的硬件CPU及相关设置。选择Atmel公司的AT89C51单片机。如下图所示

单击“确定”后在弹出的对话框中行选择“否”即工程建好了,但该工程没有任何语句,需要再建一个程序文件并将其添加到此工程中。 (2)建一文件 单击“File”/“New”命令,则弹出文件的编辑窗口,此时该文件还没有指明其文件名称及保存位置,该文件还没有加载到所建立的工程中。单击“File”/“Save”命令在弹出的对话框中指明文件的类型为.ASM汇编型及文件名后单击“保存”即可进行汇编源文件的编辑。如下图所示。 (3)将文件添加到工程中 单击“T arget 1”前的“+”号则展开后变成“-”号,并右键单击“Source Group 1”在弹出的下拉菜单中执行“Add Files to Group ‘Source Group 1’”命令并弹出对话框在该对话框中的“文件类型”下拉列表中选择“Asm source file”后找到要添加的文件名并选中,单击“Add”即可。

keil软件使用方法简介

Keil软件使用方法简介: Keil C51 软件是众多单片机应用开发的优秀软件之一,它集编辑,编译,仿真于一体,支持汇编,汇编语言和 C 语言的程序设计,界面友好,易学易用。 下面介绍Keil C51软件的使用方法 进入 Keil C51 后,屏幕如下图所示。几秒钟后出现编辑界 进入Keil C51后的编辑界面 简单程序的调试 学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。

(1)新建工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项 然后选择你要保存的路径,输入工程文件的名字,比如保存到D盘的CMJ51文件夹里,工程文件的名字为CMJ1 如下图所示,然后点击保存. 这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定.

完成上一步骤后,屏幕如下图所示 到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。(2)新建文件 在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项

新建文件后屏幕如下图所示 此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了。 键入程序后界面如下: 单击file菜单下的save,出现一个对话框,键入文件名,后缀名为.asm,进行保存到D盘CMJ51文件夹下。界面如下:

keil软件的使用方法

Keil 软件的使用 随着单片机开发技术的不断发展,目前已有越来越多的人从普遍使用汇编语言到逐渐使用高级语言开发,其中主要是以C 语言为主,市场上几种常见的单片机均有其C 语言开发环境。 这里以最为流行的80C51单片机为例来学习单片机的C 语言编程技术。大家都有C 语言基础,但是编单片机程序,大家还得找专门的书来学习一下。这里我们只介绍Keil 这种工具软件的用法。 学习一种编程语言,最重要的是建立一个练习环境,边学边练才能学好。Keil 软件是目最流行开发80C51系列单片机的软件,Keil 提供了包括C 编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision )将这些部份组合在一起。 下面我以一个实验举一个例子,一步一步学习Keil 软件的使用。 首先我们看硬件原理图: 很明显,要点亮使发 光二极管,必须使单片机的I/O 口P1.0输出低电平。于是我们的任务就是编程序使P1.0输出地电平。 1. 使用Keil 前必须先安装。安装过程简单,这里不在叙述。 2. 安装好了Keil 软件以后,我们打开它。打开以后界面如下:

3.我们先新建一个工程文件,点击“Project->New Project…”菜单,如下图,: 3.选择工程文件要存放的路径,输入工程文件名LED, 最后单击保存. 4.在弹出的对话框中选择CPU 厂商及型号

5. 选择好Atmel 公司的AT89S52 后, 单击确定 1.在接着出现的对话框中选择“是”。 5.新建一个C51 文件, 单击左上角的New File 如下图所示:

Keil与proteus完美结合教程

Keil与proteus完美结合教程 Proteus 单片机仿真软件 可与Keil或Pic的Mplab联接使用,单片机初学者的福音,有非常丰富的外围器件可供仿真使用

简介: Proteus6.7是目前最好的模拟单片机外围器件的工具,真的很不错。可以仿真51系列、AVR,PIC等常用的MCU及其外围电路(如LCD,RAM,ROM,键盘,马达,LED,AD/DA,部分SPI器件,部分IIC器件,...)其实proteus 与 multisim 比较类似,只不过它可以仿真MCU! 当然,软件仿真精度有限,而且不可能所有的器件都找得到相应的仿真模型,用开发板和仿真器当然是最好选择,可是估计初学者有的可能性比较小吧? 如果你在学51单片机,如果你想自己动手做做LCD,LED,AD/DA,直流马达,SPI,IIC,键盘,...的小实验的话,试一下吧,不会让你失望的!用51不管你是用汇编或是C编程当然要用keil啦,uvisoin3有不少新特性呢!使用keil c51 v7.50 + proteus 6.7 可以像使用仿真器一样调试程序,一般而言,微机实验中用万利仿真器+电工系自己做的实验板的实验都可以做得到吧!当然,硬件实践还是必不可少的!!! 本方案只是在没有硬件的情况下让你能像pspice 仿真模拟/数字电路那样仿真MCU及外围电路。另外,即使有硬件,在程序编写早期用软件仿真一下也不错的! 需要Proteus6.7 SP3和keil c51 v7.50请到本站:https://www.doczj.com/doc/4a14099114.html,下载。本站提供的是完全解密版和专业版。放心使用。 为了使大家能最快的进入keil c51 v7.50 + proteus 6.7仿真本站特别编写了本教程共享,希望对本站大力支持! 以下文章 作者:■凉山州机电学校马正强 1 Proteus介绍 Proteus与其它单片机仿真软件不同的是,它不仅能仿真单片机CPU的工作情况,也能仿真单片机外围电路或没有单片机参与的其它电路的工作情况。因此在仿真和程序调试时,关心的不再是某些语句执行时单片机寄存器和存储器内容的改变,而是从工程的角度直接看程序运行和电路工作的过程和结果。对于这样的仿真实验,从某种意义上讲,是弥补了实验和工程应用间脱节的矛盾和现象。 (1)proteus的工作过程 运行proteus的ISIS程序后,进入该仿真软件的主界面。在工作前,要设置view菜单下的捕捉对齐和system 下的颜色、图形界面大小等项目。通过工具栏中的p(从库中选择元件命令)命令,在pick devices窗口中选择电路所需的元件,放置元件并调整其相对位置,元件参数设置,元器件间连线,编写程序;在source菜单的Define code generation tools菜单命令下,选择程序编译的工具、路径、扩展名等项目;在source菜单的Add/remove source files命令下,加入单片机硬件电路的对应程序;通过debug菜单的相应命令仿真程序和电路的运行情况。 (2)Proteus软件所提供的元件资源 Proteus 软件所提供了30多个元件库,数千种元件。元件涉及到数字和模拟、交流和直流等。 (3)Proteus软件所提供的仪表资源 对于一个仿真软件或实验室,测试的仪器仪表的数量、类型和质量,是衡量实验室是否合格的一个关键因素。在Proteus软件包中,不存在同类仪表使用数量的问题。 Proteus还提供了一个图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来,其作用与示波器相似但功能更多。

关于如何使用Proteus和keil4联调0001

Flsof ihcet 1 ■ 5000. J OOQO Hi *★★*■**■占占** 攵口' 康丄 *********** 一、关于如何使用 Proteus 。软件下载地址:http:〃59.77.2.173/edown25/ Proteus 有点类似protel ,在本学期的单片机实验课中所起的作用主要是考虑到同学们只 利用上课时间在单片 机实验室编程时间比较紧,所以陈老师采用 Proteus 让大家可以自己先 做仿真,看看实验现象,关于Proteus 大家不用懂得太多,只要懂得如何用 Proteus 看现象及 与如何与Keil uVision4联调即可。 当然,软件要先安装好,并且是破解好的。否则会出错。 下面先讲讲如何用 Proteus 看实验现象。其实就是助教会在下一周实验前将 Proteus 电路 图画好,大家直接打开电路图,在 51芯片上双击出窗口导入.hex 文件(编译?成功asm 或.c 文件时会生成),然后点击运行即可观看现象。想要停止,点击停止就 0K 。以观察实验二 的例子为例。如图。打开.DSN 文件 I VPICi c n ~ |++1 I 卜 i i? i ii i ■ i □ LJ RBI 色中1尅" 3 0 IB 丈畔(D 查吾M 芻辑;[)二&口 谡计? 吐圍嵋两日 廁 ■: 「 、 '■ : ■ ■ fjjj 74UQJ? 74HC13S 74NC273 ATEQC51 ^FCLCC 0TNS1AL LECRED 上 DVEL.OkV FES [74HC02] ■士 * L I ■ ■ M km." ,必, ———; :::: : ■ :1 \_9—a 双击单片机芯片,出现对话框 tgotzd 出现如下界面。 用于控制界面大小等 £ * IM. 运行、停止

proteus7.8和keil4的安装说明及联调

Proteus 安装步骤 软件安装注意事项: 1、在安装前请确保系统的用户名是英文,中文的用户名可以安装,但无法仿真。 2、安装路径不要有中文,否则运行软件时,或许会出现自动退出现象。如果有安装完但打不开的现象,请用管理员身份或者兼容模式打开。 3、若安装有以前版本的Proteus,卸载后没有将注册表清理干净,会出现安装新版本License的时候自动用原来的License,没有显示No license,导致安装新版本后不能使用。 解决方法是手工删除注册表: 将低版本Proteus卸载后,在“开始”→“运行”中输入“regedit”,打开“HKEY_LOCAL_MACHINE\SOFTWARE”,找到“Labcenter Electronics”,把它删除后,在进行版本安装。 4、安装路径最好是默认安装,或者只更改盘符。 5、修改使用日期:用记事本打开“”文件,(记事本要全屏开)然后把第二行的日期“31/12/2009”修改为“31/12/2030”或更久就行了。要在安装之前修改。 6、先安装,再运行"Proteus Pro SP2破解"破解,最后汉化。汉化覆盖前注意备份原文件,如果汉化报错,就将“汉化报错.exe”复制到安装文件夹再运行。 7、汉化目录C:\Program Files\Labcenter Electronics\Proteus 7 Professional\BIN中的和二个文件。 8、你在运行LXK Proteus SP2破解后它默认的更新目录是C:\Program Files\Labcenter Electronics\Proteus 7 Professional ,出现 wrong folder selected(即所选的目录是错误的),如果是安装在C盘的话你只需把Program Files改成Program Files (x86)再点update(升级)就可以了,你要是安在其他盘如D盘的话就还应该把C改成D,其它盘也是一样的哦 安装过程如下: 1、解压Proteus 安装包: 2、双击

Keil软件介绍及使用步骤

KEIL51软件简介 单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断发展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断发展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。 Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(μVision)将这些部份组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB 或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP 等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选(目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件),即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。 1.1.1 软件功能 Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。用过汇编语言后再使用C来开发,体会更加深刻。 C51工具包的整体结构,其中μVision与Ishell分别是C51 for Windows 和for Dos的集成开发环境(IDE),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE本身或其它编辑器编辑C或汇编源文件。然后分别由C51及A51编译器编译生成目标文件(.OBJ)。目标文件可由LIB51创建生成库文件,也可以与库文件一起经L51连接定位生成绝对目标文件(.ABS)。ABS文件由OH51转换成标准的Hex文件,以供调试器dScope51或tScope51使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试,也可以直接写入程序存贮器如EPROM中。 Keil51的编译环境如图5-1所示。 图中:

Keil与Proteus联调

下面的一到五步骤,是别人写,忘记来源了,在此引用,先感谢原作者。接下来的内容,是在实际联调中,我又发现一些注意点,不知是否是必然的规律,大家一块探讨,恳请指正!! 首先,你要下载安装这两个软件了。Proteus可以到官方网站(https://www.doczj.com/doc/4a14099114.html,/)下载试用板(试用版无存盘功能),最新版本是6.5。Keil也可以到它的官方网站(https://www.doczj.com/doc/4a14099114.html,)/去下载它的demo板(有2K代码限制),最新的版本是7.20。下载后就可以安装了。 第二步,安装完毕,把C:\Program Files\Labcenter Electronics\Proteus 6 Professional\MODELS\目录下的VDM51.dll文件复制到C:\Keil\C51\BIN文件夹下。(目录名都是默认的,你可以根据你实际安装的目录进行复制。) 第三步,用记事本(其它的编辑软件也可以,如Ultra Edit)打开Keil 根目录下的TOOLS.INI 文件,在[C51] 栏目下加入TDRV3=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver" ) ,其中“TDRV3”中的“3”要根据实际情况写,不要和原来的重复。(我的这个文件中已经有了从TDRV1到TDRV4, 所以我用的是TDRV5) 第四步,keil的设置。为了让读者更好的了解这个过程,笔者以Proteus自带的例子来说明。把"C:\Program Files\Labcenter Electronics\Proteus 6 Professional\SAMPLES"的"8051 LCD Driver”文件夹复制到新建的Proteus文件夹下。运行keil程序,在"8051 LCD Driver"文件夹下建立一个新的名为8051 LCD Driver工程。单片机的型号选择AT89C52就可以,把LCDDEMO 文件加到"Source Group 1"组里。点击工具栏的"option for target"按钮,在出现的对话框里点击"Debug",在右栏上部的下拉菜单里选中" Proteus VSM Monitor-51 Driver",还要点击一下Use前面的小圆点。 再点击"Setting"设置通信接口,在Host后面添上"127.0.0.1",如果你是用的不是同一台电脑,在这里添上另一台电脑的IP地址(另一台电脑安装Proteus)。在Port后面添上"8000"。点击"OK"按钮即可。最后把工程编译一下。 第五步,Proteus的设置。运行Proteus的ISIS,鼠标左键点击菜单"DEBUG",选中"use romote debuger monitor"。下面我们用鼠标左键点击菜单"File",再点击"Load Design",导入"8051 LCD Driver"文件夹下的LCDDEMO.design文件。

Keil_uVision2仿真软件的使用说明

附录一 Keil uVision2仿真软件的使用说明 μVision2集成开发环境 μVision2 IDE是德国Keil公司开发的基于Windows平台的单片机集成开发环境,它包含一个高效的编译器、一个项目管理器和一个MAKE工具。其中Keil C51是一种专门为单片机设计的高效率C语言编译器,符合ANSI标准,生成的程序代码运行速度极高,所需要的存储器空间极小,完全可以与汇编语言媲美。 1.关于开发环境 μVision2的界面如图1-1所示,μVision2允许同时打开、浏览多个源文件。 图1-1 μVision2界面图 2.菜单条、工具栏和快捷键 下面的表格列出了μVision2菜单项命令,工具栏图标,默认的快捷以及他们的描述。 1)编辑菜单和编辑器命令Edit(如表1-1所示) 表1-1 编辑菜单和编辑器命令Edit

在μVision2中,可以通过按住Shift键和相应的键盘上的方向键来选择文本。如Ctrl+ →可以移动光标到下一个词,那么,Ctrl+Shift+ →就是选择当前光标位置到下一个词的开始位置间的文本。当然,也可以用鼠标来选择文本。 3)项目菜单Project和项目命令Project(如表1-2所示) 表1-2 项目菜单和项目命令Project

4)调试菜单Debug和调试命令(如表1-3所示) Runing

5)外围器件菜单Peripherals(如表1-4所示) 6)工具菜单Tool(如表1-5所示) 利用工具菜单,可以设置并运行Gimpel PC-Lint、Siemens Easy-Case和用户程序。通过Customize Tools Menu…菜单,可以添加需要的程序。 表1-5 工具菜单Tool μVision2包括一个项目管理器,它可以使8x51应用系统的设计变得简单。要创建一个应用,需要按下列步骤进行操作: 启动μVision2,新建一个项目文件并从器件库中选择一个器件。

keil软件简单操作流程

启动Keil C51时的屏幕 进入Keil C51后的编辑界面 简单程序的调试 学习程序设计语言、学习某种程序软件,最好的方法是直接操作实践。下面通过简单的编程、调试,引导大家学习Keil C51软件的基本使用方法和基本的调试技巧。 1)建立一个新工程 单击Project菜单,在弹出的下拉菜单中选中New Project选项 2)然后选择你要保存的路径,输入工程文件的名字,比如保存到C51目录里,工程文件的名字为C51 如下图所示,然后点击保存.

3)这时会弹出一个对话框,要求你选择单片机的型号,你可以根据你使用的单片机来选择,keil c51几乎支持所有的51核的单片机,我这里还是以大家用的比较多的Atmel 的89C51来说明,如下图所示,选择89C51之后,右边栏是对这个单片机的基本的说明,然后点击确定. 4)完成上一步骤后,屏幕如下图所示

到现在为止,我们还没有编写一句程序,下面开始编写我们的第一个程序。 5)在下图中,单击“File”菜单,再在下拉菜单中单击“New”选项 新建文件后屏幕如下图所示 此时光标在编辑窗口里闪烁,这时可以键入用户的应用程序了,但笔者建议首先保存该空白的文件,单击菜单上的“File”,在下拉菜单中选中“Save As”选项单击,屏幕如下图所示,在“文件名”栏右侧的编辑框中,键入欲使用的文件名,同时,必须键入正确的扩展名。注意,如果用C语言编写程序,则扩展名为(.c);如果用汇编语言编写程序,则扩展名必须为(.asm)。然后,单击“保存”按 钮。

6)回到编辑界面后,单击“Target 1”前面的“+”号,然后在“Source Group 1”上单击右键,弹出如下菜 单 然后单击“Add File to Group …Source Group 1?” 屏幕如下图所 示 选中Test.c,然后单击“Add”屏幕好下图所示

keil与proteus联调

下面说一下如何在keil中调用proteus进行MCU外围器件的仿真 吧! 1、安装keil c51 v7.20 与proteus 6.7(废话!) 2、把proteus安装目录下VDM51.dll(搜一下吧)文件复制到Keil 安装目录的\C51\BIN目录中。 3、修改keil安装目录下Tools.ini文件,在C51字段加入 TDRV5=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver"),保存注意:不一定要用TDRV5,根据原来字段选用一个不重复的数值 就可以了。 4、打开proteus,画出相应电路(这个自己摸索吧。注意:proteus 中mouse的左右键与一般程序是相反 的样子)。在proteus的debug菜单中选中use remote debug monitor 5、在keil中编写MCU的程序(keil不会,那先学学吧,比medwin 难学些哦!)。 6、进入KEIL的project菜单option for target '工程名'。在DEBUG 选项中右栏上部的下拉菜选中

Proteus VSM Monitor-51 Driver。 在进入seting,如果同一台机IP 名为127.0.0.1,如不是同一台机则 填另一台的IP地址。端口号一 定为8000 注意:可以在一台机器上运行keil,另一台中运行 proteus进行远程仿真哦~ 7、在keil中进行debug吧,同时在proteus中查看直观的结果(如 LCD显示...) 8、就是以上这么多了。在初用proteus时,可以试试其example吧。

关于如何使用Proteus和keil4联调

一、关于如何使用Proteus。软件下载地址:59.77.2.173/edown25/ Proteus有点类似protel,在本学期的单片机实验课中所起的作用主要是考虑到同学们只利用上课时间在单片机实验室编程时间比较紧,所以老师采用Proteus让大家可以自己先做仿真,看看实验现象,关于Proteus大家不用懂得太多,只要懂得如何用Proteus看现象及与如何与Keil uVision4联调即可。 当然,软件要先安装好,并且是破解好的。否则会出错。 下面先讲讲如何用Proteus看实验现象。其实就是助教会在下一周实验前将Proteus 电路图画好,大家直接打开电路图,在51芯片上双击出窗口导入.hex文件(编译.成功asm 或.c文件时会生成),然后点击运行即可观看现象。想要停止,点击停止就OK。以观察实验二的例子为例。如图。打开.DSN文件 出现如下界面。 运行、停止 用于控制界面大小等 双击单片机芯片,出现对话框

双击单片机芯片,出现对话框 此处导入同文件夹下的.hex文件 点击运行或者停止即可观察实验室现象。 二、如何使用Keil uVision4与Proteus联调。 打开Keil uVision4 。如下图所示。

1、菜单栏的project菜单下新建一个工程。 2、保存工程名称后,出现如下菜单。

选择Atmel下的AT89C51,点击OK后在跳出来的菜单后点击“否”。 3、在生成的新工程的“Target1”上点鼠标右键,菜单上选择“Option for Target Target1”。出现如下对话框。

Output框下将“Create HEX file”前打钩,使得在编译成功后能生成.hex文件,用于在Proteus中作仿真,也是用于烧录的。 Debug框将“Use:Proteus VSM Simulator”选择,如下图显示: 注意,在设置“debug”前要将keil与Proteus的联调软件安装好!

实验一 keil与proteus软件的使用及联调

实验一keil与proteus软件的使用及联调 一.实验目的 1.学会keil软件的使用方法 2.学会proteus软件的使用方法 3.学会keil及proteus软件的联调方法 二.实验设备 计算机、keil软件、proteus软件 三..实验步骤 1.keil软件的使用 (1)双击桌面的快捷图标,即可启动该软件,几秒种后,就会出现Keil μVision3界面。(2)在编辑界面下,首先单击“Project”菜单,选择下拉菜单中的“New Project”,弹出文件对话窗口,选择要保存的路径,在“文件名”中输入一个工程的名称,保存后的文件扩展名为“.uv2”,这是Keil μVision3工程文件的扩展名,以后可直接单击此文件就可打开先前建立的工程。 (3)在一个新的工程创建完成后,就需要将自己编写的用户源程序代码添加到这个工程中,添加用户程序文件通常有两种方式:一种是新建文件,另一种是添加已创建的文件。 a.单击菜单栏【File】→“New”选项,在这个窗口会出现一个空白的文件编辑画面,用户可在这里输入编写的程序源代码。单击【File】→“Save”选项),保存文件,文件名的扩展名应为“.c”。 b.右键单击“Source Group1”,选择“Add File to‘Source Group1’”选项,在该窗口中选择要添加的文件,点击这个文件后,单击“Add”按钮,再单击“Close”按钮,文件添加完成。(4)单击快捷按钮中的,对当前文件进行编译,直至提示信息显示没有错误为止。 (5)程序编译没有错误后,就可以进行调试与仿真。单击开始/停止调试的快捷按钮(或在主界面点击【Debug】菜单中的“Start/Stop Debug Session”选项),进入程序调试状态。 2. proteus软件的使用 (1)双击桌面的快捷图标,即可启动该软件,几秒种后,就会出现proteus软件界面。(2)在“菜单”项中点击【模板】按钮, (3)在ISIS菜单栏中选择【系统】→“设置图纸尺寸”菜单项,出现图如4-19对话框,用户可选择图纸大小或自定义图纸大小。 (4)在菜单栏中选择【系统】→“设置文本编辑选项”,对文本的字体、字形、大小、效果和颜色等进行设置。 (5)选择元器件,绘图 3. keil及proteus软件的联调 把keil软件环境下生成的.HEX文件加到proteus软件绘制的电路图中,然后点击运行按钮,即可出现实验现象。 四.实验例题 绘制单片机P1口驱动8个发光二极管闪烁的电路并编程实现相应的控制。 试验程序如下: #include //包含头文件REG51.H,定义了MCS-51单片机的特殊功能寄存器void delay(unsigned char i); //延时函数声明 void main() //主函数 { while(1) {

Keil与Proteus联调ARM举例

Keil与Proteus联调ARM举例 学习ARM最基本的是能够让系统跑起来,起码能跑到main函数,控制一个GPIO。如此一来点亮一盏LED灯就是入门操作了。 1. 建立Keil工程 Open Keil -> File -> New -> Project -> NXP -> LPC2131 第一步可以用Keil自带的Startup.s来学习 在工程配置里面勾上产生HEX文件,便于Proteus仿真用

同时选择Debug为Proteus,这样就可让Proteus和Keil联调了。 下面开始画Proteus电路图如下: Proteus基本电路图很简单,基本上只要电源、接地接对了就可以跑了。

这样设置就可以让Keil和Proteus联调了 接下来就是写ARM的Code,由于我们用来Keil默认的Startup.s,所以第一步先不碰可怕的汇编。 像写PC程序一样写个main函数如下: int main(void) { while(1); } 编译通过,产生Hex文件,用如下方式让Proteus的ARM连接上Keil编译的HEX程序

这样Proteus就设定了ARM的程序输入的HEX文件 到这里就可用Keil和Proteus联调debug,虽然代码只有while(1),但是可以调试的。 接下来就是如何通过控制GPIO来点亮LED灯了。 了解2131控制GPIO有如下步骤: 1. 设置PIN的功能选择为GPIO 2. 设置PIN的输出方向 3. 设置PIN输出的电平1/0 对应程序如下: // arm2131 ledon projec main function #define vWriteReg(addr, val) (*((volatile unsigned long *)(addr)) = (val)) #define dReadReg(addr) (*((volatile unsigned long *)(addr))) #define vWriteRegMask(addr, mask, val) vWriteReg(addr, dReadReg(addr) & (~(mask)) | (val&(mask))) #define REG_BASE (0xE0000000) #define REG_PIN0_SEL (REG_BASE + 0x2C000) #define RET_IO0_ST (REG_BASE + 0x28000) #define REG_IO0_SET (REG_BASE + 0x28004) #define REG_IO0_DIR (REG_BASE + 0x28008) #define REG_IO0_CLR (REG_BASE + 0x2800C)

一步一步教你 keilc与proteus联调

一步一步教你 keilc与proteus联调(附下载地址) 2010-06-09 12:56 其实网上已经有很多的keilc与proteus联调方法了,但有很多的都是些纯文字的描述,甚至有些还是错误的。对于初学者来说,还真有点摸不着头脑。现 在有点时间就来一步一步教你 keilc与proteus联调。呵呵,图文并茂的哦准备工具: 1.keil uvision4:推荐用uv4,毕竟软件版本都是向下兼容的嘛……。下载地址:https://www.doczj.com/doc/4a14099114.html,/leaf 2.proteus 7.5:推荐理由同上。下载地址:https://www.doczj.com/doc/4a14099114.html,/leaf 首先动起来: 咱先不管它联调不联调,我们先看看这keil里写的东西怎么就让proteus 动起来呢? 1.用keil编译以下代码,并生成HEX文件。(不会?没关系看看这里:https://www.doczj.com/doc/4a14099114.html,/dxstar/blog/item/b287998d79541bf7503d9228.html) #include //52系列单片机头文件 #define uint unsigned int //宏定义 uint i; //变量定义 sbit led=P1^0; //声明单片机P1口的第一位 void main() //主函数 { while(1) //大循环 { led=1; //点亮发光管 for(i=30000;i>0;i--); //延时 led=0; //关闭发光管 for(i=30000;i>0;i--); //延时 } } 2.在proteus里画好下图(还是不会?还是没关系,看看这里: https://www.doczj.com/doc/4a14099114.html,/dxstar/blog/item/8679f401e582c585d53f7c3e.html)

Proteus7.8与Keil4联调

Proteus7.8与keil4实现联机调试Proteus与keil联调,网络上大多是关于proteus7.5与keil3以前的版本,下面我来介绍一下如何实现proteus7.8与keil4实现联调。 工具:proteus7.8、keil4、VDM51.dll文件; 下载地址: proteus7.8 https://www.doczj.com/doc/4a14099114.html,/s/1cLzpN Keil4 https://www.doczj.com/doc/4a14099114.html,/s/19Vzio VDM51.dll文件https://www.doczj.com/doc/4a14099114.html,/s/1cf209 步骤一:首先安装proteus7.8、keil4,最好安装在同一个盘内,且注意安装目录中不能出现汉字,假设安装在D盘。 步骤二:安装好后,将VDM51.dll文件复制到”D:\Keil4\C51\BIN”目录下和”D:\Proteus7.8\ MODELS”目录下。 步骤三:用记事本打开D:\Keil4\TOOLS.INI文件,在TDRV8=BIN\UL2LPC9.DLL ("NXP LPC95x ULINK Driver")下一行新加一行: TDRV9=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver") 其中“TDRV5”中的“9”事实上就是避免跟上面的标号重复。 切记!修改D:\Keil4\TOOLS.INI文件时要注意备份!!! 步骤四:设置相关软件。在keil里新建工程,加入源文件,编译链接生成.HEX文件。在单 击按钮,单击Debug菜单,选上Use,在下拉菜单里选Proteus VSM Simulator,再单击Settings,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则

keil和proteus如何联调中断

Proteus和Keil的联调 1.假若Keil C51与Proteus均已正确安装在D:\Program Files的目录里,把D:\Program Files\Labcenter Electronics\Proteus 7 Professional\MODELS\VDM51.dll复制到 D:\ProgramFiles\keilC\C51\BIN目录中,如果没有“VDM51.dll”文件,那么去网上下载一个。 2.用记事本打开D:\Program Files\keilC\C51\TOOLS.INI文件,在[C51]栏目下加入:TDRV5=BIN\VDM51.DLL ("Proteus VSM Monitor-51 Driver")其中“TDRV5”中的“5”要根据实际情况写,不要和原来的重复即可。(步骤1和2只需在初次使用设置。) 3.需要设置KeilC的选项 单击“Project菜单/Options for Target”选项或者点击工具栏“option for ta rget”按钮,弹出窗口,点击“Debug”按钮,出现如图3-1 所示页面。

在出现的对话框里在右栏上部的下拉菜单里选中“Proteus VSM Monitor 一51 Driver”。并且还要点击一下“Use”前面表明选中的小圆点。再点击“Setting”按钮,设置通信接口,在“Host”后面添上“127.0.0.1”,如果使用的不是同一台电脑,则需要在这里添上另一台电脑的IP地址(另一台电脑也应安装Proteus)。在“Port”后面添加“8000”。设置好的情形如图所示,然后点击“OK”按钮。最后将工程编译,进入调试状态,并运行。设置完之后,请重新编译、链接、生成可执行文件。4.Proteus的设置 进入Proteus的ISIS,鼠标左键点击菜单“Debug”,选中“use romote debuger monitor”,如图3-2所示。此后,便可实现KeilC与Proteus 连接调试。 5.开始联调

相关主题
文本预览
相关文档 最新文档