资源描述
1将30H、31H单元内容与T0计数器的TL0、TH0交换。保持其它R和M不变。
MOV A,TL0
XCH A,30H
MOV TL0,A
MOV A,TH0
XCH A, 31H
MOV TH0,A
2、将30H、31H单元内容与5C30H、5C31H交换。保持其它R和M不变。
MOV DPTR,#5C30H
MOVX A,@DPTR
XCH A,30H
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
XCH A,31H
MOVX @DPTR,A
3、将30H、31H单元内容与R0指向的两字节单元交换。保持其它R和M不变。
MOV A,@R0
XCH A,30H
MOV @R0,A
INC R0
MOV A,@R0
XCH A,31H
MOV @R0,A
4、将30H、31H单元内容与DPTR指向的两字节单元交换。保持其它R和M不变。
MOVX A,@DPTR
XCH A,30H
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
XCH A,31H
MOVX @DPTR,A
5将30H、31H单元内容存入5C30H、5C31H单元。保持其它R和M不变。
MOV A,30H
MOV DPTR,#5C30H
MOVX @DPTR,A
MOV A,31H
INC DPTR
MOVX @DPTR,A
6、将30H、31H单元内容加上数03C4H后存入5C30H、5C31H单元。
MOV A,30H
ADD A,#0C4H
MOV DPTR,#5C30H
MOVX @DPTR,A
MOV A,31H
ADDC A,#03
INC DPTR
MOVX @DPTR,A
7将30H、31H单元内容减去数03C4H后存入5C30H、5C31H单元。
CLR C
MOV A,30H
SUBB A,#0C4H
MOV DPTR,#5C30H
MOVX @DPTR,A
MOV A,31H
SUBB A,#3
INC DPTR
MOVX @DPTR,A
8将30H、31H单元内容除以2后存入5C30H、5C31H单元。
MOV A,31H
CLR C
RRC A
MOV DPTR,#5C31H
MOVX @DPTR,A
MOV A,30H
RRC A
MOV DPTR,#5C30H
MOVX @DPTR,A
9将30H、31H单元内容乘以2后存入5C30H、5C31H单元。
MOV A,30H
CLR C
RLC A
MOV DPTR,#5C30H
MOVX @DPTR,A
MOV A,31H
RLC A
INC DPTR
MOVX @DPTR,A
10将30H、31H单元内容减1。保持其它R和M不变。
MOV A,30H
JNZ DELOW
DEC 31H
DELOW:DEC 30H
11将30H、31H单元内容加1。保持其它R和M不变。
INC 30H
MOV A,30H
JNZ OK
INC 31H
OK:......
12将外部RAM中的5C30H、5C31H单元内容乘以2。保持其它R和M不变。
MOV DPTR,#5C30H
CLR C
MOVX A,@DPTR,
RLC A
MOVX @DPTR,A
INC DPTR
MOVX A,@DPTR
RLC A
MOVX @DPTR,A
13将外部RAM中的5C30H、5C31H单元内容除以2。保持其它R和M不变。
MOV DPTR,#5C31H
MOVX A,@DPTR
CLR C
RRC A
MOVX @DPTR,A
DEC DPL
MOVX A,@DPTR
RRC A
MOVX @DPTR,A
14将30H的低半字节和31H单元的高半字节交换。
MOV A,31H
SWAP A
MOV R0,#30H
XCHD A,@R0
SWAP A
MOV 31H,A
15将30H的高半字节和31H单元的高半字节交换。
MOV A,30H
XCH A,31H
MOV R0,#31H
XCHD A,@R0
MOV 30H,A
16将30H、31H单元的4位16进制数的中间两位数交换。
MOV A,30H
SWAP A
MOV R0,#31H
XCHD A,@R0
SWAP A
MOV 30H,A
17如果INT0为低,则,位30H改为它的值与P0口最低位的“反”相“与”后的值;否则,清30H位。
JB P3.2,L0
MOV C,30H
ANL C,/P0.0
MOV 30H,C
SJMP $
L0:CLR 30H
18如果INT0为低,则,位30H改为它的值与P0口最高位的“反”相“或”后的值;否则,清30H位。
JB P3.2,L0
MOV C,30H
ORL C,/P0.7
MOV 30H,C
SJMP $
L0:CLR 30H
19如果INT0为高,则,位30H改为它的值与P0口最低位相“或”后的值;否则,取反30H位。
JNB P3.2,L0
MOV C,30H
ORL C,/P0.0
MOV 30H,C
SJMP $
L0:CPL 30H
20如果INT0为低,则,A的最低位与A的最高位对调;否则,清除A。
JB P3.2,L0
MOV C,ACC.0
MOV 0,C
MOV C,ACC.7
MOV ACC.0,C
MOV C,0
MOV ACC.7,C
SJMP $
L0:CLR A
21如果INT1为高,则,A的最低位改为它的值与A的最高位的“反”相“与”后的值;否则,取反A。
JNB P3.3,L0
MOV C,ACC.0
ANL C,/ACC.7
MOV ACC.0,C
SJMP $
L0:CPL A
22改变30H单元为加上数0F7H后的值,如果产生进位,则,设置F0标志;否则,清除F0标志。
MOV A,30H
ADD A,#0F7H
MOV 30H,A
JC L0
CLR F0
SJMP $
L0:SETB F0
23改变30H单元为减去数0F7H后的值,如果产生进位,则,设置F0标志;否则,清除F0标志。
CLR C
MOV A,30H
SUBB A,#0F7H
MOV 30H,A
JC L0
CLR F0
SJMP $
L0:SETB F0
24如果30H内容等于数80H,则,P1.0置位;否则,P1.0清零。保持其它R和M不变。
MOV A,30H
CJNE A,#80H,L0
CLR P1.0
SJMP $
L0:SETB P1.0
25改变30H、31H单元内容为乘以2后的值,如果产生进位,则,工作寄存器换用寄存器组1。
CLR C
MOV A,30H
RLC A
MOV 30H,A
MOV A,31H
RLC A
MOV 31H,A
JNC CON
CLR RS1
SETB RS0
SJMP $
CON:
26改变30H、31H单元内容为除以2后的值,如果余数为1,则,工作寄存器换用寄存器组3。
MOV A,31H
CLR C
RRC A
MOV 31H,A
MOV A,30H
RRC A
MOV 30H,A
JNC L0
SETB RS1
SETB RSO
SJMP $
L0:
27、已知晶振频率为8MHZ,编一个子程序,延时150微秒。保持其它R和M不变。
DELAY:MOV R7,#10H
NOP
L1:NOP
NOP
NOP
NOP
DJNZ R7,L1
RET
28、已知晶振频率为6MHZ,编一个子程序,延时30微秒。保持其它R和M不变。
DELAY:MOV R7,#06H
L1: DJNZ R7,L1
RET
29将从10H开始的64单元内容异或数5AH。保持其它R和M不变。
MOV R2,#40H
MOV R0,#10H
MOV A,#5AH
LOOPC:XRL A,@RO
MOV @RO,A
INC RO
DJNZ R2,LOOPC
30将由R0寻址的32个单元内容清为零。保持其它R和M不变。
CLR A
MOV R2,#20H
LOOPC:MOV @R0,A
INC RO
DJNZ R2,LOOPC
31将由R0寻址的32个单元内容移到R1寻址的单元中。保持其它R和M不变。
MOV R2,#20H
LOOPC:MOV A,@R0
MOV @R1,A
INC R0
INC R1
DJNZ R2,LOOPC
32将由R0寻址的16个单元内容改为与R1寻址的单元相“异或”后的值。保持其它R和M不变。
MOV R2,#10H
LOOPC:MOV A,@R0
XRL A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,LOOPC
33、将由R0寻址的32个单元内容改为与R1寻址的单元相“或”后的值。保持其它R和M不变。
MOV R2,#20H
LOOPC MOV A,@R0
ORL A,@R1
MOV @R0,A
INC R0
INC R1
DJNZ R2,LOOPC
34将由DPTR寻址的100个单元中找出第一个内容为00H的单元,其地址存入30H、31H。
MOV R2,#64H
L1:MOVX A,@DPTR
JZ L0
INC DPTR
DJNZ R2,L1
SJMP $
L0:MOV 30H,DPL
MOV 31,DPH
35、将从5C00H开始的100个单元内容移到5E00H开始的单元中。
MOV R7,#64H
MOV DPTR,#5C00H
MOV P2,#5EH
MOV R0,#0
LOOPC:MOVX A,@DPTR
MOVX @R0,A
INC R0
INC DPTR
DJNZ R7,LOOPC
36将从5C00H开始的100个单元内容改为与5E00H开始的单元相“或”后的值。
MOV R7,#64H
MOV DPTR,#5C00H
MOV P2,#5EH
MOV R0,#0
LOOPC:MOVX A,@DPTR
MOV B,A
MOVX A,@R0
ORL A,B
MOVX @DPTR,A
INC R0
INC DPTR
DJNZ R7,LOOPC
37将从5C00H开始的100个单元内容改为与5E00H开始的单元相“异或”后的值。
36把orl改为xrl。
38、将从5C00H开始的100个单元中找出第一个内容为00H的单元,其地址存入30H、31H
与34题题极其相似
只需在开头添一句 mov dptr,#5c00h。
39将从5C00H开始的100个单元中找出第一个内容为00H的单元,其地址存入30H、31H。
MOV DPTR,#5C00H
MOV R2,#64H
L1:MOVX A,@DPTR
JNZ L0
INC DPTR
DJNZ R2,L1
SJMP $
L0:MOV 30H,DPL
MOV 31,DPH
42将从5C00H开始的100个单元中找出第一个偶数和存该数的单元,数存入40H,地址存入30H,31H。
MOV R2,#64H
MOV DPTR,#5C00H
LOOPC:MOVX A,@DPTR
JNB ACC.0,L0
INC DPTR
DJNZ R2,LOOPC
SJMP $
L0:MOV 40H,A
MOV 30H,DPL
MOV 31H,DPH
43将从5C00H开始的100个单元中找出第一个奇数和存该数的单元,数存入40H,地址存入30H,31H。
MOV R2,#64H
MOV DPTR,#5C00H
LOOPC:MOVX A,@DPTR
JB ACC.0,L0
INC DPTR
DJNZ R2,LOOPC
SJMP $
L0:MOV 40H,A
MOV 30H,DPL
MOV 31H,DPH
49将R0指向的二字节带符号数除以2。
INC R0
MOV A,@R0
MOV C,ACC.7
RRC A
MOV @R0,A
DEC R0
MOV A,@R0
RRC A
MOV @R0,A
50、将数35H送往片外RAM1234H单元。
MOV DPTR,#1234H
CLR A
MOVC A,@A+DPTR
MOV DPL,#35H
MOVX @DPTR,A
51将1000H单元开始的100个单元的数据转移到2000H开始的单元中.
ORG 0000H
MOV DPTR, #1000H
MOV P2,#20H
MOV R0,#00H
LOOP:MOVX A,@DPTR
MOVX @R0,A
INC DPTR
INC R0
CJNE R0,#64H,LOOP
SJMP $
52、将片外数据存储器中7000H~70FFH单元全部清零
ORG 1000H
MOV DPTR,#7000H
CLR A
MOV R0,A
LOOP:MOVX @DPTR,A
DJNZ R0,LOOP
SJMP $
1单片机对中断优先级的处理原则是什么?
(1)低优先级中断源可被高优先级中断源所中断,而高优先级中断源不能被任何中断源所中断;
(2)一种中断源(不管是高优先级还是低优先级)一旦得到响应,与它同级的中断源不能再中断它。
2MCS-51单片机内部有几个定时/计数器?它们由哪些寄存器组成?
MCS-51单片机内部有两个16位可编程的定时/计数器,简称定时器0(T0)和定时器1(T1)。它们分别由方式寄存器TMOD、控制寄存器TCON和数据寄存器TH0、TL0,TH1、TL1组成。
3MCS-51单片机内部包括哪些主要逻辑功能部件?
1个8位CPU
1个片内振荡器及时钟电路
4KB ROM程序存储器,256BRAM
21个特殊功能寄存器
2个16位定时/计数器
4个8位并行I/O口及1个可编程全双工串行接口
可寻址64KB的外部程序存储器空间
可寻址64KB的外部数据存储器空间
5个中断源、两个优先级中断嵌套中断结构
4、MCS-51单片机的时钟周期与振荡周期之间有什么关系?一个机器周期的时序如何划分?
时钟周期是单片机最基本的时间单位。机器周期则是完成某一个规定操作所需的时间。一个机器周期为6个时钟周期,共12个振荡周期性,依次表示为S1P1、S1P2、……S6P1、S6P2。
震荡周期:为单片机提供定时信号的震荡源的周期
时钟周期:又称为状态周期/时间,是震荡周期的两倍
机器周期:完成一个基本操作所需的时间
指令周期:执行一条指令所占用的全部时间
12*震荡周期=6*时钟周期=机器周期
5、简述MCS-51单片机的中断响应过程。
CPU在每个机器周期的S5P2期间顺序采样每个中断源,在下一个机器周期S6区间按优先级顺序查询中断标志,如查询到某个中断定标志为1,将在接下来的机器周期S1期间按优先级进行中断处理,中断系统通过硬件自动将相应的中断矢量地址装入PC,以便进入相应的中断服务程序。一旦响应中断,CPU首先置位相应的中断“优先级触发器”,然后由硬件执行一条长调用指令,把当前的PC值压入堆栈,以保护断点,再将相应的中断服务的入口地址送入PC,于是CPU接着从中断服务程序的入口处开始执行。对于有些中断源,CPU在响应中断后会自动清除中断标志。
展开阅读全文