单片机原理与应用复习题文档格式.docx
- 文档编号:17031762
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:18
- 大小:145.56KB
单片机原理与应用复习题文档格式.docx
《单片机原理与应用复习题文档格式.docx》由会员分享,可在线阅读,更多相关《单片机原理与应用复习题文档格式.docx(18页珍藏版)》请在冰豆网上搜索。
(2)SUBBA,30H01111010
INCA10100101
CYACF0RS1RS0OV-P1
10000101111010100
1
11010101
A=0D5H;
R0不变;
(30H)不变;
PSW=85H
(3)SUBBA,#30H01111010
DECR000110000
CYACF0RS1RS0OV-P1
0000000101001001
A=49H;
R0=2FH;
(30H)=不变;
PSW=01H
(4)SUBBA,R001111010
DEC30H00110000
CYACF0RS1RS0OV-P1
(30H)=0A4H;
.已知:
A=8CH,(40H)=0B5H,PSW=80H.试问下列程序执行后的结果是什么?
(1)SUBBA,40H
DEC40H
A=;
(40H)=;
PSW=
(2)ADDCA,40H
INC40H
A=;
(40H)=;
PSW=
三、逻辑运算
A=7AH,CY=1(PSW=80H).试问执行下列程序后的结果。
(1)MOVA,#0FHA=00001111B
CPLAA=11110000B
MOV30H,#00H(30H)=00000000B
ORL30H,#0ABH(30H)=10101011B
RLAA=11100001B
A=0E1H;
(30H)=0ABH
(2)MOVA,#0BBHA=10111011B
CPLAA=01000100B
RRAA=00100010B
MOV40H,#0AAH(40H)=10101010B
ORLA,40HA=10101010B
A=0AAH;
(40H)=0AAH
(3)ANLA,#0FFHA=01111010B
MOV30H,A(30H)=01111010B
XRLA,30HA=00000000B
RLCAA=00000001B
SWAPAA=00010000B
A=10H;
(30H)=7AH
(4)ORLA,#0FHA=01111111B
SWAPAA=11110111B
RRCAA=11111011B
XRLA,#0FH00001111B
ANLA,#0F0HA=11110100B
11110000B
A=11110000B
A=0F0H
试问执行下列程序后的结果。
(1)MOVA,#0CDHA=0CDH
SWAPAA=0DCH
XRLA,#0F0HA=2CH
A=2CH
(2)MOVA,#9AHA=9AH
RRAA=4DH
ANLA,#0FHA=0DH
A=0DH
01001101
(3)MOVA,#0C5HA=0C5H
CPLAA=3AH
RLAA=74H
A=
(4)MOVA,#58HA=
MOV30H,#0DDH(30H)=
ORLA,30HA=
A=;
01110100
四、按要求写指令:
1.将外部RAM1000H~1050H单元有一个数据块,请编程把它们传送到片外2000H~2050H单元的RAM数据区。
MOVDPL,#00H
MOVR3,#00H
LOOP:
MOVDPH,#20H
MOVXA,@DPTR
MOVDPH,#30H
MOVX@DPTR,A
INCDPL
DJNZR3,LOOP
END
2.将外部ROM1000H~1050H单元有一个数据块,请编程把它们传送到片外1000H~1050H单元的RAM数据区。
MOVDPTR,#1000H
MOVR2,#51H
CLRA
MOVCA,@A+DPTR
INCDPTR
DJNZR2,LOOP
3.片外RAM以50H单元开始以‘A’结束的数据块传送到片内以40H单元开始的数据区(‘A’也要传送).
MOVR0,#50
MOVR1,#40
MOVXA,@R0
MOV@R1,A
INCR0
INCR1
CJNEA,‘A’,LOOP
SJMP$
4.片外RAM3000H单元内容加上片内RAM50H单元内容,和放到片外RAM3000H单元.
MOVDPTR,#3000H
ADDA,50H
MOVX@DPTR,A
5.用两种方法使A累加器与20H单元的内容调换.
①PUSHACC②MOV30H,ACC③XCHACC,20H
PUSH20HMOVACC,20H
POPACCMOV20H,30H
POP20H
6.片外RAM3000H单元内容减去片内RAM30H单元内容,差值放到片外RAM3000H单元.
CLRC
SUBBA,30H
五、程序设计:
(15分)
1.设单片机主频为12MHz,利用定时器T0(定时方式1)编程实现在P1.3上输出频率为500Hz方波脉冲,(用中断方式实现)。
解:
频率为500Hz方波脉冲,周期为2000μs,每半个周期P1.3电平翻转一次即每1000μsP1.3电平翻转一次
采用方式1:
TC=M-T/T计数=216-1000μs/1μs
=65536-1000=664536=0FC18H
=216-1024+24=10000H-400H+18H=0FC18H
程序:
ORG0000H
AJMPMAIN
ORG000BH
AJMPTTT0
MAIN:
MOVTMOD,#01HTTT0:
MOVTH0,#0FCH
MOVTH0,#0FCHMOVTL0,#18H
MOVTL0,#18HCPLP1.3
MOVIE,#82HRETI
SETBTR0
SJMP$;
2.设单片机主频为12MHz,利用定时器T1(定时方式1)编程实现在P1.3上输出频率为500Hz方波脉冲,(用中断方式实现)。
ORG001BH
AJMPTTT1
MOVTMOD,#10HTTT0:
MOVTH1,#0FCH
MOVTH1,#0FCHMOVTL1,#18H
MOVTL1,#18HCPLP1.3;
MOVIE,#88HRETI
SETBTR1(reti)
SJMP$
3.设单片机主频为12MHz,利用定时器T0(定时方式2)编程实现在P1.3上输出频率为500Hz方波脉冲,(用中断方式实现)。
采用方式2,最大定时是28=256μs(初值为0),所以取整,定时250μs,即4次中断完成一次反转。
TC=M-T/T计数=28-250μs/1μs=06H
MOVTMOD,#02HTTT0:
DJNZ50H,NEXT
MOVTH0,#06HCPLP1.3;
MOVTL0,#06HMOV50H,#04H
MOVIE,#82HNEXT:
RETI
MOV50H,#04H
4.设单片机主频为12MHz,利用定时器T1(定时方式2)编程实现在P1.3上输出频率为500Hz方波脉冲,(用中断方式实现)。
MAIN:
MOVTMOD,#20HTTT0:
MOVTH1,#06HCPLP1.3
MOVTL1,#06HMOV50H,#04H
MOVIE,#88HNEXT:
SETBTR1
六、(给出电路、按要求编写程序)
1.如图所示,让数码管(共阴极)循环显示0,1,2…….8,9;
0,1,2,……,每个数字显示2秒,主频12MHz,分别用两种方法(延时子程序和用定时器0中断方式)实现延时。
用延时子程序实现延时。
MOVR2,#00H;
MOVDPTR,#SZ;
XS:
MOVA,R2;
MOVCA,@A+DPTR;
MOVP1,A;
LCALLYS;
INCR2;
CJNER2,#0AH,XS;
JMPMAIN;
;
0--9的显示代码
延时2秒子程序(主频为12MHz)
YS:
MOVR5,#20;
YS1:
MOVR6,#200
YS2:
MOVR7,#250;
YS3:
DJNZR7,YS3;
DJNZR6,YS2
DJNZR5,YS1
RET
sz1DB0C0H,0CFH,0A4H,0B0H,99H,92H,82H,0F8H,
DB80H,90H;
共阳极数码管字型代码
SZDB3fH,60H,5BH,4FH,66H,6DH,7DH,07H,
DB7FH,6FH;
共阴极数码管字型代码
用中断服务子程序实现延时。
ORG0000HORG000BH
LJMPMAIN;
ORG0090H
TTT1:
DJNZR3,NEXT
MOVIE,#82HMOVR3,#40
MOVTMOD,#01HINCR2
MOVTH0,#3CHCJNER2,#0AH,NEXT1
MOVTL0,#0B0HMOVR2,#00H
MOVR3,#40NEXT1:
MOVA,R2
MOVA,R2MOVCA,@A+DPTR
MOVCA,@A+DPTRMOVP1,A
NEXT:
MOVTH0,#3CH
SETBTR1MOVTL0,#0B0H
SJMP$RETI
0--9的显示代码
sz1DB0C0H,0CFH,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H
;
SZDB3fH,60H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH;
2.如图所示,用中断的方法实现A/D转换,并将转换结果放到片内RAM40H单元;
如果连接ADC0804片选引脚CS的不是P1.0,而是P2.1,如何用MOVX指令启动A/D转换和对转换后数据的读取?
AJMPMAIN
ORG0013H
AJMPINT111
MOVIE,#84HINT111:
CLRP3.7
CLRP1.0MOV40H,P0
CLRP3.6RETI
SJMP$
如果连接ADC0804片选引脚CS的不是P1.0,而是P2.1,用MOVX指令启动A/D转换和对转换后数据的读取程序如下:
MOVXA,@DPTR
MOVDPTR,#0FDFFHMOV40H,A
MOVX@DPTR,ARETI
3.如图所示,让发光二极管从低位循环点亮,每个点亮2秒,主频12MHz,分别用两种方法(延时子程序和用定时器0中断方式)实现延时。
diolabitP2.5;
BG:
mova,#0feh
movp1,a;
点亮第一灯
setbdiola
ACALLDELAY1S
rlA
SJMPLOOP
DELAY1S:
MOVR5,#10;
1μS
DELAY0:
MOVR6,#250;
1x10μS=10μS
DELAY1:
MOVR7,#200;
1x250x10μS=2500μS=2.5mS
DELAY2:
DJNZR7,DELAY2;
2X200X250X10μS=1000000μS=1S
DJNZR6,DELAY1;
2X250X10=5000μS=5mS
DJNZR5,DELAY0;
2x10μS=20μS
RET;
2μS
AJMPBG
mova,#0fEh;
点亮第一、二灯
MOVP1,A
MOVTMOD,#01H
MOVTH0,#3CH
MOVTL0,#0B0H
MOVIE,#82H
MOVR7,#20
SJMP$
TTT0:
DJNZR7,NEXT
RLA
MOVR7,#20
MOVTH0,#3CH
MOVTL0,#0B0H
RETI
七、硬软件设计
1.设计一个74LS373为输出接口,并驱动数码管,让数码管循环显示0,1,2…….8,9,0,1,2,……,每个数字显示2秒,主频12MHz,用延时子程序实现延时。
MOVDPTR,#7FFFH;
MOVX,@DPTR,A
设计一个扩展输入接口74LS244用于连接独立键盘,其地址线是P2.6;
.扩展输出接口74LS373用于连接8个八光二极管(用共阴极连接方式,其地址线是P2.7.开关状态控制P1口LED显示灯熄灭的电路,并编写控制程序。
MOVP0,#0FFH
LOOP:
MOVDPTR,#0BFFFH
MOVXA,@DPTR
MOVDPTR,#7FFFH
MOVX@DPTR,A
扩展输入接口74LS244用于连接独立键盘,其地址线是P2.6;
.扩展输出接口74LS373用于连接8个八光二极管(用共阴极连接方式,其地址线是P2.7
MOVP0,#0FFH
CPLA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 原理 应用 复习题