《单片机应用基础》实验报告_第1页
《单片机应用基础》实验报告_第2页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7/7《单片机应用基础》实验报告华北水利水电大学机械学院

《单片机应用基础》

指导老师:

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

学号:

姓名

机械设计制造系

2015年4月

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

一、实验目的:

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

二、实验内容:

1、软件的安装和使用

keilμVision软件的详细安装过程和使用说明请参考提供资料。

2、汇编源程序的编辑

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

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

BLOCKEQU6000h

MAIN:MOVDPTR,#BLOCK;起始地址

MOVR0,#10H;存储块长度

CLRA

LOOP:MO@DPTR,A

INCDPTR;指向下一个地址

DJNZR0,LOOP;记数减一

LJMP$

END

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

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

RESULTEQU20H

ORG0000H

MAIN:MOVSP,#40H

MOVA,#1AH

CALLBinToHex

LJMP$

BinToHex:

MOVDPTR,#ASCIITab

MOVB,A;暂存A

SWAPA

ANLA,#0FH;取高四位

MOVCA,@A+DPTR;查ASCII表

MOVRESULT,A

MOVA,B;恢复A

ANLA,#0FH;取低四位

MOVCA,@A+DPTR;查ASCII表

MOVRESULT+1,A

RET

ASCIITab:303132

333435

363738

394142

434445

46DB'0123456789ABCDEF';定义数字对应的ASCII表

END

实验C内存块移动S3.ASM

ORG0000H//起始地址从000H开始

MAIN:MOVR0,#30h//将30h赋予R0

MOVR1,#00h//将00h赋予R1

MOVR2,#40h//将40h赋予R2

MOVR3,#00h//将00h赋予R3

MOVR7,#0//将0赋予R7

LOOP:MOVDPH,R0//将(R0)赋予(DPH)

MOVDPL,R1//将(DFL)赋予R1

MOA,@DPTR//将DPTR内容给A

MOVDPH,R2//将(R2)赋予(DPH)

MOVDPL,R3//将(R3)赋予(DPL)

MO@DPTR,A//将A内容写入外部RAM的DPTR中

CJNER1,#0FFH,GO1//若R1不等于0FFH,转至G01,

若R1等于0FFH,程序顺利执行

INCR0//R0=R0+1

GO1:INCR1//R1=R1+1

CJNER3,#0FFH,GO2//若R1不等于0FFH,转至G02,

若R1等于0FFH,程序顺利执行

INCR2//R2=R2+1

GO2:INCR3//R3=R3+1

DJNZR7,LOOP//R7=R7-1,若R7不等于0,执行LOOP,否则顺利执行LJMP$//程序跳动执行

END//程序结束

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

三、实验报告

1、记录详细实验步骤

(1)双击uvision4安装软件,同意条款,安装指定硬盘,完成后打开uvision4,在file下拉菜单中找到序号打开破解机进行破解。

(2)先在桌面建立一个空文件夹“yis”。

(3)点击“projectNewuVisionProject”新建一个工程。

(4)在对话框,选择放在刚才建立的“yjs”文件夹下,给这个工程取个名后保存,不需要填后缀。

(5)弹出一个框,在CPU类型下我们找到并选中“Atmel”下的AT89S51。

(6)点开file菜单,点击new,输入程序a,点击保存s1.asm。

(7)在project选项中点击“projectfortarget‘target1’”晶振频率设为12MHZ,“output”中打上“CreateHEXFile”选项,在debug

中选择simulator,确定。

(8)在projectworkspace对话框右击target1,选择addfiletotarget选项,在project中点击rebuildalltargetfiles,若无误,在debug

选项中点击start/stopdebugsession选项,然后进行运行。观察PC

值,再点击start/stopdebugsession选项,返回回编辑界面。

(9)在s1.hex用记事本打开观察记录。

(10)再次点击“projectNewuVisionProject”命名为s2.asm,按以上步骤操作,输实验程序B,保存运行,发现错误进行修改。定义

0-F的ASCII码表“DB”类型,进行修改。

(11)再次点击“projectNewuVisionProject”命名为s3.asm,运行无误后添加解释。

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

PC值:$0x00003$0x00005$0x00006

$0x00007$0x00008$0x0000A

机器码:0D0000009060007810E4F0A3D8FC02000A24

00000001FF

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

实验B中的错误语句为下划线部分,将实验B程序中下划线改为如下部分:ASCIITab:DB30H,31H,32H

33H,34H,35H

36H,37H,38H

39H,40H,41H

42H

3、实验C添加解释。

见实验程序C后的解释。

4、实验总结:

通过这次试验,我大致了解了uVision的基本功用和操作方法,它可以显示各个寄存器的存储及各个寄存器工作原理,同时,他还可以进行程序调试,主要解决软件开发编辑过程中的各类问题。

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

一、实验目的:

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

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

二、实验内容:

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

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

程序用R0作内部RAM指针,用DPTR作外部RAM指针,R7作为计数初值N,本实验N=8。

3、用keilμVision对程序进行汇编,产生目标代码文件,文件的类别为HEX。

4、参考程序

ORG0000H

START:AJMPMAIN

ORG0030H

MAIN:MOVR1,#30H

MOV@R1,#10H

INCR1

MOV@R1,#11H

INCR1

MOV@R1,#12H

INCR1

MOV@R1,#13H

INCR1

MOV@R1,#14H

INCR1

MOV@R1,#15H

INCR1

MOV@R1,#16H

INCR1

MOV@R1,#17H

MOVR0,#30H

MOVDPTR,#0100H

MOVR7,#08H

LOOP:MOVA,@R0

MO@DPTR,A

INCR0

INCDPTR

DJNZR7,LOOP

MOVR0,#38H

MOVDPTR,#0100H

MOVR7,#08H

LOOP1:MOA,@DPTR

CPLA;求反

MOV@R0,A

INCR0

INCDPTR

DJNZR7,LOOP1

HERE:AJMPHERE;程序结束

END

5、仿真和调试

1)用单步执行或断点连续执行,记下执行指令后表格中相应寄存器的数值:

表一LOOP循环执行情况表

执行LOOPAR0DPTRR7

MOVR7,#08H0x000x300x01000x08第一次循环MOVA,@R00x100x300x01000x08

第二次循环MOVA,@R00x110x310x01010x07

第三次循环MOVA,@R00x120x320x01020x06

第四次循环MOVA,@R00x130x330x01030x05

第五次循环MOVA,@R00x140x340x01040x04

第六次循环MOVA,@R00x150x350x01050x03

第七次循环MOVA,@R00x160x360x01060x02

第八次循环MOVA,@R00x170x370x01070x01

第一次循环MO@DPTR,A0x100x300x01000x08

第二次循环MO@DPTR,A0x110x310x01010x07

第三次循环MO@DPTR,A0x120x320x01020x06

第四次循环MO@DPTR,A0x130x330x01030x05

第五次循环MO@DPTR,A0x140x340x01040x04

第六次循环MO@DPTR,A0x150x350x01050x03

第七次循环MO@DPTR,A0x160x360x01060x02

第八次循环MO@DPTR,A0x170x370x01070x01

表二LOOP1循环执行情况表

执行LOOP1AR0DPTRR7

MOVR7,#08H0x170x380x01000x08第一次循环MOA,@DPTR0x100x380x01000x08

第二次循环MOA,@DPTR0x110x390x01010x07

第三次循环MOA,@DPTR0x120x3a0x01020x06

第四次循环MOA,@DPTR0x130x3b0x01030x05

第五次循环MOA,@DPTR0x140x3c0x01040x04

第六次循环MOA,@DPTR0x150x3d0x01050x03

第七次循环MOA,@DPTR0x160x3e0x01060x02

第八次循环MOA,@DPTR0x170x3f0x01070x01

第一次循环MOV@R0,A0xef0x380x01000x08

第二次循环MOV@R0,A0xee0x390x01010x07

第三次循环MOV@R0,A0xed0x3a0x01020x06

第四次循环MOV@R0,A0xec0x3b0x01030x05

第五次循环MOV@R0,A0xeb0x3c0x01040x04

第六次循环MOV@R0,A0xea0x3d0x01050x03

第七次循环MOV@R0,A0xe90x3e0x01060x02

第八次循环MOV@R0,A0xe80x3f0x01070x01

2)同时观察相关存储器的变化情况。

三.实验报告

1、写出本程序单步运行后的调试过程(填写表一和表二)及38H至3FH单元的运行结果;

相关运行结果:

2、本程序如何修改为内部RAM的30H--37H单元传送到内部RAM的38H—3FH单元并调试,写出过程和运行结果

修改程序如下:

MOVR0,#38H

MOVR7,#08H

MOVR1,#30H

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论