单片机原理及应用期末考试复习题Word下载.docx
《单片机原理及应用期末考试复习题Word下载.docx》由会员分享,可在线阅读,更多相关《单片机原理及应用期末考试复习题Word下载.docx(9页珍藏版)》请在冰豆网上搜索。
a)P0
b)P1c)P2
d)P3
2.单片机应用程序一般存放在(
b
)
a)RAM
b)ROM
c)寄存器
d)CPU
3.已知某数的BCD码为0010则其表示的十进制数值为(b)
a)7542Hb)7542c)75.42Hd)75.42
4.下列指令中不影响标志位CY的指令有(
d
)。
a)ADD
A,20H
b)CLR
c)RRC
A
d)INC
A
5.CPU主要的组成部部分为(
a
a)运算器、控制器
b)加法器、寄存器
c)运算器、寄存器
d)运算器、指令译码器
6.AT89S51的CPU是(
c
)位的单片机
a)16
b)4
c)8
d)准16
7.当需要从AT89S51单片机程序存储器取数据时,采用的指令为(b)。
a)MOV
A,
@R1
b)MOVC
@A
+
DPTR
c)MOVX
@
R0
d)MOVX
8.AT89S51单片机中既可位寻址又可字节寻址的单元是(
a)20H
b)30H
c)00H
d)70H
9.下列哪条指令是正确的(d)
a)PUSHR2b)ADDR0,A
c)MOVXA@DPTRd)MOV@R0,A
11.要使累加器A的高4位置为0000,低4位不变,以下指令正确的是B。
(A)ANLA,#0F0H(B)ANLA,#0FH(C)ORLA,#0F0H(D)ORLA,#0FH
12.利用串行口工作方式1进行异步串行通信,当其波特率为4800bps,每秒最多能传送
A个字符。
(A)480(B)960(C)4800(D)9600
13.C51中,要编写一个中断函数,则必须在函数名后加B修饰符。
(A)void(B)interrupt(C)using(D)unsigned
14.51系列单片机系统中需扩展32KByte的片外RAM,则需要C片6264(8K×
8bit)。
(A)1(B)2(C)4(D)8
15.若单片机当前正在执行高优先级的中断服务,则以下能响应的中断是D。
(A)高优先级中断(B)同优先级中断(C)低优先级中断(D)以上都不能响应
16.键盘的软件消除键抖动是经过C来实现的。
(A)加滤波器(B)中断(C)延时(D)加RS触发器
三、写出实现下列各要求的指令或程序段
1、将80H单元中的内容与数据4FH相比较,相等返回,不相等将80H单元置FFH返回。
MOVA,80H
CJNEA,#4FH,BD
SJMPL1
BD:
MOV80H,#0FFH
L1:
RET
2、外部RAM单元H的内容传送到内部RAM单元70H;
MOVDPTR,#H
MOVXA,@DPTR
MOV70H,A
3、将32H单元中内容的第7位取反后送给50H。
MOVA,32H
CPLACC.7
MOVC,ACC.7
MOV50H,C
4、若(50H)=40H,试写出执行以下程序段后累加器A、寄存器R0及内部RAM的40H、41H、42H单元中的内容各为多少?
(5分)
MOVA,50H;
(A)=40H
MOVR0,A;
(R0)=40H
MOVA,#00H;
(A)=0
MOV@R0,A;
(40H)=0
MOVA,#3BH;
(A)=3BH
MOV41H,A;
(41H)=3BH
MOV42H,41H;
(42H)=3BH
(A)=3BH;
(R0)=40H;
(40H)=0;
(41H)=3BH;
(42H)=3BH
5、将外部数据存储器3000H开始100个存储单元的内容存入3070开始的存储单
元(9分)
MOVDPTR#3000H
MOVP2,#30H
MOVR1,#70H
MOVR5,#100
L1:
MOVXA,@DPTR
MOVX@R1,A
INCR1
INCDPTR
DJNZR5,L1
RET
四、读程序填空
1.CLRC
MOVA,4DH
SUBBA,,4EH
MOV30H,A
MOVA,7FH
SUBBA,2BH
MOV31H,A
SJMP$
(1)该程序的功能是:
两个16位数的减法:
(7F4DH)-(2B4EH),结果存入内部RAM的30H和31H单元,31H单元存差的高8位,30H单元存差的低8位
(2)若(4DH)=06H,(4EH)=05H,(7FH)=0AH,(2BH)=01H
则执行上述程序后(30H)=01H。
(31H)=09H。
2.START:
MOVR0,#40H
MOVR7,#04H
MOVA,@R0
LOOP:
INCR0
MOV50H,@R0
CJNEA,50H,NEXT
NEXT:
JNCBIE1
MOVA,50H
BIE1:
DJNZR7,LOOP
MOV30H,A
RET
(1)该程序的功能是:
求出40H—44H中最大的无符号数,并将最大数存入30H中
(2)设(40H)=12H,(41H)=22H,(42H)=6EH,(43H)=5AH,(44H)=8AH,
填写程序执行后的结果,(30H)=8AH。
3.已知(30H)=49H,(31H)=2BH,(32H)=0A3H,执行以下程序:
MOVR7,#4
RR0:
MOVR6,#3
CLRC
MOVR0,#30H
RR1:
MOVA,@R0
RRCA
MOV@R0,A
INCR0
DJNZR6,RR1
DJNZR7,RR0
RET
从该程序可看出这段程序的功能是:
将内RAM中30H~32H的内容
右移4位
执行后结果:
(30H)=04H,(31H)=92H,(32H)=0BAH。
(3分)
4、已知(A)=58H,(30H)=7FH,(P1)=EAH,执行下列程序:
MOVSP,#40H
PUSHA
PUSH30H
MOVA,P1
POP30H
POPA
(SP)=40H,(A)=58H,(30H)=7FH,(41H)=58H。
五、根据题意,按要求答题。
1.AT98S51单片机P1口上接8只发光二极管(高电平亮,低电平灭),若晶振频率是12MHz,用定时/计数器T0以工作方式1工作,使8只发光二极管每1S单循环点亮。
(1)计算定时初值,写出过程
(2)根据相关注释,填写程序
(3)
答:
(1)定时初值:
(216-X)×
1μS=50mS
X=216-50000
=15536
(2)MOVTMOD,#01H;
设T0工作方式
MOVDPTR,#15536;
置定时初值50mS
MOVTH0,DPH
MOVTL0,DPL
MOVA,#01H;
置A初值
SETBTR0;
允许定时
LOOP:
MOVR7,#20;
设定时次数
MOVP1,A;
从P1口输出
LOOP1:
JNBTF0,$;
判断定时50mS到没
CLRTF0;
定时时间到,TF0清0
MOVTH0,DPH;
重新置定时初值50mS
MOVTL0,DPL
DJNZR7,LOOP1;
判断定时次数到没
RLA;
输出左移
SJMPLOOP;
继续循环输出
END
2、根据给定存储类型和数据类型,声明下列变量:
(1)在片内RAM低128字节定义一个有符号整型变量val,初值为100;
(signed)intdataval=100;
(2)在ROM定义一个3元素的无符号字节数组num,数组内容分别为:
12H,34H,56;
unsignedcharcodenum[3]={0x12,0x34,56};
(3)在片外RAM定义一个指向无符号字节类型的指针变量p;
unsignedch