微机原理及应用实验报告Word格式文档下载.docx

上传人:b****3 文档编号:7726094 上传时间:2023-05-09 格式:DOCX 页数:37 大小:156.29KB
下载 相关 举报
微机原理及应用实验报告Word格式文档下载.docx_第1页
第1页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第2页
第2页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第3页
第3页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第4页
第4页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第5页
第5页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第6页
第6页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第7页
第7页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第8页
第8页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第9页
第9页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第10页
第10页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第11页
第11页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第12页
第12页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第13页
第13页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第14页
第14页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第15页
第15页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第16页
第16页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第17页
第17页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第18页
第18页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第19页
第19页 / 共37页
微机原理及应用实验报告Word格式文档下载.docx_第20页
第20页 / 共37页
亲,该文档总共37页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

微机原理及应用实验报告Word格式文档下载.docx

《微机原理及应用实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《微机原理及应用实验报告Word格式文档下载.docx(37页珍藏版)》请在冰点文库上搜索。

微机原理及应用实验报告Word格式文档下载.docx

DJNZR2,A2

MOVR0,#030H;

断点,观察并记录!

A3:

MOVXA,@DPTR

MOVX@R0,A

DJNZR2,A3

DO:

LJMPDO

END;

内部存储器数据块赋值,搬运数据块到外部存储器,再搬运回内部数据存储器。

五、附加题

1.将光标移到想要暂停的地方,MOVR0,#20H所在行,选择“执行到光标处”功能,程序快速执行到光标所在行。

观察运行情况,并记录下表。

R0

R2

A

20H

21H

22H

23H

24H

25H

0x2f

0x00

0x0f

00H

01H

02H

03H

04H

05H

26H

27H

28H

29H

2AH

2BH

2CH

2DH

2EH

06H

07H

08H

09H

0AH

0BH

0CH

0DH

0EH

2.在MOVR0,#0A0H行设置断点,全速执行,暂停后观察并记录以下单元内容

DPL

7000H

7001H

7002H

7003H

7004H

7005H

7006H

0X2F

0FH

7007H

7008H

7009H

700AH

700BH

700CH

700DH

700EH

3.画出程序流程图

N

Y

Y

4.修改程序,实现新功能

实现倒序数据转移程序

AJMP

MAIN

MOVR0,#40H

DECR0

MOVR0,#30H

MOVR0,#030H

END

实验二程序设计

一、实验目的

1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;

2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。

二、实验内容及步骤(完成分值:

30分/单个程序)

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

已知8031内部RAM60H~69H单元中,依次存放了0FH,09H,07H,0CH,03H,0DH,08H,0BH,04H,01H共10个字节无符号数,编程将它们规律排序,最大数放在60H中,最小数放在69H中。

结果应该是0FH,0DH,0CH,0BH,09H,08H,07H,04H,03H,01H。

题目2、编写多字节加法程序并上机调试通过。

8031内部RAM22H、21H、20H单元中,分别存放了3字节无符号被加数0FFH、0FFH、0FFH(低字节在低地址),在32H、31H、30H单元中分别存放3字节无符号加数22H、22H、22H(低字节在低地址),求两数之和,并将结果存入内部RAM23H、22H、21H、20H单元中(低字节在低地址)。

结果应该是01H、22H、22H、21H。

四、参考实验程序

题目1

ORG0000H

LJMPmain

ORG0100H

main:

...将10个随机数送入内部RAM的50~59H单元

NOP;

可在此处设置断点

ACALLSELSORT;

调用排序子程序

HERE:

AJMPHERE;

可在此处设置断点,观察每次排序结果

NOP

;

排序子程序

DATEQU60H;

排序数据首地址

NEQU10;

排序个数

SELSORT:

MOVR0,#DAT

MOVR2,#N-1

LOOP:

MOVB,@R0

MOVA,R0

MOVR3,A

INCA

MOVR1,A

MOVA,R2

MOVR4,A

LOOP1:

MOVA,@R1

CLRC

SUBBA,B

JCLOOP2;

改为JNC即可逆序排列

MOVB,@R1

MOVA,R1

LOOP2:

INCR1

DJNZR4,LOOP1

MOVA,R3

XCHA,@R0

XCHA,@R1

DJNZR2,LOOP

RET

END

题目2

MOVR0,#20H

MOV@R0,#0FFH

MOVR0,#30H

MOV@R0,#22H

ACALLMULTADD;

调用多字节加法子程序

可在此处设置断点,观察结果

N字节无符号数加法子程序([R0]+[R1])=([R0])

入口:

R0,R1,R2

占用资源:

ACC,B

堆栈需求:

2字节

出口:

R0存放结果高地址

MULTADD:

MOVR0,#20H;

地址1

MOVR1,#30H;

地址2

MOVR2,#03H;

加法字节数

NSUB:

NSUB1:

ADDCA,@R1

MOV@R0,A

DJNZR2,NSUB1

CLRA

ADDCA,#00H;

把进位位C加到高8位去

MOV@R0,A

1.画出题目1的程序流程图。

N

2.将题目1的排序算法进行改变,采用另一种排序算法进行排序。

ORG0000H

MAIN:

...;

将10个随机数送入

MOV50H,@R1

CJNEA,50H,BIG;

做减法。

BIG:

JNCLESS;

是0则跳转

LJMPLOOP3

LESS:

XCHA,@R1;

交换60与61中的内容

LOOP3:

CJNER1,#6AH,LOOP2;

MOV51H,R0

MOVR1,51H

INCR1

CJNER0,#69H,LOOP2;

以此类推,直到剩最后两个数比较完。

SJMP$

END

3.画出题目2的程序流程图。

4.改为编写多字节减法程序。

实验三定时/计数器实验

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

2、了解和熟悉MCS-51单片机实验板的功能。

60分/单个程序)

本实验需要用到单片机最小应用系统(F1区)和十六位逻辑电平显示模块(I4区)。

用P1口做输出口,接十六位逻辑电平显示,程序功能使发光二极管从右到左轮流循环点亮。

三、参考流程图、电路图、参考程序

程序:

Tickequ5000;

100us记数次数,5000x100us=,十六进制#1388H

T100usequ156;

100us时间常数(12MHz)

C100usequ5h;

100us记数单元,05H、06H

org0000H

ljmpStart

org000BH

LJMPT0Int

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

ORG0100H

Start:

movTMOD,#02h;

方式2,定时器

movTH0,#T100us;

movTL0,#T100us;

movIE,#b;

EA=1,IT0=1

setbTR0;

开始定时

movp1,#0FEH;

由于电路原因,输出高电平为灭灯。

movC100us,#HIGH(Tick);

05H<

-#13H,初始化100us记数单元

movC100us+1,#LOW(Tick);

06H<

-#88H,初始化100us记数单元

Loop:

ljmpLoop

ORG0300H

T0Int:

pushPSW

mova,C100us+1;

100us高位记数单元06H

jnzGoon

decC100us;

100us低位记数单元05H

Goon:

decC100us+1

mova,C100us;

orla,C100us+1

jnzExit;

100us记数单元不为0,返回

-#13H,100us记数单元为0则初始化100us记数单元

-#88H,100us记数单元为0则初始化100us记数单元

MOVA,P1;

100us记数单元为0,位移!

RLA

MOVP1,A

Exit:

popPSW

reti

End

1.修改程序,实现新功能

奇数偶数交换点亮

Tickequ5000

T100usequ156

C100usequ5h

movTMOD,#02h

movTH0,#T100us

movTL0,#T100us

movIE,#b

setbTR0

movp1,#0AAH

movC100us

movC100us+1

mova,C100us+1

decC100us

mova,C100us

jnzExit

movC100us,#HIGH(Tick)

movC100us+1,#LOW(Tick)

MOVA,P1

2.用MCS-51单片机的内部定时器定时中断,编写一段电子秒表程序,在静态数码管上实现显示。

TCNTAEQU30H;

TCNTBEQU31H

SECEQU32H

KEYCNTEQU33H

SP1BIT

ORG00H

LJMPSTART

ORG0BH

LJMPINT_T0

START:

MOVKEYCNT,#00H

MOVSEC,#00H

MOVA,SEC

MOVB,#10

DIVAB

MOVDPTR,#TABLE

MOVCA,@A+DPTR

MOVP0,A

MOVA,B

MOVP2,A

MOVTMOD,#02H;

SETBET0

SETBEA

WT:

JBSP1,WT

LCALLDELY10MS

INCKEYCNT

MOVA,KEYCNT

CJNEA,#01H,KN1

SETBTR0

MOVTH0,#06H

MOVTL0,#06H

MOVTCNTA,#00H

MOVTCNTB,#00H

LJMPDKN

KN1:

CJNEA,#02H,KN2

CLRTR0

KN2:

CJNEA,#03H

DIVAB

MOVDPTR,#TABLE

MOVKEYCNT,#00H

DKN:

JNBSP1,$

LJMPWT

DELY10MS:

MOVR6,#20

D1:

MOVR7,#248

DJNZR7,$

DJNZR6,D1

RET

INT_T0:

INCTCNTA

MOVA,TCNTA

CJNEA,#100,NEXT

INCTCNTB

MOVA,TCNTB

CJNEA,#4,NEXT

INCSEC

CJNEA,#100,DONE

DONE:

MOVDPTR,#TABLEMOVCA,@A+DPTR

NEXT:

RETI

TABLE:

DB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH

END

实验四动态显示实验

1、掌握七段LED数码管显示器工作原理,以及用动态扫描方法编程实现8位LED数码管显示的方法;

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

本实验需要用到单片机最小应用系统(F1区)和动态扫描显示模块(I2区)。

1.用8P排线将单片机最小应用系统(F1区)的P2口和动态扫描显示的位选JD1I相连,用8P排线将单片机最小应用系统(F1区)的P0口和动态扫描显示模块的段码JD0I相连。

2.用串行数据通信线连接计算机与仿真器,把仿真器插到模块的锁紧插座中,请注意仿真器的方向:

缺口朝上。

3.打开KeiluVision2仿真软件,首先建立本实验的项目文件,接着添加源程序,进行编译,直到编译无误。

4.全速运行程序,直至显示效果为稳定的“123456”。

四、参考流程图、电路图、实验程序

电路接线图

程序:

AJMPMAIN

ORG0080H

MOVP2,#0FFH

MOVP0,#7DH;

显示6

CLR;

选中第一个数码管

LCALLDELAY;

调用延时

MOVP0,#0FFH;

关显示

SETB

MOVP0,#6DH;

显示5

选中第二个数码管

LCALLDELAY

MOVP0,#0FFH

MOVP0,#066H;

显示4

选中第三个数码管

MOVP0,#4FH;

显示3

选中第四个数码管

MOVP0,#5BH;

显示2

选中第五个数码管

MOVP0,#06H;

显示1

选中第六个数码管

选中第七个数码管

MOVP0,#21H;

显示6

选中第八个数码管

MOVP0,#7AH;

显示7

AJMPMAIN;

重新开始

DELAY:

;

延时子程序

MOVR7,#20H

MOVR6,#30H

D2:

DJNZR6,D2

DJNZR7,D1

RET

DISTAB:

DB3FH,06H,5BH,4FH

DB66H,6DH,7DH,07H

DB7FH,6FH,77H,7CH

DB39H,5EH,79H,71H

五、附加题(完成分值:

20分/单个附加题,附加题要求当场给指导老师检查结果,否则无效。

1.修改程序,稳定循环显示“GOOD”、“HELLO”、“CSU”、“D510”,程序如何修改

MOVR1,#7FH

MOVR2,#7FH

MOVR3,#7FH

MOVR4,#7FH

MOVP2,#0FFH

MOVP0,#3FH

CLR

LCALLDELAY

MOVP0,#0FFH

MOVP0,#03FH

MOVP0,#7DH

DJNZR1,LOOP1

LOOP2:

MOVP0,#38H

MOVP0,#038H

MOVP0,#79H

MOVP0,#

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

当前位置:首页 > IT计算机 > 电脑基础知识

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

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