您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 电子设计/PCB > 单片机实验proteus版(2015)
单片机原理与接口技术实验指导书广东省光电信息实验教学示范中心2014-10目录预备知识汇编软件KeilµVision的学习.....................................3实验一汇编语言的应用及KeilC编译环境............................12实验二Proteus软件学习与流水灯仿真实验错误!未定义书签。实验三中断和定时器实验.............................错误!未定义书签。实验四数码管仿真实验.................................错误!未定义书签。实验五键盘实验.............................................错误!未定义书签。实验六程序烧录实验.....................................错误!未定义书签。附录实验报告书写模版...................................错误!未定义书签。预备知识汇编软件KeilµVision的学习KeilµVision软件是目前最流行开发MCS-51系列单片机的软件之一。KeilµVision提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境KeilµVision将这些部分组合在一起。该软件具有类似VC风格的界面,提供了丰富的工具、命令和窗口,可以使开发者在程序调试过程中随时掌握代码所实现的功能。1、项目工程的建立打开KeiluVision4的图标,出现图1.0(1)建立第一个工程文件在桌面上双击KeiluVision4图标,启动集成开发环境如图1.1所示,该界面中最上面一行是菜单,菜单下面是各种工具按钮,左边的projectworkspace窗口为项目管理窗口(ProjectWindow),最下面的为输出窗口(OutputWindow),中间部分为工作区,通常我们所编的源程序、调试程序代码窗口会出现在这里。图1.1点击Project菜单下的NewProject命令,在出现的对话框中输入项目名,keil工程名可以用汉字的,但为了避免编译出现乱码,最好还是不用汉字做工程名或文件名。选择合适的文件夹下建立新的工程项目,一般不要放在桌面上,实验室的电脑都带有自动复原功能,重启后桌面文件全部丢失,点击确定按钮出现如图1.2所示的SelectDeviceForTarget‘Target1’对话框,在Datebase下选择Atmel,点开“+”号,选择AT89C51器件,点击确定按钮。图1.2(2)源程序文件的建立使用菜单File-New命令,弹出源程序编辑窗口,输入程序。点击File-Saveas命令,保存文件为***.ASM。注意汇编语言的后缀是asm,c语言的后缀是c。图1.3(3)将文件加入到工程项目中按图1.3所示点击AddFiletoGroup‘SourceGroup1’命令,然后选中**.ASM文件,点击Add按钮,将你编写的源程序**.ASM加入项目中。如图1.4所示:图1.4注意:添加完文件后,该对话框并不消失,等待继续加入其它文件,常误认为添加文件不成功,其实已添加成功,只需点击Close按钮关闭对话框即可。2、工程的详细设置工程建立好后,要对工程进行进一步的设置,以满足后续工作的要求。首先点击左边的Project窗口的Target1,然后使用菜单的菜单“Project-Optionfortarget‘target1’”出现对工程设置的对话框,其中有8个页面,这里绝大部分设置取默认值就可以了。Target页面如图1.5所示:图1.5Xtal后面的数值为晶振频率值,默认值为所选CPU的最高工作频率,对AT89C51而言为24MHz,我们常选12MHz值,该值与最后产生的目标代码无关,仅用于软件仿真显示程序执行时间。MemoryModel用于设置RAM的使用情况,设置为small,CodeRomSize用于设置ROM的空间,设置为Large:64k,Operation用于选择操作系统,一般不用操作系统,选择None,Useon-chipROM用于是否进使用片内的ROM,在此设置如图1.5所示。OffChipCodememory用以确定系统扩展ROM的地址范围,OffChipxDatamemory组用于确定系统扩展RAM的地址范围,这些需根据硬件来决定。设置对话框中的OutPut页面,如图1.6所示,这里也有多个选项,其中CreatHexfile用于声称可执行代码文件(可用编程器械如单片机芯片中执行的HEX格式文件)默认情况下该项未被选中,如果要写片做硬件试验,就必须选中该项,这一点要特别注意。SelectFolderforopjects是用于选择最终生成目标文件所在的文件夹,默认是与工程文件在同一个文件夹中,NameofExecutable用于指定最终生成的目标文件的名字,默认与工程的名字相同。图1.6Debug页面的设置,如果要进行仿真的,选中UseSimulator,就可以进行软件仿真。与试验箱连接时,选择UseKeilMonitor-51Driver,setting(设置)中的设置为Port只选COM1-COM4中空闲的,Baudrate选115200,其它所有页面设置为默认选择即可,设置完后,按确认键返回主界面。3、编译、连接设置好工程后,即可以进行编译、连接。选择菜单Project-Buildtarget,对当前工程进行连接,如果当前文加以修改,会现对该文件按进行编译,然后再连接以产生目标代码,如果选择RebuildAlltargetfiles将会对当前工程中的所有文件重新编译后再连接确保最终生成的目标代码是最新的。编译过程中的信息将出现在输出窗口中的Build页中,如果源程序中有语法错误,会报告错误,双击该行,可以自动定位到出错的位置。如果没有出错,最终会得到如图所的结果,提示已生成.hex的文件。图1.9正确编译、连接后的结果4、KeiluVision3仿真调试、在线汇编与断点设置知道如何在建立工程文件、源程序以及编译生成目标代码,这仅仅是语法上没有错误,如果程序在逻辑上出现错误就必须通过调试来解决,实际上绝大部分的程序都必须经过反复调试残能得到正确的结果,调试是软件开发中的一个重要环节。下面着重介绍常用的调试命令、利用在线汇编设置断点进行调试的方法。4.1常用调试命令、窗口介绍Keil内建了一个仿真CPU用来模拟执行程序,可以在没有硬件和仿真机的情况下进行程序的调试。在对工程成功汇编、连接后,点击菜单Debug-Start/StopDebugSession或者按Ctrl+F5或者点击工具按钮即可进入调试状态。调试状态和编辑状态相比有比较明显的变化,在Debug菜单中原来不能使用的命令现在都可以使用了,工具栏中多出了一个用于运行和调试的工具条。如图1.7所示:图1.7该工具条从左到右依次为复位、运行、暂停、单步、过程单步、执行完当前子程序、运行到当前行、下一状态、打开跟踪、观察跟踪、反汇编窗口、观察窗口、代码作用范围分析等命令。学习程序调试必须先了解全速运行和单步运行的概念,全速运行即一次运行完成,可以看见程序运行的整体效果,但如果出错则用这种方法很难查找到具体的出错位置,必须借助于单步运行工具,单步执行是每次执行一行即停止,可以看见当前程序运行的中间状态,两种方式都经常会用到。按下F11键或使用菜单STEP或相应的命令按钮可以单步执行程序,使用STEPOVER或功能键F10可以进行过程单步执行,进入如图1.8所示的界面,可以看见在源程序窗口的左边出现一个黄色的调试箭头,每执行单步一次,黄色箭头向下移一行。通过单步执行可以找出一些问题所在,但仅仅依靠单步执行来查图1.8错有时很困难,甚至有时效率会很低,有时通过过程单步执行、断点设置等几种方法联合调试来达到目的。另外在调试的过程中可以随时监视到各寄存器的状态,可以查看存储器的值,还可通过设置变量在观察窗口中观看变量值的变化。各监视窗口如图1.9所示。寄存器窗口Watches、Memory窗口图1.9在调试状态下,点击菜单Peripherals,可以打开弹片击中的资源,包括中断源、定时器计数器、串口以及P0、P1、P2、P3口的窗口一边观察它们的值。如图1.10所示。图1.104.2在线汇编技术在进入Keil的调试环境后,如果发现程序有错,可以直接修改源程序,但是要使修改后的程序代码有效,必须先退出调试环境,重新编译连接后在进入调试,但如果只是需要对某些程序行进行测试,或仅需对原程序进行临时的修改,这样的过程就显得有些麻烦,为此Keil软件提供了在线汇编的能力,将光标定位于需要修改的程序行上,用菜单Debug-InlineAssambly…即可出现如图1.10所示的对话框。图1.11在EnterNew后面的编辑框内直接输入要更改的程序语句,输入完后键入回车将自动指向下一条语句,可以继续修改,如果不再需要修改,可以点击右上角的关闭按钮关闭窗口。4.3断点设置程序调试时,一些程序行必须满足一定的条件才能被执行到(如程序中某变量达到一定的质、按键被按下、串口接收到数据、有中断产生等),这些条件往往是异步发生或难以预先设定的,这类问题使用单步调试方法是很难调试的,这时就要使用到程序调试中的另一种非常重要的方法——断点设置。设置好断点后可以全速运行程序,一旦运行遇到断点就会停止运行,此时可以观察有关变量的值,寄存器的值已确定问题所在。设置/移除断点的方法是将光标定位到需要设置断点的程序行,使用菜单Debug-Insert/RemoveBreakPoint设置或移除断点,也可以用鼠标在该行双击实现相同的功能;Debug-Enable/DisableBreakPoint是开启或暂停光标所在行的断点功能;Debug-DisableAllBreakPoint暂停所有断点;Debug-KillAllBreakPoint清除所有的断点设置。这些功能也可以用工具条中相应的快捷按钮进行设置。断点调试窗口如图1.11所示。图1.12断点设置工具条如图所示。依次为设置/移除断点、取消所有断点、开启/关闭断点、关闭所有断点。观测和修改存储器内容(2)点击命令,可以打开存储器观察窗口,在存储器观察窗口的‘Address:’栏中输入D:30H(或0x30)则显示片内RAM30H后的内容,如图1-12所示。如果输入‘C:’表示显示代码存储器的内容,‘I:’表示显示内部间接寻址RAM的内容,‘X:’表示显示外部数据存储器中的内容。(3)将光标移到SJMP$语句行,点击命令,在此行设置断点。(4)接下来点击命令,运行实验程序,当程序遇到断点后,程序停止运行,观察存储器中的内容,如图1-13所示,验证程序功能。(5)如图1-12所示,在命令行中输入‘ECHARD:30H=11H,22H,33H,44H,55H’后回车,便可以改变存储器中多个单元的内容,如图1-14所示。图1-13运行程序后存储器窗口图1-14修改存储器内容(6)修改存储器的内容的方法还有一个,就是在要修改的单元上点击鼠标右键,弹出快捷菜单,如图1-15所示,选择‘ModifyMemoryatD:0x35’命令来修改0x35单元的内容,这样每次只能修改一个单元的内容。图1-15存储器修改单元注意事项1.新建项目或源程序的路径名和文件名不能使用中文,项目和文件不能存放在桌面上。2.源程序编译出错时,请先检查(1)相应程序行中字母o和数码0是否用混了。(2)标点符号(尤其是“,”和“:”)是否是全角字符。4.不同实验内容的源程序(*.asm)不能加到同一个项目中,若已经加上,请单击“项目工作区”中相应文件的文件名,再按鼠标右键,选择“RemoveFile…”,确认后即可从项目中移除相应文件。实验一汇编语言的应用及KeilC编译环境一、实验目的熟悉51指令系统,掌握程序设计方法。二、实验内容1、通过执行程序中的相关指
本文标题:单片机实验proteus版(2015)
链接地址:https://www.777doc.com/doc-2594338 .html