第二部分51单片机软件及硬件实验6WAVE(伟福)软件环境介绍6.1WAVE(伟福)软件特性WAVE单片机调试软件功能十分强大,该软件内部虚拟了一个CPU,可以在不联任何外部51系列仿真器的情况下虚拟动态的实时仿真、跟踪、调试软件程序,CPU窗口、数据窗口、I/O口将实时、动态、跟踪、显示当前的运行状态及结果,为用户调试程序提供了极大的方便。6.2WAVE(伟福)软件的基本界面在WAVE调试软件的基本界面中分别显示了版本信息栏,菜单栏、工具栏、基本工作区、状态栏等内容,下图显示了其基本的调试页面。版本信息栏快捷图标基本工作区状态栏菜单栏6.3WAVE(伟福)软件主要功能介绍6.3.1菜单栏菜单栏主要包括文件、编辑、搜索、项目、执行、外设、窗口、仿真器、帮助等内容。下面将介绍主要的相关内容。6.3.1.1文件:*新建文件:建立一个新的用户程序,存盘时,系统会要求用户输入文件名。注意!汇编语言用户起文件名要求:文件名不能用汉字;文件名长度不能超过8个字符;扩展名为.ASM。*保存文件:保存用户程序。用户在修改程序后,如果进行编译,则在编译前,系统会自动将修改过的文件存盘。*另存为:将用户程序另存为一个新文件作为备份,原来的文件内容不会改变。*打开文件:打开用户程序,进行编辑。如果文件已经在项目中,可以在项目窗口中双击相应文件名打开该文件。6.3.1.2项目*编译:将用户输入的汇编语言程序编译成机器码程序,即目标程序,【生成BIN(二进制)格式和HEX(英特尔)格式的目标程序】同时检查语法错,如果程序中存在语法错误,系统将指出错误类型及错误所出现的行号。用鼠标双击信息窗口中的错误行,指针会自动跳转到源程序的错误行处,用户可直接对源程序错误行进行修改。错误修改完毕后重新编译程序,直到信息窗口没有提示错误出现为止。6.3.1.3执行*设置PC:按鼠标右键,将PC指针(光标)设置到所希望开始执行的程序行,程序将从PC设定行,即光标所在行开始执行程序;*全速执行:按键,程序将从PC指针所设置的地址连续执行程序,一直执行到程序结束;(注意:按后一定要按暂停键结束程序,刷新数据);*跟踪:按键,单步跟踪执行每行程序指令,用户观察每行指令执行后的结果,并跟踪到函数或过程的内部;*单步:按键,单步执行程序,与跟踪不同的是,该执行方式按程序指令顺序依次执行,不跟踪到函数或子程序内部;*执行到光标处:程序从当前PC位置全速执行到程序光标所在的行,如果光标所在行没有可执行代码,则提示“这行没有代码”;*设置/取消断点:将光标所在行设为断点,如果该行原来已为断点行,则取消该行断点,断点有效行背景色为红;6.3.1.4窗口*CPU窗口:左边是编译正确的机器码指令及汇编语言程序,右边是SFR(特殊功能寄存器)窗口和位窗口,通过该窗口可以动态显示、跟踪、程序在执行过程中,寄存器的变化情况。各寄存器的值可以根据需要随时进行修改设置。修改方式:用鼠标单击所需要修改设置的寄存器,然后在“值”的窗口输入所需的新的数值。*数据窗口:51系列有四种数据窗口:DATA内部数据窗口;CODE程序数据窗口;XDATA外部数据窗口;PDATA外部数据窗口(页方式)。**DATA窗口:显示CPU内部RAM的256个单元内容及对应的ASCII码值。窗口第一列为蓝色:8位地址栏。每行16个存贮单元,每个单元以字节为单位,可存放一个数据,系统默认该数据为16进制数。编程中用MOV指令寻址该数据窗口中的数据。窗口最下行为状态栏,显示某存储单元地址。其中:00~1FH单元为工作寄存器区;20~2FH单元为位寻址空间;80H~FFH单元为特殊功能寄存器区。例如:02H地址单元等于0工作区中R2的地址单元,0AH地址单元内容等于1工作区中R2内容。若需修改某一单元内容可用鼠标单击该单元地址,然后从键盘输入数据。若用鼠标双击单元地址则弹出一个小窗口,可在其窗口中输入2进制、10进制或16进制数据。修改过的单元内容为红色。表示该单元的内容是新修改过的数据或是程序执行过程中新刷新过的数据。注意!用鼠标双击单元地址,在弹出的窗口中输入数据必须符合数据格式。例如:46(十进制),0A7H(十六进制),00101110B(二进制)都是有效的数据格式。否则系统显示错误,要求重新输入正确的数据值。**XDATA窗口:该窗口是外部数据窗口,蓝色的地址栏为16位。若想寻址该窗口中某个存储单元的内容,在程序中用MOVX指令寻址,用数据指针DPTR设置单元地址。若需修改某地址单元中的数据,方法可参考DATA窗口中数据的修改方法。**CODE窗口:该窗口是程序数据窗口,在该窗口中显示程序编译后的指令代码(目标程序即机器码指令)。修改某地址单元中数据的方式同DATA窗口的修改方式相同。**PDATA外部数据窗口(页方式)介绍略。6.3.1.5平排窗口:并列、并行显示项目中已打开的多个窗口。注意!最小化的窗口不参加窗口的排列,只对打开的窗口进行排列。例如:已经打开了4个窗口,单击菜单中窗口/平排窗口选项后窗口平排显示如下所示。6.3.2工具栏(快捷图标栏):系统刷新:打开文件(热键F3):保存文件:新建文件:编译程序(热键F9):系统复位(CTRL+F2):暂停:全速运行(CTRL+F9):跟踪运行(热键F7):单步运行(热键F8)6.3.3使用WAVE软件编写程序、及调试步骤注:该操作过程适用于以下所有软件编程实验及调试过程⑴用鼠标单击快捷图标新建文件。在打开的程序窗口中按要求编写程序;⑵用鼠标单击:快捷图标保存文件。将编写后的程序起文件名存盘。注意:文件名不能用汉字,不能超过8个字符,扩展名.ASM⑶用鼠标单击:快捷图标编译程序,检查语法错误。若程序中出现语法错误,将在信息窗口中显示。用鼠标双击信息窗口中的错误行,系统自动跳入程序错误行,即可进行修改;⑷分别打开下拉菜单窗口/CPU、DATA和XDTAT窗口,根据程序要求给内部和外部单元赋初值;⑸用鼠标单击:菜单窗口/平排窗口;⑹用鼠标单击:复位按钮,使PC指针指向第一行,或用鼠标单击所希望开始执行的程序行任意处,按鼠标右键,设置PC为当前行;⑺跟踪、单步或全速执行程序,观察各窗口中数据的变化,观察程序运行结果是否正确;751单片机软件程序设计实验7.1基本指令调试练习【实验目的】熟悉WAVE单片机软件开发环境,了解单片机基本指令功能,调试下列程序,观察记录每条指令运行结果【实验内容】⑴分析下列基本指令的功能,单步执行,记录每条指令调试后的结果,设:50H=0B8H,2AH=0B9H,20H=0BAHMOVA,#50H;A=MOVA,50H;A=MOV50H,#20H;50H=MOVC,50H;CY=(检查PSW寄存器中CY)MOV50H,20H;50H=MOVR6,#66H;R6=MOV66H,#45H;66H=MOV66H,C;2CH=,66H(是位地址)=⑵执行下列指令后,观察记录栈指针的变化MOVSP,#70H;SP=MOVA,#8CH;ACC=MOVB,#0F0H;B=PUSHACC;70H=;71=;SP=PUSHB;72H=;SP=;POPACC;ACC=;SP=;POPB;B=;SP=;⑶用MOVCA,@A+DPTR指令求5的平方值,并将结果存放在内部30H单元中。设平方表存放于以TAB标号定义或100H定义的起始单元中,用两种方式编写程序。7.2基本指令编程及调试【实验目的】学习简单程序的编写方法,进一步掌握简单程序的调试方法,执行程序,观察运行结果是否正确。【实验内容】编写基本指令完成下列操作,并将所编写指令填写在每条内容空白处设:R1=58H内部20H=0A1H,40H=0A2H外部30H=0C3H,40H=0C4H,50H=0C5H⑴把R1中内容传送至R0;L1:⑵把内部20H单元内容传送至内部30H单元中;L2:⑶把内部20H单元内容传送至外部20H单元中;L3:⑷把外部30H单元内容传送至外部20H单元中;L4:⑸把内部20H单元内容与内部40H单元内容交换;L5:⑹把内部20H单元内容与外部30H单元内容交换;L6:⑺把外部40H单元内容与外部50H单元内容交换;L7:8.4DVCC-51实验系统硬件实验操作步骤⑴双击桌面快捷图标DVCC52196,打开DVCC51实验环境软件;⑵单击菜单/选项/串口选择/选择最下面的COM口,必须COM4。⑶按硬件原理图进行连线,连线完毕后打开实验箱电源;⑷按下实验箱中的复位键P(此时实验箱数码管显示P.);⑸按下实验箱键盘中的PCDBG/EPRGL键(此时实验箱数码管全黑);⑹单击工具栏中连接的快捷图标(联接成功弹出两个窗口);⑺新建文件,编写程序,起文件名,存盘。文件名不能用汉字,不能超过8个字符,扩展名.ASM注意!程序最后一行,END后面不允许出项任何字符,包括软回车符,否则程序编译出错,该软件设计问题!⑻单击快捷图标“调式”编译程序,直到程序没有错误注意!程序窗口一定要出现蓝色亮色光带,方可做第九步;⑼单击快捷图标“!”连续运行执行程序;观察实验箱输出结果是否符合实验要求;⑽连续运行后屏幕弹出一个小窗口,表示程序正在运行中,如果想退出该运行程序状态,①按试验箱上的复位键,②按PCDBG/EPRGL键,则可关闭屏幕弹出的小窗口。9.2P1口流水灯控制实验【实验目的】掌握P1口的输出编程方法,掌握软件延时的编程计算方法【实验内容】实验中将8个LED与P1口相连,使其每灯点亮一段时间后关闭,形如流水,故称流水灯,通俗语:彩灯循环控制。它广泛地用于装饰霓虹灯。要求学生通过本实验掌握P1口的软件编程和软件延时计算方法。⑴编写1个彩灯循环显示程序。延时时间、移动方向不限⑵改变灯的移动方向,亮2个灯同时移动,先向右移动15步,然后向左移动15步,依次循环,编写程序。⑶若使8个灯中前4个同时亮,后4个同时灭,交替循环闪烁,且交替闪烁的时间不同,程序应如何编写。【硬件原理图】【实验要求】运行程序,观察运行结果是否符合实验要求。