可编程控制器实验报告

  

可编程控制器实验报告(图1)

  1.实验目的: 1、掌握 MCS-51 单片机内部定时/计数器的功能与特点,工作方式选择和编程方法,中断功能 的使用和中断服务程序的设计; 2、 解和熟悉 MCS-51 单片机实验板的功能。 2.实验内容: 用 MCS-51 单片机的内部定时器定时中断,通过 P1 口控制实验板上八个 LED 发光二极管轮 流循环显示发光,每个 LED 发光二极管显示时间为 0.5 秒; 3.实验设备名称、型号: 台式微型计算机 MCS-51 仿线.画出软件程序流程图: 主程序流程图 开始 PⅢ500 H51/S

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

  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、 编写排序程序并上机调试通过。 已 知 8031 内 部 RAM60H~69H 单 元 中 ,

  7.心得体会: 这次实验,自己基本上掌握了 MCS-51 单片机指令系统及用汇编语言编程技巧,对于 MCS-51 单片机仿真开发机调试程序的方法也有了基本的了解。 当然自己也存在一些方面的不足,比如不能独立自主的完成汇编语言的程序设计,只能 依照类似的例子,依葫芦画瓢。而且对汇编语言的熟悉程度也不够,有时要翻书查找个别语 句的写法和意思。这主要是自己联系的不够,还要勤加练习。

  选择菜单【文件 新建文件】功能 出现一个名位 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 ;(R0)= 20 MOV R2,#0FH ;(R2)= 0F MOV A,#00H A1: MOV @R0,A ; (20H)=00H INC R0 ; (R0)= 21 INC A ;(A)= 01 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

  三.实验步骤 1. 开机(台式电脑) ,双击桌面上的图标 WAVE 运行 WAVE 程序进入伟福开发环境。 2. 设置仿线 点击主菜单上的仿真器下仿真器设置,出现窗口

  选择仿线/S,仿线X,选择 CPU 为 8031,如上图所示。 2.2 点击语言,出现窗口,设置为如下所示。

  FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次 序排序,即最大数放在 60H 中,最小数放在 69H 中。 2、 编写多字节加法程序并上机调试通过。 8031 内部 RAM20H~22H 单元中,存放了 3 字节被加数(低字节在前) ,在 2AH~2CH 单元 中存放 3 字节加数 (低字节在前) , 求两数之和, 并将结果存入以 20H 为起始地址的区域中 (低 字节在前) 。 3.实验设备名称、型号: 台式微型计算机 MCS-51 仿线.画出软件程序流程图: 实验 2-1 流程图 PⅢ500 H51/S