10自动化单片机原理复习.docx

上传人:b****8 文档编号:11155126 上传时间:2023-02-25 格式:DOCX 页数:17 大小:145.97KB
下载 相关 举报
10自动化单片机原理复习.docx_第1页
第1页 / 共17页
10自动化单片机原理复习.docx_第2页
第2页 / 共17页
10自动化单片机原理复习.docx_第3页
第3页 / 共17页
10自动化单片机原理复习.docx_第4页
第4页 / 共17页
10自动化单片机原理复习.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

10自动化单片机原理复习.docx

《10自动化单片机原理复习.docx》由会员分享,可在线阅读,更多相关《10自动化单片机原理复习.docx(17页珍藏版)》请在冰豆网上搜索。

10自动化单片机原理复习.docx

10自动化单片机原理复习

一、简述题

1.MCS-51单片机芯片包含哪些主要逻辑功能部件?

(习题2-1)

答:

1个8位CPU;1个片内振荡器及时钟电路;128字节RAM(数据存储器);4K字节ROM(程序存储器);2个16位定时器/计数器;32条可编程的I/O线(四个8位并行I/O端口);1个全双工串行口;5个中断源;

2.程序计数器PC的作用是什么?

什么情况下会使用PC的值?

(习题2-4)

答:

作用:

程序计数器PC用来存放即要执行的指令地址,共16位,低8位经P0口输出,高8位经P2口输出。

CPU每取一次机器码,PC内容自动加一,CPU执行一条指令,PC内容自动增加该指令的长度。

CPU复位后,PC内容为0000H,它标志着程序从头开始执行。

PC的内容变化决定程序的流向。

3.MCS-51单片机设置有四组工作寄存器,这样做的目的是什么?

请举例说明。

(习题2-7)

答:

工作寄存器区也称为通用寄存器区。

工作寄存器区包含4个工作寄存器组,每个工作存器组中包含8个工作寄存器R0~R7:

BANK0(00~07H);BANK1(08~0FH);

BANK2(10~17H);BANK3(18~1FH)

4.简述MCS-51单片机的位寻址空间。

(习题2-11)

答:

MCS-51单片机的位寻址空间共有211个位由两部分组成,位地址范围为00~FFH。

片内RAM中20-2FH单元的128位,占用位地址范围:

00~7FH;地址能被8整除的SFR具有位寻址功能,占用位地址范围:

80~FFH,共83位。

5.什么是时钟周期、机器周期、指令周期?

如何计算机器周期?

晶振频率为12M时,计算时钟周期、机器周期。

(习题2-9)

答:

与时序有关的周期:

时钟周期、机器周期、指令周期。

时钟周期为晶体振荡器(晶振)的振荡周期的2倍。

机器周期(TM):

CPU完成一个基本操作所用的时间。

MCS-51单片机的1个机器周期包含12个振荡周期。

指令周期(TI):

执行一条指令所用的时间;MCS-51:

1TI=1~4TM。

一般为1—2个机器周期,乘法、除法为3个机器周期。

=1/(12M)=

TM=12

=

6.简单说明MCS-51单片机PSW寄存器各标志位的含义。

(习题2-15)

答:

①CY(PSW.7)进位/借位标志位。

若ACC在运算过程中发生了进位或借位,则CY=1;否则=0。

它也是布尔处理器的位累加器,可用于布尔操作。

②AC(PSW.6)半进位/借位标志位。

若ACC在运算过程中,D3位向D4位发生了进位或借位,则CY=1,否则=0。

机器在执行“DAA”指令时自动要判断这一位,我们可以暂时不关心它。

③F0(PSW.5)——用户标志位。

④RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位

RS1,RS0=00则选择了工作寄存器组0区R0~R7分别代表00H~07H单元。

RS1,RS0=01则选择了工作寄存器组1区R0~R7分别代表08H~0FH单元。

RS1,RS0=10则选择了工作寄存器组2区R0~R7分别代表10H~17H单元。

RS1,RS0=11则选择了工作寄存器组3区R0~R7分别代表18H~1FH单元。

⑤OV(PSW.2)溢出标志位。

OV=1时特指累加器在进行带符号数(-128—+127)运算时出错(超出范围);OV=0时未出错。

⑥P(PSW.0)奇偶标志位:

P=1表示累加器中“1”的个数为奇数;P=0表示累加器中“1”的个数为偶数。

CPU随时监视着ACC中的“1”的个数,并反映在PSW中

7.什么是寻址方式?

在MCS-51单片机中,有哪几种寻址方式?

(习题3-18)

答:

所谓的寻址方式就是CPU执行时获取操作数的方式。

分为:

立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址、变址寻址、位寻址、相对寻址7种寻址方式。

8.DAA指令的作用是什么?

它跟在哪些指令后面使用?

(习题3-20)

答用:

该指令是进行十进制加法调整的。

这条指令是在进行BCD码加法运算时,跟在“ADD”和“ADDC”指令之后,用来对BCD码的加法运算结果自动进行修正的,使其仍为BCD码表达形式。

9.“LJMPPROG”和“LCALLPROG”的区别是什么?

(习题3-21)

答:

“LJMPPROG”执行这条指令时,把指令中给出的16位地址给PC,无条件地跳转到以PROG为标号地址的同一程序位置;

“LCALLPROG”执行这条指令时,调用以PROG标号地址开头的子程序。

10.MCS-51单片机提供了哪几种中断源?

在中断管理上有什么特点?

各个中断源优先级如何确定?

中断嵌套的原则是什么?

(习题4-1)

答:

MCS-51单片机提供的中断源:

有5个中断源,分别为2个外部中断、2个定时/计数器溢出产生的中断、1个串行口接收/发送产生的中断,提供2个中断优先级。

管理特点:

当一个事件发生了,该中断源触发了中断,中断系统通过硬件把这个中断源对应的中断触发器置1,以此向CPU发出请求,即中断登记。

CPU通过检测中断触发器的状态是否为1来识别是哪一个中断源发出了请求。

只要中断触发一次,中断触发器被置1并锁存,除非中断触发器被清0,否则,该中断源后续的中断请求不再登记。

中断源优先级的确定:

在中断系统中,按照轻重缓急的原则给每一个中断源分配一个中断CPU的优先级

中断嵌套原则:

一个低级中断源的中断服务程序可以被另一个高级中断源的中断所中断,反之不能。

11.MCS-51单片机响应中断的条件是什么?

CPU响应中断时,不同的中断源的中断处理程序的入口地址各是多少?

(习题4-2)

12.答:

CPU能响应中断的条件:

(1)有中断源的中断请求;

(2)CPU允许这个中断源请求中断;(3)CPU处于开放中断的状态;4)CPU刚刚结束一条指令的执行过程。

中断源的中断处理程序的入口地址:

外部事件中断0→0003H;外部事件中断1→0013H;定时/计数器T0溢出中断→000BH;定时/计数器T1溢出中断→001BH;串行口接收和发送中断→0023H

13.MCS-51单片机串行口有几种工作方式?

有几种数据帧格式?

各种方式下通讯的波特率如何确定?

(习题6-2)

答:

串行口有四种工作方式:

方式0、方式1、方式2、方式3

一共有3种数据帧:

1)8位数据位、低位在前,高位在后

2)1位起始位、8位数据位、1位停止位

3)1位起始位、9位数据位、1位停止位

波特率的确定:

为晶体振荡器的频率

X为定时/计数器的初始时间常数

SMOD:

波特率倍增选择位

14.简述MCS-51单片机多机通讯原理。

(习题6-3)

答:

MCS-51单片机的串行口控制器SCON中的SM2位为多机通信控制位。

在串行口工作在方式2或方式3时,如果SM2=1,只有在接收器收到9位数据位1时,数据才装入接收缓冲器SBUF中,并将接收中断标志位R1置1,向CPU请求中断,如果接收器收到的第9位为0,则接收中断标志位不置1,并把接收到的数据丢弃。

当SM2为0时,接收到一个数据帧后,不管是9位数据是0或1,都会把接收中断标志R1置1,并将接收到的数据表装入接收缓冲器SBUF。

利用这个特点,可以实现多个MCS-51单片机之间的通信。

15.在MCS-51单片机系统中,扩展的程序存储器和数据存储器都使用相同的16位地址线和8位数据线,为什么不发生冲突?

(习题8-5)

答:

因为控制信号线不同:

外扩的RAM芯片既能读出又能写入,所以通常都有读写控制引脚,记为OE和WE。

外扩RAM的读、写控制引脚分别与MCS-51的RD和WR引脚相连。

外扩的EPROM在正常使用中只能读出,不能写入,故EPROM芯片没有写入控制引脚,只有读出引脚,记为OE,该引脚与MCS-51单片机的PSEN相连

16、简述MCS-51单片机内部RAM功能分区,说明各部分的使用特点。

(习题2-6)

答:

单片机的内部数据存储器由RAM地址寄存器、地址译码器以及128个单元的RAM构成,用于存放可读写的数据。

MCS-51单片机的片内RAM按照功能可分为3个区域:

00~1FH:

32个单元为工作寄存器区;20~2FH:

16个单元为位寻址区;30~7FH:

80个单元为数据缓冲区。

特点:

①工作寄存器区:

主要用途是存放操作数据及中间结果等

②位寻址区:

主要用途是配合位操作指令,作为单片机进行布尔处理时的存储空间,也可作为一般RAM单元进行字节操作;

③数据缓冲区:

主要用途是作为内外数据交换式的缓冲单元,MCS-51的堆栈也设在此区。

16.在MCS-51单片机应用系统中,外接程序存储器和数据存储器地址空间允许重叠而不会发生冲突,为什么?

外接I/O接口是否允许与外接数据存储器地址重叠?

为什么?

(习题8-6)

答:

因为单片机访问外部程序存储器与访问外部数据存储器(包括外部I/O口)时,会分别产生PSEN与RD/WR两类不同的控制信号,因此外接程序存储器和数据存储器的地址空间允许重叠而不会发生冲突。

外部扩展I/O口占用数据存储器地址空间,与外部数据存储器统一编址,单片机用访问外部数据存储器的指令来访问外部扩展I/O口,因此外部I/O接口地址允许与程序存储器地址重叠不允许与数据存储器地址重叠。

17.堆栈有哪些功能?

堆栈指针SP的作用是什么?

在具体应用设计时,为什么要对SP重新赋值?

(习题2-8)

答:

堆栈是为了保护CPU执行程序的现场,在存储器中开辟了一个“先进后出”(后进先出)的区域;堆栈的操作:

入栈,出栈;操作规则:

先进后出;堆栈由堆栈指针SP管理,它始终指向栈顶位置。

一般情况下,将堆栈设在30H单元之后。

程序设计时,最好设在片内RAM的末端,如MOVSP,#60H,以避免堆栈向上生成时覆盖所存储的数据。

18、在MCS-51单片机中,每个特殊功能寄存器都有一个地址,且它们的地址分布在80H~0FFH之间,为什么对特殊功能寄存器只能使用直接寻址?

答:

在MCS-51单片机中,每个特殊功能寄存器都有一个固定的地址,在操作寻址时,可直接按照地址来寻址,而不用其他的寻址方式。

这也可是说是单片机的约定俗成。

所以对于已知地址的寄存器,对其寻址方式为直接寻址。

二、写出下列指令中所有操作数的寻址方式

1)MOVA,40H

目的操作数:

寄存器寻址;源操作数:

直接寻址

2)MOVP1,#0F0H

目的操作数:

源操作数:

立即数寻址

3)MOVA,@R0

目的操作数:

寄存器寻址源操作数:

寄存器间接寻址

4)MOVXA,@DPTR

目的操作数:

寄存器寻址源操作数:

寄存器间接寻址

5)MOVCA,@A+PC

目的操作数:

寄存器寻址源操作数:

变址寻址

6)MOV30H,50H

目的操作数:

直接寻址源操作数:

直接寻址

7)MOV30H,#50H

目的操作数:

直接寻址源操作数:

立即数寻址

8)DJNZR7,LOOP

目的操作数:

寄存器寻址源操作数:

相对寻址

9)DJNZ30H,DO

目的操作数:

直接寻址源操作数:

相对寻址

10)SJMP$操作数:

11)SJMPNEXT相对寻址

12)SWAPA操作数:

寄存器寻址

13)XCHDA,@R0目的操作数:

寄存器寻址,源操作数:

寄存器间接寻址

14)PUSHDPH目的操作数:

寄存器寻址

15)POPACC目的操作数:

寄存器寻址

16)AJMPDO目的操作数:

相对寻址

17)LJMPMAIN相对寻址

18)MOVX@R0,A目的操作数:

寄存器间接寻址源操作数:

寄存器寻址

19)MOVCA,@A+DPTR目的操作数:

寄存器寻址源操作数:

变址寻址

20)MOVDPTR,#BUFFER目的操作数:

寄存器寻址源操作数:

立即寻址

21)MOVDPTR,#2000h目的操作数:

寄存器寻址源操作数:

直接寻址

22)JMP@A+DPTR操作数:

变址寻址

23)CLRA操作数:

寄存器寻址

24)CLR30H操作数:

直接寻址

25)CLRRI操作数:

寄存器寻址

26)CLRC操作数:

位寻址

27)SETBC操作数:

位寻址

28)SETB20H操作数:

直接寻址

29)MULAB寄存器寻址

30)DIVAB寄存器寻址

31)JZNEXT相对寻址

32)JNDONE相对寻址

33)CJNEA,#10,GO1操作数1:

寄存器寻址,操作数2:

立即数寻址操作数3:

相对寻址

34)CJNEA,40,GO2操作数1:

寄存器寻址,操作数2:

直接寻址操作数3:

相对寻址

35)CJNER0,#40,GO3操作数1:

寄存器寻址,操作数2:

立即数寻址操作数3:

相对寻址

36)CJNE@R0,#0DH,GO4操作数1:

寄存器间接寻址,操作数2:

立即数寻址操作数3:

相对寻址

37)LCALLROUTINE1相对寻址

38)ACALLROUTINE2相对寻址

39)MOVC,20H目的操作数:

寄存器寻址源操作数:

直接寻址

40)MOV20H.0,C目的操作数:

位寻址源操作数:

位寻址

41)MOVP1.0,C目的操作数:

位寻址源操作数:

位寻址

42)MOVC,P1.7目的操作数:

位寻址源操作数:

位寻址

43)SETBEA相对寻址

44)SETBTR1相对寻址

45)JB0,DONE相对寻址

46)JNBFLAG,DONE目的操作数:

相对寻址源操作数:

相对寻址

47)JBCTF1,WAIT目的操作数:

相对寻址源操作数:

相对寻址

48)JBACC.7,GO目的操作数:

位寻址源操作数:

相对寻址

49)JCDO1相对寻址

50)JNCDO2相对寻址

四、简单应用设计

1.在检测系统中,通常采用平均值滤波的方法来消除检测数据的随机干扰,即连续采集多次,取平均值作为测量值。

下图为8051单片机与串行A/D转换器TLC549的接口示意图,单片机晶振频率12M,请编写一程序对输入模拟量采样8次,把它们的平均值存放在30H单元。

(习题9-6)

CSBITP1.2

DATBITP1.1

CLKBITP1.0

AD_DATADATA30H

ORG0000H

AJMPMAIN

ORG0100H

MAIN:

MOVSP,#60H

ACALLTLC549_ADC

MOVR7,#0

DJNER7,$

ACALLTCL549_ADC

MOVAD_DATA,A

SJMP$

TLC549_ADC:

CLRA

CLRCLK

CLRCS

MOVR6,#8

TLCAD_L1:

SETBCLK

NOP

NOP

MOVC,DAT

RLCA

MOVB,A

NOP

DJNZR6,TLCAD_L1

MOVA,B

MOVB,#8

DIVAB

RET

:

END

2.下图为8051单片机与串行A/D转换器TLC549的接口示意图,单片机晶振频率12M,请编写一程序按10ms的采样周期对输入模拟量进行A/D转换,并始终把本次A/D转换结果和前7次A/D转换结果依次放在内部数据存储器30H单元开始的区域内。

(习题9-6)

3.下图为8051单片机与串行A/D转换器TLC549的接口示意图,编写一程序每隔50ms对输入模拟量采样一次,并把采样值存放在内部RAM40H单元中,系统晶振频率12MHz。

(习题9-7)

4.设已定义了I2C总线的时钟线SCL和数据线SDA,请编写8051单片机发I2C总线启动信号的函数,函数原型如下:

voidstart(void)

{SDA=1;

SCL=1;

If(SDA==1)

{SDA=0;

_NOP_();

SCL=1;

SDA=1;

Return=TRUE;

}

Else

{rtturnFALSE;

}

}

5.设已定义了I2C总线的时钟线SCL和数据线SDA,请编写8051单片机发I2C总线停止信号的函数,函数原型如下:

voidstopt(void)

{SDA=0;

_nop_();

_nop_();

SCL=1;

SDA=1;

_nop_();

_nop_();

_nop_();

SCL=0;

}

6.设已定义了I2C总线的时钟线SCL和数据线SDA,请编写8051单片机向I2C从器件发送一个字节的函数,函数原型如下:

bitSendByte(unsignedcharc)

{unsignedcharI;

For(i=0;i<8;i++)

{c=c<<1;

F0=SDA=CY;

SCL=1;

If(F0!

=SDA)

{SCL=0;

ReturnFALSE;

}

_nop_();

_nop_();

SCL=0;

}

SDA=1

_nop_();

_nop_();

SCL=1;

_nop_();

_nop_();

If(SDA==1)

{SCL=0;

Return1;

}

Else

{SCL=0;

Return0;

}

}

形参c为要发送的一个字节数据,函数返回值为从器件的应答信号,有应答返回值为0,无应答返回值为1。

(见基础实验14I2C总线实验)

7.设已定义了I2C总线的时钟线SCL和数据线SDA,请编写8051单片机从从器件接收一个字节的函数,函数原型如下:

unsignedcharRcvByte(bitack)

{unsignedinti,r;

R=0;

SDA=1;

For(i=0;i<8;i++)

{r=r*2;

SCL=1;

_nop_();

_nop_();

If(SDA==1)

{r++;

Return0;

}

Else

{r++;r

Return1;

}

SCL=0;

}

returnr;

}

形参ack为8051单片机在接收一个字节后发给从器件的应答信号,为0表示无应答,为1表示有应答,函数的返回值为接收到的一个字节。

(见基础实验14I2C总线实验)

8.下图为8051单片机控制步进电机示意图,D1为四相步进电机,步距角为3度,按四相八拍运行,按键“CW”、“CCW”和“STOP”依次为正转键、反转键和停止键。

按一下任何一键都会经INT0向8051单片机发出中断请求。

请简述8051单片机控制步进电机按给定转速和方向转动的原理,并编程实现下列功能:

1)按一下“CW”键,步进电机按50转/分的速度正转。

2)按一下“CCW”键,步进电机按100转/分的速度反转。

3)任何时候按一下“STOP”键,步进电机停止转动。

4)保证正、反转切换时和再度转动时的转动平滑性。

9.下图为8051单片机控制步进电机示意图,D1为四相步进电机,步距角为3度,按四相八拍运行,按键“CW”和“CCW”分别正转键和反转键。

请简述8051单片机控制步进电机按给定转速和方向转动的原理,并编程实现下列功能:

1)当只有“CW”键被按下,步进电机按50转/分的速度正转。

2)当只有“CCW”键被按下,步进电机按100转/分的速度反转。

3)当“CW”和“CCW”都没有按下或都按下,步进电机停止转动。

4)保证正、反转切换时和再度转动时的转动平滑性。

10.下图为8051单片机控制步进电机示意图,D1为四相步进电机,步距角为3度,按四相八拍运行。

请编写一程序使步进电按50转/分的速度正转。

请简述8051单片机控制步进电机按给定转速和方向转动的原理,并编写使步进电机按50转/分的速度正转的程序。

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

当前位置:首页 > 初中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1