哈工大单片机原理与应用实验报告 下载本文

MOV A,R6 MOV B,R3 MUL AB ADD A,R4 XCH A,R6 XCH A,B ADDC A,R5 MOV R5,A MOV F0,C MOV A,R2 MUL AB ADD A,R5 MOV R5,A CLR A MOV ACC.0,C MOV C,F0 ADD A,B MOV R4,A RET

SJMP $ END

实验八 多分支程序

一、实验目的

掌握汇编语言的编程。

二、实验内容

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

三、程序框图

四、实验过程

-12-

根据程序框图编写程序,调试无误后装载,运行后观察记录实验现象,并截图。

五、实验结果及分析

1、如何修改程序使数据循环变慢,同时将0字循环改为4字循环? 答:修改延时程序DLY,增长延时时间

原延时程序: DLY:

MOV R3,#0A0H DL1:

MOV R4,#7DH DL2: NOP NOP

DJNZ R4,DL2 DJNZ R3,DL1 RET END

修改后的延时程序: DLY:

MOV R3,#0FH DL1:

MOV R4,#7DH DL2: NOP NOP

DJNZ R4,DL2 DJNZ R3,DL1 RET END

将0字循环改为4字循环: 修改后的子程序 ROUT0:

MOV 20H,#99H MOV A,20H MOV R0,#0DCH MOV R1,#0DDH MOVX @R0,A MOV A,#01H

LP0: MOVX @R1,A ACALL DLY RL A SJMP LP0

六、实验源程序

ORG 0

-13-

MOV 20H,#04H MOV R0,#20H MOV A,@R0

MOV DPTR,#TAB LOOP:JMP @A+DPTR TAB: AJMP ROUT0 AJMP ROUT1 AJMP ROUT2 AJMP ROUT3 ROUT0:

MOV 20H,#0C0H MOV A,20H MOV R0,#0DCH MOV R1,#0DDH MOVX @R0,A MOV A,#01H

LP0: MOVX @R1,A ACALL DLY RL A

SJMP LP0 ROUT1:

MOV 20H,#0F9H MOV A,20H MOV R0,#0DCH MOV R1,#0DDH MOVX @R0,A MOV A,#01H LP1:

MOVX @R1,A ACALL DLY RL A

SJMP LP1 ROUT2:

MOV 20H,#0A4H MOV A,20H MOV R0,#0DCH MOV R1,#0DDH MOVX @R0,A MOV A,#01H LP2:

MOVX @R1,A ACALL DLY RL A

SJMP LP2 ROUT3:

MOV 20H,#0B0H

-14-

MOV A,20H MOV R0,#0DCH MOV R1,#0DDH MOVX @R0,A MOV A,#01H LP3:

MOVX @R1,A ACALL DLY RL A

SJMP LP3 DLY:

MOV R3,#0A0H DL1:

MOV R4,#7DH DL2: NOP NOP

DJNZ R4,DL2 DJNZ R3,DL1 RET END

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

一、实验目的

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

二、实验内容

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

三、程序框图

-15-