哈工大 单片机第一次试验报告Word格式文档下载.docx

上传人:b****4 文档编号:6472776 上传时间:2023-05-06 格式:DOCX 页数:52 大小:196.79KB
下载 相关 举报
哈工大 单片机第一次试验报告Word格式文档下载.docx_第1页
第1页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第2页
第2页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第3页
第3页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第4页
第4页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第5页
第5页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第6页
第6页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第7页
第7页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第8页
第8页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第9页
第9页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第10页
第10页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第11页
第11页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第12页
第12页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第13页
第13页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第14页
第14页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第15页
第15页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第16页
第16页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第17页
第17页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第18页
第18页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第19页
第19页 / 共52页
哈工大 单片机第一次试验报告Word格式文档下载.docx_第20页
第20页 / 共52页
亲,该文档总共52页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

哈工大 单片机第一次试验报告Word格式文档下载.docx

《哈工大 单片机第一次试验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《哈工大 单片机第一次试验报告Word格式文档下载.docx(52页珍藏版)》请在冰点文库上搜索。

哈工大 单片机第一次试验报告Word格式文档下载.docx

SJMP$

END

实验二 拆字程序

掌握汇编语言设计和调试方法。

把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。

三、程序流程

四、实验步骤

⑵在“P.”状态下键入0660,然后按“STEP”或“EXEC”进入实验项目的调试与运行。

在与PC联机状态下,编译、连接、下载PH51\se02.asm,用连续或单步方式运行程序。

⑴在单步运行时每走一步可观察其运行结果。

⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2000~2002h中内容变化情况。

运行程序前2000H中内容为34,运行程序后2001H中内容为03,2002H中内容为04.

如果将2001h、2002h高位置1,将源程序中的ANLA,#0FH语句改为ORLA,#0F0H

六实验源程序

ORG0000;

MOVDPTR,#2000H;

MOVXA,@DPTR;

ANLA,#0FH;

MOVR1,A;

SWAPA;

INCDPTR;

MOVX@DPTR,A;

MOVA,R1;

END;

实验三 拼字程序

进一步掌握汇编语言设计和调试方法。

把2000h、2001h的低位分别送入2002h高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。

⑴在“P.”状态下按"

0→EV/UN"

,装载实验所需的代码程序。

⑵在“P.”状态下键入0680,然后按“STEP”或“EXEC”进入实验项目的调试与运行。

在与PC联机状态下,编译、连接、下载PH51\se03.asm,用连续或单步方式运行程序。

⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2002h内容变化情况。

运行程序后2002h的最终内容是2B.

ORG0000H;

ORLA,R1;

实验四 数据区传送子程序

掌握RAM中的数据操作。

把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。

⑵在“P.”状态下键入07B0,然后按“STEP”或“EXEC”进入实验项目的调试与运行。

在与PC联机状态下,编译、连接、下载PH51\se04.asm,用连续或单步方式运行程序。

⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键检查由R4、R5所定义的目的地址单元。

R2、R3所定义的目的地址单元内容是20、00.

R4、R5所定义的目的地址单元内容是20、90.

R6、R7所定义的目的地址单元内容是00、00.

ORG07B0H

MOVR2,#20H

MOVR3,#00H

MOVR4,#20H

MOVR5,#90H

MOVR6,#00H

MOVR7,#00H

START:

CLRC

MOVDPL,R3

MOVDPH,R2;

建立源程序首址

MOVXA,@DPTR;

取数

MOVDPL,R5

MOVDPH,R4;

目的地首址

INCR3;

源地址加1

MOVA,R2

ACALLADB

MOVR2,A

INCR5;

目的地址加1

MOVA,R4

MOVR4,A

INCR7;

转移数加1

MOVA,R6

MOVR6,A

CJNER6,#00H,START

CJNER7,#2FH,START

ADB:

ADDCA,#00H

RET

实验六 查找相同数个数

熟悉汇编语言编程。

在2000~200Fh中查出有几个字节是零,把个数放在2100h中。

⑵在2000~200Fh的若干单元中填入零

⑶在“P.”状态下键入0AA0,然后按“STEP”或“EXEC”进入实验项目的调试与运行。

在与PC联机状态下,编译、连接、下载PH51\se06.asm,用连续或单步方式运行程序。

⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2100h中是几个单元数。

如需查找0FF,则需在源程序JNZ LOOP前增加语句CLP A.

ORG2000H;

MOVR0,#0FH;

MOVR1,#00H;

MOVDPTR,#2000H;

JNZLOOP;

INCR1;

DJNZR0,START;

MOVA,R1;

MOVDPTR,#2100H;

MOVX@DPTR,A;

实验七 无符号双字节快速乘法子程序

掌握MCS-51汇编语言程序设计方法。

将(R2R3)和(R6R7)中双字节无符号整数相乘,积送R4R5R6R7中。

⑵对R2、R3所定义的源地址单元从首址开始输入无符号整数。

⑶在“P.”状态下键入0970,然后按“STEP”或“EXEC”进入实验项目的调试与运行。

在与PC联机状态下,编译、连接、下载PH51\se07.asm,用连续或单步方式运行程序。

⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键检查R4R5R6R7中内容。

寄存器R2、R3、R6、R7分别输入01、21、02、22,运行程序,R6、R7中的内容是68、62

结果已经过验证。

六实验源程序

ORG0000H

MOVR2,#01H

MOVR3,#21H

MOVR6,#02H

MOVR7,#22H

MOVA,R3

MOVB,R7

MULAB

XCHA,R7

MOVR5,B

MOVB,R2

ADDA,R5

MOVR4,A

CLRA

ADDCA,B

MOVR5,A

MOVA,R6

MOVB,R3

ADDA,R4

XCHA,R6

XCHA,B

ADDCA,R5

MOVF0,C

MOVA,R2

MOVACC.0,C

MOVC,F0

SJMP$

END

实验八 多分支程序

掌握汇编语言的编程。

编写程序,根据送入的数据转移运行。

⑵在20H中分次送入00、01、02、03。

⑶在“P.”状态下键入0A10,然后按“STEP”或“EXEC”进入实验项目的调试与运行。

在与PC联机状态下,编译、连接、下载PH51\se08.asm,用连续或单步方式运行程序。

(1)在单步运行时每走一步可观察其运行结果。

(2)在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后观察每次运行程序后,数码管上数字循环情况。

五实验结果及分析

循环变慢改变延时子程序

DELAY:

MOVR5,#0FFH

LP0:

MOVR6,#0FFH

LP1:

NOP

NOP

DJNZR6,LP1

DJNZR5,LP0

RET

变为四字循环程序改为:

LOOP0:

MOV20H,#0C0H;

0字循环

LJMPSOX0

LOOP1:

MOV20H,#0F9H;

1字循环

LOOP2:

MOV20H,#0A4H;

2字循环

LOOP3:

MOV20H,#0B0H;

3字循环

LJMPSOX0

MOV20H,#099H;

4字循环

MAIN:

MOV20H,#00H

MOVA,20H

MOVDPTR,#SZ;

散转首址

RLA;

(20)*2

JMP@A+DPTR;

转到(20)*2+DPTR

SZ:

AJMPLOOP0

AJMPLOOP1

AJMPLOOP2

AJMPLOOP3

SOX0:

MOVR0,#0DCH

MOVR1,#0DDH

MOVX@R0,A

MOVA,#01H

SOX1:

MOVX@R1,A

LCALLDELY

显示子程序

SJMPSOX1

DELY:

MOVR5,#1AH

MOVR6,#7DH

实验十 电脑时钟(定时器、中断器综合实验)

熟悉MCS-51定时器,串行口和中断初始化编程方法,了解定时器的应用实时程序的设计与调试技巧。

编写程序,从本实验系统键盘上输入时间初值,用定时器产生0.1S定时中断,对时钟计数器计数,并将数值实时地送数码管显示。

⑵在“P.”状态下键入0030,然后按“EXEC”进入该实验项目的运行。

在与PC联机状态下,编译、连接、下载PH51\se10.asm,用连续方式运行该程序。

3、在键盘上输入时间初值,按执行键EXEC执行,数码管上实时显示时间值。

4、按“暂停图标”或实验箱上的“暂停按钮”,系统无条件退出该程序运行返回监控状态。

修改程序使定时器工作方式改变(实现12小时制)

将语句CJNEA,#24H,DONE改为CJNEA,#12H,DONE

六 实验源程序

SJMPCHK00

ORG000BH

LJMPCLOCK;

INT_T0

ORG0030H

CHK00:

MOVSP,#60H

LCALLLEDP

CHK0:

LCALLLCK0;

键扫,显示子程序

LCALLPTDS0;

显示缓冲区放数子程序

MOVTMOD,#01H

ORLIE,#10000010b;

EA=1,IT0=1

MOVTL0,#0

MOVTH0,#4ch;

定时中断初始化

MOV23H,#00H

SETBTR0;

开定时

LOO5:

LCALLDIS;

SSEE;

显示

LCALLPTDS0

SJMPLOO5

PTDS0:

MOVR0,#79H

MOVA,22H

ACALLPTDS

MOVA,21H

;

---------------------------------------

PTDS:

MOVR1,A;

拆送显示缓冲区

ACALLPTDS1

MOVA,R1

SWAPA

PTDS1:

ANLA,#0FH

MOV@R0,A

CLOCK:

MOVTL0,#0B7H

MOVTH0,#3CH;

恢复初值

PUSHPSW

PUSHACC

SETB0D3H;

保护

INC23H;

0.1秒加1

MOVA,23H

CJNEA,#20,DONE;

1秒到吗?

MOV23H,#00H;

清0.1秒单元

INCA;

秒加1

DAA

MOV22H,A;

十进制调整

CJNEA,#60H,DONE;

60秒到吗?

MOV22H,#00H;

秒单元清零

INCA

DAA;

分加1.十进制调整

MOV21H,A

60分到吗?

MOV21H,#00H;

分单元清零

时加1.十进制调整

MOV20H,A

CJNEA,#24H,DONE;

24小时到吗?

MOV20H,#00H;

时单元清零

DONE:

POPACC;

退栈

POPPSW

RETI

----------------------------------------------

SSEE:

SETBRS1;

换工作区

MOVR5,#05H

SSE2:

MOV30H,#20H

MOV31H,#7EH

MOVR7,#06H

SSE1:

MOVA,30H

MOVX@R1,A;

字位送入

MOVR0,31H

MOVA,@R0

MOVDPTR,#DDFF

MOVCA,@A+DPTR;

取字形代码

MOVR1,#0DCH

字形送入

MOVA,30H;

右移

RRA

MOV30H,A

DEC31H

MOVA,#0FFH

关显示

DJNZR7,SSE1;

6位显示完了吗?

DJNZR5,SSE2;

5次显示完了吗?

CLRRS1

-------------------------------------------------------

DDFF:

DB0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H

DB88H,83H,0C6H,0A1H,86H,8EH,0FFH,0CH,89H,0DEH

X3:

MOVR0,#50H

MOVR1,A

MOV@R1,A

CLRA

POPDPH

POPDPL

MOVCA,@A+DPTR

CJNEA,01H,X30

decr1

clra

X31:

PUSHDPL

PUSHDPH

X30:

DECR1

SJMPX31

--------------------------

X2:

MOVR6,#50H

X0:

ACALLXLE

JNBACC.5,XX0

DJNZR6,X0

MOVR6,#20H

MOVR0,A

MOVR7,A

MOVA,#10H

X1:

JNBACC.5,XX1

DJNZR6,X1

MOVA,R7

SJMPX2

XX1:

XX0:

----------------------------

XLE:

ACALLDIS

ACALLKEY

MOVR1,#48H

MOVA,@R1

INCR1

MOVR3,A

XRLA,R3

MOVR3,04H

MOVR4,02H

JZX10

MOVR2,#88H

MOVR4,#88H

X10:

DECR4

XRLA,#82H

JZX11

XRLA,#0EH

JZX12

DECR2

SJMPX13

X12:

MOVR4,#0FH

X11:

MOVR2,04H

MOVR4,03H

X13:

MOVA,R3

JBACC.5,X113

JBACC.4,X113

MOVDPTR,#LS3

X113:

---------------------------------

LS3:

DB07H,04H,08H,05H,09H,06H,0AH

DB0BH,01H,00H,02H,0FH,03H,0EH

DB0CH,0DH

-----------------------------------

DIS:

SETBRS1

MOVR0,#7EH

MOVDPTR,#LS0

LS2:

incR1

LS1:

DJNZR3,LS1

RRCA

DECR0

JNZLS2

movx@r0,a

decr0

cpla

---------------------------------------------

LS0:

DB0C0H,0F9H,0A4H,0B0H,99H,92H

DB82H,0F8H,80H,90H,88H,83H,0C6H

DB0A1H,86H,8EH,0FFH,0CH,89H,7FH,0BFH

KEY:

MOVR2,#0FEH

MOVR3,#08H

RLA

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2