六、设计题(1题13分;2题12分,共25分)
?1.某单片机控制系统有8个发光二极管。试画出89C51与外设的连接图并编程使它们由右向左轮流点亮。
答:图(5分)构思(3分)
MOVA,#80H(1分)
UP:MOVP1,A(1分)
RRA(2分)
SJMPUP(1分)
2.某控制系统有2个开关K1和K2,1个数码管,当K1按下时数码管加1,K2按下时数码管减1。试画出8051与外设的连接图并编程实现上述要求。
答:图(5分)构思(3分)
程序(4分)
ORG0000H
LJMPMAIN
ORG0003H
LJMPAINT0
ORG0013H
LJMPBINT1
MAIN:MOVIE,#83H
SETBIT0
SETBIT1
MOVR0,#00H
MOVDPTR,#TAB
UP:MOVA,R0
MOVCA,@A+DPTR
MOVP1,A
SJMPUP
AINT0:INCR0
CJNER0,#10,AINT01
MOVR0,#0
AINT01:RETI
BINT1:DECR0
CJNER0,#0FFH,BINT11
MOVR0,#9
BINT11:RETI
?单片机模拟试卷002
五、编程题(每小题4分,共20分)
1.已知在累加器A中存放一个BCD数(0~9),请编程实现一个查平方表的子程序。
2.请使用位操作指令实现下列逻辑操作:
BIT=(∨P1.0)∧(11H∨CY)
3.已知变量X存于VAR单元,函数值Y存于FUNC单元,按下式编程求Y值。
Y=
4.已知在R2中存放一个压缩的BCD码,请将它拆成二个BCD字节,结果存于SUM开始的单元中(低位在前)。
5.将存于外部RAM8000H开始的50H数据传送0010H的区域,请编程实现。
1.SQR:1NCA
MOVCA,@A+PC
RET
TAB:DB0,1,4,9,16
DB25,36,49,64,81
2.ORLC,11H
MOV12H,C
MOVC,P1.0
ORLC,/10H
ANLC,12H
MOVBIT,C
RET
3.MOVA,VAR
CJNEA,#0,COMP
SJMPRES;x=0,Y=0
COMP:JNCPOSI;x0,Y=1
MOVA,#0FFH;x0,Y=-1
SJMPRES
POSI:MOVA,#01H
RES:MOVFUNC,A
RET
4.MOVR0,#SUM
MOVA,R2
ANLA,#OFH
MOV@R0,A;存低字节BCD
MOVA,R2
ANLA,#0F0H
SWAPA
1NCR0
MOV@R0,A;存高字节BCD
RET
5.MOVDPTR,#8000H
MOVR0,#10H
MOVR2,#50H
LOOP:MOVXA,@DPTR;取数
MOVX@R0,A;存数
1NCDPTR
1NCR0
DJNZR2,LOOP
RET
六、综合应用题(每小题10分,共20分)
1.已知如图,8155的PA口用于输出,PB口用于输入,PC口用于输出,请:
(1)写出8155的各I/O口的口地址和存储器的地址范围。
(2)编写出8155初始化程序。B155命令字格式:
?(2)初始化程序:
MOVDPTR,#0100H
MOVA,#0DH
MOVX@DPTR,A
2.已知如图并给出下列程序,请在读图并理解程序后回答下列问题:
(1)程序功能为_______。
(2)ADC0809的口地址为_______。
(3)EOC的作用是_______。
(4)程序运行结果存于_______。
ADC:MOVDPTR,#7FFO