单片机复习题参考程序Word格式.docx
《单片机复习题参考程序Word格式.docx》由会员分享,可在线阅读,更多相关《单片机复习题参考程序Word格式.docx(21页珍藏版)》请在冰点文库上搜索。
MOVR6,#7
DELAY1:
MOVR7,#250
DJNZR7,$
DJNZR6,DELAY1
RET
8、a、计算下列延时子程序的延时时间。
MOVR0,#01256
DEL:
NOP1
NOP1
DJNZR0,DEL2
RET1
a(1+256*4+2)*2MS=2.05US
b、试编写270ms的延时子程序。
bDELAY:
MOVR5,#27
MOVR6,#10
DELAY2:
MOVR7,#250
DJNZR7,$
DJNZR6,DELAY2
DJNZR5,DELAY1
RET
9、欲在数码管上显示“-5”,写出相应程序指令。
ORG0000H
AJMPSTART
ORG0030H
START:
MOV10H,#5
MOV11H,#16
LOOP:
MOVR0,#10H
MOVR1,#1
MOVR2,#2
ACALLDISP
AJMPLOOP
DISP:
MOVDPTR,#DISPC
MOVA,@R0
MOVCA,@A+DPTR
MOVDPTR,#0FF22H
MOVX@DPTR,A
MOVDPTR,#0FF21H
MOVA,R1
RLA
MOVR1,A
MOVR7,#2
ACALLDELAY
INCR0
DJNZR2,DISP
RET
DELAY:
MOVR6,#249
DJNZR6,$
DJNZR7,DELAY
DISPC:
DB0C0H,0F9H,0A4H,0B0H
DB99H,92H,82H,0F8H
DB80H,90H,88H,83H
DB0C6H,0A1H,86H,8EH,0BFH
END
(完)
10.每0.331s读一次开关,当开关K=0时在数码管上显示片外7003H单元的数据,K=1时显示片内10H单元的数据。
用定时器定时。
ORG0000H
ORG001BH
AJMPIN_T1
MOVTH1,#0BFH
MOVTL1,#5AH
MOVR3,#10
SETBEA
MOVR0,#20H
IN_T1:
PUSHDPH
PUSHDPL
PUSHACC
DJNZR3,LAST
JBP1.0,FISH
MOVDPTR,#7001H
AJMPNEXT
FISH:
MOVA,10H
NEXT:
MOVB,A
ANLA,#0FH
MOV20H,A
MOVA,B
SWAPA
MOV21H,A
LAST:
POPACC
POPDPL
POPDPH
RETI
DB0C6H,0A1H,86H,8EH
END
11在数码管上显示片内10H、11H、12H这三个单元中最大的。
MOVSCON,#00H
MOVA,10H
SUBBA,11H
JCBIG
MOVR1,10H
AJMPBIGER
BIG:
MOVR1,11H
BIGER:
SUBBA,12H
JCFISH
MOVDPTR,#TAB
MOVSBUF,A
MOVR5,#5
DJNZR5,$
AJMPEXIT
MOVA,12H
EXIT:
AJMP$
TAB:
DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H
DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH
END
12每147ms检测一次片内30H、31H单元中的数,将这两个单元中较大的值在数码管上显示出来(定时器定时)。
ORG0000H
MOVSCON,#00;
MOVTH1,#0E3H
MOVTL1,#4AH
INT_1:
DJNZR0,EXIT
CLRC
MOVA,30H
SUBBA,31H
JCLOOP
AJMPFISH
MOVA,31H
MOVR1,#5
DJNZR1,$
RETI
CDATE:
DB0FCH,60H,0DAH,0F2H,66H,0B6H,0BEH,0E0H
DB0FEH,0F6H,0EEH,3EH,9CH,7AH,9EH,8EH
13、在数码管上按下列规律循环显示H,A,2,B,3,C,L每个字符显示770.3mS,用定时器定时。
AJMPINT_1
MOVTH1,#69H
MOVTL1,#8DH
MOVR0,#10
MOVR1,#0
PUSHACC
MOVCA,@A+DPTR
MOVR2,#5
DJNZR2,$
MOVSBUF,#00H
CJNER0,#7,EXIT
MOVR0,#0
RETI
TAB:
DB6EH,0EEH,0DAH,3EH,0F2H,9CH,1CH
(完)
14、8255PC口接8个开关,每0.3秒读一次开关状态,并将其显示在数码管上。
(用定时器定时)
ORG000BH
AJMPIN_T0
MOVDPTR,#0FF2BH
MOVA,#89H
MOVTMOD,#01H
MOVTH0,#9EH
MOVTL0,#58H
MOVR1,#6
MOVSCON,#0
SETBTR0
SETBET0
SJMP$
IN_T0:
MOVTL0,#58H
DJNZR1,EXIT
MOVDPTR,#0FF2AH
MOVB,#10H
DIVAB拆字也可用ANL指令屏蔽高低四位
MOV10H,B
MOV11H,A
15、测T5端7ms的脉冲数,并将其显示在数码管上(4位)。
ORG0000H
MOVTMOD,#15H
MOVTH1,#0F2H
MOVTL1,#54H
MOVTL0,#0
SETBTR1
MOVR2,#4
PUSHB
MOVTL1,#54H
MOVA,TL0
DIVAB
MOVA,TH0
MOV12H,B
MOV13H,A同样,拆字也可用ANL指令屏蔽高低四位,但指令较多
MOVTH0,#0
POPB
MOVDPTR,#AAA
INCR1
MOVR6,#100
16、P1.0接K1,试编程实现将按键次数显示在数码管上
见实验作业四程序不变(不过这个K1有点不解
)
17、试编程使开关K为0时使8个发光二极管按规律1循环发光;
开关为1时按规律2循环发光,每个状态显示880ms(定时器定时)。
1、L1--L2--L3--L4--L5--L6--L7--L8
P1.7P1.0
2、L1L8—L2L7—L3L6—L4L5
MOVTH0,#54H
MOVTL0,#20H
MOVR2,#0
CJNER1,#8,EXIT
LOOP1:
MOVDPTR,#TABL2
MOVA,R2
MOVP1,A
INCR2
SETBEA
JBP3.3,LOOP1
LOOP2:
MOVDPTR,#TABL1
CJNER2,#4,EXIT
TABL1:
DB80H,40H,20H,10H,08H,04H,02H,01H
TABL2:
DB81H,42H,24H,18H
18、8255PC口接4个开关和4个LED发光二极管,试编程实现每0.5秒读一次开关值,并将开关状态显示到发光二极管LED上,用定时器定时。
MOVA,#88H
MOVR1,#10
EXIT;
19、P1.7~P1.4接开关,每0.5秒读一次开关,并将开关值显示在数码管上。
MOVA,P1
CLRTI
JNBTI,$
MOVSBUF,#0
20、用定时器定时,设计一个10秒倒计时器,数码管从“10”、“09”、。
。
显示到“00”为止。
MOVTH0,#3CH
MOVTL0,#0B0H
MOVR1,#9
MOVA,#0
MOVA,#1
INT_T0:
MOVTL0,#3CH
MOVTH0,#0B0H
DJNZR,EXIT
MOVR0,#10
MOVDPTR,#CDATA
MOVA,11H
DECR1
CJNER1,#0FFH,EXIT
CLREA
EXIT: