51系列单片机实验系统指导书目录前言第1章下载式实验系统的使用方法1.1 软件安装与启动1.1.11.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.1 P1口彩灯控制实验3.2 数码管显示实验3.3 顺序控制实验3.4 8031和8155接口扩展与数码管显示实验3.5 键盘、数码管显示综合实验3.6 A/D转换实验3.7 D/A转换实验3.8 A/D与D/A转换综合实验第4章89C51系列实验4.1 顺序控制实验4.2 数码管显示实验4.3 键盘、数码管显示综合实验4.4 A/D转换实验4.5 D/A转换实验前言目前,51系列单片机在我国的各行各业得到了广泛应用,各大专院校、职业培训学校,均开设了单片机原理与应用方面的课程,这是一门技术性和实践性很强的学科,必须通过一系列的软硬件实验、理论联系实际,才能学好、学懂,取得较好的学习效果。
为了适应这一学习上的要求,国外厂家开发了多种实验、开发系统,但普遍存在集成度高,严重脱离实际的情况。
作者集多年理论教学、实验教学、产品开发的经验,完全摒弃了以前各种实验设备的那种思维模式,重新开发出一种实验、开发系统,专从产品开发角度出发,安排各种硬件实验,并且做到每一个实验就是一个小产品,每个实验就是一个产品开发的过程,从单片机最小系统开始,逐步扩展功能,从单一功能到功能多样,从小到大,从简单到复杂,自成系统给人一种完整的学习思路,让学习者概念清晰、直观明了、易学易懂,特别是加强了硬件故障排除方法的指导,解决了学习者中普遍对硬件故障排除难的问题;其次是加强了软件调试的指导,提供了一些软件调试方法和步骤,帮助初学者很快入门,帮助熟练者更加深化。
本实验系统采用模块式设计,为各学校单片机的课程设计、学生的毕业设计、提供了硬件设备,该模块可反复使用、任意组合、方便经济,解决了各单位研究与实验经费不足的问题。
特别在开发产品中更加适用,一个产品谈妥后厂家往往要求几天之拿出产品样机,你可用此系统很快拼装成一个产品样机,供编程人员仿真,同时进行印制板设计。
若出现问题,硬件可及时修改、添加,一切开发成功后,再作印制板,一次成功,减少经费损失,缩短了开发周期,为产品开发提供了方便。
本实验指导书分四章:第1章,下载式实验系统的使用;第2章,软件实验;第3章,硬件实验;第4章,89C51单片机实验,特别第4章完全讲解的是一个产品开发的全过程,力求使学习者获得更大的收益。
第1章下载式实验系统的使用方法1.1 软件安装与启动下载式实验系统,是一套既可脱离硬件仿真又可与实验系统联机仿真的实验装置,对于硬件实验,只要将软件调试好后就可将程序用串行口直接在线写入芯片,再不必象以前那样要专用的编程器来固化程序。
1.1.1 软件安装1. 为使 QTH 调试器能够正常运行,您必须提供以下软硬件环境: 586 以上的PC 及兼容机;100M 以上的剩余硬盘空间;分辨率为 800×600 以上的显示器;具有SPP功能的打印机接口;使用符合 Intel 标准的汇编器、编译器和连接器。
如Franklin/Keil V3.2 或 keil V6.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所示:①号窗口为综合窗口,单击本窗口下面的标签,此窗口会变换成项目管理器窗口,特殊功能寄存器窗口,部数据存储器(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)会出现新创建的文件名,且在窗口中出现组装完成(ASSEMBLY COMPLETE),“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字节空间。