设为首页
加入收藏
联系站长
首页 | 文章中心 | 下载中心 | 本站商品 | 学习资料 | 
您现在的位置: 电子爱好者 >> 文章中心 >> 单片机应用 >> 正文 用户登录 新用户注册
[图文]Keil C51使用详解2          【字体:
Keil C51使用详解2
作者:未知    文章来源:21ic    点击数:    更新时间:2005-3-15

命令行  PA func_name 
第三节 dScope for Windows命令文件的编制 
   dScope除了用命令行的方式进行调试以外,还可将各种调试命令汇集于一个调试文件中,然后调用该文件,就可达到自动测试用户源代码的目的。dScope的命令文件支持C/PL/M的格式,因而编制调试命令文件与编制C语言程序有些类似。 
1. 地址空间及地址空间类型 
(1) 地址空间分段 
   dScope提供的最大可用空间为16M,实际上我们只用以下三段: 
① 内部数据空间段(0X00段或D段) 
0X00:0X0000~0X00:0XFFFF(对MSC51而言为0X00:0X00FF) 
② 外部数据空间段(0X01段式或X段) 
0X01:0X0000~0X01~0XFFFF 
③ 程序空间段(0XFF段或C段) 
0XFF:0X0000~0XFF:0XFFFF 
(2) 地址空间类型 
C:代码空间 
D:内部直接寻址空间 
I: 内部间接寻址空间 
X:外部数据空间 
B:位寻址空间 
P:I/O口 
EB:扩展的位寻址空间(MCS251专有) 
ED:扩展的数据空间(MCS251专有) 
CO:常数空间(MCS251专有) 
HC:正常数空间(MCS251专有) 
2. 常量 
dScope支持十六进制、八进制、十进制、二进制常数,其后缀分别为H、Q(O)、T(或无)、Y; 
dScope不区分常量的大、小写。 
(1) 整型常量 
   分为整型(int),无符号整型(uint,00rd),长整型(long),无符号长整型(Wlong、Word)。 
(2) 浮点型常量 
   与ANSI  C相同。 
(3) 字符串常量 
     与ANSI  C相同 
(4) 字符常量 
   分为字符型(Char)和无符号字符型(Uchar)一种。 
(5) 行号常数 
   指用户程序中的行号,实际上是个地址 
(6) 位常量(Bit): 
   0和1 
(7) 地址常数 
   地址常数的种类很多,地址常数不同于行号常数,行号常数就是一个地址,而地址数被引用时,实际上是取该地址中的数据。 
C:代码地址常数,如C:0X0012或0XFF:0X0012 
D:内部直接寻址地址常数,如D:0X0068或0X00:0X0068 
I:内部间按寻址地址常数,如I:0X0010或0X00:0X0010 
X:外部数据空间地址常数,如X:0X0028或0X01:0X0028 
B:位地址常数,如B:0X20或B:0X24.0 
EB:扩展的位地址常数(MCS251专有),   
ED:扩展的数据空间地址常数(MCS251专有) 
CO:常数空间地址常数(MCS251专有) 
HC:正常数空间地址常数(MCS251专有) 
(8) 标识符常量 
   即用户源程序中的标号、函数名等,实际上代表某一地址。 
(9) 用户源程序中定义的常数 
3. 变量 
   dScope所支持的变量名或标识符最多可由31个字符组成,第一个字母为A~Z,a~z,下划线或问号,后续字符可为字母、数字、下划线和问号。除CPU变量和系统变量外,dScope不支持全局变量,但可视“define”命令定义的变量为全局变量。 
  Dscope所支持的变量分为以下几种(变量名称不区分大、小写),支持类型转换: 
(1) 整型变量 
   分为整型变量(int)、无符号整型变量(uint/word),长整型(Long) 、无符号长整型(Ulong/dword)。 
(2) 浮点型变量(float) 
   与ANSI  C相同。 
(3) 字符型变量L 
   分为字符型(char)变量和无符号字符型(Uchar) 
(4) 位变量(Bit) 
(5) 系统变量   
    dScope自己定义了一系列内部变量,用户可对这些变量进行读或读/写操作,   可被用户自定义数所引用。 
a.      Cycles (Read Only) 
   32位变量(Ulong),指示当前程序执行已花费的指令周期(cycle)。 
b.     Ramsize(R/W) 
   16位变量(Uint),指示内部可直接寻址的数据空间大小。 
c.      Radix(R/N) 
   8位变量(Uchar),决定输出的数制 
   Radix=0X0A (10进制),Radix=0X10 (16进制) 
d.     -IIP-(R/W) 
   8位变量(Uchar),指示当前的中断嵌套数目。 
e.      $ (R/W) 
   32位变量(Ulong),指出PC值,通过对其进行写操作,可改变程序执行的流程。 
f.       Itrace (R/W) 
   8位变量(Uchar),决定是否对程序运行情况进行记录 
   Itrace=1,使能记录操作 
   Itrace=0,根本上记录操作 
g.      __Break__(R/W) 
   8位变量(Uchar)  __Break__=1,中止程序的运行 
h.      __Mode__和__Frame size__是MCS 251专有的变量。 
(6) CPU变量 
   即R0~R7、A、C(位变量)、B、DPTR及特殊功能寄存器变量,对这些变量均可进行读、写操作。 
(7) 用户源程序中定义的变量、数组、结构等 
4. 运算符 
   dScope支持ANSI  C的运算符,包括算术运算符,逻辑运算符,关系运算符。 
5. 表达式 
   以运算符将dScope所支持的常量、变量、函数等连接在一起,就构成了dScope的表达式。 
6. 数组 
   dScope不支持在命令文件中定义数组,但可引用用户程序中的数组,引用方式如同C。 
7. 结构和联合 
   dScope不支持在命令文件中定义结构和联合,但可引用用户程序中的结构和联合,引用方式如同C,但如要输出整个结构或联合的结果,就要用命令“OBJ”。 
8. 指针: 
   不可自定义指针,但支持用户源程序中的指针变量。 
9. dScope命令语句 
   dScope提供了一系列调试命令。在命令文件中,dScope只支持这些语句及前述定义的表达式,C语言的语句均不被支持,但在命令文件所包含的用户自定义函数(非用户源程序中的函数)中支持C语句,但用户自定义函数中同样不支持数组、结构、联合和指针。 
(1) ASM 
在线汇编命令,格式如下: 
ASM   C:0Xnnnn (或标号);设定插入汇编指令的地址 
ASM  汇编指令 
ASM  汇编指令 
插入完毕后,在debug窗口内选择“Assemble->Assemble”完成编译。 
(2) Assign 
串行口分配指令,格式如下: 
Assign channeloutreg 
对MCS51为:Assign  Win Soot 
但目前的dScope版本并未提供完整串口窗口功能。 
(3) Define 
用户自定义变量指令,格式如下: 
Define <类型> <变量名> 
类型一为如前所述的变量类型,Define指令定义的变量可能为全局变量,可为用户自定义函数所引用。 

(4) Display 
内存显示命令,格式如下二: 
D   起始地址,结束地址 
地址如前所述的地址常数,标识符常量。 
(5) Enter 
内存修改指令,格式如下: 
E  类型地址=表达式 [表达式2],[……] 
类型如前所述,地址如前所述的地址常数。表达式如前所述,但如果是函数名称(含标号、指针变量),则关键字E→EP 
(6) Map/Reset map 
Map为内存段修改指令,Reset map将内存段复位或缺省值。 
(7) Object 
用以引用用户源程序中的结构(联合)、数组、格式如下: 
Obj表达式 [n,],[Line] 
表达式为用户源程序中的数组,结构(联合)名称。当Line缺省时,数目、结构(联合)的内容按n行输出;如有Line,则单行输出。 
(8) U 
反汇编命令,格式如下: 
   U  [地址] 
地址包括地址常 数及标识符常量,指明反汇编的起始地址。 
(9) WK 
观察点删除命令,格式如下: 
   WK   n1[n2 ],[……]  ;删除指定的观察点,n为字符型,整型 
  常数 
   WK   *              ;删除所有的观察点 
(10) WS 
观察点设置命令,格式如下: 
WS  表达式[,n][LINE] 
关键字LINE存在时,观察点表达式单行输出 
LINE缺省时,观察点表达式n行输出。 
(11) G 
连续运行命令,格式如下: 
  G  [起始地址],[终止地址] 
地址为标识符常量或地址常数,地址缺省时,为连续运行。 
(12) T/P 
单步运行指令,格式如下: 
   T/P    n    ;n指至单行运行的步数,P指给用户当调用某函数时,把它作为一步处理,并不进入该函数运行。 
(13) PA 
性能分析操作指令,其分以下几种: 
PA 
显示当前所设置的性能分析程度段 
PA Kill  * 
删除当前所设置的所有性能分析程序段 
PA  Kill  n1 [,n2],[……] 
删除指定的性能分析程序段 
PA  地址范围 
设置性能分析程序段,地址范围可以起始地址和结束地址的方式给出,也可给出函数名,行号范围。 
PA  Reset 
复位性能分析窗口(PA  Windows),清除所有的记录。 
(14) BD 
断点失效命令,格式如下: 
BD    n1 [,n2],[,……]    ;disable指定的断点 
DB    *                 ;disable所有的断点 
(15) BE 
断点使能命令,格式如下: 
BE   M  [,n2],[,……]    ;使能指定的断点 
BE   *                  ;使能所有的断点 
(16) BK 
断点删除指令,格式如下: 
BK    M[,n2],[,……]    ;删除指定的断点 
BK    *                ;删除所有的断点 
(17) BL 
断点显示指令,显示所有被定义的断点。 
(18) BS 
断点定义指令,dScope支持多达40个断点,具体格式如下: 
a.BS  表达式[,count] [,“cmd”] 
count:经过该断点的次数 [选项] 
“cmd”:断点到达后附带执行的dScope命令(连项) 
表达式一个条件表达式,此时该断点称为条件断点(运算符为&.&&,<<=>,>=,= =,!=) 
BS  READ  表达式 [,count] [,“cmd”] 
BS  WRITE  表达式 [,count] [“cmd”] 
BS  READWRITE  表达式 [,count] [,“cmd”] 
以上三种断点称访问式(Access断点),当某一址或变量被访问(R/W)或某些值被读写时,程序被中断。 
(19) Define button 
图标定义指令,用于当窗口(Toolbox) 
(20) ! 
DOS窗口Open命令,以“EXIT”命令退出DOS窗口。 
(21) Include 
文件包含命令,格式如下: 
Include  [路径] 文件名 
dScope支持以文件包含的方式调入并执行调试命令文件,用户自定义函数文件,调试命令文件可以有后缀,也可无后缀。 
(22) Load 
加载命令,格式如下: 
Load  [路径] 文件名 
Load指令能够加载的文件必须具有以下格式之一。 
Intel Hex/Hex 386格式 
Intel Object (OMF_51) 格式 
Intel Object (OMF-251) 格式 
dScope的CPU驱动文件(.DLL) 
(23) LOG 
Command Window存盘指令,用于将Command Windows中的内容输出到指定的文件中,格式如下: 
LOG > [路径]文件名   ;创建一个新文件 
LOG >> [路径]文件名  ;将Command  Windows的内容输出到某个已 
  存在的文件中。 
LOG  OFF   完成输出操作并开闭该文件 
LOG指令只将LOG>或LOG>>与LOG  OFF指令之间的操作命令存入该指定文件。 
(24) Reset 
复位指令,具体格式如下: 
Reset        ;执行dScope的复位 
Reset  Map  ;复位外部数据空间 
Reset  Var   ;复位SET指令定义的变量 
(25) Save 
该指令将一段内存映象以19EX386/HEX的格式存盘,具体格式如下: 
Save  路径  文件名:地址1、地址2 
地址1、地址2指所要保存的空间范围,既可是标识符,也可是址常数。 
(26) SET 
该指令回来定义dScope目标代码预定义变量的含义,这些预定义变量包括以下二种: 
SRC   ;指出所在的路径 
F1~F12;对应于键盘上的12个功能键,定义这些功能键的含义。 
SET指令的格式为: 
SET  变量=“字符串” 
SET  变量 
10. 函数 
dScope支持三种函数,即dScope预定义函数,用户自定义函数和信号函数,分别详述如下: 
(1) dScope预定义函数 
dScope号提供8个预定义函数(可视为dScope的库函数) 
①Void Printf(“String”,输出表列) 
    屏幕打印函数,与ANSI C的Printf ( ) 函数相同 
②Void exec(“Command__String”) 
    Command__String为一有效的命令字符串,此函数用于在运行用户自定义函数的过程中执行dScope命令,这个函数提供了一个很重要的编制测试命令文件的方法。 
③int getint(“Prompt__String”);从键盘输入一个整数 
    int  getlong (“Prompt__String”);从键盘输入一个长整数 
   float getfloat (“Prompt__String”);从键盘输入一个浮点数 
以上这三个函数被执行时,dScope会弹出一个dialog box等待用户输入数据,其标题栏上是“Prompt__String”,利用这个函数,不仅可以为变量赋值,也可使用户得以看清前一阶段的测试结果。 
④int  rand (int seed) 
    该函数会输出一个随机数(-32768~32768) 
⑤Void memeset (ulorg start , ulong end ,uchar val) 
    该函数用于给地址范围(Start__end)内的内存赋值(Val) 
⑥Void twatch (Long cycles) 
    定时函数,时间由(Long cycles)决定,它是以指令周期计数的,它也  用于产生一个信号波形,该函数必须用于信号函数中。 
(2) 用户自定义函数 
这类函数不同于用户源程序中的数函,其定义格式为 
Func  返回类型  函数名(参数序列) 

   语句 

返回类型如前所述的变量类型 
用户自定义函数中的语句与ANSI  C相似,只是不支持数组结构、联合、指针,可引用dScope系统变量,define语句定义的变量和用户源程序变量,不支持dScope命令,如想在函数中执行dScope命令,要借助于exec(“Command__String”)函数,可引用dScope预定义的函数(除了twatch ( )函数),不支持ANSI  C的库函数。 
(3) 信号函数 
用于产生具有某一波形的信号,定义格式为: 
Signal返回类型函数名(参数长列){ 
                             语句 

      } 
信号函数主要是利用twatch (  )函数,目前dScope版本在提供这一功能上面还有一定问题。 
(4) dScope函数与ANSI函数的区别 
① 不支持条件汇编 
② 不支持头文件 
③ 无变量的初始化 
④ 不支持数组、结构、指针 
⑤ 调用方式不同,自定义函数和信号函数首先要包含一个函数文件之中,然而在测试命令文件中以Inclule指令调用该函数文件,最后才能以函数名调用之。 
⑥ 函数调用只支持传值方式。


BACK>> 
Keil C51使用詳解 
Keil C51使用詳解

(
Keil C51使用詳解 

©電子設計世界!版權所有,歡迎轉貼,請勿修改並注明出處。保留一切權利。 


第一章 Keil C51開發系統基本知識... 6 
第一節 系統概述... 6 
第二節 Keil C51單片機軟體發展系統的整體結構... 6 
第三節 Keil C51工具包的安裝... 7 
1. C51 for Dos 7 
2. C51 for Windows的安裝及注意事項:... 7 
第四節 Keil C51工具包各部分功能及使用簡介... 7 
1. C51與A51. 7 
2. L51和BL51. 8 
3. DScope51,Tscope51及Monitor51. 8 
4. Ishell及uVision. 9 
第二章 Keil C51軟體使用詳解... 10 
第一節 Keil C51編譯器的控制指令... 10 
1. 原始檔案控制類... 10 
2. 目標檔(Object)控制類:... 10 
3. 列表文件(listing)控制類:... 10 
第二節 dScope51的使用... 11 
1. dScope51 for Dos 11 
2. 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 
第一節 Keil C51擴展關鍵字... 15 
第二節 記憶體區域(Memory Areas):... 16 
1. Pragram Area:... 16 
2. Internal Data Memory: 16 
3. External Data Memory. 16 
4. Speciac Function Register Memory. 16 
第三節 存儲模式... 16 
1. Small模式... 16 
2. Compact模式... 17 
3. large模式... 17 
第四節 存儲類型聲明... 17 
第五節 變數或資料類型... 17 
第六節 位元變數與聲明... 17 
1. bit型變數... 17 
2. 可位定址區說明20H-2FH.. 1811 
1. dScope51 for Dos 11 
2. 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 
第一節 Keil C51擴展關鍵字... 15 
第二節 記憶體區域(Memory Areas):... 16 
1. Pragram Area:... 16 
2. Internal Data Memory: 16 
3. External Data Memory. 16 
4. 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聲明,見上例。... 19 
4. 指定存儲模式... 19 
5. #pragma disable. 19 
6. 遞迴或可重入函數指定... 19 
7. 指定PL/M-51函數... 20 
第四章 Keil C51高級編程... 20 
第一節 絕對位址訪問... 20 
1. 絕對宏:... 20 
2. _at_關鍵字... 21 
3. 連接定位控制... 21 
第二節 Keil C51與彙編的介面... 21 
1. 模組內介面... 21 
2. 模組間介面... 21 
第三節 Keil C51套裝軟體中的通用檔... 22 
1. 動態記憶體分配... 22 
2. C51啟動檔STARTUP.A51. 22 
3. 標準輸入輸出檔... 25 
4. 其他文件... 25 
第四節 段名? 
第七節 Keil C51指針... 18 
1. 一般指針... 18 
2. 記憶體指針... 18 
3. 指針轉換... 18 
第八節 Keil C51函數... 19 
1. 中斷函數聲明:... 19 
2. 通用存儲工作區... 19 
3. 選通用存儲工作區由using x聲明,見上例。... 19 
4. 指定存儲模式... 19 
5. #pragma disable. 19 
6. 遞迴或可重入函數指定... 19 
7. 指定PL/M-51函數... 20 
第四章 Keil C51高級編程... 20 
第一節 絕對位址訪問... 20 
1. 絕對宏:... 20 
2. _at_關鍵字... 21 
3. 連接定位控制... 21 
第二節 Keil C51與彙編的介面... 21 
1. 模組內介面... 21 
2. 模組間介面... 21 
第三節 Keil C51套裝軟體中的通用檔... 22 
1. 動態記憶體分配... 22 
2. C51啟動檔STARTUP.A51. 22 
3. 標準輸入輸出檔... 25 
4. 其他文件... 25 
第四節 段名協定與程式優化... 25 
1. 段名協定(Segment Naming Conventions) 25 
2. 程式優化... 25 
第五章 Keil C51庫函數參考... 26 
第一節 本征庫函數(intrinsic routines)和非本征證庫函數... 26 
第二節 幾類重要庫函數... 26 
1. 專用寄存器include檔... 26 
2. 絕對位址include文件absacc.h. 26 
3. 動態記憶體分配函數,位於stdlib.h中... 27 
4. 緩衝區處理函數位於“string.h”中... 27 
5. 輸入輸出流函數,位於“stdio.h”中... 27 
第三節 Keil C51庫函數原型列表... 27 
1. CTYPE.H.. 27 
2. INTRINS.H.. 27 
3. STDIO.H.. 28 
4. STDLIB.H.. 28 
5. STRING.H.. 28 
第六章 Keil C51例子:Hello.c.. 29 
第一節 uVision for Windows的使用步驟... 29 
第二節 Ishell for Dos使用步驟... 30 
第七章 Keil C51的代碼效率... 30 
第一節 存儲模式的影響... 30 
第二節 程式結構的影響... 31 
第八章 dScope for Windows使用詳詢3定與程式優化... 25 
1. 段名協定(Segment Naming Conventions) 25 
2. 程式優化... 25 
第五章 Keil C51庫函數參考... 26 
第一節 本征庫函數(intrinsic routines)和非本征證庫函數... 26 
第二節 幾類重要庫函數... 26 
1. 專用寄存器include檔... 26 
2. 絕對位址include文件absacc.h. 26 
3. 動態記憶體分配函數,位於stdlib.h中... 27 
4. 緩衝區處理函數位於“string.h”中... 27 
5. 輸入輸出流函數,位於“stdio.h”中... 27 
第三節 Keil C51庫函數原型列表... 27 
1. CTYPE.H.. 27 
2. INTRINS.H.. 27 
3. STDIO.H.. 28 
4. STDLIB.H.. 28 
5. STRING.H.. 28 
第六章 Keil C51例子:Hello.c.. 29 
第一節 uVision for Windows的使用步驟... 29 
第二節 Ishell for Dos使用步驟... 30 
第七章 Keil C51的代碼效率... 30 
第一節 存儲模式的影響... 30 
第二節 程式結構的影響... 31 
第八章 dScope for Windows使用詳解... 32 
第一節 概述... 32 
1. 主窗口(Mainframe Window)... 32 
2. 調試窗口(DEBUG Window)... 32 
3. 命令窗口(Command Window)... 32 
4. 觀察視窗(Watch Window)... 32 
5. 寄存器窗口(Registe Window)... 32 
6. 串口窗口(Serical Windows)... 32 
7. 性能分析視窗... 32 
8. 記憶體視窗(Memory Window)... 32 
9. 符號流覽視窗(Symbol Browser Window)... 33 
10. 調用線窗口(Call-Stack Window)... 33 
11. 代碼覆蓋視窗... 33 
12. 週邊設備窗口(peripherals) 33 
第二節 dScope for Windows基本操作... 33 
1. 指定初始化檔... 33 
2. 觀察變數... 33 
3. 顯示RAM的值... 34 
4. 觀察堆疊... 34 
5. 中斷處理程式調試... 34 
6. 性能分析(Performance Analyzer:PA)... 34 
第三節 dScope for Windows命令文件的編制... 34 
1. 位址空間及位址空間類型... 34 
2. 常量... 35 
3. 變數... 36 
4. 運算符... 38 
5. ?... 32 
第一節 概述... 32 
1. 主窗口(Mainframe Window)... 32 
2. 調試窗口(DEBUG Window)... 32 
3. 命令窗口(Command Window)... 32 
4. 觀察視窗(Watch Window)... 32 
5. 寄存器窗口(Registe Window)... 32 
6. 串口窗口(Serical Windows)... 32 
7. 性能分析視窗... 32 
8. 記憶體視窗(Memory Window)... 32 
9. 符號流覽視窗(Symbol Browser Window)... 33 
10. 調用線窗口(Call-Stack Window)... 33 
11. 代碼覆蓋視窗... 33 
12. 週邊設備窗口(peripherals) 33 
第二節 dScope for Windows基本操作... 33 
1. 指定初始化檔... 33 
2. 觀察變數... 33 
3. 顯示RAM的值... 34 
4. 觀察堆疊... 34 
5. 中斷處理程式調試... 34 
6. 性能尷R(Performance Analyzer:PA)... 34 
第三節 dScope for Windows命令文件的編制... 34 
1. 位址空間及位址空間類型... 34 
2. 常量... 35 
3. 變數... 36 
4. 運算符... 38 
5. 運算式... 38 
6. 陣列... 38 
7. 結構和聯合... 38 
8. 指針:... 38 
9. dScope命令語句... 38 
10. 函數... 43 






第一章 Keil C51開發系統基本知識 
第一節 系統概述 
Keil C51是美國Keil Software公司出品的51系列相容單片機C語言軟體發展系統,與彙編相比,C語言在功能上、結構性、可讀性、可維護性上有明顯的優勢,因而易學易用。用過組合語言後再使用C來開發,體會更加深刻。 
Keil C51軟體提供豐富的庫函數和功能強大的集成開發調試工具,全Windows介面。另外重要的一點,只要看一下編譯後生成的彙編代碼,就能體會到Keil C51生成的目標代碼效率非常之高,多數語句生成的彙編代碼很緊湊,容易理解。在開發大型軟體時更能體現高階語言的優勢。 
下面詳細六算式... 38 
6. 陣列... 38 
7. 結構和聯合... 38 
8. 指針:... 38 
9. dScope命令語句... 38 
10. 函數... 43 






第一章 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工6紹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\Bin 
Set C51LIB=C:\C51\LIB 
Set C51INC=C:\C51\INC 
然後運行Autoexec.bat 
2. C51 for Windows的安裝及注意事項: 
在Windows下運行套裝軟體中WIN\Setup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設置最簡單(設安裝於C:\C51目錄下)。然後將套裝軟體中crack目錄中的檔拷入C:\C51\Bin目錄下。 
第四節 Keil C51工具包各部分功能及使用簡介 
1. C51與A51 
(1) C51 
C51是C語言編譯器,其使用方法為: 
C51 sourcefile[編譯控制指令] 
或者 C51 @ commandfile 
其中sourcefile為C原始檔案(.C)。大量的編譯控制指令完成C51編譯器%A具包的安裝 
1. C51 for Dos 
在Windows下直接運行套裝軟體中DOS\C51DOS.exe然後選擇安裝目錄即可。完畢後欲使系統正常工作須進行以下操作(設C:\C51為安裝目錄): 
修改Autoexec.bat,加入 
path=C:\C51\Bin 
Set C51LIB=C:\C51\LIB 
Set C51INC=C:\C51\INC 
然後運行Autoexec.bat 
2. C51 for Windows的安裝及注意事項: 
在Windows下運行套裝軟體中WIN\Setup.exe,最好選擇安裝目錄與C51 for Dos相同,這樣設置最簡單(設安裝於C:\C51目錄下)。然後將套裝軟體中crack目錄中的檔拷入C:\C51\Bin目錄下。 
第四節 Keil C51工具包各部分功能及使用簡介 
1. C51與A51 
(1) C51 
C51是C語言編譯器,其使用方法為: 
C51 sourcefile[編譯控制指令] 
或者 C51 @ commandfile 
其中sourcefile為C原始檔案(.C)。大量的編譯控制指令完成C51編譯器的全部功能。包控C51輸出檔C.LST,.OBJ,.I和.SRC文件的控制。原始檔案(.C)的控制等,詳見第五部分的具體介紹。 
而Commandfile為一個連接控制檔其內容包括:.C原始檔案及各編譯控制指令,它沒有固定的名字,開發人員可根據自己的習慣指定,它適於用控制指令較多的場合。 
(2) A51 
A51是組合語言編譯器,使用方法為: 
A51 sourcefile[編譯控制指令] 
或 A51 @ commandfile 
其中sourcefile為彙編原始檔案(.asm或.a51),而編譯控制指令的使用與其他彙編如ASM語言類似,可參考其他組合語言材料。 
Commandfile同C51中的Commandfile類似,它使A51使用和修改方便。 
2. L51和BL51 
(1) L51 
L51是Keil C51套裝軟體提供的連接/定位器,其功能是將編譯生成的OBJ檔與庫檔連接定位生成絕對A漸‘\能。包控C51輸出檔C.LST,.OBJ,.I和.SRC文件的控制。原始檔案(.C)的控制等,詳見第五部分的具體介紹。 
而Commandfile為一個連接控制檔其內容包括:.C原始檔案及各編譯控制指令,它沒有固定的名字,開發人員可根據自己的習慣指定,它適於用控制指令較多的場合。 
(2) A51 
A51是組合語言編譯器,使用方法為: 
A51 sourcefile[編譯控制指令] 
或 A51 @ commandfile 
其中sourcefile為彙編原始檔案(.asm或.a51),而編譯控制指令的使用與其他彙編如ASM語言類似,可參考其他組合語言材料。 
Commandfile同C51中的Commandfile類似,它使A51使用和修改方便。 
2. L51和BL51 
(1) L51 
L51是Keil C51套裝軟體提供的連接/定位器,其功能是將編譯生成的OBJ檔與庫檔連接定位生成絕對目標檔(.ABS),其使用方法為: 
L51 目標檔列表[庫檔列表] [to outputfile] [連接控制指令] 
或 L51 @Commandfile 
根源程式的多個模組分別經C51與A51編譯後生成多個OBJ檔,連接時,這些檔全列於目標檔列表中,作為輸入檔,如果還需與庫檔(.LiB)相連接,則庫檔也必須列在其後。outputfile為輸檔案名,缺少時為第一模組名,尾碼為.ABS。連接控制指令提供了連接定位時的所有控制功能。Commandfile為連接控制檔,其具體內容是包括了目標檔列表,庫檔列表及輸出檔、連接控制命令,以取代第一種繁瑣的格式,由於目的模組庫檔大多不止1個,因而第2種方法較多見,這個檔案名字也可由使用者隨意指定。 
(2) Bl51 
BL51也是C51套裝軟體的連接/定位器,言媦釔?.ABS),其使用方法為: 
L51 目標檔列表[庫檔列表] [to outputfile] [連接控制指令] 
或 L51 @Commandfile 
根源程式的多個模組分別經C51與A51編譯後生成多個OBJ檔,連接時,這些檔全列於目標檔列表中,作為輸入檔,如果還需與庫檔(.LiB)相連接,則庫檔也必須列在其後。outputfile為輸檔案名,缺少時為第一模組名,尾碼為.ABS。連接控制指令提供了連接定位時的所有控制功能。Commandfile為連接控制檔,其具體內容是包括了目標檔列表,庫檔列表及輸出檔、連接控制命令,以取代第一種繁瑣的格式,由於目的模組庫檔大多不止1個,因而第2種方法較多見,這個檔案名字也可由使用者隨意指定。 
(2) Bl51 
BL51也是C51套裝軟體的連接/定位器,其具有L51的所有功能,此外它還具有以下3點特別之處: 
a. 可以連接定位大於64kBytes的程式。 
b. 具有代碼域及域切換功能(CodeBanking & Bank Switching) 
c. 可用於RTX51作業系統 
RTX51是一個即時多工作業系統,它改變了傳統的編程模式,甚至不必用main( )函數,單片機系統軟體向RTOS發展是一種趨勢,這種趨勢對於186和386及68K系列CPU更為明顯和必須,對8051因CPU較為簡單,程式結構等都不太複雜,RTX51作用顯得不太突出,其專業版軟體PK51套裝軟體甚至不包括RTX51Full,而只有一個RTX51TINY版本的RTOS。RTX51 TINY適用於無外部RAM的單片機系統,因而可用面很窄,在本文中不作介紹。Bank switching技術因使用很少也不作介紹。 
3. DScope51,Tscope51及Monitor51 
(1) dScope51 
dScope51是一個源級調鋮膃蚯51的所有功能,此外它還具有以下3點特別之處: 
a. 可以連接定位大於64kBytes的程式。 
b. 具有代碼域及域切換功能(CodeBanking & Bank Switching) 
c. 可用於RTX51作業系統 
RTX51是一個即時多工作業系統,它改變了傳統的編程模式,甚至不必用main( )函數,單片機系統軟體向RTOS發展是一種趨勢,這種趨勢對於186和386及68K系列CPU更為明顯和必須,對8051因CPU較為簡單,程式結構等都不太複雜,RTX51作用顯得不太突出,其專業版軟體PK51套裝軟體甚至不包括RTX51Full,而只有一個RTX51TINY版本的RTOS。RTX51 TINY適用於無外部RAM的單片機系統,因而可用面很窄,在本文中不作介紹。Bank switching技術因使用很少也不作介紹。 
3. DScope51,Tscope51及Monitor51 
(1) dScope51 
dScope51是一個源級調試器和模擬器,它可以調試由C51編譯器、A51彙編器、PL/M-51編譯器及ASM-51彙編器產生的程式。它不需目標板(for windows也可通過mon51接目標板),只能進行軟體類比,但其功能強大,可類比CPU及其週邊器件,如內部串口,外部I/O及計時器等,能對嵌入式軟體功能進行有效測試。 
其使用方法為: 
DS51[debugfile][INIT(initfile)] 
其中debugfile是一個Hex格式的8051檔,即待調試的檔其為可選的,可在進入dScope51後用load命令裝入。 
Initfile為一個初使化檔,它在啟動dScope51後,在debugfile裝入前裝入,裝有一些dScope的初使化參數及常用調試函數等。下面是一個dScope.ini檔(for dos)的內容: 
Load ..\..\ds51\8051.iof 
Map 0,0xffff 
dScope51 for Windows則直接用滑鼠進入,然後用load裝入待調檔。 
(2試器和模擬器,它可以調試由C51編譯器、A51彙編器、PL/M-51編譯器及ASM-51彙編器產生的程式。它不需目標板(for windows也可通過mon51接目標板),只能進行軟體類比,但其功能強大,可類比CPU及其週邊器件,如內部串口,外部I/O及計時器等,能對嵌入式軟體功能進行有效測試。 
其使用方法為: 
DS51[debugfile][INIT(initfile)] 
其中debugfile是一個Hex格式的8051檔,即待調試的檔其為可選的,可在進入dScope51後用load命令裝入。 
Initfile為一個初使化檔,它在啟動dScope51後,在debugfile裝入前裝入,裝有一些dScope的初使化參數及常用調試函數等。下面是一個dScope.ini檔(for dos)的內容: 
Load ..\..\ds51\8051.iof 
Map 0,0xffff 
dScope51 for Windows則直接用滑鼠進入,然後用load裝入待調檔。 
(2) tScope51 
與dScope51不同的是Scope51必須帶目標板,目前它可以通過兩種方式訪問目標板。(1) 通過EMul51線上模擬器,tScope51為該模擬器準備了一個動態連接檔EMUL51.IOT,但該方法必須配合該模擬器。(2) 通過Monitov51監控程序,這種方法是可行的,tScope51為訪問Monitor51專門帶有MON51.IOT連接程式,使用時可通過串口及監控程序來調試目標板。 
其使用方法為: 
TS51[INIT(file_name.ini)] 
其中file_name.ini為一個初使化檔。 
進入TS51後,必須裝入IOT檔,可用的有MON51.IOT及EMUL51.IOT兩種,如裝入MON51.IOT: 
Load.C:\C51\TS51\MON51.IOT CPUTYPE(80517) 
可惜的是tScope51只有for Dos的版本。 
(3) Monitor 51 
Monitor51是一個監控程序通過PC機的串口與目標板進行通信,Monitor操作需要MON51或dScope51 for Windows,後面部分將對Monitor51做較為詳細%) tScope51 
與dScope51不同的是Scope51必須帶目標板,目前它可以通過兩種方式訪問目標板。(1) 通過EMul51線上模擬器,tScope51為該模擬器準備了一個動態連接檔EMUL51.IOT,但該方法必須配合該模擬器。(2) 通過Monitov51監控程序,這種方法是可行的,tScope51為訪問Monitor51專門帶有MON51.IOT連接程式,使用時可通過串口及監控程序來調試目標板。 
其使用方法為: 
TS51[INIT(file_name.ini)] 
其中file_name.ini為一個初使化檔。 
進入TS51後,必須裝入IOT檔,可用的有MON51.IOT及EMUL51.IOT兩種,如裝入MON51.IOT: 
Load.C:\C51\TS51\MON51.IOT CPUTYPE(80517) 
可惜的是tScope51只有for Dos的版本。 
(3) Monitor 51 
Monitor51是一個監控程序通過PC機的串口與目標板進行通信,Monitor操作需要MON51或dScope51 for Windows,後面部分將對Monitor51做較為詳細的介紹。 
4. Ishell及uVision 
(1) Ishell for Dos 
這是一個for Dos的IDE,直接在命令行鍵入Ishell,則進入該環境,它使用簡單方便。其命令行與DOS命令行具有同樣的功能,對單模組的Project直接由功能表進行編譯連接,對多模組的project。則通過批次處理,BAT檔進行編譯連接,然後通過功能表控制由dScope51或tScope51對程式進行調試,因為是for dos的,不做太詳細介紹。 
(2) uVision for Windows 
uVision for Windows是一個標準的Windows應用程式,它是C51的一個集成軟體發展平臺,具有源代碼編輯、project管理、集成的make等功能,它的人機界面友好,操作方便,是開發者的首選,具體配置及使用見第五部分。 
第二章 Keil C51軟體使用詳解 
第一節 Keil C51編譯器的控制指令 
C51編譯器的控制指的介紹。 
4. Ishell及uVision 
(1) Ishell for Dos 
這是一個for Dos的IDE,直接在命令行鍵入Ishell,則進入該環境,它使用簡單方便。其命令行與DOS命令行具有同樣的功能,對單模組的Project直接由功能表進行編譯連接,對多模組的project。則通過批次處理,BAT檔進行編譯連接,然後通過功能表控制由dScope51或tScope51對程式進行調試,因為是for dos的,不做太詳細介紹。 
(2) uVision for Windows 
uVision for Windows是一個標準的Windows應用程式,它是C51的一個集成軟體發展平臺,具有源代碼編輯、project管理、集成的make等功能,它的人機界面友好,操作方便,是開發者的首選,具體配置及使用見第五部分。 
第二章 Keil C51軟體使用詳解 
第一節 Keil C51編譯器的控制指令 
C51編譯器的控制指令分為三類:原始檔案控制類,目標檔控制類及列表控制類。 
1. 原始檔案控制類 
NOEXTEND:C51原始檔案不允許使用ANSI C擴展功能。 
DEFINE(DF):定義預處理(在C51命令行)。 
2. 目標檔(Object)控制類: 
COMPACT LARGE SMALL 選編譯模式 
DEBUG(DB) 包含調試資訊,以供模擬器或dSCope51使用。 
NOAMAKE(NOAM) 禁止AutoMake資訊記錄 
NOREGPARMS 禁止用寄存器傳遞參數 
OBJECTEXTEND(OE) Object檔包含附加變數類型資訊 
OPTIMIZE(OT) 指定優化級別 
REGFILE(RF) 指定一個寄存器使用的檔以供整體優化用 
REGISTERBANK(RB) 指定一個供絕對寄存器訪問的寄存器區名 
SRC 不生成目標檔只生成彙編原始檔案 
其他控制項不常用。 
3. 列表文件(listing)控制類: 
CODE(CD):向列表文件加入彙編列表 
令分為三類:原始檔案控制類,目標檔控制類及列表控制類。 
1. 原始檔案控制類 
NOEXTEND:C51原始檔案不允許使用ANSI C擴展功能。 
DEFINE(DF):定義預處理(在C51命令行)。 
2. 目標檔(Object)控制類: 
COMPACT LARGE SMALL 選編譯模式 
DEBUG(DB) 包含調試資訊,以供模擬器或dSCope51使用。 
NOAMAKE(NOAM) 禁止AutoMake資訊記錄 
NOREGPARMS 禁止用寄存器傳遞參數 
OBJECTEXTEND(OE) Object檔包含附加變數類型資訊 
OPTIMIZE(OT) 指定優化級別 
REGFILE(RF) 指定一個寄存器使用的檔以供整體優化用 
REGISTERBANK(RB) 指定一個供絕對寄存器訪問的寄存器區名 
SRC 不生成目標檔只生成彙編原始檔案 
其他控制項不常用。 
3. 列表文件(listing)控制類: 
CODE(CD):向列表文件加入彙編列表 
LISTINCLUDE(LC):顯示indude檔 
SYMBOLS(SB):列表檔包括模組內所有符號的列表 
WARNINGLEVEL(WL):選擇“警告”級別 
第二節 dScope51的使用 
1. dScope51 for Dos 
總的來說dScope51具有以下特性: 
●高階語言顯示模式 
●集成硬體環境類比 
●單步或“GO”執行模式 
●記憶體、寄存器及變數訪問 
●Watch運算式之值 
●函數與信號功能 
下面,具體說明在進入dScope51 for Dos之後,如何實現上述功能,dScope51採用下拉功能表格式和視窗顯示控制,共有language、serial、exe、register四個視窗,其中exe為命令行視窗,language為程式視窗,serial為串口窗,register為寄存器窗。 
(1) 高階語言顯示模式 
單擊主功能表中的“View”,第一欄中的三條命令?ALISTINCLUDE(LC):顯示indude檔 
SYMBOLS(SB):列表檔包括模組內所有符號的列表 
WARNINGLEVEL(WL):選擇“警告”級別 
第二節 dScope51的使用 
1. dScope51 for Dos 
總的來說dScope51具有以下特性: 
●高階語言顯示模式 
●集成硬體環境類比 
●單步或“GO”執行模式 
●記憶體、寄存器及變數訪問 
●Watch運算式之值 
●函數與信號功能 
下面,具體說明在進入dScope51 for Dos之後,如何實現上述功能,dScope51採用下拉功能表格式和視窗顯示控制,共有language、serial、exe、register四個視窗,其中exe為命令行視窗,language為程式視窗,serial為串口窗,register為寄存器窗。 
(1) 高階語言顯示模式 
單擊主功能表中的“View”,第一欄中的三條命令“Highlevel”、“Mixed”、“Assembly”分別對所裝入的程式按照“高級”、“混合級”及“彙編級”三種方式顯示,以方便調試使用。 
(2) 集成硬體環境類比顯示 
主功能表中“Peripheral”各條能顯示類比硬體環境的狀態,其中: 
i/o Port:顯示各I/O口之值,對8031而言SFR中的P1、P2、P3、P0與引腳之值分別列出: 
Interrupt:顯示5個中斷源的入口模式是否允許,優先順序等中斷狀態。 
Timer:顯示各定時/計數器的模式,初始值狀態等。 
int Message:中斷資訊允許,如為允許(“>>”出現),則當中斷申請時,顯示中斷源資訊。比如當中斷發生時會顯示: 
“interrupt Timer 0 occured”等 
A/D converter: 
顯示A/D轉換器狀態無時,則提示“無”。 
Serial%佚ighlevel”、“Mixed”、“Assembly”分別對所裝入的程式按照“高級”、“混合級”及“彙編級”三種方式顯示,以方便調試使用。 
(2) 集成硬體環境類比顯示 
主功能表中“Peripheral”各條能顯示類比硬體環境的狀態,其中: 
i/o Port:顯示各I/O口之值,對8031而言SFR中的P1、P2、P3、P0與引腳之值分別列出: 
Interrupt:顯示5個中斷源的入口模式是否允許,優先順序等中斷狀態。 
Timer:顯示各定時/計數器的模式,初始值狀態等。 
int Message:中斷資訊允許,如為允許(“>>”出現),則當中斷申請時,顯示中斷源資訊。比如當中斷發生時會顯示: 
“interrupt Timer 0 occured”等 
A/D converter: 
顯示A/D轉換器狀態無時,則提示“無”。 
Serial:串口資訊顯示,包括串口模式、波特產等 
Other:其他器件,如為8031則顯示“ 無” 
(3) 單步或“Go”執行 
“F8”單步執行,“F5”全速執行到中斷點。或選主功能表中Trace單步執行CPU中的Go全速執行。 
(4) 記憶體寄存器及變數訪問 
外部記憶體管理MAP功能表:設置(set)、取消(reset)、顯示(Display)處理可用存儲空間。 
修改Code代碼:ASM命令 
記憶體顯示命令:D 類別為(X、D、I、B、C) 
修改記憶體命令:E 有以下幾種命令EB、EC、EI、EL、EF、EP 
複雜資料類型顯示:Object命令;用以顯示結構或陣列的內容。欲使此命令有效,C51編譯器必須有DB及OBJECTEXTEND兩條。 
反彙編命令:U 
(5) “Watch”運算式之值 
在View菜單的“Watch”一欄中有四項:其中包括定:串口資訊顯示,包括串口模式、波特產等 
Other:其他器件,如為8031則顯示“ 無” 
(3) 單步或“Go”執行 
“F8”單步執行,“F5”全速執行到中斷點。或選主功能表中Trace單步執行CPU中的Go全速執行。 
(4) 記憶體寄存器及變數訪問 
外部記憶體管理MAP功能表:設置(set)、取消(reset)、顯示(Display)處理可用存儲空間。 
修改Code代碼:ASM命令 
記憶體顯示命令:D 類別為(X、D、I、B、C) 
修改記憶體命令:E 有以下幾種命令EB、EC、EI、EL、EF、EP 
複雜資料類型顯示:Object命令;用以顯示結構或陣列的內容。欲使此命令有效,C51編譯器必須有DB及OBJECTEXTEND兩條。 
反彙編命令:U 
(5) “Watch”運算式之值 
在View菜單的“Watch”一欄中有四項:其中包括定義Watch Point(Define)、刪除Watch Point(remove,kill all),及自動更新選項。 
也可用WS、WK等命令代替,下面具體看“運算式”類型: 
dScope51一次最多可設16個WtchPoint運算式,顯示於Watch Window之中,運算式可以是簡單變數,也可是複雜資料類型如結構、陣列和指向結構的指標等,例如: 
>WS *ptime 
>WS ptime→hour 
>WS some_record[o],analog等等 
(6) 關於.IOF文件 
啟動DS51後必須裝入.IOF檔才能使CPU及Peripheral各項起作用,這個函數的使用是依據8051系列CPU的不同特點,裝入8051各CPU硬體設備類比驅動檔,比如8031CPU就必須load DS51目錄下的8051.IOF。 
2. dScope for Windows 
dScope for windows具有dScope for dos的全部功能,此外,它還具有以下明顯的優點: 
(1) 標準的Windows介面,操作更容易更簡單; 
(2) 常用操義Watch Point(Define)、刪除Watch Point(remove,kill all),及自動更新選項。 
也可用WS、WK等命令代替,下面具體看“運算式”類型: 
dScope51一次最多可設16個WtchPoint運算式,顯示於Watch Window之中,運算式可以是簡單變數,也可是複雜資料類型如結構、陣列和指向結構的指標等,例如: 
>WS *ptime 
>WS ptime→hour 
>WS some_record[o],analog等等 
(6) 關於.IOF文件 
啟動DS51後必須裝入.IOF檔才能使CPU及Peripheral各項起作用,這個函數的使用是依據8051系列CPU的不同特點,裝入8051各CPU硬體設備類比驅動檔,比如8031CPU就必須load DS51目錄下的8051.IOF。 
2. dScope for Windows 
dScope for windows具有dScope for dos的全部功能,此外,它還具有以下明顯的優點: 
(1) 標準的Windows介面,操作更容易更簡單; 
(2) 常用操作多用對話方塊,而非Dos的行命令方式; 
(3) 視窗資源更加豐富:記憶體視窗、覆蓋率分析、運行狀態分析視窗,加強了調試功能; 
因為dScope for Windows功能強大,具體操作在第八章詳細介紹。 
第三節 Monitor51及其使用 
1. Monitor51對硬體的要求 
(1) 硬體系統為51系列CPU; 
(2) 帶5K外部程式記憶體(從O位址開始),存放Monitor51程式; 
(3) 256Bytes的外部資料記憶體以及5K的跟蹤緩衝區,此外,外部資料記憶體必須足夠容納所有應用程式碼及資料,且所有外部資料記憶體必須為馮•諾伊曼記憶體,即能一致訪問XDATA與Code空間。 
(4) 一個計時器作為串列傳輸速率發生器供串口使用; 
(5) 6 Bytes的空餘堆疊。 
2. Mon51的使用 
Mon51的京7@多用對話方塊,而非Dos的行命令方式; 
(3) 視窗資源更加豐富:記憶體視窗、覆蓋率分析、運行狀態分析視窗,加強了調試功能; 
因為dScope for Windows功能強大,具體操作在第八章詳細介紹。 
第三節 Monitor51及其使用 
1. Monitor51對硬體的要求 
(1) 硬體系統為51系列CPU; 
(2) 帶5K外部程式記憶體(從O位址開始),存放Monitor51程式; 
(3) 256Bytes的外部資料記憶體以及5K的跟蹤緩衝區,此外,外部資料記憶體必須足夠容納所有應用程式碼及資料,且所有外部資料記憶體必須為馮•諾伊曼記憶體,即能一致訪問XDATA與Code空間。 
(4) 一個計時器作為串列傳輸速率發生器供串口使用; 
(5) 6 Bytes的空餘堆疊。 
2. Mon51的使用 
Mon51的使用途徑有三種方式: 
(1) Dos行命令方式 
即先用install對MON51進行配置,然後用MON51進入Monitor狀態,啟用各種命令對Monitor51進行調試。 
(2) tScope51方式 
啟動tScope51裝入TS51目錄下的MON51.IOT驅動檔,與目標板通信。 
(3) dScope51 for Windows方式 
在選CPU驅動文件時,選“MON51.dll”,則檢查目標板並進入MON51狀態。 
3. MON51的配置 
(1) MON51 for Dos的配置 
運行install檔(在MON51目錄下),不同的參數可以配置不同的硬體環境。INSTALL Serialtype [xdstastart][codestart][bank][PROMCHECK]],具體說明見MON51幫助文件或使用手冊。 
(2) MON51 for Windows的配置 
在啟用MON51.dll時,會使得系統自動檢查目標板連接,如配置不對,則彈出“Configuration”對話方塊,設置PC串口,串列傳輸速率等,完畢單擊“apply”有效。

文章录入:admin    责任编辑:admin 
  • 上一篇文章: Keil C51使用详解1

  • 下一篇文章: Keil C51使用详解3
  • 发表评论】【告诉好友】【打印此文】【关闭窗口
       最新热点    最新推荐    相关文章
  • 利用串口对 89S 系列单片机编…

  • Keil C51使用详解3

  • Keil C51使用详解1

  • 网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)  
    {$PopAnnouceWindow(400,440)}