51系列单片机实验系统指导书.docx
- 文档编号:3639407
- 上传时间:2022-11-24
- 格式:DOCX
- 页数:76
- 大小:303.84KB
51系列单片机实验系统指导书.docx
《51系列单片机实验系统指导书.docx》由会员分享,可在线阅读,更多相关《51系列单片机实验系统指导书.docx(76页珍藏版)》请在冰豆网上搜索。
51系列单片机实验系统指导书
51系列单片机实验系统指导书
目录
前言
第1章下载式实验系统的使用方法
1.1软件安装与启动
1.1.1
1.1.2文件操作
1.1.3建立工程项目(汇编)
1.1.4调试程序
第2章软件实验
2.1数据传送实验
2.2清0实验
2.3数据转换实验
2.4拆字、拼字实验
2.5散转程序实验
2.6时钟实验
2.7计数器实验
2.8无符号十进制数加法实验
2.9数据排序实验
2.10单字节BCD码除法实验
2.11查找相同个数实验
第3章硬件实验
3.1P1口彩灯控制实验
3.2数码管显示实验
3.3顺序控制实验
3.48031和8155接口扩展与数码管显示实验
3.5键盘、数码管显示综合实验
3.6A/D转换实验
3.7D/A转换实验
3.8A/D与D/A转换综合实验
第4章89C51系列实验
4.1顺序控制实验
4.2数码管显示实验
4.3键盘、数码管显示综合实验
4.4A/D转换实验
4.5D/A转换实验
前言
目前,51系列单片机在我国的各行各业得到了广泛应用,各大专院校、职业培训学校,均开设了单片机原理与应用方面的课程,这是一门技术性和实践性很强的学科,必须通过一系列的软硬件实验、理论联系实际,才能学好、学懂,取得较好的学习效果。
为了适应这一学习上的要求,国内外厂家开发了多种实验、开发系统,但普遍存在集成度高,严重脱离实际的情况。
作者集多年理论教学、实验教学、产品开发的经验,完全摒弃了以前各种实验设备的那种思维模式,重新开发出一种实验、开发系统,专从产品开发角度出发,安排各种硬件实验,并且做到每一个实验就是一个小产品,每个实验就是一个产品开发的过程,从单片机最小系统开始,逐步扩展功能,从单一功能到功能多样,从小到大,从简单到复杂,自成系统给人一种完整的学习思路,让学习者概念清晰、直观明了、易学易懂,特别是加强了硬件故障排除方法的指导,解决了学习者中普遍对硬件故障排除难的问题;其次是加强了软件调试的指导,提供了一些软件调试方法和步骤,帮助初学者很快入门,帮助熟练者更加深化。
本实验系统采用模块式设计,为各学校单片机的课程设计、学生的毕业设计、提供了硬件设备,该模块可反复使用、任意组合、方便经济,解决了各单位研究与实验经费不足的问题。
特别在开发产品中更加适用,一个产品谈妥后厂家往往要求几天之内拿出产品样机,你可用此系统很快拼装成一个产品样机,供编程人员仿真,同时进行印制板设计。
若出现问题,硬件可及时修改、添加,一切开发成功后,再作印制板,一次成功,减少经费损失,缩短了开发周期,为产品开发提供了方便。
本实验指导书分四章:
第1章,下载式实验系统的使用;第2章,软件实验;第3章,硬件实验;第4章,89C51单片机实验,特别第4章完全讲解的是一个产品开发的全过程,力求使学习者获得更大的收益。
第1章下载式实验系统的使用方法
1.1软件安装与启动
下载式实验系统,是一套既可脱离硬件仿真又可与实验系统联机仿真的实验装置,对于硬件实验,只要将软件调试好后就可将程序用串行口直接在线写入芯片,再不必象以前那样要专用的编程器来固化程序。
1.1.1软件安装
1.为使QTH调试器能够正常运行,您必须提供以下软硬件环境:
586以上的PC及兼容机;100M以上的剩余硬盘空间;分辨率为800×600以上的显示器;具有SPP功能的打印机接口;使用符合Intel标准的汇编器、编译器和连接器。
如Franklin/KeilV3.2或keilV6.02及以上版本。
2.使用:
单击开始/程序,在程序条中选QTH2008XS下载式单片机实验仪V2004.1或直接双击桌面上QTH-2008XS快捷图标。
图1-1连机出错提示框
如果已经连接仿真器或实验仪,则直接进入QTH调试器窗口。
如果没有连接仿真器,等一下屏幕上会出现图1-1所示的连机出错提示框:
可以选择是否进入模拟调试:
“是”——进入调试;“否”——请检查并使仿真器正常工作后,再按调试菜单上的复位钮,进入仿真调试。
出现如图1-2所示的模拟调试器窗口:
图1-2模拟调试器窗口
1.2系统使用方法
学习单片机的最终目的是开发单片机产品或维修单片机产品,开发一个产品必须经历硬件设计和软件设计两个阶段。
而实验系统是将一些简单的实用电路已设计好。
再在该系统中编写程序,调试程序,编写调试程序又必须经历写程序;编译程序;调试程序三个大的过程,每一个过程又有很多步骤和方法。
写程序有程序输入、程序修改、程序保存。
编译程序有成功与否,不成功要反复修改,成功后会自动生成列表文件(.LST)和目标文件(.OBJ),可进行调试程序,调试过程较复杂,下面分别叙述。
首先在图1-2所示的窗口中可进行程序编写或打开已编好的程序,若编写新的程序则在主菜单中单击“文件/新建”,若打开编好的程序,则在主菜单中单击“文件/打开”,现打开一个编好的文件(P1.ASM),出现如图1-3所示的模拟调试器窗口:
图1-3模拟调试器窗口
在主菜单中有9项,即文件、编辑、查看、项目、调试、设置、外设、窗口、帮助下面将每一项及每一项的子菜单分别叙述,其中文件和编辑菜单内容一般会用,重点讨论查看、项目、调试、设置、外设、窗口,帮助一项也可自已随时使用。
1.2.1查看
主菜单的“查看”下拉菜单中的内容有:
工具栏、状态栏、寄存器窗口、程序寄存器窗口、数据寄存器窗口、逻辑分析窗口、跟踪记录窗口、变量表、项目管理器窗口、信息窗口、观察窗口。
这些窗口和工具条显示在屏幕或关闭的方法都是第一次选中且单击打开(关闭)对应的选项,第二次选中且单击关闭(打开)对应的选项。
将全部打开后的屏幕窗口显示如图1-4所示:
1号窗口为综合窗口,单击本窗口下面的标签,此窗口会变换成项目管理器窗口,特殊功能寄存器窗口,内部数据存储器(00H-FFH)窗口,内部位(20H-2FH范围内的00-7F之间共计128个位)显示窗口。
随着程序的不同可以任意选择其中的一个窗口。
在项目管理器窗口和内部数据存储器(00H-FFH)窗口中单击鼠标右键有对应的浮动菜单出现,选中且单击选项可进行对应的操作。
后面的3个窗口可直接改变单元中的数值(赋值)。
②号窗口为信息窗口,该窗口是显示所有操作的信息内容,特别是在将程序进行编译或编译连接装载后,显示程序出错与否的信息,主要看错误(ERROR)和警告(WARNING)两项,特别是错误项有一个错误就不能编译通过,调试就不能进行,有警告无错误还可通过,最好显示是“0”个错误,“0”个警告。
③号窗口也是一个综合窗口,单击本窗口下面的标签,此窗口会变换成代码(Code)窗口,外部程序(XData)存储器窗口,数据(Data)存储器窗口。
随着程序的不同可以任意选择其中的一个窗口进行观察。
图1-4模拟调试器窗口
在每一个窗口中单击鼠标右键有对应的浮动菜单出现,选中且单击选项可进行对应的操作。
例如在外部程序(XData)存储器窗口中单击鼠标右键出现浮动菜单,要看指定的单元中的内容,选中浮动菜单中“选择显示地址”且单击出现地址对话窗口,在窗口中输入要看的地址,对应的地址项马上出现在本窗口中,解决了查找之苦。
所有窗口可直接改变单元中的数值(赋值)。
④号窗口为观察窗口,有时要观察的值太多,可将要观察的值选定到此窗口中进行观察,方法是:
在此窗口中单击鼠标右键出现浮动菜单,选中浮动菜单中“增加观察项”且单击出现如图1-5所示的对话窗口,按窗口中的要求选中对应的各项,选中的变量
图1-5模拟调试器窗口
马上出现在④号窗口中。
⑤主窗口,程序所在的窗口,也有浮动菜单,为调试程序提供了方便。
从上可见观察内容很多,一个屏幕上不可能容纳这么多内容,有的时候窗口很大,就需要用窗口调整指令来调整好各个窗口位置大小。
窗口整体移动的方法是用鼠标单击上边框条,上边框变蓝,将鼠标左键按住整体移动,鼠标整个窗口一起移动,放到合适位置,松开鼠标就行。
窗口四边分别收缩或放大的方法是,将鼠标点击窗口边线,出现左右或上下形式的箭头(注意此箭头一晃而过要认真捕捉),马上按住鼠标左键整体移动鼠标,边线就跟着移动,移至合适位置,松开鼠标就行,有些窗口为竖式长方形,有些窗口为横式长方形,若要调整它的形状,用窗口命令就行。
1.2.2项目
项目菜单为解决多个程序组合或混合编程(汇编语言C语言)的问题而设置。
单击主菜单中项目,出现下拉菜单,在下拉菜单中有新建项目、打开项目、关闭项目、项目属性、编译当前文件、编译连接装载、加入模块文件、加入库文件、装入调试信息。
下面重点讨论几项,其他的自已照着操作不再一一叙述。
1.新建项目
单击“项目/新建项目”,出现对话框,在框重输入文件名字,新的项目就建立了。
若有原项目,只是打开就行了(但源文件修改以后,每次就在“文件”菜单中选“保存”或用保存工具图标保存文件)。
2.编译文件
单击“项目/编译当前文件”或“项目/编译连接装载”(两种方式的区别在于前者只编译,后者既编译又将编译后的代码下载到CPU中)将新编写的或打开的程序进行编译,编译成功的话,下面的信息窗口(Massage)会出现新创建的文件名,且在窗口中出现组装完成(ASSEMBLYCOMPLETE),“0”个错误(ERROR)“0”个警告(WARNING)。
系统会自动生成列表文件和目标文件。
若编译有错,信息窗口会指出错误在什么地方,反复修改,直至编译通过为止。
注意:
若有一项错误,目标文件和列表文件就不能自动生成。
3.项目属性
单击“项目/项目属性”出现对话框,框中第一页如图1-6所示
⑴C编译器页
图1-6工程设置对话框
SMALL、COMPACT、LARGE这些指令控制存储器模式选择。
存储器模式对不同的变量定义有所影响。
SMALL:
小模式,所有函数和过程的变量及局部数据段被定义在8051片内数据存储区。
COMPACT:
紧凑模式,所有函数和过程的变量及局部数据段被定义在8051片外数据存储区中256字节。
这种模式使用(@R0、@R1)访问外部数据存储器。
LARGE:
紧凑模式,所有函数和过程的变量及局部数据段被定义在8051片内数据存储区中64K字节空间。
这种模式通过数据指针(DPTR)访问外部数据存储器。
CODE/NOCODE:
CODE指令在列表文件后附加上一个汇编记忆表,源程序中的每个函数被表示为汇编代表。
OPTIMIZE(n):
括号内n为一个0-5的十进制数,另外可选OPTIMIZE(SIZE)和OPTIMIZE(SPEED),以决定优化重点是放在代码长度上还是执行速度上。
RAM(SMALL、COMPACT、LARGE)
RAM指令用来决定程序内存的大小,它影响跳转指令的编码。
RAM(SMALL):
CALL和JMP指令作为ACALL和AJMP指令的编码,最大程序空间可达2K字节,整个用户程序必须分布在这2K字节空间内。
ROM(COMPACT):
CALL指令以LCALL编码,函数内JMP指令以AJMP编码,因此函数长度不得超过2K字节,而整个程序长度不得超过64K字节,这种用法必须根据不同的目的而决定,看其是否比标准设置ROM(LARGE)效果更佳。
ROM(LARGE):
将CALL和JMP指令以LCALL和LJMP编码。
这样就允许不加限制地使用整个地址空间,用户程序最大可达64K字节。
⑵PL/M编译器页
图1-7工程设置对话框
CODE/NOCODE:
CODE控制表明开始列出生成标准汇编语言格式地目标代码,这些汇编语言目标代码紧随源程序列表清单之后,NOCOD控制是在出现CODE控制之前,不列出所生成地目标代码清单。
注意:
NOPRINT控制不能对CODE控制有抑制作用,而且NOOBJECT中也隐含了NOCODE功能。
INTVECTOR/NOINTVECTOR
在INTVCTOR控制下,编译程序可为模块中每个中断过程产生一个字节入口的中断向量。
对中断n,中断向量入口的绝对地址为8n+3。
当然,可以用ASM51单独建立中断向量。
在选用NOINTVECTOR控制时,编译程序将不产生任何中断向量。
RAM(SMALL、MEDUIM、LARGE)
RAM指令用来决定程序内存的大小,它影响跳转指令的编码。
RAM(SMALL):
CALL和JMP指令作为ACALL和AJMP指令的编码,最大程序空间可达2K字节,整个用户程序必须分布在这2K字节空间内。
8051为提高编码密度,仅在2K块内转移和调用,尽可能不使用3个字节的调用和转移指令。
ROM(MEDUIM):
将正在进行编译的模块适合INBLOCK,而其他模块(包括来自PLM51.LIB的那些模块)可以任意安放,这样就需使一些调用成为长调用(3个字节)。
但是大多数的转移和大部分调用,仍能保持短编码形式。
ROM(LARGE):
将CALL和JMP指令以LCALL和LJMP编码。
这样就允许不加限制地使用整个地址空间,用户程序最大可达64K字节。
OPTIMIZE(n):
括号内n的可取值为一个0-3的十进制数,在产生目标代码中,该控制实现各种优化处理。
每一优化级包含了比优化级别低的所有优化处理功能。
REGISTERBANK(寄存器组控制)
其中,寄存器组值为0、1、2或3。
在代码生成中,REGISTERBANK控制将确定选用其四个8051寄存器组中的一个。
对一个含有USING属性的控制,能够由一个过程所替代,PL/M51认为,一个过程中断总是与他所中断的过程使用不同的寄存器组,因而如果在一个独立模块中为每个中断编译代码,则应在REGISTERBANK控制下编译所有非中断代码,所有的低级中断和高级中断分别处在各自寄存器组的设置下。
因此,不用USING属性也能避开引起的麻烦。
⑶连接器页
图1-8工程设置对话框
该页中其它各项已介绍,下面只讲述定位控制项:
BIT:
起始地址/段名,定位BIT段。
DATA:
起始地址/段名,定位DATA段。
IDATA:
起始地址/段名,定位IDATA段。
STACK:
段名,定位STACK段。
CODE:
起始地址/段名,定位CODE段。
XDATA:
起始地址/段名,定位XDATA段。
PDATA:
起始地址,为PDATA类型的段定义起始地址。
PRECODE:
起始地址,在寄存器和位存储区中定位段。
1.2.3.调试程序
调试程序是使用该软件的最复杂、最关键的一步,在调试之前,要进行各项操作与设置,不然下拉菜单中的各项打不开(没有从白色变成黑色)。
1.装载:
装入当前程序的调试信息。
该命令的快捷键为Ctrl+L,工具图标见由“查看/工具栏/调试工具”打开的工具条。
2.源程序调试:
进入源程序调试方式。
3.混合码调试:
对C程序进入源与汇编码的混合状态调试方式。
4.单步执行:
跟踪运行程序,在反汇编窗口下执行一条指令,如果当前是调用指令,则进入所调用的子程序;如果在源程序窗口下,执行当前文本下的一条语句,如果是调用指令则进入所调用的子程序。
该命令的快捷键为F8,工具图标见由“查看/工具栏/调试工具”打开的工具条。
5.宏单步执行:
单步运行程序。
反汇编窗口下如果是调用指令,则越过所调用的子程序;源程序窗口下,如果是调用语句,则越过所调用的子程序。
该命令的快捷键为F10,工具图标见由“查看/工具栏/调试工具”打开的工具条。
6.连续单步:
连续单步操作。
该命令的快捷键为Ctrl+F8。
7.连续宏单步:
连续宏单步操作。
该命令的快捷键为Ctrl+F10。
8.连续执行:
全速运行,遇断点停止。
该命令的快捷键为F5,工具图标见由“查看/工具栏/调试工具”打开的工具条。
9.执行到光标处:
全速运行到光标处。
该命令的快捷键为F7,工具图标见由“查看/工具栏/调试工具”打开的工具条。
10.跳出子程序:
当前执行在子程序处时,执行该命令跳出子程序。
该命令的快捷键为Shift+F11,工具图标见由“查看/工具栏/调试工具”打开的工具条。
11.设置断点:
单击“调试/设置断点”出现断点设置窗口,可设置或清除断点;设置断点属性等。
该命令的快捷键为F9。
12.复位:
复位仿真器,该命令的快捷键为Ctrl+R。
13.屏蔽断点全速运行该命令的快捷键为Ctrl+F5。
1.2.4设置(S)
1.仿真器设置:
单击“设置/仿真器设置”出现如图1-9所示的对话框,在该对话框中可设置仿真器的仿真模式。
⑴8052模式选择8052仿真模式,(EA=0)。
在此模式下可仿真采用8031/8032、80C31/80C32、8051/8052、78C32单片机的应用系统。
仿真程序存贮器模式选择栏中,可选择四种仿真存贮器模式之一:
①内程序存贮器内数据存贮器
仿真程序存贮器在仿真器上。
数据存贮器也在仿真器上,该模式在无目标板时,最初调试软件用以排除软件中的故障。
图1-9仿真模式设置对话框
②内程序存贮器外数据存贮器
仿真程序存贮器在仿真器上,数据存贮器及I/O口在用户板上。
一般采用该模式。
通过该模式进行在线测试,可排除目标板上硬件故障,并进行软件调试。
③外程序存贮器内数据存贮器
程序存贮器在用户板上(EPROM),数据存贮器在仿真器上。
该模式很少使用。
主要用于目标板缺少数据存贮器,将仿真器上数据存贮作临时使用。
④外程序存贮器外数据存贮器
程序存贮器在用户板(EPROM)上,数据存贮器及I/O口在用户板上。
该模式可进行反汇编跟踪分析目标板程序,或调试目标板上EPROM中程序。
⑵8752模式
当选择8752仿真模式,(EA=1)。
可仿真采用87C51/87C52、W78E5X、AT89C5X、LG90C5X单片机的应用系统。
仿真程序存贮器模式选择栏中,可选择四种仿真存贮器模式之一:
①内程序存贮器内数据存贮器
例如:
仿真89C528K程序存贮器,大于8K程序存贮器在仿真器上,扩展的外部数据存贮器在仿真器上。
该模式在无目标板时调试软件,用于排除软件中的故障。
②内程序存贮器外数据存贮器
例如:
仿真89C528K片内程序存贮器,大于8K程序存贮器在仿真器上,扩展的外部数据存贮器及I/O口在用户板上。
一般采用该模式。
通过该模式进行在线测试,可排除目标板上硬件故障,并进行软件调试。
③外程序存贮器内数据存贮器
例如:
仿真89C528K片内程序存贮器,大于8K程序存贮器在用户板上。
扩展的外部数据贮器在仿真器上。
该模式很少使用。
主要用于目标板缺少数据存贮器时,将仿真器上数据存贮作临时使用。
④外程序存贮器外数据存贮器
例如:
仿真89C528K片内程序存贮器,大于8K程序存贮器在用户板上。
扩展的外部数据存贮器及I/O口在用户板上。
⑶仿真器存贮空间选择
当选择8752模式时,跟据CPU片内存贮器空间有四种选择:
87C51/78E514K片内程序存贮器
87C52/78E528K片内程序存贮器
87C54/78E5416K片内程序存贮器
87C58/78E5832K片内程序存贮器
⑷主频选择
主频分仿真主频及逻辑主频两类。
仿真主频是指仿真器的仿真频率;逻辑主频是指带逻辑分析仪仿真器的采集频率。
有四种频率选择:
6MHz、12MHz、24MHz对于(QTH-8052F+其频率选择为:
2.7648MHz、5.5296MHz、11.0592MHz)及外晶振,当选择外晶振时,由目标板或仿真头提供振荡频率(即用户自己选择的晶振)。
⑸外复位选择
该功能允许用户板的复位引入仿真器内仿真CPU,可调试外部复位电路及实时仿真外部看门狗电路及自复位电路。
2.设置PC值:
设置当前程序计数器值。
3.设置文本编辑器:
单击“设置/设置文本编辑器”弹出设置文本编辑器对话框,可设置环境参数,如字体、颜色等。
4.项目属性:
设置源程序的编译/连,在前面已讲述
1.2.5外设(O)
1.端口:
端口设置窗口,显示或改变端口的状态。
如图1-10所示。
2.定时/计数器0:
定时器/计数器0模式和控制窗口,其TMOD和TCON的值,可以作为定时器0初始化的编程依据,如图1-10所示。
图1-10外设图示
3.定时/计数器1:
定时器/计数器1模式和控制窗口,其TMOD和TCON的值,可
图1-11外设图示
以作为定时器1初始化的编程依据。
4.定时/计数器2:
定时器/计数器0模式和控制窗口,其中T2CON的值,可以作为定时器2初始化的编程依据。
5.串行口:
串行口工作模式和控制窗口,其SMOD和SCON的值,可以作为串行口初始化的编程依据。
如图1-11所示。
6.中断:
中断状态窗口,包括INT0,INT1,T0,T1,T2和UART中断状态以及优先级和允许设置。
设置或清除相应的标志,可以改变中断的状态,也可以通过相应的值,作为中断初始化的编程依据。
如图1-11所示。
1.2.6QTH集成开发实验系统使用
QTH集成开发环境提供了以下两种方式开发应用程序:
●不使用QTH集成开发环境项目管理方式——对源程序文件直接进行汇编/连接方式,兼容传统开发习惯。
●使用QTH集成开发环境项目管理方式——可进行多模块、混合语言编程的方式,也同样适合单模块程序的开发。
1.不使用项目管理方式开发应用程序
不使用QTH集成开发环境项目管理方式,只能进行单模块方式下的应用程序开发,具有很大的局限性。
以下是不使用QTH集成开发环境项目管理方式开发应用程序的步骤。
⑴关闭当前项目
单击“项目/关闭项目”此时QTH集成开发环境关闭界面上所有的窗口。
不使用QTH集成开发环境项目管理方式开发应用程序,用户必须关闭已经打开的项目,因为当打开项目文件后,QTH集成开发环境默认所有编译/汇编、产生代码的过程都是对项目或项目所包含的文件进行的。
⑵在文件菜单下打开应用程序
单击“文件/新建”或“文件/打开”,出现如图1-12所示的对话框。
单模块方式下的文件调试可以按照以下方法新建或打开文件:
●单击“文件/新建”,输入文件名和扩展名,新建文件
●单击“文件/打开”,选择文件选取框中的文件将其打开
图1-12打开对话框
⑶编译/汇编
单击“项目/编译”
QTH集成开发环境根据文件的扩展名,自动对当前激活的文件选择调用外部编译器或汇编器:
图1-13信息框
①如果当前文件的扩展名为ASM,“编译/汇编”命令调用外部汇编命令对当前文件汇编。
②如果当前文件的扩展名为C,“编译/汇编”命令调用外部C编译命令对当前文件编译。
执行“项目/编译”命令后产生的结果显示在如图1-13所示的信息框中:
⑷错误信息关联
QTH集成开发环境调用外部命令编译后产生的结果,显示在信息窗口中。
信息窗口中,当编译发生错误时,信息窗口中的错误信息自动与源文件关联,提示出错的位
置。
在信息窗口中错误提示处双击鼠标左键,也可将错误信息与源文件的错误位置关联,如图1-14所示。
图1-14信息关联框
●如果编译没有错误,可进入第⑸步操作
●如果编译出现错误,在修改文件后重复进行第⑶步操作
⑸产生代码并装入仿真器调试
单击“项目/装入调试信息”或“调试/装入”
装入调试信息或装入
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 系列 单片机 实验 系统 指导书