单片机程序复习题.ppt
文本预览下载声明
1.设片内RAM中的(40H)=50H,写出执行下列程序段后寄存器A和R0,以及片内RAM中50H和51H单元的内容为何值?
MOV A,40H
MOV R0,A
MOV A,#00
MOV @R0,A
MOV A,#30H
MOV 51H,A
MOV 52H,#70H
结果为:(A)=30H (R0)=50H
(50H)=00H (51H)=30H
2.设堆栈指针(SP)=60H,片内RAM中的(30H)=24H,(31H)=10H。执行下列程序段后,61H,62H,30H,31H,DPTR及SP中的内容将有何变化?
结果为: (61H)=24H (62H)=10H (30H)=00H (31H)=0FFH DPTR=2410H SP=60H
3.在8051的片内RAM中,已知(20H)=30H,(30H)=40H,(40H)=50H,(50H)=55H。分析下面各条指令,说明源操作数的寻址方式,分析按顺序执行各条指令后的结果。
MOV A,40H
MOV R0,A
MOV P1,#0F0H
MOV @R0,20H
MOV 50H,R0
MOV A,@R0
MOV P2,P1
4.完成以下的数据传送过程。
(1)R1的内容传送到R0。
(2)片外RAM 20H单元的内容送R0。
(3)片外RAM 20H单元的内容送片内RAM 20H
(4)片外RAM 1000H单元的内容送片内RAM 20H
(5)片外RAM 20H单元的内容送R0。
(6)片外RAM 2000H单元的内容送片内RAM 20H
(7)片外RAM 20H单元的内容送片外RAM 20H
(1)R1的内容传送到R0 ;
MOV A, R1
MOV R0, A
(2)片外RAM 20H单元内容送R0 ;
MOV DPTR, #0020H
MOVX A, @DPTR
MOV R0, A
(3)片外 RAM 20H单元的内容送片内RAM 20H单元;
MOV DPTR, #0020H
MOVX A, @DPTR
MOV 20H, A
(4)片外RAM 1000H单元的内容送片内 RAM 20H 单元;
MOV DPTR, #1000H
MOVX A, @DPTR
MOV 20H, A
6.设有100个有符号数,连续存放在片外RAM以2200H为首地址的存储区中,试片成统计其中正数|、负数、零的个数。
ORG 0000H
LJMP MAIN
ORG 0030H
MAIN: MOV R2,#100
MOV R3,#00H
MOV R4,#00H
MOV R5,#00H
MOV DPTR,#2000H
LOOP: MOVX A,@DPTR
CJNE A,#00H,NET1
INC R3
INC DPTR
DJNZ R2,LOOP
SJMP NET3
NET1: JC NET2
INC R4
INC DPTR
DJNZ R2,LOOP
SJMP NET3
NET2: INC R5
INC DPTR
DJNZ R2,LOOP
NET3: SJMP $
END
① S0单独按下,
红灯亮,其余灯灭;
② S1单独按下,
绿灯亮,其余灯灭;
③ 其余情况,
黄灯亮。
7.已知电路如图4-5所示,要求实现:
解:程序如下
SGNL:ANL P1,;红绿黄灯灭
ORL P1,;置P1.0、P1.1输入态, P1.5~P1.7状态不变
SL0: JNB P1.0,SL1 ;P1.0=0,S0未按下,转判S1
JNB P1.1,RED ;P1.0=1,S0按下;且P1.1=0,S1未按下,转红灯亮
YELW:SETB P1.4 ;黄灯亮
CLR P1.2 ;红灯灭
CLR P1.3 ;绿灯灭
SJMP SL0 ;转循环
SL1: JNB P1.1,YELW ;P1.0=0,S0未按下;P1.1=0,S1未按下,转黄灯亮
GREN:SETB P1.3 ;绿灯亮
CLR P1.2 ;红灯灭
CLR P1.4 ;黄灯灭
SJMP SL0
显示全部