单片机作业与答案word文档良心出品.docx
《单片机作业与答案word文档良心出品.docx》由会员分享,可在线阅读,更多相关《单片机作业与答案word文档良心出品.docx(17页珍藏版)》请在冰豆网上搜索。
单片机作业与答案word文档良心出品
第四章
1、单片机系统结构特点?
答:
(1)在系统结构上采用哈佛型;
(2)极强的布尔处理能力
(3)具有较齐全的输入/输出接口及实时中断功能
(4)配有实时控制时的特殊电路
2、MCS-51单片机的基本组成?
答:
(1)8位中央处理单元CPU。
(2)4KB程序存储器ROM,256B数据存储器RAM。
(3)4个8位并行I/O口(P0~P3)。
(4)1个全双工串行I/O口(P3.0,P3.1)。
(5)2个16位加法定时/计数器(T0,T1)。
(6)5个中断源。
(7)内部时钟产生电路。
最高允许振荡频率为12MHz。
3、MCS-51单片机存储器可划分为几个空间?
各自地址范围是多少?
答:
单片机存储器划分为四个空间:
1)EA=1片内程序存储器地址0000-0FFFH,片外程序存储器地址1000-FFFFH
EA=0片外程序存储器地址0000-FFFFH
2)片内数据存储器地址00-FFH
片外数据存储器地址为0000-FFFFH
4、MCS-51单片机内RAM存储器可划分为几个空间?
各自地址范围是多少?
答:
寄存器区00H-1FH
位寻址区20H-2FH
用户区和堆栈区30H-7FH
特殊功能寄存器区80H-FFH
第五章
1.MCS-51系列单片机有哪几种寻址方式?
答:
立即寻址:
MOVA,#5
直接寻址:
MOVA,30H
寄存器寻址:
MOVA,R0
寄存器间接寻址:
MOVA,@R0
变址寻址:
MOVCA,@A+DPTR
相对寻址:
JZREL
位寻址:
MOVC,BIT
2.指出下列指令中画线的操作数的寻址方式。
MOVR0,#60H立即寻址
MOVA,30H直接寻址
MOVA,@Ri寄存器间接寻址
MOV@Ri,A寄存器寻址
ADDA,B寄存器寻址
SUBBA,R7寄存器寻址
3.指出下列指令中画线的操作数的寻址方式。
MOVXA,@DPTR寄存器间接寻址
MOVDPTR,#0123H立即寻址
MOVCA,@A+DPTR基址变址寻找
MULAB寄存器寻址
INCDPTR寄存器寻址
4.指出下列指令中画线的操作数的寻址方式。
SJMPNEXT相对寻址
JZAB相对寻址
CJNEA,#00H,ONE相对寻址
CPLC位寻址
MOVC,30H位寻址
5、已知:
(A)=7AH,(R0)=30H,(30H)=0A5H,(PSW)=80H,请填写下列各条指令的执行结果。
由于(PSW)=80HC=1
(1)SUBBA,30HA=A-(30H)-C=7AH-A5H-1=0D4H
(2)SUBBA,#30HA=A-30H-C=7AH-30H-1=49H
(3)ADDA,R0A=A+R0=7AH+30H=0AAH
(4)ADDA,30HA=A+(30H)=7AH+A5H=1FH
(5)ADDA,#30HA=A+30H=7AH+30H=0AAH
(6)ADDCA,30HA=A+(30H)+C=7AH+A5H+1=20H
(7)SWAPAA=0A7H
(8)XCHDA,@R0A=75H
(9)XCHA,R0A=30H
(10)XCHA,30HA=0A5H
(11)XCHA,@R0A=0A5H
(12)MOVA,@R0A=0A5H
6、试分析以下程序段的执行结果。
MOVSP,#3AH
MOVA,#20H
MOVB,#30H
PUSHACC
PUSHB
POPACCA和B的内容互换
POPBA=30HB-20H
7、已知:
(A)=81H,(R0)=17H,(17H)=35H,指出执行完下列程序段后A的内容。
ANLA,#17H
ORL17H,A
XRLA,@R0
CPLAA=0CBH
8、设R0的内容为32H,A的内容为48H,内部RAM的32H单元内容为80H,40H单元内容为08H,指出在执行下列程序段后上述各单元内容的变化。
MOVA,@R0A=80H
MOV@R0,40H@R0=(32H)=08H
MOV40H,A(40H)=80h
MOVR0,#35HR0=35H
9、用单片机来实现下列电路的逻辑功能。
图逻辑电路
解:
为了使逻辑问题适合单片机来处理,先来选择一些端口位作为输入逻辑变量和输出逻辑变量。
设P1.0=A,P1.1=B,P1.2=C,P1.3=D,P1.4=Z。
程序为:
MOVC,P1.0;读入变量A
ANLC,P1.1
CPLC
MOV30H,C;保存中间运算结果
MOVC,P1.2
ANLC,P1.3
MOV31H,C
MOVC,P1.3
CPLC
ANLC,31H
ORLC,30H
CPLC
MOVP1.4,C;输出运算结果
RET
10、51单片机访问程序存储器、内部RAM和外部RAM的指令区别?
答:
访问程序存储器用MOVC,内部RAM用MOV,外部RAM用MOVX
11、跳转指令SJMP、AJMP、LJMP的区别和跳转范围?
答:
相对跳转SJMP,范围-128-+127
短调转AJMP,范围<=2K(11位地址)
长跳转LJMP,范围<=64K(16位地址)
第六章
1.将BCD码转换成16进制(设BA=0251H)
MOVB,#02H
MOVA,#51H
MOV30H,A//(30H)=51H
ANLA,#0FH//A=01H
XCHA,30H//A=51H,(30H)=01H
SWAPA//A=15H
ANLA,#0FH//A=05H
MOV31H,A//(31H)=05H
MOVA,#100
MULAB//BA=200=008CH,A=C8H
MOV32H,A//(32H)=0C8H
MOVA,31H
MOVB,#10
MULAB//BA=50=0032H
ADDA,32H//A=FAH
ADDA,30H//A=FBH
2.将16进制转换成BCD码(设A=FBH)
MOVA,#FBH
MOVB,#100
DIVAB//A=02H,B=33H
MOVR7,A//R7=02H
MOVA,B//A=33H
MOVB,#10
DIVAB//A=05H,B=01H
SWAPA//A=50H
ADDA,B//A=51H
MOVB,R7//B=02H
3.将BCD码转换成ASCII码(数在BA中=0251H)
MOVB,#02H
MOVA,#51H
MOVR0,#30H
XCHA,B
ADDA,#30H//A=32H
MOV@R0,A
INCR0//R0=31H
MOVA,B//A=51H
SWAPA//A=15H
ANLA,#0FH//A=03H
ADDA,#30H//A=35H
MOV@R0,A
INCR0
MOVA,B
ANLA,#0FH
ADDA,#30H
MOV@R0,A
4.将ASCII码转换成BCD码
MOVR0,#30H
MOV30H,#32H
MOV31H,#35H
MOV32H,#31H
MOVA,@R0//A=32H
ANLA,#0FH
MOVB,A//B=02H
INCR0//R0=35H
MOVA,@R0//A=35H
ANLA,#0FH//A=05H
SWAPA//A=50H
INCR0
XCHA,@R0//A=31H,@R0=30H
ANLA,#0FH//A=01H
ADDA,@R0//A=51H
第七章
1、MCS-51单片机有几个中断源?
其入口地址是如何规定的?
答:
有5个中断源:
INT0外中断00003H
INT1外中断10013H
T0定时器0溢出中断000BH
T1定时器1溢出中断001BH
串行口中断0023H
2、MCS-51单片机外中断触发方式?
答:
低电平和边沿触发2种方式
3、简述MCS-51单片机内部定时器的工作方式。
答:
M1M0=00方式013位定时器/计数器
M1M0=01方式116位定时器/计数器
M1M0=10方式2自动重新赋值8位定时器/计数器
M1M0=11方式3T0分为两个8位定时器/计数器
4、设定时/计数器0工作于方式0,定时时间为1ms,时钟频率为6MHz,试确定定时/计数值。
解:
对于方式0,加1计数器为13位,设定时/计数值为a。
则
(213–a)×(12÷6)=1000a=7692
化成二进制:
a=1111000001100B,低5位:
01100B=0CH,高8位:
11110000B=F0H
所以(TH0)=0F0H,(TL0)=0CH。
5、设时钟频率为6MHz,试利用定时计数器1,采用方式0产生10ms的定时,并使P1.7输出周期为20ms的方波。
解:
①计算计数值a:
∵(213-a)×(12÷6000000)
∴a=3192=110001111000B
②初值装入TL1和TH1:
MOVTL1,#18H
MOVTH1,#63H
③写方式控制字TMOD:
M1M0=00,GATE=0,=0,可取方式控制字00H;
④当T1定时10ms时间到,TF1=1,如果采用中断方式,则请求中断。
也可用软件查询方式。
下面分别以两种方法进行编程。
软件查询法源程序清单如下:
ORG0000H
LJMPMAIN;上电,转向主程序
ORG0030H;主程序
MAIN:
MOVTMOD,#00H;设T1工作于方式0
SETBTR1;启动定时器T1
LOOP:
MOVTH1,#63H;装入计数值高8位
MOVTL1,#18H;装入计数值低5位
JNBTF1,$;TF1=0,等待
CLRTF1;清TF1
CPLP1.7;将P1.7取反,输出
SJMPLOOP;
END
中断法程序清单如下:
ORG0000H
AJMPMAIN;上电,转向主程序
ORG001BH;T1的中断入口地址
AJMPSERVE;转向中断服务程序
ORG0030H;主程序
MAIN:
MOVTMOD,#00H;设T1工作于方式0
MOVTH1,#63H;装入计数值高8位
MOVTL1,#18H;装入计数值低5位
SETBTR1;启动定时器T1
SETBET1;T1开中断
SETBEA;CPU开中断
SJMP$;等待中断
SERVE:
CPLP1.7;P1.7取反,输出
MOVT