《单片机原理及应用》课外练习Word格式文档下载.docx
《《单片机原理及应用》课外练习Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《《单片机原理及应用》课外练习Word格式文档下载.docx(17页珍藏版)》请在冰点文库上搜索。
单片机有哪五个主要部分组成。
运算器2:
控制器3:
存储器4:
输入设备5:
输出设备
6:
什么叫全双工的传输方式。
MCS-51是不是全双工通信接口。
允许数据同时沿两个方向传送。
MCS-51的通信接口是全双工的通信接口
7:
MCS51有那些中断源,各中断源的中断服务程序入地址在分别在哪.
MCS51有以下5个中断源。
外部中断0入口地址0003h
2:
定时器0中断入口地址000Bh
3:
外部中断1入口地址0013h
4:
定时器1中断入口地址001Bh
5:
串口中断入口地址0023h
8:
如果外部中断零允许中断,怎么初始化。
第一步:
设置外部中断0的中断方式。
第二步:
开外部0中断
9:
如果定时器0工作在中断方式,要怎么初始化,定时器的初值随意。
第一步:
初始化定时器的初值
初始化定时器零的工作方式
第三步:
开定时器0的中断
10:
简要说明串口是怎么发送一个数据,是怎么接收一个数据。
初始化串口以后,往SBUF写一个数据,串口会自动把SBUF中的数据发出。
当RI=1时,读SBUF中的数据,就是接收到的串口数据。
二:
判断题:
在对的地方打(√),在错的地方打(X)。
MOVA,11H,是直接寻址。
(√)。
MOVA,R0,是寄存器寻址。
MOVA,#22H,SUBBA,#11H,Cy=1(x)。
MOVA,@R0是寄存器间接寻址(√)。
MOVA,#11H是立即数寻址(√)。
MOVDPTR,#TABLE
MOVA,#01
RLA
JMP@A+DPTR
TABLE:
AJMPPRG0
AJMPPRG1
AJMPPRG2
AJMPPRG3
程序会执行到这条指令AJMPPRG0(X)。
7:
MOVR4,#5
LOOP:
NOP
DJNZR4,LOOP
MOVA,R4
(A)=0(√)。
已知(CY)=0,
JCLOOP1
NOP
AJMPLOOP2
LOOP1:
LOOP2:
程序会执行到LOOP1(X)
MOVA,#11H
ANLA,#FFH
(A)=11H(√)
MOVA,#11H
ORLA,#FFH
(A)=11H(X)
三:
填空题:
假定外部数据存储器1000H单元的内容为60H,执行下列指令后,累加器A的内容为(61H)。
MOVDPTR,#1000H
MOVA,#00H
MOVXA,@DPTR
ADDA,#01H
假设外部数据存储器1000H单元的内容为10H,1001H的单元内容为20H,执行下列指令后,累加器A的内容为(30H)。
MOVDPTR,1000H
MOVXA,@DPTR
MOVR1,A
INCDPTR
MOVXA,@DPTR
ADDA,R1
A=8AH,(R1)=B2H,执行指令ADDA,R1后,(A)=,(AC)=,(CY)=,(OV)=。
(A)=3CH,(AC)=0,(CY)=1,(OV)=1.
(R1)=30H,(A)=2BH,(30H)=6AH,执行指令后XCHDA@R1,(R1)=,(A)=,(30H)=。
(R1)=30H,(A)=2AH,(30H)=6BH
设(A)=04H,(CY)=1,
RLA,A=,A=08H
RRA,A=,A=02H
RLCA,A=,A=09H
RRCA,A=。
A=82H
6:
(A)=7AH,(R0)=30H,(30H)=A5H,(CY)=1,写出下列各条指令的结果。
MOVA,R0(A)=30H(R0)=30H
XCHA,R0(A)=30H(R0)=30H
XCHDA,@R0(A)=A5H(R0)=30H(30H)=30H
ADDA,#30H(A)=D5H(CY)=1
ADDCA,30H(A)=06H(CY)=1
SUBBA,#30H(A)=D5H(CY)=1
将真值+1001001写成,原码反码及补码。
原码(01001001)反码(00110110)补码(01001001)
将真值-1001101写成,原码反码及补码。
原码(11001101)反码(10110010)补码(10110011)
将58转化成二进制,十六进制。
二进制(111010)十六进制(3AH)
将200转化成二进制,十六进制。
二进制(11001000)十六进制(C8H)
11:
当串口接收到一个数据,此时RI=
(1),当串口发送完一个数据,此时TI=
(1);
12:
MOVR4,#6
(A)=(00H)。
13:
MOVA,#13H
INCA
ADDA,#11H
(A)=(26H)。
14:
CJNEA,#11H,LOOP
MOVR1,#22H
AJMPLOOP1
MOVR1,#11H.
(R1)=(22H)。
15:
MOVSP,#60H
MOVA,#30H
MOVB,#70H
PUSHACC
PUSHB
SP=(62H),61H单元的内容为(30H),62H单元的内容为(70H);
16:
MOVA,#33H
ANLA,#0FH
(A)=(03H);
17:
MOVA,#00H
XRLA,#FFH
(A)=(FFH);
18:
MOVA,#0FH
CPLA
(A)=(F0H)
19MOVA,#01H
RLA
(A)=2
20(CY)=1;
MOVA,#01H
RRCA
(A)=(80H);
编程部分:
设在外部RAM中有三个连续单元2001H,2002H,2003H,其中2001H和2002H单元中分别存放两个8位无符号二进制数,比较这两个数的大小,然后将大数送到2003H单元。
ORG0000H
ACALLcompare
Wait:
Ajmpwait;
Compare:
movDPTR,#2001h
movxa,@dptr
movr0,a
incdptr
movxa,@dptr
subba,r0
jncloop
mova,r0
movx@dptr,a
ret
loop:
将内部RAM40H开始的10个单元,搬移到50H开始的10个单元中。
Org0000h
Acallmovedata:
Wait:
Ajmpwait
Movdata:
movr0,#40h
movr1,#50h
movr2,#10
loop1:
mova,@r0
mov@r1,a
incr0
incr1
djnzr2,loop1
设单片机晶振频率为12Mhz,使用定时器0,怎么样在P1.0引脚输出一个周期为1000us等宽的矩形波?
org0000H
AJMPMAIN
ORG000BH
AJMPT0_INT
MAIN:
MOVTH0,0xfe
MOVTL0,0x0b
MOVTMOD,#01H
SETBTR0
SETBET0
SETBEA
WAIT:
AJMPWAIT
T0_INT:
MOVTH0,0xfe
MOVTL0,0x0b
CPLP1.0
RETI
END
设单片机晶振频率为12Mhz,怎么样让一个发光二极管以一秒周期闪烁。
发光二极管的控制脚用P1.3.
MOVTH0,0xd8
MOVTL0,0xef
MOV30H,#00H
MOVTH0,0xd8
MOVTL0,0xef
INC30H
MOVA,30H
CJNEA,#50,LOOP1
CPLP1.3
Mov30H,#00H
RETI
实现一个4个键盘的方法,画出硬件简略图.怎么实现都可以不限条件。
;
键盘为1行四列
p1.7为输出
p1.0p1.1p1.2p1.3为输入
键值放在20h单元
mov20h,#00H
wait:
acallkey_input
ajmpwait
key_input:
jnbp1.0,key_0
jnbp1.1,key_1
jnbp1.2,key_2
jnbp1.3,key_3
key_0:
acalldelay
jnbp1.0,get_key_0
mov20h,#00h
ret
get_key_0:
mov20h,#30h
key_1:
jnbp1.1,get_key_1
get_key_1:
mov20h,#31h
key_2:
jnbp1.2,get_key_2
get_key_2:
mov20h,#32h
key_3:
jnbp1.0,get_key_3
get_key_3:
mov20h,#33h
delay:
movr0,#0ffh;
delay2:
movr1,#22h
delay1:
djnzr1,delay1
djnzr0,delay2
end
设在外部RAM中有3个连续单元1000H,1001H,1002H,求这三个单元之和,和结果放在1004H1005H,低位放在1004H,高位放在1005H.
把1004h1005h单元内容清为零
acalladdthree:
addthree:
movdptr,#1004h
mova,#00h
mov@dptra
mov@dptr,a
把1001单元内容存到r0
movdptr,#1001h
movxa,dptr
把1002单元内容存到r1
movr1,a
把1003单元内容存到a
adda,r0
jcloop1
adda,r1
jcloop2
;
高位加1
movdptr,#1005h
mova,#01h
movx@dptr,a
movdptr,#1004h
movxa,@dptr
adda,r1
jcloop2
loop2:
movdptr,#1005h
movxa,@dptr
inca
设在内部RAM中50H开始有连续的10个单元,求这10个单元之和,结果放在60H,61H,低位放在60H,高位在61H.
acalladdten
ajmpwait
addten:
movr0,50h
movr1,#10
mov60h,a
mov61h,a
adda,@r0
mov60h,a
djnzr1,loop1
mova,61h;
adda,#01h
djnzr1,loop1
怎么让20H单元的内容低四位保持不变,高四位取反。
MovA,20H
XRLA,#f0h
有一个控制字保存在20H单元中,如果这个控制字的第八位为零,则P1.0端口输出为0,
如果这个控制字的第八位为1,则P1.0输出为1.
ACALLCONTROL:
CONTROL:
Mova,20H
RLCA
JCLOOP
CLRP1.0
RET
SETBP1.0
求出上面各芯片2764,6264,8255,0832的起始地址?
2764的起始地址为0000H
6264的起始地址为2000H
8255
的起始地址为5FFCH
0832的起始地址为7FFCH