61 汇编源程序的建立与编译611 Proteus中的源程序设计与.ppt
《61 汇编源程序的建立与编译611 Proteus中的源程序设计与.ppt》由会员分享,可在线阅读,更多相关《61 汇编源程序的建立与编译611 Proteus中的源程序设计与.ppt(118页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、6.1 汇编源程序的建立与编译6.1.1 Proteus中的源程序设计与编译6.1.2 Keil Vision中的源程序设计与编译6.2 Proteus与单片机电路的交互式仿真与调试6.2.1 加载目标代码6.2.2 单片机系统的Proteus交互仿真6.2.3 调试菜单与调试窗口6.2.4 观察窗口6.3 I/O口输入输出应用6.3.1 Proteus电路设计6.3.2 源程序设计6.3.3 Proteus调试与仿真6.3.4 总结与提示6.4 44矩阵式键盘识别技术6.4.1 Proteus电路设计6.4.2 源程序设计6.4.3 Proteus调试与仿真6.4.4 总结与提示6.5 动态
2、扫描显示,6.5.1 Proteus电路设计6.5.2 源程序设计6.5.3 Proteus调试与仿真6.5.4 总结与提示6.6 88点阵LED显示6.6.1 Proteus电路设计6.6.2 源程序设计6.6.3 Proteus设计与仿真6.6.4 总结与提示6.7 I/O口的扩展6.7.1 Proteus电路设计6.7.2 源程序设计6.7.3 Proteus调试与仿真6.7.4 总结与提示6.8 定时器/计数器实验6.8.1 Proteus电路设计6.8.2 源程序设计6.8.3 Proteus设计与仿真,6.8.4 总结与提示6.9 外部数据存储器扩展6.9.1 Proteus电路设
3、计6.9.2 源程序设计6.9.3 Proteus调试与仿真6.9.4 总结与提示6.10 外部中断实验6.10.1 Proteus电路设计6.10.2 源程序设计6.10.3 Proteus调试与仿真6.10.4 总结与提示6.11 单片机与PC机间的串行通信6.11.1 Proteus电路设计6.11.2 源程序设计6.11.3 Proteus调试与仿真6.11.4 总结与提示6.12 单片机与步进电机的接口技术,6.12.1 Proteus电路设计6.12.2 源程序设计6.12.3 Proteus调试与仿真6.12.4 总结与提示6.13 单片机与直流电动机的接口技术6.13.1 Pr
4、oteus电路设计6.13.2 源程序设计6.13.3 Proteus调试与仿真6.13.4 总结与提示6.14 基于DAC0832数模转换器的数控电源6.14.1 Proteus电路设计6.14.2 源程序设计6.14.3 Proteus调试与仿真6.14.4 总结与提示6.15 基于ADC0808模数转换器的数字电压表6.15.1 Proteus电路设计6.15.2 源程序设计6.15.3 Proteus调试与仿真6.15.4 总结与提示,第6章 MCS-51单片机接口基础,MCS-51系列单片机在很多产品中得到了广泛的应用。在具体的工程实践中,单片机应用技术所涉及的实践环节较多,且硬件投
5、入较大,如果因为控制方案有误而进行相应的开发设计,会浪费较多的时间和经费。Proteus仿真软件很好地解决了这些问题,它可以像Protel一样绘制硬件原理图并实现硬件调试,再与Keil编程软件进行联调,实现对控制方案的验证。尤其对于初学单片机的用户提供了极大的方便。,6.1 汇编源程序的建立与编译,Keil是德国Keil公司开发的单片机编译器,是目前最好的51单片机开发工具之一,可以用来编译C源代码和汇编源程序、连接和重定位目标文件和库文件、创建HEX文件、调试目标程序等,是一种集成化的文件管理编译环境。在Proteus中,可以直接与Keil编程软件进行联调,进而实现对所设计电路的验证。,6.
6、1.1 Proteus中的源程序设计与编译,Proteus VSM提供了简单的文本编辑器,用它作为源程序的编辑环境。对于不同系列的单片机,VSM均提供了相应的编译器,使用时可根据单片机的型号和语言要求来选取。编译器有以下几种:ASEM51(51系列单片机编译器);ASM11(Motorola单片机编译器);AVRASM(Atmel AVR系列单片机编译器);AVRASM32(Atmel AVR系列单片机编译器);MPASM(PIC单片机编译器);MPASMSWIN(PIC单片机编译器)。1. 建立源程序文件在Proteus ISIS界面中单击菜单Soure(源程序),在弹出的下拉菜单中单击“A
7、dd/Remove Source Files”(添加/移开源程序)选项,弹出如图6-1所示对话框,,单击“Code Generation Tool”(目标代码生成工具)下方框中按钮,弹出下拉菜单,根据需要选择相应的编译器,例如“ASEM51”(51系列单片机编译器)。,图6-1 Add/Remove Source Code Files对话框,在图6-1中单击“New”按钮,弹出如图6-2所示的对话框,在文件名框中输入新建源程序文件名“mydesign”,单击“打开”按钮,弹出图6-2中所示的小对话框,选择“是”按钮,新建的源程序文件就添加到图6-1中的“Source Code Filename
8、”方框中,如图6-3所示。同时在ISIS界面的“Source”菜单中也加入了源程序文件名“mydesign.asm”,如图6-4所示。,图6-2 新建源程序文件对话框,图6-3 源程序添加结果,图6-4 菜单Source中加载的源程序文件,2. 编写源程序代码单击菜单【Source】【mydesign.asm】,出现图6-5所示的源程序编辑窗口。编写源程序后存盘退出。,图6-5 源程序编辑窗口,3. 源程序编译 (1) 编译器设置。第一次使用编译器时需进行相关的设置,单击菜单【Source】【Define Code Generation Tools】,出现图6-6所示界面,本例中实际设置结果如
9、图6-6所示 (2) 编译源程序,生成目标代码文件。单击【Source】【Build All】,编译结果在弹出的编译日志对话框中。如果没有错误便成功生成目标代码“.hex”文件。本例中生成的目标代码文件为“MYDESIGN.HEX”。,图6-6 编译器设置界面,6.1.2 Keil Vision中的源程序设计与编译,在Keil集成开发环境下使用工程的方法来管理文件,而不是单一文件的模式,所有的文件包括源程序(如C程序、汇编程序)、头文件等都可以放在工程项目文件里统一管理。对于刚刚使用Keil的用户,一般可以按照下面的步骤来创建一个自己的应用程序:(1) 一个工程项目文件;(2) 选择目标器件(
10、例如,选择ATMEL公司的AT89C51);,(3) 为工程项目设置软硬件调试环境;(4) 创建源程序文件并输入程序代码;(5) 保存创建的源程序项目文件;(6) 把源程序文件添加到项目中。具体如何建立应用程序并进行仿真调试,我们将通过实验来详细说明。1. 建立一个项目双击桌面快捷图标即可进入如图6-7所示的集成开发环境编辑操作界面,主要包括三个窗口:工程项目窗口、编辑窗口和输出窗口。单击 Project 菜单,在弹出的下拉菜单中选中“New Project”选项,新建一个项目,如图6-8所示。,图6-7 Vision2编辑操作界面,图6-8 Project界面,然后选择要保存的路径,输入工程
11、文件的名字(比如保存到uv目录里,工程文件的名字为“shiyan1”),如图6-9所示,然后单击“保存”按钮。这时会弹出一个对话框,要求选择单片机的型号。这里可以根据所使用的单片机来选择,Keil几乎支持所有51核的单片机,这里以Atmel的89C51来说明,如图6-10所示。,图6-9 Project保存设置界面,图6-10 选择器件,首先选择Atmel公司,然后单击左边的“+”号选择AT89C51 之后,右边栏 是对这个单片机的基本说明,然后单击“确定”,在随后弹出的对话框单击“否”。完成以上步骤后,屏幕如图6-11所示,首先进行选项设置,将鼠标指针指向“Target 1”并单击右键,再从
12、弹出的右键菜单中单击“Options for Target”选项,如图6-12所示。,图6-11 初始化编辑界面,从弹出的“Options”对话框中选择“Output”标签栏,并按如图6-13所示设置其中各项。,图6-12 选择“Options for Target”选项,图6-13 “Output”标签栏,2. 建立一个新的ASM汇编语言程序并编译,下面开始编写源程序。(1) 在菜单栏中,单击“File”菜单,再在下拉菜单中单击“New”选项,或直接单击工具栏的快捷图标来建立了一个新的编辑窗口。此时光标在编辑窗口里闪烁,这时可以输入用户的应用程序了。建议首先保存该空白文件,单击菜单上的“Fi
13、le”,在下拉菜单中选中“Save As”选项,在弹出对话框的“文件名”栏右侧编辑框中,输入欲使用的文件名,同时,必须输入正确的扩展名,如“Text1.asm”,然后,单击“保存”按钮,如图6-14所示,注意:如果用语言编写程序,则扩展名为“.c”;如果用汇编语言编写程序,则扩展名为“.asm”,且必须添加扩展文件名。(2) 回到编辑界面后,单击“Target 1”前面的“”号,然后在“Source Group 1”上单击右键,弹出如图6-15所示的快捷菜单。,图6-14 保存源程序,然后单击“Add File to GroupSource Group 1”,打开如图6-16所示对话框,在“文
14、件类型”处默认为“C Source file(*.c)”,因为前面我们保存的是汇编语言的文件,故需要选择“Asm Source file(*.s*;*.src;*.a*)”,这样在上面就可以看到刚才保存的汇编语言文件“Text1.asm”,双击该文件则自动添加至项目,单击“Close”关闭对话框。对比图6-17和图6-15,可以看出二者的不同点:在添加了汇编语言文件后,在“Source Group 1”文件夹前面出现了一个“+”号,单击“+”号展开就看到了刚才添加的“Text1.asm”文件。,图6-15 弹出右键菜单,(3) 然后就可以在右侧的编辑区输入汇编源程序了。在输入指令时,读者可以看
15、到事先保存待编辑文件的好处:Keil会自动识别关键字,并以不同的颜色提示用户加以注意,这样会使用户少犯错误,有利于提高编程效率。程序输入完毕后别忘了再次保存,如图6-18所示。,图6-16 添加文件对话框,图6-17 添加文件后工程栏的变化,(4) 程序文件编辑完毕后,单击“Project”菜单,选中“Built target”选项(或者使用快捷键 F7),或者单击工具栏的快捷图标来进行编译,如图6-19所示,图6-18 程序输入完毕后状态,图6-19 编译菜单,(5) 如果有错误,则在最后的输出窗口中会出现所有错误所在的位置和错误的原因,并有“Target not created”的提示。双
16、击该处的错误提示,在编辑区对应错误指令处左面出现蓝色箭头提示,然后对当前的错误指令进行修改,如图6-20所示,图6-20 错误提示,(6) 将所有提示过的错误进行修改,然后再次重复(4)的操作进行编译,直至出现“shiyan1 - 0 Error(s), 0 Warning(s)”,说明编译完全通过,如图6-21所示。,图6-21 编译通过提示,3. 调试并仿真,编译成功后,就可以进行调试并仿真了。单击“Project”菜单,在下拉菜单中单击“Start/Stop Debug Session”(或者使用快捷键 Ctrl+F5),或者单击工具栏的快捷图标就可以进入调试界面,如图6-22所示,图6
17、-22 调试界面,左面的工程项目窗口给出了常用的寄存器r0-r7以及a、b、sp、dptr、pc、psw等特殊功能寄存器的值。在执行程序的过程中可以看到,这些值会随着程序的执行发生相应的变化。在存储器窗口的地址栏处输入C:0000H后回车,则可以观看所有单片机片内程序存储器的内容,如图6-23所示,下面用横线画出来的部分就是已经编辑的源程序转化成的机器语言的十六进制数(或者说是对应的机器码)。如果在存储器窗口的地址栏处输入D:00H后回车,则可以观看所有单片机片内数据存储器的内容,图6-23 存储器窗口,在联机调试状态下可以启动程序全速运行、单步运行、设置断点等,单击菜单“Debug /Go”
18、选项,启动用户程序全速运行。下面介绍几种常用的调试命令及方法。(1) 复位CPU用“Debug”菜单或工具栏的“Reset CPU”命令可以复位CPU。在不改变程序的情况下,若想使程序重新开始运行,执行此命令即可。执行此命令后程序指针返回到000H地址单元。另外,一些内部特殊功能寄存器在复位期间也将重新赋值。例如,A将变为00H,DPTR变为0000H,SP变为07H,I/O口变为0FFH。,(2) 全速运行(F5)用“Debug”工具栏的“Go”或快捷命令“Run”命令按钮,即可实现全速运行程序。当然若程序中已经设置断点,程序将执行到断点处,并等待调试指令。(3) 单步跟踪(F11)用“De
19、bug”工具栏的“Step”或快捷命令“StepInto”命令按钮,可以单步跟踪程序。每执行一次此命令,程序将运行一条指令(以指令为基本执行单元)。当前的指令用黄色箭头标出,每执行一步箭头都会移动,已执行过的语言呈绿色。在汇编语言调试下,可以跟踪到每一个汇编指令的执行。Vision2处于全速运行期间,Vision2不允许对任何资源的查看,也不接受其他命令。,(4) 单步运行(F10)用“Debug”工具栏的“Step Over”或快捷命令“Step Over”按钮,即可实现单步运行程序,此时单步运行命令将把函数和函数调用当作一个实体来看待,因此单步运行是以语句(该语句不管是单一命令行还是函数调
20、用)为基本执行单元。(5) 执行返回(Ctrl+F11)在用单步跟踪命令跟踪到子函数或子程序内部时,使用“Debug”菜单栏中的“Step Out of Current Function”或快捷命令按钮“Step Out”,即可将程序的PC指针返回到调用此子程序或函数的下一条语句。(6) 停止调试(Ctrl+F5)由于“Led_Light”程序使用了系统资源P1口,为了更好地观察这些资源的变化,用户可以打开它们的观察窗口。选择“PeripheralsI/O-PortsPort1”命令,即可打开并行I/O口P1的观察窗口。,6.2 Proteus与单片机电路的交互式仿真与调试,6.2.1 加载目
21、标代码,双击单片机AT89C51,打开其属性编辑框,在“Program File”栏中,单击打开按钮,选取目标代码文件,这里是“MYDESIGN.HEX”。在“Clock Frequency”栏中设置时钟频率为12MHz,如图6-25所示。因为仿真运行,在Proteus ISIS界面中编辑电路原理图实例,如图6-24所示,图6-24 实例电路原理图,时的时钟频率是以单片机属性中设置的频率值为准,所以在Proteus ISIS界面中设计电路原理图时,可以略去单片机的时钟电路。另外,复位电路也可略去。对于MCS-51系列单片机而言,在不进行电路电气检测时,EA引脚也可悬空。,图6-25 加载目标代
22、码文件和时钟设置,6.2.2 单片机系统的Proteus交互仿真,在Proteus仿真界面中单击按钮,全速启动仿真,此时电路中的LED不亮。用鼠标单击电路图中的按钮,进行交互仿真。单击一次按钮,LED灯亮,再单击一次,LED灯灭,如此循环交替。本实例仿真片段如图6-26所示。单击仿真按钮,可停止仿真。,图6-26 实例仿真片段,6.2.3 调试菜单与调试窗口,系统在全速仿真运行时不显示调试窗口,可单击暂停按钮,然后单击Proteus ISIS界面的“Debug”菜单,弹出如图6-27所示的下拉菜单。从图中可以看出,调试菜单包含有3个存储器窗口,调试过程中可分别打开这3个存储器窗口进行观察。1.
23、 单片机寄存器窗口通过菜单【Debug】【8051 CPU Registers-U1】打开单片机寄存器窗口,如图6-28所示。里面有常用的SFR,如SP、PC、PSW、R0R7、ACC及将要执行的指令等。在本窗口内右击,可以设置窗口的字体和颜色。,2. 单片机SFR 窗口通过菜单【Debug】【8051 CPU SFR Memory-U1】打开单片机的SFR窗口,如图6-29所示。,图6-27 “Debug”下拉菜单,3. 单片机IDATA窗口通过菜单【Debug】【8051 CPU Internal(IDATA)Memory-U1】打开单片机的IDATA窗口,如图6-30所示。对于单片机的S
24、FR寄存器,既可以从单片机的寄存器窗口中查看,也可以在SFR寄存器窗口中查看。在SFR、IDATA窗口中右击,可弹出该窗口的设置菜单,如图6-31所示。可使用“Goto”命令快速运动到指定的显示单元,还可复制数据或改变显示方式等。,图6-28 单片机寄存器窗口,图6-29 单片机SFR窗口,图6-30 单片机IDATA窗口,图6-31 单片机IDATA窗口的快捷菜单,6.2.4 观察窗口,虽然通过以上方法可以观察单片机各个存储器的内容,但因显示内容比较分散,观察起来不方便。对此,Proteus又同时提供了一个观察窗口“Watch Window”,它可以将所关心的各项寄存器的内容集中于一个窗口中
25、,观察起来十分方便,克服了上述缺点。1. 观察项添加通过菜单【Debug】【Watch Window】打开空白的观察窗口,在观察窗口内右击,弹出快捷菜单,如图6-32所示。由该菜单可添加、删除观察项,设置观察项的数据类型,显示格式以及设置窗口的字体、颜色等。,若单击“Add Items(By Name)”项,便会弹出如图6-33所示的对话框,双击相应的SFR寄存器名称,即可以观察项名称方式将观察项添加到观察窗口中。也可选择以观察项的地址来添加观察项的方式。添加了观察项的观察窗口如图6-34所示。,图6-32 观察窗口及快捷菜单,2. 观察项删除要删除已添加的观察项,有两种方法:在观察窗口单击选
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 61 汇编源程序的建立与编译611 Proteus中的源程序设计与 汇编 源程序 建立 编译 611 Proteus 中的 设计
限制150内