单片机原理及接口技术思考题与习题.docx

上传人:b****0 文档编号:9616451 上传时间:2023-05-20 格式:DOCX 页数:20 大小:27.29KB
下载 相关 举报
单片机原理及接口技术思考题与习题.docx_第1页
第1页 / 共20页
单片机原理及接口技术思考题与习题.docx_第2页
第2页 / 共20页
单片机原理及接口技术思考题与习题.docx_第3页
第3页 / 共20页
单片机原理及接口技术思考题与习题.docx_第4页
第4页 / 共20页
单片机原理及接口技术思考题与习题.docx_第5页
第5页 / 共20页
单片机原理及接口技术思考题与习题.docx_第6页
第6页 / 共20页
单片机原理及接口技术思考题与习题.docx_第7页
第7页 / 共20页
单片机原理及接口技术思考题与习题.docx_第8页
第8页 / 共20页
单片机原理及接口技术思考题与习题.docx_第9页
第9页 / 共20页
单片机原理及接口技术思考题与习题.docx_第10页
第10页 / 共20页
单片机原理及接口技术思考题与习题.docx_第11页
第11页 / 共20页
单片机原理及接口技术思考题与习题.docx_第12页
第12页 / 共20页
单片机原理及接口技术思考题与习题.docx_第13页
第13页 / 共20页
单片机原理及接口技术思考题与习题.docx_第14页
第14页 / 共20页
单片机原理及接口技术思考题与习题.docx_第15页
第15页 / 共20页
单片机原理及接口技术思考题与习题.docx_第16页
第16页 / 共20页
单片机原理及接口技术思考题与习题.docx_第17页
第17页 / 共20页
单片机原理及接口技术思考题与习题.docx_第18页
第18页 / 共20页
单片机原理及接口技术思考题与习题.docx_第19页
第19页 / 共20页
单片机原理及接口技术思考题与习题.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

单片机原理及接口技术思考题与习题.docx

《单片机原理及接口技术思考题与习题.docx》由会员分享,可在线阅读,更多相关《单片机原理及接口技术思考题与习题.docx(20页珍藏版)》请在冰点文库上搜索。

单片机原理及接口技术思考题与习题.docx

单片机原理及接口技术思考题与习题

思考题与习题

1.8051单片机内包含哪些主要逻辑功能部件?

一个8位的CPU、128B/256B的片内数据存储器、4KB/8KB程序存储器、四个8位并行I/O接口、两个定时/计数器、5个中断源的中断控制系统、一个全双工UART的串行I/O口、片内振荡器和时钟产生电路。

2.8051的EA端有何用途?

当EA为低电平时,CPU只能访问外部的程序存储器。

当EA为高电平时,CPU能访问内部的程序存储器,并当PC的值超过0FFFH时,自动转向访问片外的程序存储器。

3.8051的存储器分为哪几个空间?

如何区别不同空间的寻址?

4.简述8051RAM的空间分配。

5.

6.如何简便地判断8051正在工作?

当8051上电正常工作时,ALE引脚输出fosc/6的正脉冲,可用示波器查看及判断。

7.8051如何确定和改变当前工作寄存器组?

CPU通过程序状态字PSW中RS1、RS0来确定和改变当前工作寄存器组。

8.

9.

10.

11.8051单片机由哪些信号需要芯片以第二功能的方式提供?

RXD、TXD、INT0、INT1、T0、T1、WR、RD这些信号分别由P3.0~P3.7以第二功能的方式提供。

12.

13.

14.开机复位后,CPU使用的是哪组工作寄存器?

它们的地址是什么?

CPU如何确定和改变当前工作寄存器组?

开机复位后,CPU使用0组工作寄存器。

它们的地址是00H~07H。

CPU通过程序状态字PSW中RS1、RS0来确定和改变当前工作寄存器组。

15.程序状态寄存器PSW的作用是什么?

常用标志有哪些位?

作用是什么?

PSW中存放着程序执行后的状态信息,供程序查询或判断。

常用的标志有:

进(借)位位:

C=0无进(借)位;C=1有进(借)位。

半进(借)位位:

AC=0无进(借)位;AC=1有进(借)位。

用户标志位:

由用户自己定义。

工作寄存器组选择控制位:

选择当前工作寄存器组。

溢出标志位:

判断是否溢出。

OV=0无溢出;OV=1有溢出。

奇偶标志位:

判断结果中有奇数或偶数个“1”P=0则累加器A中有偶数个1;P=1则累加器A中有奇数个1。

16.

17.

18.

19.

思考题与习题

1.

2.

3.

4.

5.要访问特殊功能寄存器和片外数据存储器,应采用哪些寻址方式。

特殊功能寄存器:

直接寻址、位寻址(部分特殊功能寄存器)

片外数据存储器:

寄存器间接寻址MOVX(@R1、@R2、@DPTR)

6.在8051片内RAM中,已知(30H)=38H,(38H)=40H,(40H)=48H,(48H)=90H。

请分析下面各是什么指令,说明源操作数的寻址方式以及按顺序执行每条指令后的结果。

指令源操作数的寻址方式执行结果

MOVA,40H直接寻址A=48H

MOVR0,A寄存器寻址R0=48H

MOVP1,#FOH立即数寻址P1=48H

MOV@R0,30H直接寻址(48H)=38H

MOVDPTR,#3848H立即数寻址DPTR=3848H

MOV40H,38H直接寻址(40H)=40H

MOVR0,30H直接寻址R0=38H

MOVP0,R0寄存器寻址P0=38H

MOV18H,#30H立即寻址(18H)=30H

MOVA,@R0寄存器间接寻址A=40H

MOVP2,P1寄存器寻址P2=48H

7.

8.指出下列指令的本质区别?

MOVA,DATA

MOVA,#DATA前一条指令源操作数的寻址方式是直接寻址,把地址为DATA的内存单元中的内容传送到累加器A中。

后一条指令源操作数的寻址方式是立即寻址,把DATA这个立即数赋给寄存器A。

MOVDATA1,DATA2

MOV74H,#78H前一条指令源操作数的寻址方式是直接寻址,把地址为DATA2的内存单元中的内容传送到地址为DATA1的内存单元中。

后一条指令源操作数的寻址方式是立即寻址,把78H这个立即数传送到内存单元74H中。

9.设R0的内容为32H,A的内容为48H,片内RAM的32H单元内容为80H,40H单元内容为08H。

请指出在执行下列程序段后上述各单元内容的变化。

MOVA,@R0A=80H;R0=32H;(32H)=80H;(40H)=08H

MOV@R0,40HA=80H;R0=32H;(32H)=08H;(40H)=08H

MOV40H,AA=80H;R0=32H;(32H)=80H;(40H)=80H

MOVR0,#35HA=80H;R0=35H;(32H)=80H;(40H)=08H

10.

11.如何访问外部RAM单元,可使用哪些寻址方式?

使用MOVX指令,可采用寄存器间接寻址方式(@R0,@R1,@DPTR)

12.

13.

14.

15.

16.设A=83H,R0=17H,(17H)=34H。

问执行以下指令后,A=?

ANLA,#17H;A=03H

ORL17H,A;A=03H,(17H)=37H

XRLA,@R0;A=34H

CPLA;A=0CBH

17.使用位操作指令实现下列逻辑操作。

要求不得改变未涉及位的内容。

⑴使ACC.0置1。

SETBACC.0

⑵清除累加器高4位。

CLRACC.7

CLRACC.6

CLRACC.5

CLRACC.4

⑶清除ACC.3,ACC.4,ACC.5,ACC.6。

CLRACC.6

CLRACC.5

CLRACC.4

CLRACC.3

18.编程实现把内部RAMR0~R7的内容传送到20H~27H单元。

MOV20H,R0

MOV21H,R1

MOV22H,R2

MOV23H,R3

MOV24H,R4

MOV25H,R5

MOV26H,R6

MOV27H,R7

19.设逻辑表达式为:

Y=A(B+C)+D(E+F),试编一程序以软件方法实现上述逻辑功能。

20.试编写程序,将内部RAM的20H,21H,22H三个连续单元的内容依次存入2FH,2EH,2DH中。

MOV2FH,20H

MOV2EH,21H

MOV2DH,22H

21.编写程序,进行两个6位数的减法:

6F5DH-13B4H,结果的高8位和低8位分别存入内部RAM的31H、30H单元中。

CLRC

MOVA,#5DH

SUBBA,#B4H

MOV30H,A

MOVA,#6FH

SUBBA,13H

MOV31H,A

22.编写程序,若累加器A的内容分别满足下列条件时,则程序转至LABEL存储单元。

设A中存放的是无符号数。

⑴A≥10⑵A>10⑶A≤10

CJNEA,#10,L1

LABEL:

SJMPL2

L1:

JNCLABEL

L2:

CJNEA,#11,L1

LABEL:

SJMPL2

L1:

JNCLABEL

L2:

CJNEA,#10,L1

LABEL:

SJMPL2

L1:

JCLABEL

L2:

23.

24.

25.

26.试编写程序,查找在内部RAM的20H~50H单元中是否有0AAH这一数据。

若有则将51H单元置为01H;若未找到,则将51H置为0。

MOVR0,#31H

MOVR1,#20H

MOV51H,#00H

L1:

CJNE@R1,#0AAH,L2

MOV51H,#01H

SJMPL3

L2:

INCR1

DJNZR0,L1

L3:

27.试编写程序,查找在内部RAM的20H~50H单元中有多少个00H这一数据,并将查找结果存入51H单元。

MOVR0,#31H

MOVR1,#20H

MOVR2,#00H

L1:

CJNE@R1,#00H,L2

INCR2

L2:

INCR1

DJNZR0,L1

L3:

MOV51H,R2

28.外部数据RAM中有一个数据块,存有若干个字符、数字,首地址为SOURCE。

要求将该数据块传送到内部RAM以DIST开始的区域,直到遇到字符“$”时结束(“$”也要传送,它的ASCII码为24H)。

MOVDPTR,#SOURCE

MOVR1,#DIST

L1:

MOVXA,@DPTR

INCDPTR

MOV@R1,A

INCR1

CJNEA,#24H,L1

29.已知R3,R4中存放一个16位的二进制数,高位在R3中,低位在R4中。

试编一程序将其求补,结果存回原处。

方法一方法二

CLRCCLRC

MOVA,#00HMOVA,R3

SUBBA,R4CPLA

MOVR4,AMOVR3,A

MOVA,#00HMOVA,R4

SUBBA,R3CPLA

MOVR3,AADDA,1

MOVR4,A

MOVA,R3

ADDCA,#00H

MOVR3,A

30.已知30H,31H中存放一个16位的二进制数,高位在前,低位在后。

试编一程序将其乘2,结果存回原处。

方法一方法二

MOVA,31HCLRC

ADDA,31HMOVA,31H

MOV31H,ARLA

MOVA,30HMOV31H,A

ADDCA,30HMOVA,30H

MOVR3,ARLCA

MOV30H,A

31.

32.编写一个程序,把片外RAM从2000H开始存放的8个数传送到片内30H开始的单元中。

MOVDPTR,#2000H

MOVR0,#30H

MOVR1,#08H

L1:

MOVA,@DPTR

MOV@R0,A

INCDPTR

INCR0

DJNZR1,L1

33.

34.

35.设(R0)=7EH,(DPTR)=10FEH,片内RAM中7E单元的内容为0FFH,7FH单元的内容为38H。

试为下列程序的每条指令注释其执行结果。

INC@R0(7EH)=00H

INCR0R0=7FH

INC@R0(7FH)=39H

INCDPTR(DPTR)=10FFH

INCDPTR(DPTR)=1100H

INCDPTR(DPTR)=1101H

36.下列程序段经汇编后,从1000H开始的各有关存储单元的内容将是什么?

ORG1000H1000H“S”

1001H“T”

1002H“A”

1003H“R”

1004H“T”

1005H12H

1006H34H

1007H30H

1008H00H

1009H00H

100AH70H

TAB1:

EQU1234H

TAB2:

EQU3000H

DB“START

DWTAB1,TAB2,70H

37.

38.

39.试编写程序,判断30H单元中的数据是奇数还是偶数,是奇数则把31H单元置1,是偶数则把31置0。

要求不破坏30H单元的内容。

方法一

MOVA,30H

MOV31H,#00H

ORLA,#01H

JZL1

MOV31H,#01H

L1:

方法二

MOVA,30H

ORLA,#01H

JZL1

MOV31H,#01H

SJMPL2

L1:

MOV31H,#00H

L2:

40.试编写程序,使31H单元中二进制数的最高位(符号位)置1。

MOVA,30H

ORLA,#80H

MOV30H,A

41.试编写程序,把31H单元中二进制数的最高位(符号位)求反。

MOVA,30H

XRLA,#80H

MOV30H,A

思考题与习题

1.什么是中断和中断系统?

其主要功能是什么?

2.试编写一段对中断系统初始化的程序,使之允许INT0、INT1、TO、串行口中断,且使T0中断为高优先级中断。

字节操作方式位操作方式

MOVIP,#00000101B

MOVIE,#10010111B

SETBES

SETBEX1

SETBEX0

SETBET0

SETBPX1

SETBPX0

SETBEA

3.在单片机中,中断能实现哪些功能?

答:

I/O设备请求服务;硬件故障;实时时钟;为调试程序而设置的中断源。

4.8051共有哪些中断源?

对其中断请求如何进行控制?

5.什么是中断优先级?

中断优先级处理的原则是什么?

答:

中断优先级是CPU相应中断的顺序。

其处理原则是:

高优先级组的中断优先响应低优先组的中断。

同组(级)按外部中断0、定时器0、外中断1、定时器1、串行口的顺序响应。

6.说明外部中断请求的查询和响应过程。

7.8051在什么条件下可响应中断?

答:

CPU开中断(EA=1);

中断源发中断请求信号且其中断允许位为1;无同级中断或更高级中断正在被服务;

当前的指令周期已经结束(若是当前指令为RETI或访问IE、IP的指令,则应等CPU再执行完一条指令)。

8.简述8051单片机的中断响应过程。

9.在8051内存中,应如何安排程序区?

答:

8051复位后PC=0000H,而0003H~002BH为各中断源的入口地址,故程序段一般从0030H(以后)的地址开始存放。

因此编程时应在0000H出写一跳转指令转至0030H(或相应的开始地址)。

10.试述中断的作用及中断的全过程。

11.当正在执行某一中断源的中断服务程序时,如果有新的中断请求出现,试问在什么情况下可响应新的中断请求?

在什么情况下不能响应新的中断请求?

12.8051单片机外部中断源有几种触发中断请求的方法?

如何实现中断请求?

13.8051单片机有5个中断源,但只能设置两个中断优先级,因此,在中断优先级安排上受到一定的限制。

试问以下几种中断优先级顺序的安排(级别由高到低)是否可能?

若可能,则应如何设置中断源的中断级别?

否则,请简述不可能的理由。

⑴定时器0、定时器1、外中断0、外中断1、串行口。

答:

可以。

MOVIP,#00001010B。

⑵串行口、外中断0、定时器0、外中断1、定时器1。

答:

可以。

MOVIP,#00010000B。

⑶外中断0、定时器1、外中断1、定时器0、串行口。

答:

不可能。

因为把外中断0、定时器1设定为高优先级时,在低优先级中定时器0的优先级高于外中断1。

⑷外中断0、外中断1、串行口、定时器0、定时器1。

答:

可以。

MOVIP,#00010101B。

⑸串行口、定时器0、外中断0、外中断1、定时器1。

答:

不可能。

因为若把串行口及定时器0设定为高优先级中断,在同级中断优先级中串行口为最低。

而单独把串行口设定为高优先级中断时,低优先级组中的最高优先级应为外中断0。

⑹外中断0、外中断1、定时器0、串行口、定时器1。

答:

不可能。

⑺外中断0、定时器1、定时器0、外中断1、串行口。

答:

不可能。

14.以中断方法设计单片机秒、分脉冲发生器。

假定P1.0每秒钟产生一个机器周期的正脉冲,P1.1每分钟产生一个机器周期的正脉冲。

思考题与习题

1.定时器模式2有什么特点?

使用于什么应用场合?

答:

定时器模式2具有自动重装载的8位定时器/计数器。

一般使用于串行口波特率发生器。

2.单片机用内部定时方法产生频率为100KHZ等宽矩形波,假定单片机的晶振频率为12MHZ。

请编程实现。

3.8051定时器有哪几种工作模式?

有何区别?

4.8051单片机内部设有几个定时器/计数器?

它们是由哪些特殊功能寄存器组成?

5.定时器/计数器用作定时器时,其定时时间与哪些因素有关?

作为计数器时,对外界计数频率有何限制?

答:

用作定时器时定时时间与振荡器的频率、计数器的初值有关。

用作计数器时计数频率为振荡频率/24。

6.简述定时器四种工作模式的特点。

如何选择和设定?

7.

8.

9.

10.

11.8051定时器作定时和计数时,其计数脉冲分别由谁提供?

定时:

单片机的主频经12分频提供。

计数:

Ti引脚提供。

12.8051定时器门控信号GATE设置为1时,定时器如何启动?

答:

8051定时器门控信号GATE设置为1时,定时器将由INTi引脚启动。

13.已知8051单片机的fosc=6MHZ,请利用T0和P1.0输出矩形波。

矩形波高电平宽度50μs,低电平宽度300μs。

定时时间为50μs,则时间常数=28-(50*10-6*6*106/12)=28-25=231=0E7H

ORG0000H

RESET:

AJMPMAIN;跳过中断服务程序区

ORG000BH

AJMPITOP

主程序

ORG0100H

MAIN:

MOVSP,#60H;设置堆栈指针

PTOMD:

MOVTMOD,#02H;设置T0模式2

MOVTH0,#0E7H;送初值

MOVTL0,#0E7H

MOVR0,#00H;设置计数器

SETBTR0;启动定时

SETBET0;T0开中断

SETBEA;CPU开中断

HERE:

SJMPHERE;等待时间到,转入中断服务程序(模拟主程序的运行)

中断服务程序

ORG0120H

ITOP:

CJNER0,#00H,L1;若R0不等于0转L1输出低电平

SETBP1.0;R0=0输出高电平

SJMPL2

L1:

CLRP1.0;R0≠0输出低电平

L2:

INCR0;R0加1

CJNER0,#07H,L3;判断是否已输出6个50μs的低电平

MOVR0,#00H;是则重置R0=0

L3:

SETET0;T0开中断

RETI

14.已知8051单片机的fosc=12MHz,用T1定时。

试编程由P1.0和P1.1引脚分别输出周期为2ms和500μs的方波。

定时时间为250μs,则时间常数=28-(250*10-6*6*106/12)=28-125=131=83H

ORG0000H

RESET:

AJMPMAIN;跳过中断服务程序区

ORG001BH

AJMPITOP

主程序

ORG0100H

MAIN:

MOVSP,#60H;设置堆栈指针

PTOMD:

MOVTMOD,#20H;设置T1模式2

MOVTH0,#83H;送初值

MOVTL0,#083H

MOVR0,#00H;设置计数器

SETBTR1;启动定时

SETBET1;T0开中断

SETBEA;CPU开中断

HERE:

SJMPHERE;等待时间到,转入中断服务程序(模拟主程序的运行)

中断服务程序

ORG0120H

ITOP:

CPLP1.0;每间隔250使P1.0反相输出

MOVA,R0

JNBACC.3,L1;若ACC.3不等于1转L1输出低电平

SETBP1.1;ACC.3等于1输出高电平

SJMPL2

L1:

CLRP1.1;ACC.3不等于1输出低电平

L2:

INCR0;R0加1

L3:

SETET0;T0开中断

RETI

15.

16.

17.

18.

思考题与习题

1.简述单片机系统扩展的基本原则和实现方法。

2.什么是RAM?

有什么特点?

3.以8031为主机的系统,拟采用2片2764EPROM芯片扩展16KB程序存储器。

请设计出硬件结构图。

4.

5.

6.

7.

8.

9.

10.

11.

12.

13.下图是四片8K8位存储器芯片的连接图。

请确定每片存储器芯片的地址范围。

   

 答:

显示子程序

DISP:

SETB0D4H

;改变当前工作寄存器组

MOVR1,#7EH

;设置显示缓冲区首址

MOVR2,#20H

;设置最左边的显示位

MOVR3,#00H

;延时时间

DISP1:

MOVDPTR,#0FF21H

;字位口

MOVA,R2

MOVX@DPTR,A

;设置字位口显示位

MOVDPTR,#DATACO

MOVA,@R1

MOVCA,@A+DPTR

;取显示代码

MOVDPTR,#0FF22H

MOVX@DPTR,A

;显示字型

DISP2:

DJNZR3,DISP2

;延时

DECR1

;显示缓冲区指针减1

CLRC

MOVA,R2

RRCA

;右移显示位1位

MOVR2,A

JNZDISP1

MOVA,#0FFH

;关显示

MOVDPTR,#0FF22H

MOVX@DPTR,A

CLR0D4H

;恢复原来的工作寄存器组

RET

DATAC0:

DB0C0H,0F9H,0A4H,0B0H,99H,92H

DB82H,0F8H,80H,90H,88H,83H,0C6H

DB0A1H,86H,8EH,0FFH,0CH,89H,0DEH

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2