华北水利水电-单片机实验报告(答案)

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

单片机实验报告

指导老师:雷冀南

学院:机械学院

专业:机械设计制造及其自动化专业学号:

姓名:

实验一汇编语言源程序编辑

一、实验目的:

了解软件μVision4.0的安装,熟悉在μVision4.0软件环境下进行单片机汇编源程序的编辑和修改,学会使用利用μVision4.0软件监控单片机各个寄存器以及存储器的数据变化等。

二、实验内容:

1、软件的安装和使用

μVision4.0软件的详细安装过程和使用说明请参考相关资料。

2、汇编源程序的编辑

1)编辑和运行下面源程序,并按要求完成实验报告。

实验A存储器块清零S1.ASM

BLOCK EQU6000h

MAIN:MOV DPTR,#BLOCK;起始地址

MOV R0,#10H;存储块长度

CLR A

LOOP:MOVX@DPTR,A

INC DPTR;指向下一个地址

DJNZ R0,LOOP;记数减一

LJMP$

END

实验B二进制到ASCII码转换S2.ASM

;将A拆为二个ASCII码,并存入Result开始的二个单元

RESULT EQU20H

ORG0000H

MAIN:MOV SP,#40H

MOV A,#1AH

CALL BinToHex

LJMP$

BinToHex:

MOV DPTR,#ASCIITab

MOV B,A;暂存A

SWAP A

ANL A,#0FH;取高四位

MOVC A,@A+DPTR;查ASCII表

MOV RESULT,A

MOV A,B;恢复A

ANL A,#0FH;取低四位

MOVC A,@A+DPTR;查ASCII表

MOV RESULT+1,A

RET

ASCIITab:303132

333435

363738

394142434445

46DB '0123456789ABCDEF'

;定义数字对应的ASCII 表

END

实验C 内存块移动S3.ASM

ORG 0000H MAIN:MOV R0,#30h

MOV R1,#00h MOV R2,#40h MOV R3,#00h MOV R7,#0LOOP:MOV DPH,R0

MOV DPL,R1MOVX A,@DPTR MOV DPH,R2MOV DPL,R3MOVX @DPTR,A CJNE R1,#0FFH,GO1INC R0GO1:INC R1

CJNE R1,#0FFH,GO2INC R2GO2:INC R3

DJNZ R7,LOOP

LJMP $END

注意:源文件生成之后注意分别保存为s1.asm、s2.asm、s3.asm 的文件名三、实验报告

1、记录详细实验步骤

1)双击μVision 4.0安装文件,同意条款,编辑信息,安装D 盘,完成点击Finish 即可。

2)打开μVision 4.0图标,在File 下找到序号,打开破解机进行破解。3)建立单片机文件夹,在其内建实验一文件夹。

4)在μVision 界面点击project 选项,单击New μVision project,命名为S1,在Atmel 选AT89S51单片机,确定。

5)在File 里点击New,输入程序A,点击保存S1.asm。

6)在project 选项中点击“options for Target‘target1’”晶振频率设定为12MHZ,“Output”中打上creat HEX.File 选项,在Debug 选择Use simulator,确定。

;起始地址从0000H 开始;将30h 赋予R0;将00h 赋予R1;将40h 赋予R2;将00h 赋予R3;将0赋予R7

;将(R0)赋予(DPH );将(DPL )赋予(R1);将DPTR 存的内容送给A ;将(R2)给(DPH );将(R3)给(DPL)

;将A 的内容写入外部RAM ,DPTR 中

;若(R1)≠0FFH ,程序转到GO1执行,若(R1)=0FFH ,顺序执行;R0=(R0)+1;R1=(R1)+1

;若(R1)≠0FFH ,程序转到GO2执行,若(R1)=0FFH ,顺序执行;R2=(R2)+1;R3=(R3)+1

;R7=(R7)-1,若R7≠0,则执行LOOP ,否则,顺序执行

;程序在此处跳动执行;程序结束

7)Project workspace在Target1单击右键,选“Add File to Target”,在project中点击Rebuild all Target files,若无错误,在Debug选项单击“start/stop Debug session”,单击run进行运行。观察PC值,再点击“start/stop Debug session”返回编辑界面。

8)在S1.hex用记事本进行打开,观察记录。

9)再次点击“NewμVision project”命名为S2.asm,按以上步骤操作,输入实验B程序,保存并运行。发现错误,进行修改。定义0~F的ASCII码表“DB”

类型,修改运行。

10)再次单击“NewμVision project”命名S3.asm新建工程,运行无误,添加注释。

2、列写实验A中源程序的PC值和机器码。

PC值依次为:$0x0000-3-5-6-7-8-A

机器码:0D0000009060007810E4F0A3D8FC02000A24

:00000001FF

将储存单元6000H~6010H清零。

3、找出实验B中的错误语句,并改正。

改正后为:在实验B的程序中,出错的地方在于对数字对应的ASC II表定义出错。

可将“{”区域该片如下:

ASCIITab:DB30H,31H,32H

33H,34H,35H

36H,37H,38H

39H,41H,42H

43H,44H,45H

46H

4、实验C添加注释。(见上页实验C程序后面的注释)

5、实验总结。

通过这次试验,使我更加熟悉了uvision的使用方法。Uvision是一款类似于VC6.0的软件。但是它还可以显示出各个寄存器的存储情况,便于程序的调试。而且在程序中编辑过程中要注意大小写等各种问题。

实验二汇编语言源程序调试

一、实验目的

1、掌握MCS-51指令系统传送指令的汇编语言程序设计和调试方法;

2、熟悉用WAVE6000汇编调试软件及在线仿真调试。

二、实验内容

1、编写多字节数据的传送程序,把内部RAM的30H--37H单元赋值为10H-17H,然后传送到外部的RAM的0100H--0107H单元;再将0100H--0107H单元逐一求反后送到内部RAM的38H—3FH单元。

2、程序结构采用循环结构

相关文档
最新文档