单片机汇编实验程序

2020-04-16 09:30

实验一

;1、把R1中内容传送至R0中 org 0000h mov r1,#22h

mov a,r1 mov r0,a

;2、把内部数据存储器20H单元中的内容传送至内部数据存储器30H单元中 mov 20h,#33h mov 30h,20h

;3、把外部数据存储器20H单元中的内容传送至内部数据存储器20H单元中 mov dptr,#20h mov a,#66h movx @dptr,a clr a

movx a,@dptr mov 20h,a

;4、把外部数据存储器20H单元中的内容传送至内部数据存储器20H单元中 mov dptr,#2000h movx @dptr,a clr a

movx a,@dptr mov 20h,a

;5、把外部程序存储器2000H单元中的内容传送至内部数据存储器20H单元中

mov dptr,#2000h clr a

movc a,@a+dptr mov 20h,a sjmp $ org 2000h tab: db 88h end

6.把外部数据存储器2050H单元、2060H单元中的内容相互交换。 mov dptr,#2050h mov a,#55h movx @dptr,a

mov dptr,#2060h mov a,#66h movx @dptr,a clr a

movx a,@dptr push acc

mov dptr,#2050h

movx a,@dptr mov dptr,#2060h movx @dptr,a pop acc

mov dptr,#2050h movx @dptr,a

;8、应用MOVC A,@A+dptr指令求累加器A的平方值Y(设Y<=255),并把结果送至R7中保存。

org 0000h ljmp main org 0030h

main: mov a,#3h ;查3的平方值

mov dptr,#tab ;指向平方表的表头 movc a,@a+dptr ;查表指令 sjmp $

tab:db 0,1,4,9,16,25,36,47,64,81,100,121,144,169,196,255;平方表 end

;实验二

;1、将(R2R3)和(R4R5)中的双字节无符号数相加,结果存放在40H和41H单元中。;注意清借进位标志CY org 0000h clr c

mov r2,#22h mov r3,#33h mov r4,#44h mov r5,#55h mov a,r3 add a,r5 mov 40h,a mov a,r2 addc a,r4 mov 41h,a sjmp $ end

ORG 0

SJMP MAIN

ORG 0030H MAIN:MOV A,R3 CLR C

SUBB A,R5 MOV 42H,A MOV A,R2 SUBB A,R4 MOV 43H,A SJMP $ END

;3.已知在内部数据存储器M1,M2,M3单元中存有三个无符号数X1,X2,X3,请编程将他们相加,并把和存入R0和R1(R0中为高八位)中 M1 EQU 30H M2 EQU 31H M3 EQU 32H ORG 0

MOV R0,#0 MOV R1,#0 MOV A,M1 ADD A,M2 JNC JXJ INC R0 JXJ:ADD A,M3 JC ZJIA M1:MOV R1,A SJMP $ ZJIA:INC R0 SJMP M1 END

;4.被乘数为十六位无符号数(低八位在M1单元,高八位在M1+1单元),乘数为八位无符号数存放在M2单元中,请编程将它们相乘并将积存入R2、R3、R4中(R2存放高八位数,R4存放低八位数) M1 EQU 20H M2 EQU 22H ORG 0 MOV B,M2 MUL AB MOV R4,A MOV R3,B MOV B,M2 MOV A,M1+1 MUL AB ADD A,R3

MOV R3,A MOV A,B ADDC A,#0 MOV R2,A SJMP $ END

;6.试编出能完成以下操作的程序 ;(1)使20H单元中的数的高两位变为0,其余位不变。 ANL A,#3FH

;(2)使20H单元中的数的高两位变为1,其余位不变。 ORL A,#0C0H

;(3)使20H单元中的数的高两位取反,其余位不变。 XRL A,#0C0H

;(4)使20H单元中的数据的所有位变反。 XRL A,#0FFH

实验三 ;1.

BLOCK EQU 30H LEN EQU 20H NUM EQU 21H ORG 0

MOV R0,#BLOCK MOV LEN,#6 LOOP:MOV A,@R0 JB ACC.7,FSCL INC NUM M1:INC R0

DJNZ LEN,LOP SJMP $ FSCL:INC NUM+1 SJMP M1 END

;2、设自变量X为一无符号数,存放在内部数据存储器的VAX单元,函数Y存放在FUNC单元,请编写满足如下关系的程序: ;当x>=50时 y=x; ;当x<50时 y=5x。 VAX equ 30H FUNC equ 40H org 0000h mov VAX,#10 mov a,VAX cjne A,#50,fen1

fen1:jc fen2 ;小于50跳到fen2 sjmp exit1 fen2:mov b,#5 mul ab exit1:mov func,a sjmp $ end ;实验四

;1、在外部数据存储器从2000H到2030H地址单元中存放有一数据块,请将它们分别传送至3000H单元到3030H单元中。

org 0000h

mov dptr,#2000h mov r2,#31h loop:movx a,@dptr mov dph,#30h movx @dptr,a inc dpl

mov dph,#20h djnz r2,loop sjmp $ end

;实验五

;2、将8051片内的数据存储器20H单元中存放的单字节二进制数,转化为ASCII码,存放在30H,31H单元中,(要求将ASCII码转换部分设计为子程序)。

org 0000h mov 20h,#2ah mov a,20h anl a,#0fh acall asc1 mov 30h,a mov a,20h anl a,#0f0h

swap a ;低八位与高八位交换 acall asc1 mov 31h,a sjmp $

asc1:cjne a,#10,fen1 ;ASCII码转换子程序 fen1:jc fen2 add a,#7h


单片机汇编实验程序.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:广州市医疗器械零售行业企业名录2018版620家 - 图文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: