资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单片机应用技术实验及伟福单片机仿真器使用说明,电子工程学院,2011.9,一、上实验课的几点要求:,1.提前五分钟进实验室,按指定位置就坐,在上机登记本上签到。,2.严格执行上机时间,不得随意调整。,3.遵守机房管理规定,文明上机,安全用电。,4.实验前要认真预习实验有关内容,写好,预习报告并预先编写好程序,,课前检查,做为平时成绩的一部分。,5.不得抄袭或拷贝他人程序.,实验结束后,要整理好所使用的仪器设备,关闭电源,摆好桌椅,保持机房整洁;整理实验数据,书写,实验报告.,二、实验进程安排(暂定),实验一:熟悉掌握单片机仿真机软硬件的使用方法,(,内容:调试并验证数据传送(,RAMXRAM,),实验和跑马灯实验),实验二:存储器块清零、内存块移动,实验三:二进制到,BCD,码转换、二进制到,ASCII,码转换,实验四:程序跳转表、数据排序,实验五:,P1,口输入、输出实验,实验六:用,74LS245,读入数据、用,74LS273,输出数据实验,实验七:计数器、定时器实验,实验八:外部中断实验,实验九:,D/A,、,A/D,转换实验,希望同学们认真做好课前预习,认真完成实验任务,三、有关实验报告书写要求,实验报告应包括以下内容:,实验目的,实验内容,实验时间、地点、使用设备、器件、实验人、指导教师,实验原理图(接线图),设计思路(程序设计框图),实验程序(应适当加以注释),实验结果说明(描述实验现象、数据、状态等并分析),实验小结(并回答有关思考题),要求:实验报告要书写工整、内容完整,描述准确,按时上交。注意保存好实验报告,课程结束后装订成册上交教研室存档备查。,四、实验仪介绍,1,、,EX51B,仿真板,2、,仪器外观布局,3、地址译码插孔,4、仪器使用注意事项,集成电路的插拔、通讯电缆的连接、跳线设置、实验线路连接等,都应在断电的情况下进行,否则有可能损坏设备,进行MCS51单片机实验时,应插上,EX51B,板,将配套的,串行通讯电缆的一端与实验仪上的“仿真器串口9芯D形插座相连,另一端与PC的串行口相连,,确定无误后,接通仿真机电源。当LED显示8051时,表示仿真系统正常后,再执行WAVE集成调试软件,WAVE集成调试环境下仿真器型号应设置为:,伟福Lab6000实验仪,仿真头型号:MCS51实验,CPU为8031/32,实验线路连接完成后,应仔细检查无误后再接通电源,实验结束时应关闭仪器电源。,3、WAVE6000仿真系统的使用(演示),建立源文件,选择菜单文件|新建文件功能,出现一个文件名NONAME1的源程序窗口,注:项目的建立、使用等请参阅有关资料,保存文件,选择菜单文件|保存文件或文件|另存为功能,给出文件所要保存的位置,例如:,F:DPJSY 打开DPJSY文件夹(此文件夹应事先建立,注意本系统不支持长文件名目录),然后,再给出文件名,MY1.ASM,(注意:文件扩展名应为ASM),保存文件。文件保存后,程序窗口上文件名变成了:,F:DPJSYMY1.ASM,表示当前保存文件所在目录、文件名以及文件类型为汇编程序(文件后缀为ASM),同时你会发现你所输入的程序系统保留字(指令、寄存器等)均用不同颜色表示,提示用户减少出错。,请输入下列源程序:,(此例功能:循环点亮P1口的发光二极管),设置仿真器,选择菜单仿真器|仿真器设置功能或按“仿真器设置”按,钮 ,在“,仿真器,”页面中选择仿真器类型(,Lab6000通用微控,)和配置的仿真头(,Mcs51实验,)以及所要仿真的单片机CPU(,8031/32,)。在,“语言”,页面中,“编译器选择”选择为“,伟福汇编器,”。然后按“好”键确定。,说明1,:这部分工作很重要,关系到该软件是否能正常工作,尤其是你新建或打开一个文件时,最好检查下设置是否正确。,说明2,:如果你的程序是C语言或 INTEL格式的汇编语言,可根据你安装的Keil 编译器版本选择“Keil C(V4或更低)”还是“Keil C(V5或更高)”。,编译、连接程序,选择菜单项目|编译功能或按编译按钮 或F9键,编译你的项目(文件)。,系统采用边编译边查错方式,在编译过程中,发现有错则立刻停下编译,并在信息窗口中显示出错信息,双击出错信息行时,光标会自动定位在源程序中出错所在行。(,注意:,有时前一行或后一行程序有错,也会造成当前行编译不通过,而将错误定位在本行,所以如果发现了错误,但在本行没有发现错误,可以查查本行上下的程序)纠正错误后,再次编译直到没有错误。在编译之前,软件会自动将项目和程序存盘。在编译没有错误后,就可调试程序了,、调试、运行程序,方法1:选择执行|跟踪功能或按跟踪按钮 或按F7键进行跟踪调试程序,跟踪就一条指令一条指令地执行程序,若有子程序调用,会跟踪到子程序内部中去。你可以观察程序每步执行的结果。,方法2:选择执行|单步功能或按单步按钮 或按F8键进行单步调试程序,其功能与跟踪相同,但单步执行时不跟踪到子程序内部。,方法3:先在程序中设置光标位置,然后选择执行|执行到光标处或按F4,这样程序从当前PC位置,全速执行到光标所在的行。,方法4:选择执行|全速执行,运行程序,方法5:自动跟踪/单步,连续单步运行程序,程序调试窗口,断点的设置与取消:单击光标所在行“0”处即可设定断点,如果该行原来已为断点,则取消该断点。,因为程序是对P1端口移位操作,我们可以打开外设的端口来观察P1口。方法是选择主菜单外设|端口功能打开端口窗口。,、硬件仿真,上述例子是个跑马灯实验,若 P1口接发光二极管就会循环闪亮。如果想要用仿真器硬件仿真。就要连接上仿真器,连接硬件仿真,按照说明书,将仿真器通过串行电缆连接计算机上,将仿真头接到仿真器,连接实验线路,将,P1.0P1.7,与,L0L7,相连,检查接线是否有误,确信没有接错后,接上电源,打开仿真器的电源开关。,进入仿真器设置窗口,取消仿真器设置、通信设置下伟福软件模拟器前面的“,”,即进入硬件仿真方式,重新编译程序,全速执行,可看见,LED,轮流亮灭(跑马灯),4、操作练习:完成片内外数据传送实验 (RAM,XRAM,),数据传送实验(RAM,XRAM,)运行结果,实验二(1)存储器块清零,实验要求:指定存储器中某块的起始地址和长度,要求能将其内容清零。实验目的:掌握存储器读写方法,了解存储器的块操作,参考流程,设定:块起始地址为30H,块长度为20H,思考:若程序改为片外数据块清零,应如何修改,实验二(2):内存块移动,实验要求:将指定源地址和长度的存储块移到指定目标位置实验目的:了解内存的移动方法,加深对存储器读写的认识。参考流程:,设定:片外块的源地址为3000H(数据内容自定),块的目的地址为3040H,移动长度为10H,思考:1:若要检查数据传输是否有错,应如何修改程序?,2、如是片内外存储器数据移动,应如何修改程序?,实验三:二进制到BCD转换,实验要求:将给定的一个二进制数,转换成二十进制(BCD)码实验目的:掌握简单的数值转换算法,基本了解数值的各种表达方法,参考流程:,编程提示:,将累加器A中二进制数除以100和10,所得的商即为百位数及十位数,余数为个位数,结果存在指定单元内。,设要转换的二进制数为A8H,转换为BCD码应为,0001,0110,1000,即十进制数168,实验四:二进制到ASCII码转换,实验要求:给出一个BCD数,将其转换成ASCII值。实验目的:了解BCD值和ASCII值的区别,了解如何将BCD值转换成ASCII值,了解如何查表进行数值转换及快速计算。,编程提示:,1、0-9的ASCII码为30H39H,在BCD码中是用四位二进制数给09这10个数字编码,例十进制数94用BCD码表示即为,1001,0100,,转为对应ASCII码高四位应为39H,低四位应为34H,2、本题要求用查表法设计程序,常用查表指令有MOVC A,A+PC和MOVC A,A+DPTR,请同学预习这两条指令的用法以及使用注意事项,3、思考:若不用查表法,应如何修改程序,参考流程:,实验五 程序跳转表,实验要求:在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。实验目的:了解程序的多分支结构,了解多分支结构程序的编程方法,设置调用号,根据调用号查表,得到跳转地址,跳转到相应程序段,调用返回,多分支结构是程序中常见的结构,若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。编程提示:根据某标志单元的内容(输入或运算结果)是0,1,2N,分别转向程序1、程序2程序N,针对这种情况,可以先用无条件直接转移指令按序组成一个转移表,再将转移表首地址装入,DPTR,中,然后将标志单元的内容装入,累加器A,经运算后做为变址值,最后执行“,JMP A+DPTR,”实现程序跳转,实验六:数据排序,实验要求:给出一组随机数,将此组数据排序,使之成为有序数列实验目的:了解数据排序的简单算法。,参考流程,编程提示:,本程序用的是“冒泡排序”法,算法是将一个数与后面的数相比较,如果比后面的数大,则交换,如此将所有的数比较一遍后,最大的数就会在数列的最后面。再进行下一轮比较,找出第二大数据,直到全部数据有序,硬件实验一(1)P1口输出实验,实验要求:P1口做输出口,接八只发光二极管,编写程序,使发光二极管循环点亮,参考连线:,P1.0-P1.7引线孔与L0-L7引线孔对应相连,硬件实验一(2):P1口输入、输出实验,实验要求:,P1.0、P1.1作输入口接两个拨动开关,P1.2、P1.3作输出口,接两个发光二极管,编写程序读取开关状态,将此状态,在发光二极管上显示出来。编程时应注意P1.0、P1.1作为输入口时应先置1,才能正确读入值。,参考连线:,P1.0、P1.1引线孔分别与开关K0,K1引线孔相连,开关向上拨输出高电平“1”,开关向下拨输出低电平“0”;P1.2,P1.3引线孔分别与L0,L1引线孔相连,硬件实验二(1)用74LS245读入数据,实验要求:利用板上的集成电路插座,扩展一片74LS245,来读入开关状态。实验目的:了解CPU常用的端口连接总线的方法。掌握74LS245进行数据读入或输出。,实验电路及连线详见实验指导书,实验说明:,74LS245是三态总线收发器,利用它既可以输出也可输入数据。本实验74LS245的片选地址为CS0,即8000H,读这个地址,就是从74LS245读回开关的值。可以用单步的方式执行程序,改变开关状态,观察读回的值。,硬件实验二(2)用74LS273输出数据,一、实验要求:在通用插座上扩展一片74LS273作为输出口,控制八个LED灯。二、实验目的1、学习在单片机系统中扩展简单I/O接口的方法。2、学习数据输出程序的设计方法。3、了解数据锁存的概念和方法,实验电路及连接 详见实验指导书,实验说明:,因为本实验是用74LS273扩展IO端口。方法是:通过片选信号和写信号将数据总线上的值锁存在273中,同时在273的输出端品输出,当数据总线上的值撤消以后,由于273能够锁存信号,所以273的输出端保持不变,直到下次有新的数据被锁存。本实验中,在数据输出同时输出片选信号和写信号。,74ls273引脚图,74LS273是8位数据/地址锁存器,是一种带清除功能的8D触发器,1D8D为数据输入端,1Q8Q为数据输出端,正脉冲触发,低电平清除,常用作8位地址锁存器。,用74LS273输出数据参考流程,硬件实验三(1)计数器实验,实验要求:8031内部定时计数器T0,按计数器模式和方式1工作,对P3.4(T0)引脚进行计数。将其数值按二进制数在P1口驱动LED灯上显示出来。实验目的:学习8031内部定时/计数器使用方法,说明:本实验中内部计数器起计数器的作用。外部事件计数脉冲由P3.4引入定时器T0。单片机在每个机器周期采样一次输入波形,因此单片机至少需要两个机器周期才能检测到一次跳变。这就要求被采样电平至少维持一个完整的机器周期,以保证电平在变化之前即被采样。同时这就决定了输入波形的频率不能超过机器周期频率。参考流程,:,开始,设置工作方式,开始计数,计数,输出计数值,硬件实验三(2)定时器/计数器实验,实验要求:用8051内的定时器和计数器,控制发光二极管以亮1秒、暗1秒的速度闪烁。实验目的:学习8031内部定时器/计数器的使用和编程方法。,参考流程:,Y,N,N,Y,0P1.7,1P1.0,设T0为定时方式1,T1为计数方式2,装入T1计数初值,启动T1,P1.7求反,装入T0定时初值,启动T0,定时时间到了吗?,P1.0求反,计数次数到了吗?,参考连接电路,:P1.7接发光二极管,P1.0接到T1端作计数脉冲,硬件实验四(1)外部中断实验,实验要求:用单次脉冲申请中断,在中断处理程序中对输出信号进行反转。实验目的:学习外部中断技术的基本使用方法,学习中断处理程序的编程方法,。,参考流程:,开始,设置初始状态,设置中断控制寄存器,中断允许,等待中断,中断入口,保护现场,状态位取反,状态位输出,恢复现场,中断返回,主程序框图,外部中断子程序框图,硬件实验四(2)外部中断、定时器综合实验,实验目的:掌握定时器和计数器的编程及初始化的方法,要求:利用8051的定时器和外部中断,控制发光二极管模拟航标灯,“白天”熄灭,“黑夜”降临时以亮2秒、暗2秒的速度闪烁,参考流程,初始化:设主程序入口地址为0000H,外部中断INT1入口地址为0013H,定时器T1中断入口地址为001BH,堆栈指针SP30H,P1.7置1,灯灭,设INT1 为电平触发方式,设INT1为低优先级中断,允许外部中断1,开 中 断,踏步,等待外部中断请求,主程序框图,设T1为定时方式0,设T1定时初值,设T1为高优先级中断,启动定时器T1,允许T1中断,设软件计数初值,INT00?,关T1中断,关定时器T1,P1.7清0,熄灯,中断返回,外部中断子程序参考流程,N,定时器1中断子程序参考流程,重新设定T1定时初值,计数值减1为0?,重新设定计数初值,P1.7求反,改变灯亮灭,中断返回,N,常用菜单说明,(注:以下部分内容请同学们自学,),文件操作菜单,编辑操作菜单,搜索操作菜单,项目操作菜单,执行操作菜单,窗口操作菜单,外设操作菜单,仿真器操作菜单,文件操作,打开文件:打开用户程序,进行编辑。如果文件已经在项目中,可以在项目窗口中双击相应文件名打开文件.,保存文件:保存用户程序。用户在修改程序后,如果进行编译,则在编译前,系统会自动将修改过的文件存盘.,新建文件:建立一个新的用户程序,在存盘的时候,系统会要求用户输入文件名.,(注意文件扩展名应为.ASM和文件保存路径),另存为:将用户程序存成另外一个文件,原来的文件内容不会改变,重新打开:在重新打开的下拉菜单中有最近打开过的文件及项目,选择相应的文件名或项目名就可以重新打开文件或项目。,打开项目:打开一个用户项目,在项目中,用户可以设置仿真类型。加入用户程序,进行编译,调试。系统中只允许打开一个项目,打开一个项目或新建一个项目时,前一项目将自动关闭。,文件|保存项目:将用户项目存盘。用户在编译项目时,自动存盘。注意:,当用项目仿真时,系统要求项目文件,模块文件,包含文件在同一个目录(文件夹)下.,文件|新建项目:当用户开始新的任务时,应新建一个项目,在项目中,设置所用仿真器类型,POD类型,加入用户程序(模块)。,文件|关闭项目:关闭当前项目,如果用户不想用项目方式调试单个程序,就要先关闭当前项目。,文件|反汇编:将可执行的代码反汇编成汇编语言程序。(详见伟福反汇编功能的使用方法),文件|打印:打印用户程序。,文件|退出:退出系统,如果在退出以前有修改过的文件没有存盘,系统将会提示是否把文件存盘.,编辑(E)操作,编辑|撤消键入:取消上一次操作,编辑|重复键入:恢复被取消的操作,编辑|剪切:删除选定的正文,删除的内容被送到剪贴板上,编辑|复制:将选定的内容,复制到剪贴板上,编辑|粘帖:将剪贴板的内容插入光标位置,编辑|全选:选定当前窗口所有内容。,搜索(S),搜索|查找:在当前窗口中查找符号,字串。可以指定区分大小写方式,全字匹配方式,可以向上向下查找。,搜索|在文件中查找:可以在指定的一批文件中查找某个关键字。,搜索|替换:在当前窗口查找相应文字,并替换成指定的文字,可以指定区分大小写方式和全字匹配方式查找,可以在指定处替换,也可以全部替换。,搜索|查找下一个:查找文字符号下一次出现的地方,搜索|项目中查找:在项目所有模块(文件)中查找符号,字串。在项目所包含的文比较多时,用此方法可以很方便地查到字串在什么地方出现。,搜索|转到指定行:将光标转到程序的某一行。,搜索|转到指定地址/标号:将光标转到指定地址或标号所在的位置。,搜索|转到当前PC所在行:将光标转到PC所在的程序位置,项目(P)操作,项目|编译:编译当前窗口的程序。如有错误,系统将会指出错误所在的位置。,项目|全部编译:全部编译项目中所有的模块(程序文件)、包含文件,如有错误系统会指出错误所在位置。,项目|装入OMF文件:建好项目后,无须编译,直接装入在其它环境中编译好的调试信息,在伟福环境中调试。,项目|加入模块文件:在当前项目中添加一个模块。,项目|加入包含文件:在当前项目中添加一个包含文件,执行(R)操作,(重要),执行,|,全速执行:运行程序,执行,|,跟踪:跟踪程序执行的每步,观察程序运行状态。,执行,|,单步:单步执行程序,与跟踪不同的是,跟踪可以跟踪到函数或过程的内部,而单步执行则不跟踪到程序内部。,执行,|,执行到光标处:程序从当前,PC,位置,全速执行到光标所在的行。如果光标所在行没有可执行代码。则提示“这行没有代码”,执行,|,暂停:暂停正在全速执行的程序。,执行,|,复位:终止调试过程,程序将被复位。如果程序正在全速执行,则应先停止。,执行,|,设置,PC,:将程序指针,PC,,设置到光标所在行。程序将从光标所在行开始执行。,执行,|,自动单步跟踪,/,单步:模仿用户连续按,F7,或,F8,单步执行程序,执行,|,设置,/,取消断点:将光标所在行设为断点,如果该行原来已为断点,则取消该断点。所有断点通过断点窗口进行管理。将光标移到编辑窗口内,行左边的空白处,光标变成“手指圆”箭头,单击鼠标左键,可以设置,/,取消断点,执行,|,清除全部断点:清除程序中所有的断点。让程序全速执行,.,执行,|,编辑观察项:观察变量或表达式的值,可以将需要检查和修改的值或表达式放到观察窗口里以便检查和修改。,执行,|,设置,/,取消断点:将光标所在行设为断点,如果该行原来已为断点,则取消该断点。所有断点通过断点窗口进行管理。,执行,|,清除全部断点:清除程序中所有的断点。让程序全速执行,窗口(W)操作,窗口|刷新:刷新打开的所有窗口,及窗口里的数据。,窗口|项目窗口:打开项目窗口,以便在项目中加入模块或包含文件,窗口|信息窗口:显示系统编译输出的信息。如果程序有错,会以图标形式指出,在编译信息行会有相关的生成文件,如果有编译错误,双击左键,可以在源程序中指出错误所在行,有时前一行或后一行程序有错,也会造成当前行编译不通过,而将错误定位在本行,所以如果发现了错误,但在本行没有发现错误,可以查查本行上下的程序).,续窗口操作,窗口|观察窗口:项目编译正确后,可以在观察窗口中看到当前项目中的所有模块,及各模块中的所在过程和函数,及各个过程函数中的各个变量,结构。,窗口|CPU窗口:通过CPU窗口,可以打开反汇编窗口,SFR窗口和REG窗口。在反汇编窗口中可观察编译正确的机器码及反汇编程序,SFR窗口中可以观察到单片机使用的SFR(特殊功能寄存器)值和位变量的值。REG窗口为R0.R7、A、DPTR等常用寄存器的值。利用观察窗,可修改当前寄存器值,在程序执行时用这种方法,把寄存器值改为你所指定的值,从而观察程序在此值时运行的结果.,续窗口操作,窗口|数据窗口:有五种数据窗口,它们是,DATA 内部数据窗口 CODE 程序数据窗口 BIT 窗口,XDATA 外部数据窗口 PDATA 外部数据窗口(页方式),数据窗口的数据值,红色的为上一步执行过程中,改变过的值,窗口状态栏中为选中数据的地址,可以在选中的数据上直接修改数据的十六进制值,也可以用弹出菜单的修改功能,修改选中的数据值。,右单击数据窗口弹出菜单中包括:,修改:修改选中数据的值,可以输入十进制,十六进制,二进制的值,转到指定地址/标号:将数据地址直接转到指定的地址和标号所在的位置。,生成数据源码:将窗口中某段数据转换成源程序方式的数据,可以贴到你的源程序中。,块操作:对窗口中的数据块进行填充、移动、写文件、读入等操作。,显示为:选择不同的数据类型显示数据内容,有字节(BYTE)、字(WORD),长整型(LONGINT,四字节),实数型(REAL,四字节),显示列数:将窗口中数据以4列、8列、16列方式显示,外设(L)操作,外设|端口:设置或观察当前端口的状态。,外设|定时器/计数器0:定义或观察定时器/计数器0,通过定义定时器/计数器0的工作方式,自动生成相应的汇编/C语言。可以“复制/粘贴”到你的程序中。,外设|定时器/计数器1:定义或观察定时器/计数器1,通过定义定时器/计数器1的工作方式,自动生成相应的汇编/C语言。可以“复制/粘贴”到你的程序中。,外设|定时器/计数器 2:定义或观察定时器/计数器2,通过定义定时器/计数器2的工作方式,自动生成相应的汇编/C语言。可以“复制/粘贴”到你的程序中。,外设|串行口:定义或观察串行口的工作方式,可以观察串行口的工作方式是否正确,也可以定义串口的工作方式,自动生成串口初始化程序。(串口的波特率的时钟为仿真器设置中“使用伟福软件模拟器”的晶体频率,见“仿真头设置”),外设|中断:管理或观察中断源,也可以辅助生成中断初始化程序。,仿真器设置,仿真器|仿真器设置,语言设置:设置项目编译语言的路径,命令行选项。其中编译器选择为:,伟福汇编器,仿真器:硬件仿真选LAB600通用微控制仿真仪,仿真头选MCS51实验,CPU选8031。软件仿真则选使用,伟福软件模拟器,注意:,使用伟福软件模拟器:如果选择此项,可以在完全脱离硬件仿真器情况下,对软件进行模拟执行。如果使用硬件仿真器调试程序,请去掉使用伟福软件模拟器前的选择勾.,
展开阅读全文