微机原理实验指导书(06071)

  • 格式:doc
  • 大小:4.76 MB
  • 文档页数:15

微机原理及应用实验指导书福建农林大学机电工程学院电气系2006年7 月1 日目录引言 (3)实验一学习WAVE6000软件的使用 (4)实验二了解MCS-51内部资源 (6)实验三传送类指令编程 (7)实验四算/逻类指令编程 (8)实验五控制转移类指令编程 (9)实验六综合编程 (10)附录一实验报告基本要求与书写格式 (11)附录二伟福软件使用说明 (12)引言本课程是在学生学完电子技术类基础课程和微机应用类基础课程之后,为加强对学生技术应用能力的培养而开设的体现电子技术、计算机技术综合应用的综合性课程。

单片机实践性强,理论与实际结合紧密,学好这门课程的一个重要环节就是实践和实验。

通过上机操作和认真实验,既可以加深对书本知识的理解,又可以培养同学们的动手能力。

通过这些实验,希望同学们掌握以下知识:1.掌握伟福软件模拟器的使用方法,能利用伟福软件进行程序调试,掌握程序调试的各种方法。

2.了解单片机的组成部分、各类存储单元的特性、地址分配、地址与存储单元的关系,以及微计算机中使用的十六进制数、字节和对应的二进制数间的方法。

3.熟悉MCS-51的指令系统,了解软件设计过程,掌握汇编语言设计方法,能够编写顺序、选择、循环结构的小程序,并使用仿真器提供的调试手段来排除软件错误。

实验一:学习WAVE6000软件的使用(验证性、1 学时)一、实验目的:1.掌握WAVE6000软件的使用方法;2.掌握程序编辑、运行、变量观察等方法;3.掌握子程序与程序段调试、测试方法。

二、实验方法:上机操作三、实验仪器: PC机四、实验步骤:1.Wave6000的启动、退出。

2.设置伟福汇编器:设置软件模拟仿真方式,选择E600/L仿真器和51仿真头。

3.打开跟踪调试的窗口(片内RAM、片外RAM、CPU、REG、SFR),适当组织使之便于观察。

4.了解地址和单无内容的对应关系。

5.点击窗口中的小格子修改单元的值, 注意输入值的进制与后缀。

6.了解菜单中的[文件]、[编辑]、[搜索]、[项目]、[执行]、[窗口]的功能。

7.输入以下程序,汇编(Wave软件称为“编译”,是不正确的)后,改正错误,单步运行,按要求纪录每一步运行的结果。

程序(用各人的“学号”.ASM保存):Org 0000HMov A,#30H ;观察Acc的值Mov R0,#40H ;观察R0的值Setb RS0 ;观察R0的值Clr RS0 ;观察R0的值Mov B,#A0H ;观察B的值Mov Dptr,1234H ;观察Dptr的值Mov 20H,#55H ;观察(20H)单元的值Setb 1 ;观察位单元01H与字节单元20H的变化Clr F7H ;观察B的变化;单步运行以下程序段,观察内部Ram的变化Loop: Mov @R0,AInc A ;解释所发生的现象与程序的关系Inc R0Djnz B,LoopSJmp $ ;程序在此死循环End ;如果将上一句“SJmp $”删;除,程序停止于此吗?8.全速运行,并观察PC指针的值和程序运行的时间。

9.用光标点击某一条指令,按F4运行到光标所在处,观察PC指针的值和程序运行的时间。

10.对比三种运行方式的结果。

NOTE:每个程序都要一个文件名(*.ASM),“*”可以用具有程序含义的名字。

实验二:了解MCS-51内部资源(验证性、1 学时)一、实验目的:了解MCS-51内部资源及其相互之间的联系,掌握单片机的存储器结构。

二、实验方法:上机操作三、实验仪器:PC机四、实验步骤:1.寄存器与特殊功能寄存器(SFR)窗口,点击单元,观察字节单元与位单元的对应关系。

2.分别修改R0~R7,00H~1FH,RS1,RS0(在PSW中),了解三者之间的对应关系。

总结:R0~R7和00H~1FH间哪些存储单元存在联系?它们与寄存器选组间的联系?如何通过修改1AH单元而连带修改R2?能否通过修改R7而连带修改17H?3.通过修改R0或R1的内容,了解寄存器寻址与寄存器间接寻址的含义与功能。

4.分别修改内部RAM的90H与SFR的90H(P1),了解高端RAM与SFR之间的相互独立关系。

5.分别修改位单元00H,01H,08H,90H(P1.0),观察20H,21H,P1的变化,了解它们之间的对应关系。

6.观察CODE窗口与所调试程序的关系,修改其中的一条指令并重新汇编,查看CODE窗口中的变化,了解单片机程序指令的存放特点。

7.通过执行片外RAM的存取指令,了解片外RAM的访问方式。

实验三:传送类指令编程(验证性、1 学时)一、实验目的:掌握数据传送类指令二、实验方法:上机操作三、实验仪器: PC机四、实验步骤:在WAVE6000软件中编程、调试注:以下程序框架适用于所有的子程序调试。

在WAVE6000软件中编程、调试输入以下程序框架,再按要求编写子程序,调试运行通过。

;============================Org 0000HAjmp Main ;――――――――――――――――――――――――――――;子程序写在此:;――――――――――――――――――――――――――――;主程序:Main: Mov Sp,#07H;以下准备调用子程序的输入参数:例如(R0):=XX,(A):=XX;以下调用子程序:例如acall 子程序名或Lcall 子程序名Sjmp $ ;程序在此原地跳转;============================调试的程序题目如下:1.将30H单元内容与31H单元内容交换。

2.将数35H送往片外RAM 1234H单元。

3.将20H单元的位送给B的最高位。

4.将程序存储器2000H单元内容送往片外RAM1000H单元。

5.利用堆栈交A和B的值分别传给R2和R3。

实验四:算/逻类指令编程(验证性、1 学时)一、实验目的:掌握算术、逻辑运算类指令二、实验方法:上机操作三、实验仪器: PC机四、实验步骤:在WAVE6000软件中编程、调试的程序题目如下:1.将30H、31H两字节单元内容减1。

2.将30H、31H两字节单元内容加1。

3.将外部RAM 5C30H、5C31H单元中的两字节数乘以2。

4.将外部RAM 5C30H、5C31H单元中的两字节数除以2。

5.R1与上P2和R0所指出的外部RAM单元内容,结果仍放入R1中。

实验五:控制转移类指令编程(验证性、2 学时)一、实验目的:掌握控制转移类指令二、实验方法:上机操作三、实验仪器:PC机四、实验步骤:在WAVE6000软件中编程、调试调试的程序题目如下:1.如果INT0为低,位30H改为它的值与P0口最低位的“反”相“与”后的值,否则置位30H。

2.比较30H、31H、32H三个单元的内容,将最大的数给B。

3.将外部RAM 5C30H开始的99个单元内容清零。

4.将从外部RAM 5C30H开始的100个单元中找出第一个奇数和存该数的单元,数存入40H,地址存入30H、31H。

实验六:综合编程(综合性、2 学时)一、实验目的:掌握MCS-51指令系统的综合应用。

二、实验方法:上机操作三、实验仪器:PC机四、实验步骤:在WAVE6000软件中编程、调试调试的程序题目如下(完成其中1-2个即可):1、内部RAM从list单元开始存放一正数表,表中之数作无序排列,并以“-1”作结束标志。

编程实现在表中找出最小数。

2、求8个数的平均值,这8个数以表格形式存放在从table开始的单元中。

3、比较两个ASCII码字符串是否相等。

字符串的长度在内部RAM41H单元,第一个字符串的首地址为42H,第二个字符串的首地址为52H。

如果两个字符串相等,则置内部RAM40H单元为00H,否则置40H单元为0FFH。

4、输入缓冲区inbuf存有80个字节,编程实现将其中所有的组分隔符(1DH)的地址依次压入separ栈中。

5、求16位补码所对应的原码,16位补码存放在31H和30H单元,转换后的原码仍放在这两个单元,低地址存低字节。

6、设有100个有符号数,连续存放在以2000H为首地址的RAM中,试编程统计其中正数、负数、零的个数,并把统计结果分别存入50H,51H,52H这三个单元中。

7、5个双字节数,存放在外部RAM从barf开始的单元中,求它们的和,并把和存放在sum开始的单元中,请编程实现。

8、编写双字节有符号数除法子程序。

附录一:实验报告基本要求与书写格式如下:学年:学期:日期:年级:姓名:学号:专业:实验____ 实验名称一、实验目的:二、实验环境三、实验要求(实验内容与步骤):四、实验总结(由同学们做完实验后写)说明:(1)画出程序流程图。

(必须用尺子画)(2)编写程序,且给出详尽注释。

(3)本次实验收获是什么?有些什么想法?遇到什么问题等?五、建议与意见说明:对于此实验内容或在实验过程中有任何问题或建议,以及对于改善实验效果有什么建议,均可提出。

在书写实验报告的过程中,主要是帮助自己回顾和总结实验。

重点放在第四项,前三项可以十分简要地列写,第五项有则提出,无则不写。

附录二伟福软件使用说明开发环境文件(F)文件| 打开文件打开用户程序,进行编辑。

如果文件已经在项目中,可以在项目窗口中双击相应文件名打开文件.文件| 保存文件保存用户程序。

用户在修改程序后,如果进行编译,则在编译前,系统会自动将修改过的文件存盘.文件| 新建文件建立一个新的用户程序, 在存盘的时候,系统会要求用户输入文件名.文件| 另存为将用户程序存成另外一个文件, 原来的文件内容不会改变文件| 重新打开在重新打开的下拉菜单中有最近打开过的文件及项目,选择相应的文件名或项目名就可以重新打开文件或项目。

可以用以下几种方法设置仿真器.o 在项目窗口中双击第一行,将打开仿真器设置窗口,对仿真器进行设置.o 按鼠标右键,在弹出菜单中选择[仿真器设置].o 主菜单仿真器|仿真器设置.加入模块文件o 按鼠标右键,在弹出菜单中选择[加入模块文件]o 按鼠标右键,在弹出菜单中选择[加入包含文件]文件| 调入目标文件装入用户已编译好目标文件。

系统支持两种目标文件格式:BIN,HEX 格式调入已经编译好的目标文件目标文件格式有二种:二进制(BIN):由编译器生成的二进制文件,也就是程序的机器码英特尔格式(HEX):由英特尔定义的一种格式,用ASCII 码来存储编译器生成的二进制代码,这种格式包括地址,数据和校验文件| 退出退出系统,如果在退出以前有修改过的文件没有存盘,系统将会提示是否把文件存盘.编辑(E)编辑| 撤消键入取消上一次操作编辑| 重复键入恢复被取消的操作编辑| 剪切删除选定的正文,删除的内容被送到剪贴板上编辑| 复制将选定的内容,复制到剪贴板上编辑| 粘帖将剪贴板的内容插入光标位置编辑| 全选选定当前窗口所有内容。