请教几道单片机编程题目,谢谢帮助!!!!!!!

2024-11-20 13:42:46
推荐回答(4个)
回答1:

1、编程,将8031单片机片内RAM 20H至2FH单元中的数据顺序移到50H至5FH单元中。
ORG 0000H
MOV R0,#20H
MOV R1,#50H
MOV R7,#10H
L00P: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R7,LOOP
END
2、编程,将8031单片机片外RAM 1000H至103FH地址单元中的数据顺序移入片内 RAM从20H开始的地址空间中。
ORG 0000H
MOV DPTR,#1000H
MOV R0,#20H
MOV R7,#40H
LOOP: MOVX A,@DPTR
MOV R0,A
INC DPTR
INC R0
DJNZ R7,LOOP
END
3、 利用8031单片机的CTC0对外部方波脉冲进行计数,要求每输入10个外部脉冲,向CPU申请中断一次,将P1.0电平取反一次。请编出实现该功能的程序。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT0
ORG 0030H
MAIN: MOV TOMD,0006H
MOV TH0,#0F6H
MOV TL0,#0F6H
SETB ET0
SETB EA
SETB TR0
SJMP $
INT0: CPL P1.0
RETI
END
第四题是不是题抄错了,看不懂哦......
问题补充:还有几道问答题:
1. 当MCS51单片机的特殊功能寄存器TMOD=52H时,其定义的功能是什么?
答:化成二进制是01010010,根据TMOD控制字的内容,其表示的功能应该是计数器1、方式1;计数器0、方式3.
2. 要求MCS51单片机CTC0定时10MS,则其计数初值THO/TL0应为多少?
答:看是方式几了,和晶振频率是多少了
假设是常用的方式1,晶振频率为12MHZ,则计数初值X=65536-10000/1=55536,其十六进制为D8F0H,故而TH0=0D8H,TL0=0F0H.
3.MCS-51单片机的特殊功能寄存器TMOD=50HH时,其功能是什么?
答:数据有问题,没有50HH这个十六进制数,如果是50H的话,可参看上题!
4.若要求 MCS-51单片机用CTC0实现10 mS定时,则应设置TH0=? TL0=?
答:和问题补充的第二题为同一个题!

太累了,才给这点分......

回答2:

1、编程,将8031单片机片内RAM 20H至2FH单元中的数据顺序移到50H至5FH单元中。
ORG 100H
MOV R0,#20H
MOV R1,#50H
Lp:
Mov a,@r0
Mov @r1,a
Inc r0
Inc r1
Cjne r1,#2eh,lp
Sjmp $
end
2、编程,将8031单片机片外RAM 1000H至103FH地址单元中的数据顺序移入片内 RAM从20H开始的地址空间中。
MOV R0,#3FH
MOV R1,#20H
MOV DPTR,#1000H
LP:
MOVX A,@DPTR
MOV @R0,A
INC R1
INC DPTR
DJNZ R0,LP
SJMP $
END

回答3:

看着你的题目。。。我知道我的那些汇编知识算是还给老师了。。。

回答4:

1、编程,将8031单片机片内RAM 20H至2FH单元中的数据顺序移到50H至5FH单元中。
ORG 0000H
MOV R0,#20H
MOV R1,#50H
MOV R7,#10H
L00P: MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R7,LOOP
END
2、编程,将8031单片机片外RAM 1000H至103FH地址单元中的数据顺序移入片内 RAM从20H开始的地址空间中。
ORG 0000H
MOV DPTR,#1000H
MOV R0,#20H
MOV R7,#40H
LOOP: MOVX A,@DPTR
MOV R0,A
INC DPTR
INC R0
DJNZ R7,LOOP
END
3、 利用8031单片机的CTC0对外部方波脉冲进行计数,要求每输入10个外部脉冲,向CPU申请中断一次,将P1.0电平取反一次。请编出实现该功能的程序。
ORG 0000H
LJMP MAIN
ORG 000BH
LJMP INT0
ORG 0030H
MAIN: MOV TOMD,0006H
MOV TH0,#0F6H
MOV TL0,#0F6H
SETB ET0
SETB EA
SETB TR0
SJMP $
INT0: CPL P1.0
RETI
END