单片机原理及接口技术段晨东.docx
- 文档编号:10792049
- 上传时间:2023-02-22
- 格式:DOCX
- 页数:21
- 大小:25.49KB
单片机原理及接口技术段晨东.docx
《单片机原理及接口技术段晨东.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术段晨东.docx(21页珍藏版)》请在冰豆网上搜索。
单片机原理及接口技术段晨东
《单片机原理及接口技术》段晨东
第三章答案
一、基础知识
1、(A)=25H
(R0)=50H
(50H)=00H
(51H)=25H
2、(A)=30H
(B)=20H
3、(A)=80H
4、把片外ROM的1031H单元的内容放到累加器ACC中。
5、把片外ROM的8140H单元的内容放到累加器ACC中。
6、(SP)=62H
(60H)=0F0H
(61H)=30H
(62H)=70H
7、(DPH)=7AH
(SP)=60H
(DPL)=50H
(60H)=0FDH
8、Cy=1
AC=1
OV=1
P=1
9、Cy=1
AC=1
OV=0
P=1
10、(A)=00H
(R3)=10H
(30H)=0F1H
(R0)=40H
(40H)=01H
11、Cy=1(A)=23H
12、(A)=0EH
(R7)=18H
(30H)=0FFH
(R1)=40H
(40H)=0FEH
13、
14、(B)=32H
(A)=00H
Cy=0
OV=1
15、(B)=11H
(A)=0DH
Cy=0
OV=0
16、(A)=0FCH
17、(A)=0DCH
18、所谓的寻址方式就是CPU执行指令时获取操作数的方式。
分为:
立即数寻址、直接寻址、寄存器寻址、寄存器间接寻址、变址寻址、位寻址、相对寻址7种寻址方式
19、
ANL:
(A)=00H
(R5)=0AAH
ORL:
(A)=FFH
(R5)=0AAH
XRL:
(A)=FFH
(R5)=0AAH
二、选择题
1——5:
BBCBB
6——10:
CCCAB
11——14:
CBDB
三、简单程序设计
13题:
MOVR0,20H
MOVR1,21H
MOVA,@R1
CPLA
ADDA,#01H
MOV31H,A
MOVA,@R0
CPLA
ADDCA,#00H
XORA,#80H
MOV30H,A
14题:
MOVDPTR,#TABLE
MOVA,X
RLA
JMP@A+DPTR
TABLE:
AJMPPROG1
AJMPPROG2
AJMPPROG3
AJMPPROG4
16题:
方法一:
MOVA,X
CJNEA,Y,L1
CJNEA,Z,L2
MOV50H,A
L1:
JCM1
RET
M1:
MOVA,Y
RET
L2:
JCM2
RET
M2:
MOVA,Z
方法二:
MOVA,X
CLRC
SUBBA,Y
JCLOW1
CLRC
SUBBA,Z
JCLOW2
MOV50H,A
LOW1:
MOVA,Y
RET
LOW2:
MOVA,Z
RET
19题:
MOVC,P1.2
CPLP3.3
ORLC,P3.3
ANLC,P1.1
MOV20H.0,C
MOVC,/2EH.0
ANLC,28H.1
CPLC
ORLC,20H.0
MOV20H.0,C
MOVC,28H.1
ANLC,/TF0
ANLC,/P1.1
ORLC,20H.0
MOVP1.5,C
20题:
MOVR0,#20H
MOVA,#60H
MOVR7,#00H
LOOP:
CJNE@R0,#65H,GOON
INC
GOON:
INCR0
INCA
JNZLOOP
RET
22题:
MOVA,20H
MOVB,#10
DIVAB
MOV20H,A
MOV24H,B
MOVA,21H
MOVB,#10
DIVAB
MOV22H,A
MOV23H,B
MOVA,24H
MOV21H,A
第四章答案
4.4、在如图4.13所示的电路中,通常情况下,L0~L7一次循环显示,每扳动一次开关K,L0~L7以2灯为1组循环显示1次。
用中断方式实现上述要求。
ORG0000H
LJMPMAIN
ORG0003H
LJMPINT_PR0
ORG0030H
主程序:
MAIN:
MOVSP,#70H
SETBIT0
SETBEA
SETBEX0
CLRPX0
MOVA,#01H
ROT_DIS:
MOVP1,A
ACALLDLY
RLA
AJMPROT_DIS
延时子程序:
DLY:
MOVR7,#100
DL1:
MOVR6,#200
DL0:
DJNZR6,DL0
DJNZR7,DL1
RET
中断服务子程序:
ORG0300H
INT_PRO:
PUSHACC
PUSHPSW
MOVR0,#08
MOVA,#03H
CONT:
MOVP1,A
ACALLDLY
RLA
DJNZR0,CONT
POPPSW
POPA
RETI
END
4-6、路灯控制器如图4.18所示,要求当黑夜降临时,路灯自动启动,当白天到来时,路灯自动熄灭。
采用外部事件中断实现。
要求用电平触发方式。
黑夜,路灯自动启动;白天,路灯自动熄灭;终端实现,电平触发。
ORG0000H
AJMPMAIN
ORG0003H
AJMPINI_PR0
ORG0030H
MAIN:
MOVSP,#70H
CLRIT1
SETBEX1
SETBEA
HERE:
SETBP1.7
AJMPHERE
ORG0200H
INT_PR0:
CPLP1.7
REI
END
4-7、如图4.19所示的单片机应用系统,4个外部扩展中断源EXINT0~EXINT3共享外部事件中断/INT0,当其中有一个或几个出现高电平,是/INT0脚为低电平,向单片机发出中断请求。
设它们的优先级别顺序为EXINT0——>EXINT3,当EXINT0~EXINT3为高电平时,分别执行处理程序PREX0、PREX1、PREX2和PREX3,请用中断方式实现上述要求。
ORG0000H
LJMPMAIN
ORG0003H
LJMPP_INT0
ORG0030H
MAIN:
MOVSP,#70H
CLRIT0
SETBEA
SETBEX0
SETBPX0
P_INT0:
CLREA
PUSHACC
PUSHPSW
SETBEA
JBP1.0,PREX0
JBP1.1,PREX1
JBP1.2,PREX2
JBP1.3,PREX3
RETURN:
CLREA
POPPSW
POPACC
SETBEA
RETI
PREX0:
……
AJMPRETURN
PREX1:
……
AJMPRETURN
PREX2:
……
AJMPRETURN
PREX3:
……
AJMPRETURN
END
第五章
5-1:
用单片机内部定时方法产生100KHZ的等宽脉冲,从P1.1输出,假定单片机的晶振平率为12MHZ,请编程实现。
查询法:
MOVTMOD,#00H
MOVTH0,#1FH
MOVTL0,#16H
SETBTR0
LOOP:
JBCTF0,OVFLOW
AJMPLOOP
OVFLOW:
MOVTH0,#1FH
MOVTL0,#16H
CPLP1.1
AJMPLOOP
中断法:
ORG0000H
LJMPMAIN
ORG000BH
LJMPP_INT0
ORG0030H
MAIN:
MOVSP,#60H
MOVTMOD,#00H
MOVTH0,#1FH
MOVTL0,#16H
SETBTR0
SETBEA
SETBET0
HERE:
AJMPHERE
P_INT0:
PUSHACC
PUSHPSW
MOVTH0,#1FH
MOVTL0,#16H
CPLP1.0
POPPSW
POPACC
RETI
5-6:
航标灯控制器如图5.19所示,要求当黑夜降临时,航标灯自动启动,亮2s,灭2s,指明航向,当白天到来时,航标灯自动熄灭,不发光。
采用外部事件中断和定时中断来实现上诉要求。
ORG0000H
AJMPMAIN
ORG0003H
AJMPINT_PR0
ORG0030H
MAIN:
MOVSP,#60H
CLRIT0
SETBEX0
SETBEA
HERE:
AJMPHERE
LOOP:
JNBTF0,LOOP
DJNZR6,INT_PR0
CPLP1.7
MOVR6,#50
AJMPINT_PR0
INT_PRO:
MOVR6,#50
MOVTMOD,#00H
MOVTH0,#(8192-40)/256
MOVTL0,#(8192-40)%256
SETBTR0
SETBEA
SETBET0
RET
5-7:
晶振频率为6MHZ的MCS-51单片机,使用定时器T0以定时方法在P1.0输出周期为400us、占空比为10:
1的矩形脉冲,以定时工作方式1编程实现。
X=216-Td/TM=216-(400-1/11)/2=65354
TH0=0FFH
TL0=D7H
程序部分:
ORG0030H
MAIN:
MOVR5,#10
MOVTMOD,#01H
MOVTH0,#0FFH
MOVTL0,#0D7H
SETBTR0
SETBP1.0
CLR20H.0
CONT:
JBCTF0,OVERF
SJMPCONT
OVERF:
MOVTH0,#0FFH
MOVTL0,#0D7H
JB20H.0,HIGH
CLRP1.0
SETB20H.0
SJMPCONT
REI
HIGH:
SETBP1.0
DJNZR5,CONT
MOVR5,#10
CLR20H.0
REI
5-8:
以定时器/计数器T1进行外部事件计数。
每计数1000个脉冲后,定时器/计数器转为定时工作方式,定时10us后,又转为计数方式,如此循环。
假定单片机晶振平率为6MHZ.
计数器初值设定:
X=216-1000=64536
TH1=0FCH
TL1=18H
定时器初值设定:
X=216-10/2=65531
TH1=0FFH
TL1=0FBH
主程序:
START:
MOVTMOD,#50H
MOVTH1,#0FCH
MOVTL1,#18H
SETBTR1
LOOP1:
JBCTF1,L2
SJMPLOOP1
L1:
CLRTR1
MOVTMOD,#40H
MOVTH1,#0FFH
MOVTL1,#0FBH
SETBTR1
LOOP2:
JBCTF1,START
SJMPLOOP2
第六章
6-3、简述MCS-51单片机多机通信原理
答:
MCS-51单片机的串行口控制器SCON中的SM2位为多机通信控制位。
在串行口工作在方式2或方式3时,如果SM2=1,只有在接收器收到第9位数据为1时,数据才装入接收缓冲器SBUF中,并将接收中断标志位RI置1,向CPU请求中断,如果接收器收到的第9位为0,则接收中断标志位不置1,并把接收到的数据丢弃。
当SM2为0时,接收到一个数据帧后,不管第9位数据是0还是1,都会把接收中断标志RI置1,并将接收到的数据装入接收缓冲器SBUF。
利用这个特点,可以实现多个MCS-51单片机之间的通信。
6-4、当系统晶振为11.0592MHz时,采用方式1实现异步通信串行通信,波特率为9600bit/s,用T1作为波特率发生器,计算计数初值。
答:
定时/计数器工作方式为方式2、定时模式,则T1计数器初始值为:
即X=11111101B=0FDH
第七章
7-4题:
假设0~44的平方值以表的形式存储在程序存储器中,采用查表的方法编制一个实现获取x(0<=x<=40)平方值的子程序。
MOVDPTR,#TABLE
MOVA,R2
MOVCA,@A+DPTR
MOVR2,A
TABLE:
DW:
0~9
DW:
10~19
DW:
20~29
DW:
30~39
DW:
40
7-11题:
5个双字节无符号数求和,数据存放在外部RAM的5000H单元开始的区域,把结果存放在以SUM开始的内部RAM单元中。
MOVR0,#SUM
MOVR1,SUM+1
MOVR5,#04H
MAIN:
MOVDPTR,#5000H
MOVXA,@DPTR
MOV@R0,A
INCDPTR
MOVXA,@DPTR
MOV@R1,A
L1:
INCDPTR
MOVXA,@DPTR
MOVR2,A
INCDPTR
MOVXA,@DPTR
MOVR3,A
ADD_PC:
MOVA,@R0
ADDA,R2
MOV@R0,A
MOVA,@R1
ADDCA,R3
MOV@R1,A
DJNZR5,L1
RET
7-17题:
查找内部RAM的20H------50H单元是否含有0AAH,若有,则置51H单元为0FFH,否则将51H单元清零。
MOVR0,#20H
CJNE@R0,#0AAH,L1
L1:
MOVA,R0
CJNEA,#50H,L2
MOV51H,#00H
RET
L2:
INCR0
CJNE@R0,#0AAH,L1
MOV51H,#0FFH
RET
7-20题:
已知无符号数二进制数x存于20H单元,y存放于21H单元,编制程序实现下列表达式:
MOVR0,20H
CJNE@R0,#50H,L
AJMPL2
L:
JBL1
CJNE@R0,#0F,L3
AJMPL3
L3:
JBL2
MOV21H,#30
RET
L1:
MOVA,20H
MOVB,#2
DIVAB
MOV21H,A
RET
L2:
MOVA,20H
MOVB,#05H
MULAB
SUBBA,#07
MOV21H,A
RET
7-21题:
已知逻辑表达式
,其中,Q为P1.5,X为P1.0,U为P1.1,V为P1.2,W为22H.5,E为定时计数器T0的溢出标志TF0,请编制程序实现上述逻辑功能。
MOVC,22H.0
ORLC,P1.2
CPLC
MOV30H.0,C
MOVC,22H.5
ANLC,TF0
CPLC
ANLC,/P1.1
ORLC,P1.0
CPLC
ORLC,30H.0
MOVP1.5,C
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 接口 技术 段晨东