微机原理及应用实验报告.docx

上传人:b****9 文档编号:25471769 上传时间:2023-06-09 格式:DOCX 页数:30 大小:300.21KB
下载 相关 举报
微机原理及应用实验报告.docx_第1页
第1页 / 共30页
微机原理及应用实验报告.docx_第2页
第2页 / 共30页
微机原理及应用实验报告.docx_第3页
第3页 / 共30页
微机原理及应用实验报告.docx_第4页
第4页 / 共30页
微机原理及应用实验报告.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

微机原理及应用实验报告.docx

《微机原理及应用实验报告.docx》由会员分享,可在线阅读,更多相关《微机原理及应用实验报告.docx(30页珍藏版)》请在冰豆网上搜索。

微机原理及应用实验报告.docx

微机原理及应用实验报告

微机原理及应用实验报告

班级:

机械1301班

姓名:

黄佳清

学号:

07

座位号:

中南大学机电工程学院

1.实验目的

1、熟悉MCS-51单片机仿真开发机和开发调试软件的操作使用和调整;

2、学会编写和输入汇编语言源程序、对输入的源程序进行汇编;

3、掌握程序的调试和运行的各种方法。

2.实验设备

台式微型计算机

MCS-51仿真开发机

THKSCM-2A

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

60分)

本实验秩序运行KeiluVersion2程序,设置为keil为纯软件仿真

1.新建工程项目

2.设置工程文件参数

3.编写新程序事例

4.调试程序直至能够运行出结果。

四.实验程序

AJMP

MAIN

INC

R0

ORG

0030H

INC

DPTR

MAIN:

MOV

R0,#20H

DJNZ

R2,A2

MOV

R2,#0FH

MOV

R0,#030H:

MOV

A,#00H

断点,

观察并记录!

A1:

MOV

@R0,A

MOV

DPTR,#7000H

INC

R0

MOV

R2,#0FH

A3:

MOVX

A,@DPTR

INC

A

MOVX

@R0,A

INC

R0

DJNZ

R2,A1

INC

DPTR

MOV

R0,#20H;暂

DJNZ

R2,A3

停,观察并记录!

DO:

LJMP

DO

MOV

DPTR,#7000H

END;内部存储器数据块

MOV

R2,#0FH

赋值,

搬运数据块到外部存储器,

A2:

MOV

A,@R0

再搬运回内部数据存储器。

MOVX

@DPTR,A

五、附加题

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

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

R0

R2

A

20H

21H

22H

;23H

24H

25H

0x2f

0x00

0x0f

00H

01H

02H

r03H

04H

05H

26H

27H

28H

29H

2AH

2BH

2CH

2DH

2EH

06H

07H

08H

09H

0AH

0BH

:

0CH

0DH

0EH

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

R0

DPL

7000H

7001H

7002H

7003H

7004H

7005H

7006H

0X2F

0FH

00H

01H

02H

03H

04H:

05H

06H:

7007H

7008H

7009H

700AH

700BH

700CH

700DH

700EH

07H

08H

09H

0AH

0BH

0CH

0DH「

0EH

3.画出程序流程图

开始

赋值R0—20HR2^0FHA—00H

(A)—(R0)

(DPTR尸(A)

R0—R0+1

DPTF—DPTR+1R2—R2-1

赋值

 

(A)—(DPTR)

(R0)—(A)

DPTF—DPTR+1R0—R0+1

R2—R2-1

 

R2=0

 

结束

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

实现倒序数据转移程序

AJMP

ORG

0030H

MAIN:

MOV

R0,#40H

MOV

R2,#0FH

MOV

A,#00H

A1:

MOV

@R0,A

DEC

R0

INC

A

DJNZ

R2,A1

MOV

R0,#30H

MOV

DPTR,#7000H

MOV

R2,#0FH

A2:

MOV

A,@R0

MOVX

@DPTR,A

INC

R0

INC

DPTR

DJNZ

R2,A2

MOV

R0,#030H

MOV

DPTR,#7000H

MOV

R2,#0FH

A3:

MOVX

A,@DPTR

MOVX

@R0,A

INC

R0

INC

DPTR

DJNZ

R2,A3

DO:

LJMP

DO

MAIN

END

 

 

实验二程序设计

一、实验目的

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

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

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

30分/单个程序)

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

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

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

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

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

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

四、参考实验程序

题目1

ORG0000H

LJMPmain

MOVA,R2

MOVR4,A

ORG0100H

LOOP1:

MOVA,@R1

main:

...将10个随机数送入内部RAM的

CLRC

50〜59H单元

SUBBA,B

NOP;可在此处设置断点

JCLOOP2;改为JNC即可逆

ACALLSELSOR调用排序子程序

序排列

MOVB,@R1

HERE:

AJMPHERE;可在此处设置断

MOVA,R1

点,观察每次排序结果

MOVR3,A

NOP

LOOP2:

INCR1

DJNZR4,LOOP1

;排序子程序

MOVA,R3

DATEQU60H;排序数据首地

MOVR1,A

MOVA,@R1

NEQU10;排序个数

XCHA,@R0

SELSORT:

MOVR0,#DAT

XCHA,@R1

MOVR2,#N-1

INCR0

LOOP:

MOVB,@R0

DJNZR2,LOOP

MOVA,R0

RET

MOVR3,A

END

INCA

MOVR1,A

题目2

LJMPmain

ORG0000H

ORG0100H

main:

MOVR0,#20H

MOV@R0,#0FFH

INCR0

MOV@R0,#0FFH

INCR0

MOV@R0,#0FFH

MOVR0,#30H

MOV@R0,#22H

INCR0

MOV@R0,#22H

INCR0

MOV@R0,#22H

ACALLMULTADD调用多字节加法子程序

HERE:

AJMPHERE;可在此处设置断

点,观察结果

NOP

;N字节无符号数加法子程序

五、附加题

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

Y

结束

开始

存入数据到60H~69H

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

开始

存入数据到20好

~22H,30H~32H

RO—20H

R1—30H

R2—3H

C清零

a—((R0))+((R1))

((R0))JA

RgR0+1

R1—R1+1

R2—R2-1

A—A+C

((R0))—a

结束

 

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

ORG0000H

LJMPmain

ORG0100H

main:

MOVR0,#20H

MOV@R0,#0FFH

INCR0

MOV@R0,#0FFH

INCR0

MOV@R0,#0FFH

MOVR0,#30H

MOV@R0,#22H

INCR0

MOV@R0,#22H

INCR0

MOV@R0,#22H

ACALLMULTADD调用多字节加法

子程序

HERE:

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

NOP

;N字节无符号数加法子程序

([R0]+[R1])=([R0])

;入口:

R0,R1,R2

;占用资源:

ACC,B

;堆栈需求:

2字节

;出口:

R0存放结果高地址

MULTADD:

MOVR0,#20H;地址1

MOVR1,#30H;地址2

MOVR2,#03H;加法字节数

NSUB:

CL

RC

NSUB1:

MOV

A,@R0

ADDC

A,@R1

MOV

@R0,A

INC

R0

INC

R1

DJNZ

R2,NSUB1

CLR

A

ADDC

A,#00H;把进位

位C加到高8位去

MOV

@R0,A

RET

END

 

实验三定时/计数器实验

一、实验目的

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

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

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

60分/单个程序)

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

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

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

XTAL1A

18^

XTAL2

P2.2

XTAL1

P2.1

VSS

P2.0

39P0.0

^38—P0T

^57~P02

■36

P0.3

"*35P0.4

^4P0.5

F3

■T.

P0.6

tryr

P0.7

*T>

31

EA

30

ALE

dC59-

PSEN

^8P27

P2.6

F6

P2.5

FP2.4毁4P2.3

^*23

P2.2

-

P2.1

P2.0

 

程序:

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

;100us时间常数(12MHz)

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

TMOD,#02h;方式2,定时器

TH0,#T100us;100us时间常数(12MHz)

TL0,#T100us;100us时间常数(12MHz)

IE,#b;EA=1,IT0=1

setbTR0;开始定时

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

movC100us,#HIGH(Tick);05H<-#13H初始化100us记数单元

movC100us+1,#LOW(Tick);O6H<-#88H初始化100us记数单元

Loop:

ljmpLoop

ORG0300H

TOInt:

pushPSW

mova,C100us+1;100us高位记数单元06H

jnzGoon

decC100us;100us低位记数单元05H

Goon:

decC100us+1

mova,C100us;100us低位记数单元05H

orla,C100us+1

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

movC100us,#HIGH(Tick);05H<-#13H,100us记数单元为0则初始化100us记数单元

movC100us+1,#LOW(Tick);06H<-#88H,100us记数单元为0则初始化100us记数单元

MOV

A,P1

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

RLA

MOVP1,A

Exit:

popreti

PSW

End

、附加题

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

奇数偶数交换点亮

Tick

equ5000

T0Int:

T100us

equ156

push

PSW

C100usequ

5h

mov

a,C100us+1

org

0000H

jnz

Goon

ljmp

Start

dec

C100us

org

000BH

Goon:

LJMP

T0Int

dec

C100us+1

J

mov

a,C100us

ORG

0100H

orl

a,C100us+1

Start:

jnz

Exit

mov

TMOD,#02h

mov

TH0,#T100us

mov

C100us,#HIGH(Tick)

mov

TL0,#T100us

mov

C100us+1,#LOW(Tick)

mov

IE,#b

MOV

A,P1

setb

TR0

RLA

mov

p1,#0AAH

MOVP1,A

mov

C100us

Exit:

mov

C100us+1

pop

PSW

Loop:

ljmpLoop

reti

End

ORG0300H

2.用MCS-51单片机的内部定时器定时中断,编写一段电子秒表程

序,在静态数码管上实现显示。

TCNTAEQU30H;KEYCNTEQU33HLJMPSTART

TCNTBEQU31HSP1BITORG0BH

SECEQU32HORG00HLJMPINT_T0

START:

MOVKEYCNT,#00H

LJMPDKN

MOVA,TCNTA

MOVSEC,#00H

KN1:

CJNEA,#02H,KN2

CJNEA,#100,NEXT

MOVA,SEC

CLRTR0

MOVTCNTA,#00H

MOVB,#10

LJMPDKN

INCTCNTB

DIVAB

KN2:

CJNEA,#03H

MOVA,TCNTB

MOVDPTR,#TABLE

MOVSEC,#00H

CJNEA,#4,NEXT

MOVCA,@A+DPTR

MOVA,SEC

MOVTCNTB,#00H

MOVP0,A

MOVB,#10

INCSEC

MOVA,B

DIVAB

MOVA,SEC

MOVDPTR,#TABLE

MOVDPTR,#TABLE

CJNEA,#100,DONE

MOVCA,@A+DPTR

MOVCA,@A+DPTR

MOVSEC,#00H

MOVP2,A

MOVP0,A

DONE:

MOVA,SEC

MOV

MOVA,B

MOVB,#10

TMOD,#02H

MOVDPTR,#TABLE

DIVAB

SETBET0

MOVCA,@A+DPTR

MOVDPTR,#TABLE

SETBEA

MOVP2,A

MOVCA,@A+DPTR

WT:

JBSP1,WT

MOVKEYCNT,#00H

MOVP0,A

LCALLDELY10MS

DKN:

JNBSP1,$

MOVA,B

JBSP1,WT

LJMPWT

MOVDPTR,#TABLE

INCKEYCNT

DELY10MS:

MOVCA,@A+DPTR

MOVA,KEYCNT

MOVR6,#20

MOVP2,A

CJNEA,#01H,KN1

D1:

MOVR7,#248

NEXT:

RETI

SETBTR0

DJNZR7,$

TABLE:

DB

MOVTH0,#06H

DJNZR6,D1

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

MOVTL0,#06H

RET

H,6FH

MOVTCNTA,#00H

INT_T0:

END

MOVTCNTB,#00H

INCTCNTA

实验四动态显示实验

、实验目的

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

位LED数码管显示的方法;

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

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

60分/单个程序)

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

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

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

缺口朝上。

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

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

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

F

「P2

P2

P2

P2

P2

.012

3.4

5

 

电路接线图

程序:

ORG0000H

AJMPMAIN

ORG0080H

MAIN:

MOVP2,#0FFH

MOVP0,#7DH显示6

CLR;选中第一个数码管

LCALLDELAY调用延时;MOVP0,#0FFH关显示

SETB

MOVP0,#6DH;显示5

CLR;选中第二个数码管

LCALLDELAY

;MOVP0,#0FFH

SETB

MOVP0,#4FH显示3

CLR;选中第四个数码管

LCALLDELAY

MOVP0,#0FFH

SETB

MOVP0,#5BH显示2

CLR;选中第五个数码管

LCALLDELAY

MOVP0,#0FFH

SETB

MOVP0,#066H;显示4

CLR;选中第三个数码管

LCALLDELAY

MOVP0,#0FFH

SETB

MOVP0,#06H;显示1

CLR;选中第六个数码管

LCALLDELAY

MOVP0,#0FFH

SETB

CLR;选中第七个数码管

MOVP0,#21H;显示6

 

;LCALLDELAY

;MOVP0,#0FFH

;SETB

;CLR;选中第八个数码管

;MOVP0,#7AH;显示7

;LCALLDELAY

;SETB

;MOVP0,#0FFH

AJMPMAIN;重新开始

DELAY:

延;时子程序

MOVR7,#20H

D1:

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

END

 

五、附加题(完成分值:

20分/单个附加题,附加题要求当场给指导老师检查结

果,否则无效。

1.

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

 

2修改程序,稳定显示当前时间(如AM11:

30),并且能模拟真实时钟走动。

ORG0000H

AJMPMAIN

CLR;选中第二个数码管

ORG0080H

MOVP0,#06DH

LCALLDELAY

MAIN:

MOVR1,#7FH

CLR;选中第

;MOVP0,#0FFH

MOVR2,#7FH

四个数码管

SETB

MOVR3,#7FH

LCALLDELAY

MOVR4,#7FH

;MOVP0,#0FFH

SETB

MOVP0,#04H

LOOP1:

CLR;选中第

MOVP2,#03FH

MOVP0,#06H

三个数码管

CLR;选中第

LCALLDELAY

MOVP0,#3FH

五个数码管

;MOVP0,#0FFH

CLR

LCALLDELAY

SETB

LCALLDELAY

;MOVP0,#0FFH

;MOVP0,#0FFH

SETB

SETB

MOVP0,#06DH

CLR;选中第

MOVP0,#3FH

DJNZR1,LOOP1

四个数码管

CLR;选中第

LCALLDELAY

二个数码管

LOOP2:

MOVP2,#0FFH

;MOVP0,#0FFH

LCALLDELAY

SETB

;MOVP0,#0FFH

MOVP0,#6H

SETB

CLR;选中第

MOVP0,#06H

一个数码管

CLR;选中第

LCALLDELAY;

五个数码管

MOVP0,#04H

调用延时

LCALLDELAY

CLR;选中第

;MOVP0,#0FFH;

;MOVP0,#0FFH

三个数码管

关显示

SETB

LCALLDELAY

SETB

;MOVP0,#0FFH

DJNZR2,LOOP2

SETB

MOVP0,#3FH

MOVP0,#3FH

CLR;选中第二个数码管

LCALLDELAY;MOVP0,#0FFH

SETB

MOVP0,#04H

CLR;选中第三个数码管

LCALLDELAY;MOVP0,#0FFH

SETB

MOVP0,#06DH

CLR;选中第四个数码管

LCALLDELAY;MOVP0,#0FFH

SETB

MOVP0,#06H

CLR;选中第

五个数码管

LCALLDELAY

;MOVP0,#0FFH

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

当前位置:首页 > 经管营销 > 企业管理

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1