可编程控制器实验报告

微机原理及应用实验报告

班级: 机械0606班 姓名: 范东生 学号: 0801060624

中南大学

机电工程学院 精密测控实验室

实验一 单片机仿真开发机操作和MCS-51指令系统应用

一.实验目的

1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整; 2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编; 3、掌握程序的调试和运行的各种方法。 二.实验设备

台式微型计算机 MCS-51仿真开发机

PⅢ

500 H51/S

三.实验步骤

1. 开机(台式电脑),双击桌面上的图标WAVE运行WAVE程序进入伟福开发环境。 2. 设置仿真器

2.1点击主菜单上的仿真器下仿真器设置,出现窗口

选择仿真器为 H51/S,仿真头为POD-H8X5X,选择CPU为8031,如上图所示。 2.2点击语言,出现窗口,设置为如下所示。

设置好后点击按钮“好”即可。 3. 建立你的新程序

选择菜单【文件| 新建文件】功能

出现一个名位NONAME1的源程序窗口,在此窗口输入你的源程序 4. 保存你的程序

选择【文件|保存文件】或【文件|另存为】功能

给出文件所要保存的位置,例如 D:\STUDENT给出文件名EX1.ASM,保存文件。 注意:*请每个同学在D盘上建立自己的文件夹

*文件名一定给扩展名 .ASM

5. 如果已编好程序存在自己的U盘中,可以先复制到D盘上,在选择【文件|打开】功能打

开自己的源程序即可。 6. 编译程序

选择菜单【项目|编译】功能或按编译快捷图标或F9键,编译你的程序。

在编译过程中,如果有错可以在信息窗口中显示出来,双击错误信息,可以在源程序中定位所在行。纠错后,再次编译直到没有错误。 7调试程序 7.1 设置PC

用鼠标指着源程序的第一条有效指令,点击右键,选择“设置PC” 7.2单步调试

选择【执行|跟踪】功能或按跟踪快捷图标或按F7 进行单步跟踪调试程序

单步跟踪就一条指令一条指令地执行程序,若有子程序调用,也会跟踪到子程序中去。 选择【执行|单步】功能或按单步快捷图标或按F8 进行单步调试程序,可以全速执行子程序(把子程序作为一步执行完),而不会跟踪到子程序中。

在单步调试中,可以通过REG,SFR,DATA来观察相应寄存器,特殊功能寄存器,和内部RAM单元的内容。

单步执行下程序,至 DJNZ R2,A1行。观察并记录指令运行结果

ORG 1000H

AJMP MAIN ORG 1030H

MAIN: MOV R0,#20H ; MOV R2,#0FH ; MOV A,#00H A1: MOV @R0,A INC R0 INC A DJNZ R2,A1 MOV R0,#20H

MOV DPTR,#7000H MOV R2,#0FH A2: MOV A,@R0 MOVX @DPTR,A INC R0 INC DPTR DJNZ R2,A2

MOV R0,#0A0H MOV DPTR,#7000H

MOV R2,#0FH A3: MOVX A,@DPTR MOVX @R0,A INC R0 INC DPTR DJNZ R2,A3 DO: LJMP DO

7. 3利用“执行到光标处”功能进行调试

将光标移到想要暂停的地方,MOV R0,#20H所在行,选择菜单【执行|执行到光标处】或F4键或鼠标右键弹出菜单“执行到光标处”功能,程序快速执行到光标所在行。 观察运行情况,并记录,此时 R0 AF 26H 06

R2 0F 27H 07

A 0E 28H 08

20H 00 29H 09

21H 01 2AH 0A

22H 02 2BH 0B

23H 03 2CH 0C

24H 04 2DH 0D

25H 05 2EH 0E

7.4利用断点进行调试

设置断点:将鼠标移到源程序窗口的灰色区,鼠标变为“手指圈”,单击左键设置断点,或击右键选“设置/取消断点”功能或用Ctrl+F8设置断点。断点设置好后,就可以用全速执行的功能,当程序执行到断点时,会暂停下来,可以观察程序中各变量的值,判断程序是否正确。 在MOV R0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元内容 R0 2F 7007H 07

DPL 0F 7008H 08

7000H 00 7009H 09

7001H 01 700AH 0A

7002H 02 700BH 0B

7003H 03 700CH 0C

7004H 04 700DH 0D

7005H 05 700EH 0E

7006H 06

8. 综合运用各种调试方法对源程序进行调试。

实验二 软件程序设计

1.实验目的:

1、掌握MCS-51单片机指令系统及用汇编语言编程技巧; 2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。 2.实验内容:

1、 编写排序程序并上机调试通过。

已知8031内部RAM60H~69H单元中,

依次存放了

FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。 2、 编写多字节加法程序并上机调试通过。

8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。

3.实验设备名称、型号:

台式微型计算机 MCS-51仿真开发机

PⅢ500 H51/S

4.画出软件程序流程图:

实验2-1流程图 实验2-2流程图

5.写出上机调试通过的汇编语言程序清单: 实验2-1

ORG 0060H

DB FFH, 99H, 77H, CCH, 33H, DDH, 88H, BBH, 44H, EEH RAN: MOV R1 ,#09H RAN1: MOV A, R1 MOV R2, A MOV R0, #60H RAN2: MOV A, @R0 MOV R3, A INC RO

MOV A, @R0 CLR C

SUBB A, R3 JC RAN3 MOV A, R3 XCH A, @R0 DEC R0

MOV @R0, A INC R0

RAN3: DJNZ R2, RAN2 DJNZ R1, RAN1 END 实验2-2

MOV RO, #20H MOV R1, #2AH MOV R2,#03H CLR C

LOOP:MOV A, @R0 ADDC A, @R1 MOV @R0, A INC R0 INC R1

DJNZ R2, LOOP CLR A

MOV A, C MOV @R0, A

SJMP $ 6.思考题

1. 如果题目1改为递增排序,如何修改程序,为什么?

将“JC RAN3”改为“JNC RAN3”

被减数与减数交换了位置,排序也就改变了。

2. 如果题目1改为从30H单元开始的16个单元中无符号数排序,改哪几条指令?

将“ORG 0060H”改为“ORG 0030H”

将“RAN: MOV R1 , #09H”改为“RAN: MOV R1 , #15H” 将“MOV R0, #60H”改为“MOV R0, #30H”

3. 如果题目2改为从50H开始的4字节数与60H开始的四字节数相加,如何修改?

将“ MOV RO, #20H

MOV R1, #2AH MOV R2,#03H” 改为“MOV RO, #50H

MOV R1, #60H MOV R2,#04H”

4. 写出题目2中你处理最高位进位的相应指令。

CLR A

MOV A, C MOV @R0, A

5. 循环程序中为何常用间接寻址方式(@Ri,@DPTR)?

用间接寻址可以使重复出现的程序语句简单化。比如在程序中如果有多个按一定顺序排列的数据需要取出(或者存入)时,可以直接存储,但是在表面上看却使程序显得冗长,可以永恒间接寻址加上INC语句再加上循环就能够轻松的实现。这样是程序在外观上简单很多。并且方便阅读。

7.心得体会:

这次实验,自己基本上掌握了MCS-51单片机指令系统及用汇编语言编程技巧,对于MCS-51单片机仿真开发机调试程序的方法也有了基本的了解。

当然自己也存在一些方面的不足,比如不能独立自主的完成汇编语言的程序设计,只能依照类似的例子,依葫芦画瓢。而且对汇编语言的熟悉程度也不够,有时要翻书查找个别语句的写法和意思。这主要是自己联系的不够,还要勤加练习。

审 阅:

实验三 定时/计数器实验

1.实验目的:

1、掌握MCS-51单片机内部定时/计数器的功能与特点,工作方式选择和编程方法,中断功能

的使用和中断服务程序的设计;

2、 解和熟悉MCS-51单片机实验板的功能。 2.实验内容:

用MCS-51单片机的内部定时器定时中断,通过P1口控制实验板上八个LED发光二极管轮流循环显示发光,每个LED发光二极管显示时间为0.5秒; 3.实验设备名称、型号:

台式微型计算机 MCS-51仿真开发机

4.画出软件程序流程图: 主程序流程图 延时程序流程图

PⅢ500 H51/S

5.写出上机调试通过的汇编语言程序清单: ORG 0000H LJMP MAIN ORG 0100H MAIN: MOV TMOD,#10H START: CLR C MOV A,#0FFH MOV R5,#08H

LOOP: RLC A MOV P1,A MOV R3,#0AH LCALL DELAY DJNZ R5,LOOP

LJMP MAIN

DELAY: SETB TR1

LL: MOV TH1,#3CH MOV TL1,#B0H

LL1: JBC TF1,LL2 AJMP LL1

LL2: DJNZ R3,LL CLR TR1 RET END 6.思考题

1. 你采用的是定时器0还是定时器1?如果换用另外一个定时器,需要修改那些语句?为什

么?

定时器1 ,若换定时器则更改“MAIN: MOV TMOD,#10H”为“MAIN: MOV TMOD,#01H”

“DELAY: SETB TR1”改为“DELAY: SETB TR0”. 因为定时器0的工作方式1为MOV TMOD,#10H 启动方式为:SETB TR0

2. 如果将延时时间变为1秒,如何修改程序,为何? 将“MOV R3,#0AH”改为“MOV R3,#14H”. 因为50ms = 0.05s 14H = 20

1s = 50ms*20

3. 改变发光二极管循环点亮方向,如何修改程序?如果间隔闪亮(亮一个,黑一个,亮一

个……)如何修改程序?你还能做哪些花样?

向右循环点亮时“LOOP: RLC A”改为“LOOP: RRC A”

7.心得体会:

这次实验由于准备上的不足,我没有按照定时器内部中断来编程,而是采用循环结构语句来编写的,这一点不太符合实验要求,只是自己没有太弄懂中断功能的使用和中断服务程序的设计,至今仍不太明白RETI语句的具体作用,不知道中断返回到那条指令,是中断程序入口地址那条,还是其他。.

当然我也学习了其他同学用中断功能来实现实验效果(流水灯)的程序,向他们询问了这些方面的知识,现在也对MCS-51单片机内部定时/计数器的功能与特点,工作方式选择和编程方法,中断功能的使用和中断服务程序的设计有了初步了解。

审 阅:

实验四 串行数据传送实验

1.实验目的:

1、掌握MCS-51单片机内部串行通信接口的功能与特点,工作方式选择和编程方法,中断功

能的使用和中断服务程序的设计;

2、 一步了解和熟悉MCS-51单片机实验板的功能。 2.实验内容:

1、用查询方式在二块单片机实验系统之间进行串行数据通信; 2、用中断方式在二块单片机实验系统之间进行串行数据通信。 3.实验设备名称、型号:

台式微型计算机 MCS-51仿真开发机

4.画出软件程序流程图:

查询发送流程图 中断发送流程图

PⅢ500 H51/S

查询接收流程图 中断接收流程图

5.写出上机调试通过的汇编语言程序清单:

查询发送

ORG 0000H

STA: MOV TMOD,#20H

MOV TL1,#0FAH

MOV TH1,#0FAH

MOV SCON,#40H

SETB TR1

CLR TI

MOV A,#00H

MOV SBUF,A

WAIT: JBC TI,CONT

AJMP WAIT

CONT: SJMP STA

END

中断发送

ORG 0000H

AJMP MAIN

ORG 0023H

AJMP ZD

START: MOV TMOD ,#20H

MOV TL1, #0FAH

MOV TH1, #0FAH

SETB TR1

MOV SCON, #50H

CLR TI

MOV IE, #90H

MAIN: SJMP $

ZD: CLR TI

MOV A,#00H

MOV C,P

MOV A.7, C

MOV SBUF, A

RETI

END

查询接受

ORG 0000H

MOV TMOD,#20H

MOV TL1,#0FAH

MOV TH1,#0FAH

SETB TR1

MOV SCON,#50H

CLR RI

SETB REN

WAIT: JBC RI,READ

AJMP WAIT

READ: MOV A ,SBUF

MOV P1,A

SJMP $

END

中断接受

ORG 0000H

AJMP MAIN

ORG 0023H

AJMP ZD

START: MOV TMOD,#20H

MOV TL1,#0FAH

MOV TH1,#0FAH

SETB TR1

MOV SCON,#50H

CLR RI

MOV IE,#90H

MAIN:SJMP $

ZD: CLR RI

MOV A ,SBUF

MOV P1,A

MOV R1,A

RETI

END

6.思考题

1. 你设置的波特率是多少?写出相应语句。

波特率为:5200bps。

MOV TMOD,#20H

MOV TL1,#0FAH

MOV TH1,#0FAH

2. 发送时中断标志是什么?查询方式接收数据是查询什么标志?

中断标志:TI ,查询标志:RI

3. 串口中断服务程序入口地址是多少?

ORG 0023H

4. 调试中断发送程序时,如何知道发送了第一个数据?

用奇偶位来判断

7.心得体会:

这是单片机的最后一次实验,当然也是最难的一次。

我在参考了其他同学程序的基础上,根据自己的知识进行了汇编,可能有很多错误的地方,而且我也对照了标准答案,说实话,没有看得太懂。

对于中断发送(接受),我总是不太明白运行时执行的语句顺序。自己对于单片机接受的时间不算太长,很所知识掌握的不太牢固,对于单片机的双机通信更是知道甚少。自己在结合同学程序及现有实例的基础上,进行了这次汇编。

这次汇编遇到的很多困难,首先是初始化设置,对于发送波特率的设定时,参考波特率的计算方法和书上类似的例子,就是不太明白为何如此设置

“MOV TMOD,#20H MOV TL1,#0FAH MOV TH1,#0FAH”

,这样设置不行吗?“MOV TMOD,#20H MOV TL1,#FAH MOV TH1,#FAH”。

至于接口工作方式的设置,参考了教材上的例子。

我知道自己这次汇编有很多地方需要修改,望老师多多指导。

审 阅:


相关文章

  • 三自由度气动机械手实验指导书
  • 三自由度气动机械手实验指导书 目 录 实验1 气动机械手拆装实验 ...................................................................................................... 1 实验2 气动机械手的测绘 ...

  • 基于PLC的电梯智能控制系统设计开题报告
  • 鸡西大学 PLC 设计报告 题目 基于PLC 的电梯智能控制系统设计 专 业 名 称 机械设计制造及其自动化 班 级 学 号 [1**********] 学 生 姓 名 海涛 指 导 教 师 杨超 填 表 日 2012 年 月 日 一.选题的依据及意义: (1)选题背景:随着城市建设的不断发展,楼群 ...

  • 北邮微机原理硬件实验报告
  • 微机原理硬件实验报告 信息与通信工程学院 微机原理硬件实验报告 姓 名: 李星辰 班 级: 2013211105班 学 号: 2013210133 班内序号: 12号 日 期: 2014 年 1 月 10 日 目 录 一.I/O地址译码 + 简单并行接口(第一次实验课) 1.1 实验目的------ ...

  • 过程控制仪表实验报告
  • 成绩________ 过程控制仪表及装置 实验报告 班级:_______________________________________ 姓名:________________________________________ 学号:__________________________________ ...

  • 现场总线实验报告2
  • 北京******大学 实 课程名称 实验名称 专 业 班级/学号学生姓名 实验日期 2013成 绩 指导教师 自动化学院 验 报 告 PROFIBUS 控制器实验 DP 总线开关量I/O实验 自动化 .5.23 DP 总线开关量I/O实验 一.实验目的 1.掌握通过PROFIBUS-DP 总线读取/ ...

  • 液压回路PLC控制实验
  • 机械设计制造及其自动化专业实验 --机电控制实验 机床液压与气动控制回路PLC控制实验 实验指导书 重庆理工大学实践教学及技能培训中心 2010年12月 学生实验守则 1.学生应按照实验教学计划和约定的时间,准时上实验课,不得迟到早退. 2.实验前认真阅读实验指导书,明确实验目的.步骤.原理,预习有 ...

  • 单片机课程设计大纲
  • 单片机原理及应用课程设计教学大纲 课程设计名称:单片机原理及应用 课程设计编号:E1010020 课程设计学分:2.0 课程设计周(时)数:2周 课程设计适用专业: 测控技术与仪器.自动化.电气工程及其自动化 课程设计教材及主要参考资料: <单片机原理及应用>, 张毅刚,高等教育出版社, ...

  • 电梯实验报告1
  • 五层电梯的PLC 控制设计 专业班级 09级自动化 小组成员 王大伟 李沅泽 李强 杨国相 指导教师 吴贺荣 起止时间 2012.07.19 ~201.07.25 实验五 五层电梯控制 一.实验目的 1. 熟悉电梯的控制要求及特点. 2. 掌握用PLC 实现电梯控制的方法. 3. 通过编程与调试,进 ...

  • 微机原理与接口技术实验报告
  • 微机原理与接口技术 实验报告 班 级: 自动化(铁道信号) 姓 名: ***** 学 号: 1121**** 授课教师: 陈福恩 目录 1. 实验一 ........................................................................... ...

  • 通信与现场总线课程设计报告
  • 通信与现场总线课程设计报告 班 级: 电 气 1108 姓 名: 常方宇 学 号: 11291231 指导老师: 胡 小 刚 通信与现场总线实验报告 实验任务及要求: 使用力控Forcecontrol6.1软件进行搅拌罐工程仿真,按照要求完成以下工作:(1)完成搅拌罐工程的制作:添加其他窗口,使工程 ...

© 2024 范文中心 | 联系我们 webmaster# onjobs.com.cn