keilc51 μVision中的函数库使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
keilc51 μVision中的函数库
C51的函数库均位于KELL\C51\LIB(C51编译器使用的库文件、启动代码和若干底层函数的源代码文件)子目录下。由芯片自动选择。
KELL\C51\INC(供C51编译器使用的包含头文件(.H))。下面是头文件与库函数的对应关系:
MASH.H-------对数学函数进行说明
STRING.H--------对字符串和内存操作函数进行说明
INTRINS.H---------对内联函数(_nop_() )进行说明。
ABSACC.H--------对外部扩展寄存器进行声明。(李)
μVision中有“制作”(Build)和“调试”(Debug)两种工作状态。制作工具栏只在制作状态下有效,调试工具栏只在调试状态下有效,单文件工具栏始终有效。(图中显示了调试时的源代码指针和用户设置的两个断点。注意画面中的高亮显示,指示这些数据最近刚发生过变化。)
调试工具栏从左到右部分按钮功能:
CPU程序计数器复位(Reset CPU)
连续运行知道断点或程序结束(Go)
停止运行(Stop Running)
单步运行(Step)。遇到函数调用,就进入该函数内部。
单步跨越(Step Over)。遇到函数调用,则一步执行完该函数。
一步跳出当前函数(Step out of Current Function)。
运行到光标所在行(Run to Cursor Line )。
与断点有关的操作(Breakpoint)。
菜单和μVision的其他操做
使用与菜单项相对应的“用户键”(User Keywords),其形式一般为“Alt+某键”。若果菜单嵌套层次较多,该操作要执行多次。
(1)主要工作窗口和对话框
项目工作区(Project Workplace)
从左到右的标签依次是:文件页、寄存器页、参考资料页、函数页、模板页。
其中:函数页用于定位源程序中的编辑对象,如函数头、复合语句头等,通过点击选中目标可将光标迅速定位到该对象。
(2)用户区、源文件窗口、和反汇编窗口
在调试C51程序时,其单步操作为每次一条源语句;在调试汇编程序时,其单步操作为每次一条汇编指令。
反汇编窗口(Disassembly)只有在调试状态下才能被打开,它显示项目制作后的反汇编文本。在调试C51程序时,如果将它作为调试窗口,可提供更多的信息,帮助用户了解程序的实现细节。
输出窗口及其中的3个页面
输出窗口(Output Window)提供的三个页面从左到右依次是:
制作(Build)、命令(Command)、批量文件查找(Find in Files)。
项目、文件组、文件选项设置对话框
典型的“项目”(Project)包含三个操作级别,它们是:“项目目标(Target)”、“文件组(Group)”和“文件(File)”。用户可以为项目、文件组、文件分别设置其“选项(Option)”。前提是必须在
项目工作区中先选定操作对象,然后通过菜单栏“项目(Project)”——“为……设置选项(Option for)”弹出相应对话框进行设置。
项目目标属性:Device(设备)、Target(目标)、Output(输出)、Listing(清单)、C51(编译器)、A51(汇编器)、BL51 Locate(连接定位器)、BL51 Misc(连接定位器Misc)、Debug(调试)和Utilities(Flash功能)。
其中,“Debug”中左侧窗口:“Use simulator”(选中该选项表示利用μVision软件模拟),“Limite Speed To Real-time”(选中该选项,则软件模拟时按照设置的晶振,机器周期进行)。右侧窗口:选择是利用其他软件仿真还是利用硬件仿真等。
符号浏览串口
打开:View------Source Browser。
按照操作特性,可将窗口分为以下几个操作区域:
<1>窗口上部——选择浏览对象
通过以下3个通配符,可定制要关注符号的特征:
“#”——通配单个数字字符
“$”——通配单个任意字符
“*”——通配多个任意字符
例如:在“Symbol”(符号)键入“*#*”,表示所关注的对象名中有一个数字。
通过Filter(过滤器)和Class(类别)进行操作,去掉那些不想关注的符号。
<2>左侧小窗口
列出被选中符号的基本情况,包括:类别,类型(Type)、所在存储空间(Space)、被使用次数(User)等。
<3>右侧小窗口
列出符号在原文件中的行号及其使用形式。
前面的方括号[ ]标志符号在该处是被定义还是被引用。
[D]——表示符号在该处被定义。
[R]——表示该符号在该处被引用。recommend
后边的方括号表示符号的具体引用形式
[r]——表示符号在该处被读取。
[w]——表示符号在该处被写入。
[r/w]——表示符号在该处被读/写。
[&]——表示该符号在该处被作为地址引用。
存储器窗口
在存储器窗口(Memory Window)的上部,有供用户输入存储器类型和起始地址的输入框。用来设置对象所在存储区域和起始地址。如d:0x00。其中,前缀表示存储区域,冒号后为要观察的存储单元其实地址。
常用的存储区前缀有:
D:或d:——表示内部RAM的直接存储区。
I: 或i:——表示内部RAM的间接寻址区。
X:或 x:——表示外部RAM区。
C:或c:——表示ROM区。
在调试状态下,用户可以修改制定单元中的数据,并通过程序运行来观察它们的变化,据此判断是否符合预期。修改前,先将光标置于要修改的数据项,然后再鼠标右键单击,选择“Modify Memory at ……”,输入正确的数据格式。
【注意】在“View”中选中“Periodic[,pi?ri'?dik] Window Update”(定期窗口更新)
,使程序在连续运行过程中定时进行刷新。
监视与堆栈调用窗口
监视与堆栈调用窗口(Watches)共有4个页面:局部变量(Locals)、监视#1(Watch #1)、监视#2(Watch #2)和调用堆栈(Call Stack)。
局部变量页:显示内容为当前正在执行的模块中的局部变量及它的当前值,包括自动变量和通过存储单元传递的函数参数。
监视页:该页面显示用户要监视的数据对象,包括全局变量和相应的表达式。【注意】被监视的变量一般应为全局变量,否则会在执行后产生命令行错误。该错误可在输出窗口(Output Windows)的命令页(Command)中看到。即:局部变量应在局部变量页(Locals)中进行监视,全局变量及相应表达式应在监视页(Watch #1)中进行设置和监视。
调用堆栈页(Call Stack):显示函数模块被调用的情况。
外围设备对话框
打开:通过主菜单栏的“Peripherals”(外围设备)中的下拉菜单,可分别打开当前设备所拥有的各外围设备的对话框。
对于AT89S51来说,有9个外围设备可以进行模拟调试。它们是:中断系统、P0~P3、串口,2个定时/计数器和看门狗定时器,每一个外围设备都对应一个对话框。
再进行外围设备设置和运行模拟时,注意有两种控制变量:
<1>特殊功能寄存器变量SFR(Special Function Register)。
<2>虚拟寄存器变量VTREG(virtual Simulation register),它模拟针对外围设备的引脚输入或外部激励。
以P3口为例:对话框上面的一行(标为P3)为SFR变量,它模拟并口中的输出锁存器,打钩时表示将其置1.;下面一行(标为Pins的)为VTREG变量,它模拟引脚上的输入信号,打钩时表示向该引脚输入1。所以,当位于上面的P3.2为1时,则该引脚出于输入状态,此时点击下面的Pin3.2两次,将模拟在P3.2引脚输入一个下降沿信号。如果其他条件具备,该下降沿可模拟一次由下降沿触发的INT0中断。