单片机实验全集

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1.

将片内30H~40H及片外0010H~0100H清零,然后将片内41H~47H的内容移到片外0041H~0047H,判断

1、若(0041H)<15,则求平方存放到0050H中,并将位00H置1

2、若(0041H)=15,则加15存放到0050H中,并将位01H置1

3、若(0041H)>15,则减15存放到0050H中,并将位02H置1

汇编程序:

ORG 0000H;设置初始地址

MOV R0,#30H;对片内30H~40H清零

MOV R1,#11H

CLR A

CON1:MOV @R0,A

INC R0

DJNZ R1,CON1

MOV DPTR,#0010H;对片外0010H~0100H清零

MOV R1,#0F1H

CLR A

CON2:MOVX @DPTR,A

INC DPTR

DJNZ R1,CON2

MOV R1,#07H;移动内容

MOV R0,#41H

MOV DPTR,#0041H

LOOP:MOV A,@R0

MOVX @DPTR,A

INC R0

INC DPTR

DJNZ R1,LOOP

MOV DPTR,#0041H

MOVX A,@DPTR

CJNE A,#0FH,NEXT1;不相等跳转

ADD A,#0FH;相等情况

MOV DPTR,#0050H

MOVX @DPTR,A

SETB 01H

CLR 00H

CLR 02H

SJMP OUT

NEXT1:JC NEXT2;<跳转

SUBB A,#0FH;>情况

MOV DPTR,#0050H

MOVX @DPTR,A

SETB 02H

CLR 00H

CLR 01H

SJMP OUT

NEXT2:MOV B,A;<情况

MUL AB

MOV DPTR,#0050H

MOVX @DPTR,A

SETB 00H

CLR 01H

CLR 02H

OUT:SJMP $

2

有两个长度为10H的数,分别放到30H和40H为首地址的存储器中(低字节),求其对应之和,放在50H为首地址的存储器中(处理进位位),然后按升序排列,放在70H为首地址的存储器中

汇编程序:

ORG 0000H;设置初始位置

START:MOV R0,#30H

MOV R1,#50H

MOV R3,#10H

CF:MOV A,@R0;将30H的数放在50H

MOV @R1,A

INC R0

INC R1

DJNZ R3,CF

MOV R0,#50H

MOV R1,#40H

MOV R3,#10H

CLR C

JIA:MOV A,@R0;将两个数求和

ADDC A,@R1

MOV @R0,A

INC R0

INC R1

DJNZ R3,JIA

CLR A;查看最后一个数是否有进位位

ADDC A,#00H

MOV 60H,A

MOV R0,#50H;将50H的数放到70H

MOV R1,#70H

MOV R3,#10H

ZY:MOV A,@R0

MOV @R1,A

INC R0

INC R1

DJNZ R3,ZY

MOV DPL,#0FH;用DPL计数

AA:MOV R0,#70H

MOV R1,#71H

PUSH DPL;保护DPL

BB:CLR C

MOV A,@R0

SUBB A,@R1

JC CC;第一个数小于第二个数跳转

MOV A,@R0

XCH A,@R1

MOV @R0,A

CC:INC R0

INC R1

DJNZ DPL,BB;减一不等于零跳转(内循环)

POP DPL

DJNZ DPL,AA;减一不等于零跳转(外循环)

SJMP $

END

3.

设一表格,表中数为:00H、11H、22H……FFH,将片内00H单元中的低4位放到片外0000H 中(0000H中的高4位为0),高4位放到片外0001H中(0001H中的高4位为0),根据0000H 中的数取出表中相应的值存到片内30H中;根据0001H中的数跳到相应的处理程序中,在处理程序中,把相应的位地址置1。

ORG 0000H

START:MOV DPTR,#0000H;将片内00H中的值拆分放入片外相应位置

MOV R1,#00H

ANL A,#0FH

MOVX @DPTR,A

MOV A,@R1

ANL A,#0F0H

SW AP A

INC DPTR

MOVX @DPTR,A

MOV DPTR,#0000H;相应值赋给30H

MOVX A,@DPTR

MOV DPTR,#TABLE;指向表格的首地址

MOVC A,@A+DPTR

MOV 30H,A

MOV DPTR,#0001H;散转

MOV 20H,#00H;置位前先将20H清零

MOVX A,@DPTR

MOV R1,A;A变为3倍

RL A

ADD A,R1

MOV DPTR,#TAB

JMP @A+DPTR

TAB: LJMP PM0

LJMP PM1

LJMP PM2

LJMP PM3

LJMP PM4

LJMP PM5

LJMP PM6

LJMP PM7

LJMP PM8

LJMP PM9

LJMP PMA

LJMP PMB

LJMP PMC

LJMP PMD

LJMP PME

LJMP PMF

PM0:SETB 00H

JMP AA

PM1:SETB 01H

相关文档
最新文档