新13
- 格式:doc
- 大小:1.06 MB
- 文档页数:28
第13章单片机汇编语言综合实训知识点:✧在实验过程中掌握汇编语言调试方法。
✧实训项目没有提供源代码,在实训过程中掌握汇编语言编程和调试。
在单片机学习过程中,编程和调试是非常重要的一环。
在学习了单片机的基本原理后,本章主要以实验和实训的形式让读者更深入地理解单片机,真正做到学以致用。
13.1 单片机开发实验板EZ_SP简介EZ_SP是编者针对单片机初学者开发设计的一款单片机学习开发板。
本开发板已经应用于单片机教学、实验和实训中,使用本开发板能使开发者迅速掌握MCS-51单片机的软硬件设计,大大缩短了产品开发周期。
本开发板也非常适合在校学生和广大单片机爱好者进行学习研究。
EZ_SP开发板硬件资源包括:●8个发光二极管,通常作为程序调试信息的输出或者状态量的显示,用于交通灯模拟实验。
●8个数码管,可用于计数器或时钟显示。
●片外数据存储器(6264),用于数据采集需要较大的数据存储器的场合。
●I2C总线结构的E2PROM(24LC256),可以在断电情况下保存用户数据。
●128×64的液晶点阵。
●模数和数模变换(AD0809、AD0832),用于对外部输入信号采样和数据处理后输出模拟信号驱动外部设备。
●4×4的编码键盘和8个非编码键盘,用来作为人机交互接口的信息输入。
●一个RS232串行接口,用来实现计算机与单片机联机通信。
●利用74LS138、74LS373、74LS244、74LS245扩展I/O接口。
●单片机可以利用市场上常用的AT89SXX系列芯片,直接支持在线编程。
EZ_SP开发板采用模块化结构设计,每个模块的输出引脚均以排针形式引出,保证系统完全对用户开放,用户在使用开发板时,只需要按照实验要求,利用排线将各模块单元的输出引脚连接,即可方便可靠地完成实验。
第13章单片机汇编语言综合实训26713.2 MCS-51单片机实验实验一单片机开发系统及使用1.实验目的(1)熟悉单片机仿真开发系统的使用方法,掌握其基本功能与操作过程。
(2)通过对典型程序的调试操作训练,掌握调试的基本方法。
2.实验内容:单片机仿真软件(WAVE)的使用双击桌面上的W A VE图标或执行“开始”→“程序”→W A VE命令进入开发环境,如图13-1所示。
由于篇幅关系,此处仅介绍该软件的常用功能,若想更深入地了解该软件,可以查看该软件的帮助文件。
图13-1 WA VE开发环境3.仿真器设置在实验开始时要先根据需要设置好仿真器类型、仿真头类型以及CPU类型,执行“仿真器”→“仿真器设置”命令,出现“仿真器设置”对话框,如图13-2所示。
单片机原理及基于单片机的嵌入式系统设计268WA VE仿真环境提供软仿真和硬仿真两种方式。
使用软件仿真器,可以在完全脱离硬件仿真器的环境下对软件进行模拟执行。
软仿真和硬仿真的选择可以通过图13-2中的“使用伟福软件模拟器”复选框来实现。
若使用硬件仿真,请注意去掉“使用伟福软件模拟器”前的选择。
但是不论软仿真还是硬仿真,“选择仿真器”、“选择仿真头”、“选择CPU”三个列表框项都应该设置。
4.开发环境简介(1)文件菜单的使用。
单击“文件”菜单,出现如图13-3所示的下拉菜单。
在汇编语言编译环境下,文件菜单中的打开文件、新建文件、保存文件菜单项较常用,其他菜单功能基本不用。
图13-2 “仿真器设置”对话框图13-3 “文件”菜单(2)编辑、搜索菜单的使用。
编辑、搜索菜单的使用与大多数可视化软件的使用方法相同,这里不再赘述。
(3)项目菜单的使用。
单击“项目”菜单,出现如图13-4所示的下拉菜单。
在汇编编译环境下,只利用其“编译”功能,其他功能很少使用。
当单击“编译”按钮或按快捷键F9时,编译当前窗口的程序,如有错误,系统会在信息窗中指出错误所在的位置。
(4)执行菜单的使用。
单击“执行”菜单,出现如图13-5所示的下拉菜单。
全速执行、跟踪、单步、暂停、复位功能在调试过程中被广泛使用。
单步与跟踪不同的是:跟踪可以进入函数或过程的内部,观察程序执行的每一步,而单步不能跟踪到程序内部。
“暂停”用于停止当前正在全速执行的程序,“复位”用于终止调试过程,程序将被复位。
第13章单片机汇编语言综合实训269 图13-4 “项目”菜单图13-5 “执行”菜单(5)窗口菜单的使用。
单击“窗口”菜单,出现如图13-6所示的下拉菜单。
在此可以观察各种窗口的信息,其中最常用到的是CPU窗口和数据窗口。
1)CPU窗口。
通过CPU窗口可以打开反汇编、SFR、寄存器窗口,用户可以看到反汇编程序,可以更清楚地了解程序的执行过程。
通过查看SFR窗口和寄存器窗口的内容可以了解程序执行过程中各寄存器内容的变化。
2)数据窗口。
对51系列CPU来说,数据窗口菜单如图13-7所示,数据窗口主要有DATA (内部数据窗口)、CODE(程序数据窗口)、XDA TA(外部数据存储器窗口)、PDATA(外部程序存储器窗口)、BIT(位变量窗口)。
打开相应的窗口,可以查看相应存储单元的内容,调试程序主要通过查看相应存储单元的内容来判断用户程序是否正确。
图13-6 “窗口”菜单图13-7 数据窗口菜单实验二存储器块清零1.实验目的(1)掌握存储器读写方法。
(2)了解存储器的块操作方法。
2.实验内容(1)指定内部RAM中某块的起始地址和长度,要求能将其内容清零。
(2)指定外部RAM中某块的起始地址和长度,要求能将其内容清零。
(3)指定外部RAM中某块的起始地址和长度,要求能将其内容置为某固定值(如0FFH)或符合某种规律的值,如顺序加1或减1操作等。
3.参考程序流程图根据实验内容,给出本实验参考程序流程图如图13-8所示,该流程图没有区分51单片机访问片内RAM或片外RAM所用指令的不同,仅给出片内RAM或片外RAM数据块单元清单片机原理及基于单片机的嵌入式系统设计270零的参考程序流程图,至于将外部RAM的内容置为某固定值(如0FFH)或符合某种规律的值,如顺序加1或减1操作等的流程图与图13-8所示的基本类似,仅需要修改“当前内容清零”子程序,请读者自行绘出。
4.参考程序下面的源代码为将片外RAM数据块清零程序,对于实验内容中将片内RAM数据块清零和片外将外部RAM的内容置为某固定值(如0FFH)或符合某种规律的值,如顺序加1或减1操作等的源代码由读者自行编制。
图13-8 参考程序流程图ADDR EQU 1000HLEN EQU 30HORG 0000HLJMP MAINMAIN: MOV DPTR,#ADDR ;起始地址MOV R0,LEN ;设置块长度CLR A;LOOP: MOVX @DPTR,AINC DPTR ;指向下一个地址DJNZ R0,LOOP ;是否已全部清零LJMP $END第13章单片机汇编语言综合实训271 实验三二进制到BCD的转换1.实验目的(1)掌握简单的数值转换算法。
(2)基本了解数值的各种表达方法。
2.实验内容(1)将给定的一个单字节二进制数转换成非压缩的二—十进制(BCD)码。
(2)将给定的一个单字节二进制数转换成压缩的二—十进制(BCD)码。
3.参考程序流程图根据实验内容,给出本实验参考程序流程图如图13-9所示,该流程图实现将给定的一个单字节二进制数转换成非压缩的二—十进制(BCD)码的功能,至于将给定的一个单字节二进制数转换成压缩的二—十进制(BCD)码的程序流程图,读者仅需要增加将非压缩的二—十进制(BCD)码转换成压缩的二—十进制(BCD)码的部分即可。
图13-9 参考程序流程图4.参考程序下面的源代码是按图13-9所示的参考程序流程图编制的,读者在理解该段程序的基础上,可以自行增加将非压缩的二—十进制(BCD)码转换成压缩的二—十进制(BCD)码的程序段。
ORG 0000HLJMP MAIN单片机原理及基于单片机的嵌入式系统设计272MAIN: MOV A, R3 ;R3中存给定的一个单字节二进制数MOV B, #100DIV AB ;除以100MOV R4, A ;存百位数于R4MOV A,B ;取余数MOV B, #10DIV AB ;除以10MOV R5, A ;存十位数于R5MOV R6, B ;存个位数于R6END实验四多字节乘法程序1.实验目的(1)掌握汇编程序编写的格式。
(2)掌握运算类指令的功能。
2.实验内容编写一个被乘数为三字节(存放在内存地址单元30H、31H、32H中)、乘数为单字节(存放在内存地址单元33H中)的乘法程序,运算结果存放在内存地址单元50H、51H、52H、53H、54H中。
利用仿真软件,给出被乘数和乘数,运行后观察结果。
3.参考程序算法框图如图13-10所示给出了多字节程序的参考程序算法框图,读者可以在该算法框图的基础上编制相应的程序流程图。
30H31H32H×33H44H45H42H43H+40H41H50H51H52H53H54H第13章单片机汇编语言综合实训273图13-10 参考程序算法框图4.参考程序下面的源代码给出了一个被乘数为三字节、乘数为单字节的乘法程序,读者可以在理解程序的基础上,在W A VE软件下,通过修改被乘数和乘数的值、设置断点来查看相应的输出结果,同时读者可以尝试编写两个三字节数的乘法程序。
ORG 0000HLJMP MAINMAIN: MOV A, 32HMOV B, 33HMUL ABMOV 45H, AMOV 44H, BMOV 54H, 45HMOV A, 31HMOV B, 33HMUL ABMOV 43H, AMOV 42H, BADD A, 44HMOV 53H, AMOV A, 30HMOV B, 31HMUL ABMOV 41H, AMOV 40H, BADDC A, 42HMOV 52H, AMOV A, 40HADDC A, #00HMOV 51H, ACLR ARLC AMOV 50H, AEND单片机原理及基于单片机的嵌入式系统设计274 实验五 I/O 口亮灯实验1.实验目的(1)学习I/O 口的使用方法。
(2)学习延时子程序的编写。
2.实验内容单片机的四个I/O 口为准双向口,每一位都可独立定义为输出和输入。
在该程序中需要读者完成如下实验内容:(1)P0口作为输出口时,必须外接上拉电阻。
(2)单片机的四个I/O 口作为输入方式时,有读端口和读锁存器两种方式,调试两种方式的不同。
(3)单片机的四个I/O 口的任意八位端口作为输出口,接8只发光二极管,要求编写程序使发光二极管循环点亮,本实验中延时子程序采用指令循环来实现。
3.参考程序框图如图13-11所示仅给出了利用P1口接8个发光二极管并依次点亮它们的程序流程图。
4.参考程序下面的源代码仅给出了利用P1口接8个发光二极管并依次点亮它们的源程序,对于本实验的其他实验内容读者可以结合本书第8章的内容自行编写相关程序在开发板上调试验证。