单片机的原理与应用课件_第1页
单片机的原理与应用课件_第2页
单片机的原理与应用课件_第3页
单片机的原理与应用课件_第4页
单片机的原理与应用课件_第5页
已阅读5页,还剩261页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

单片机原理及应用第1,2,3章复习光华学院信息工程系王超单片机原理及应用第1,2,3章复习光华学院1单片机实物图单片机实物图2单片机开发板单片机开发板3单片机流水灯数码管电机传感器单片机应用原理单片机流水灯数码管电机传感器单片机应用原理4一个微电脑包括微处理器(CPU),存放程序指令的(ROM),存放数据的(RAM),输入输出端口(I/O口)以及时钟,计数器,中断系统等,它们经过地址总线(AddressBus),数据总线(DadaBus),控制总线(ControlBus)的连接以及输入输出端口与外围设备连接,构成微电脑系统。由于单片机微处理器把微电脑的主要器件制造在一块芯片上,所以可以把单片机微处理器看成是一个不带外围装置的微电脑。什么是单片机?一个微电脑包括微处理器(CPU),存放程序指令的(ROM),5测试题9.8051单片机的内部硬件结构包括了:______________、______________、______________

、和______________以及并行I/O口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过_____________相连接。13.8031单片机中片内RAM共有()字节。A.128B.256C.4KD.64K测试题9.8051单片机的内部硬件结构包括了:_6工业方面民用方面仪表方面电讯方面数据处理方面汽车方面单片机的应用工业方面民用方面仪表方面电讯方面数据处理方面汽车方面单片机的7微型计算机硬件结构硬件系统:微机实体和装置软件系统:微机系统使用的各种程序的总称微型计算机硬件结构硬件系统:软件系统:8单片机硬件结构单片机硬件结构9MCS-51单片机的硬件结构时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0INT1定时计数器结构框图微处理器CPU:8位,运算和控制功能内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。内部ROM:4KB掩膜ROM,用于存放程序、原始数据和表格。定时/计数器:两个16位的定时/计数器,实现定时或计数功能。并行I/O口:4个8位的I/O口P0、P1、P2、P3。串行口:一个全双工串行口。中断控制系统:5个中断源(外中断2个,定时/计数中断2个,串行中断1个)时钟电路:可产生时钟脉冲序列,允许晶振频率6MHZ和12MHZMCS-51单片机的硬件结构时钟电路CPUROMRAMT010测试题简答题:1、MCS-51单片机的片内都集成了哪些功能部件?各个功能部件的最主要的功能是什么?测试题简答题:11测试题1.一个完整的微机系统由_____________和_______________两大部分组成.3.半导体存储器分成两大类__________和__________,其中_______________具有易失性,常用于存储___________。测试题1.一个完整的微机系统由__________12MCS-51单片机信号引脚简介

P3口线的第二功能VCCVSSXTAL2

XTAL1RSTP0.0

P0.1

P0.2P0.3P0.4P0.5P0.6P0.7P1.0

P1.1

P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0

P3.1

P3.2P3.3P3.4P3.5P3.6P3.72、时钟引脚:XTAL1、XTAL23、复位引脚:RST7、并行口:P0、P1、P2、P34、ALE:地址锁存控制信号1、电源线:VCC(+5V)、VSS(地)EAPSEN6、EA:内外程序存储选择控制信号5、PSEN:外部ROM读选通信号RXD/

TXD/

INT0/INT1/

T0/

T1/

WR/

RD/1

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

313029282726252424222180318051875189C51MCS-51单片机信号引脚简介P3口线的第二功能VCCVS13时钟电路与复位电路

(1)时钟振荡电路时钟电路与复位电路

(1)时钟振荡电路14测试题12.单片机8051的XTALl和XTAL2引脚是()引脚A.外接定时器B.外接串行口C.外接中断D.外接晶振测试题12.单片机8051的XTALl和XTAL15例:若振荡频率fosc=12MHz,则MCS-51的振荡周期,状态周期,机器周期是多少?振荡周期(时钟周期)=1/12us状态周期=2*(1/12)us机器周期=12*(1/12)us=1us10.在MCS-51单片机中,如果采用12MHz晶振,一个机器周期为____________。例:若振荡频率fosc=12MHz,则MCS-51的振荡周16测试题1.8031单片机的()口的引脚,还具有外中断、串行通信等第二功能。a)P0

b)P1c)P2

d)P32.单片机应用程序一般存放在(

a)RAM

b)ROM

c)寄存器

d)CPU

3.已知某数的BCD码为0111010101000010则其表示的十进制数值为()a)7542Hb)7542c)75.42Hd)75.42测试题1.8031单片机的()口的引脚17测试题2.8051的引脚RST是_________(IN脚还是OUT脚),当其端出现_____电平时,8051进入复位状态。8051一直维持这个值,直到RST脚收到____电平,8051才脱离复位状态,进入程序运行状态,从ROM_______H单元开始取指令并翻译和执行。测试题2.8051的引脚RST是________18MCS-51的微处理器

MCS-51的微处理器(CPU)

由运算器和控制器所构成。2.3.1运算器作用:对操作数进行算术、逻辑运算和位操作。

由算术逻辑单元(ALU)、累加器A、寄存器B、位处理器和程序状态字寄存器(PSW)等构成。

MCS-51的微处理器MCS-51的微处理器(CPU191.算术逻辑运算单元ALU它是运算器的的核心.+-*/,&|-...2.累加器A(8位)

使用最频繁的寄存器,可写为Acc。

累加器A的作用:(1)是ALU的输入(数据处理源)之一,又是运算结果的存放单元。(2)数据传送大多都通过累加器A。3.寄存器B

(8位)是为执行乘、除法操作设置的,作为ALU的输入之一。在不执行乘、除法操作的情况下,可当作普通寄存器使用。(A*B=BA)(A/B=A…B)1.算术逻辑运算单元ALU2.累加器A(8位)3.寄存器204.程序状态字寄存器PSW

(ProgramStatusWord)(1)Cy(PSW.7)进位标志位,或写为C,有进位或借位时硬件置1。(2)Ac(PSW.6)辅助进位标志位,用于BCD码的十进制调整运算。当低4位向高4位数发生进位或借位时,AC被硬件置位,否则被清0。(3)F0(PSW.5)用户自定义标志位。可用软件使它置1或清0,也可由软件来测试标志F0以控制程序的流向。编程时,该标志很有用。

CyACF0RS1RS0OV…PD0HD7D6D5D4D3D2D1D0PSW4.程序状态字寄存器PSW(ProgramStatus21表2.3RS1、RS0与片内工作寄存器组的对应关系

RS1RS0寄存器组片内RAM地址通用寄存器名称000组00H~07HR0~R7011组08H~0FHR0~R7102组10H~17HR0~R7113组18H~1FHR0~R7(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。CyACF0RS1RS0OV…PD0HD7D6D5D4D3D2D1D0PSW表2.3RS1、RS0与片内工作寄存器组的对应关系R22RAM共128个单元RAM共128个单元23测试题6.若由程序设定RS1、RS0=01,则工作寄存器R0~R7的直接地址为______。5.INTEL8051

单片机是(

)位的单片机

a)16

b)4

c)8

d)准16

11.进位标志CY在()中。A.累加器AB.算术逻辑运算部件ALUC.程序状态字寄存器PSWD.DPDR14.当标志寄存器PSW的RS0、RS1分别为1,0时,选用的工作寄存器组为()。A.组0B.组1C.组2D.组3测试题6.若由程序设定RS1、RS0=01,则工作24(5)OV(PSW.2):溢出标志位指示运算是否产生溢出。各种算术运算指令对该位的影响情况较复杂,将在第3章介绍。(6)PSW.1位:保留位,未用

(7)P(PSW.0):奇偶标志位,每个指令周期都由硬件置位或清除. P=1,A中“1”的个数为奇数 P=0,A中“1”的个数为偶数注:奇偶标志位对串行口通讯中的数据传输有重要意义,常用奇偶检验的方法来检验数据传输的可靠性。CyACF0RS1RS0OV…PD0HD7D6D5D4D3D2D1D0PSW(5)OV(PSW.2):溢出标志位CyACF0RS1RS251

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15EPROM27641

2

3

4

5

6

7

8

9

10111213141516171819

2040

39

38

37

36

35

34

33

32

31302928272625242422211

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM62641

2

3

4

5

6

7

8

9

10

11

12

13

1428

27

26

25

24

23

22

2120

19

18

17

16

15RAM6264

MCS51存

器的结构80318051875189C51片内RAM片内ROM256B(字节)4K64K64K1

2

3

4

5

6

7

8

9

10

11

12

13

26(1)程序存储器程序存储器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,

在这三个单元存放一条

无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEHEA=1EA=0程序存储器资源分布中断入口地址(1)程序存储器程序存储器内部外部0000H0FFFH(4K270000HFFFFH(64K)内部外部(2)数据存储器数据存储器00HFFH7FH80H(高128B)(低128B)RAM专用

寄存器00H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器

11第3区18H~1FH

01第1区08H~0FHRS1RS0寄存器区片内RAM地址

00第0区00H~07H10第2区10H~17H工作寄存器区选择位RS0、RS10000HFFFFH(64K)内部外部(2)数据存储器数据存28测试题简答题:2.请画出MCS-51RAM区的示意图,并注明各区域基本用途.测试题简答题:29注意:一个单元地址对应有8个位地址

MSB——MostSignificantBit(最高有效位)

LSB——LeastSignificantBit(最低有效位)单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位寻址区位地址表注意:一个单元地址对应有8个位地址

MSB——Most30测试题15.8051的内部RAM中,可以进行位寻址的地址空间为()。A.00H~2FHB.20H~2FHC.00H~FFHD.20H~FFH测试题15.8051的内部RAM中,可以进行位寻31高128个单元☆离散分布有21个特殊功能寄存器SFR。☆

11个可以进行位寻址。☆特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。高128个单元☆离散分布有21个特殊功能寄存器SFR。☆132测试题4.CPU主要的组成部部分为(

a)运算器、控制器

b)加法器、寄存器c)运算器、寄存器

d)运算器、指令译码器

8.11H位寻址所在的单元地址是(

a)20H

b)30H

c)22H

d)70H

测试题4.CPU主要的组成部部分为(

331)堆栈和堆栈指针SP堆栈是按先进后出或后进先出原则进行存取的片内RAM区域。(主要是为子程序调用和中断操作而设立的)堆栈的具体功能是:①保护断点(PC的内容);②保护现场(保存有关寄存器单元的内容)。MCS-51单片机的堆栈区是不固定的,原则上可设置在内部RAM(00H~7FH)的任意单元。但实际应用中要根据对片内RAM的各功能区的使用情况灵活设置,但应避开工作寄存器区、位寻址区、和用户使用的数据区,一般设在2FH地址以后的区域。1)堆栈和堆栈指针SP34

堆栈指针SP是一个8位的SFR。SP的内容指示出堆栈顶部在RAM区中的位置。

单片机复位后,SP中的内容为07H(即指向07H的RAM单元),使堆栈事实上由08H单元开始。所以在使用堆栈前,先给SP赋值(一般为2FH以后的单元),以规定堆栈的起始位置(栈底)。当数据存入堆栈后,SP的值也随之自动变化。堆栈指针SP是一个8位的SFR。SP的内容指示35测试题8.MCS-51的堆栈只可设置在________,一般设在______地址以后的区域,。堆栈寄存器SP是____位寄存器,存放___________。测试题8.MCS-51的堆栈只可设置在______36

复位时,PC初始化为0000H,使MCS-51单片机从程序存储器0000H单元开始执行程序。除PC之外,复位操作还对其它一些寄存器有影响,见表2.3(P26)。

SP=07H,P0-P3的引脚均为高电平。复位电路复位时,PC初始化为0000H,使MCS-51单37单片机的原理与应用课件38(2)复位电路单片机复位条件:必须使RST引脚持续2微秒高电平(外部时钟12MHz)谁知道复位电路怎么起到复位的作用?(2)复位电路单片机复位条件:必须使RST引脚持续39测试题6.8051复位后,PC与SP的值为(

a)0000H,00H

b)0000H,07H

c)0003H,07Hd)0800H,00H

测试题6.8051复位后,PC与SP的值为(

40指令系统概述指令:控制计算机完成指定操作的命令。指令系统:计算机所能执行的指令的集合。★指令系统概述指令:控制计算机完成指定操作的命令。★41测试题4.所谓寻址,其实质就是___________。问答题:1、MCS-51共有哪几种寻址方式?各有什么特点?并举例说明.测试题4.所谓寻址,其实质就是_________42指令格式操作码:用来规定指令进行什么操作。操作数:是指令操作的对象。标号:代表该指令所存放的第一个字节存储单元的地址,故标号又称为“符号地址”。DELAY:

MOV

R3,#0FFH

;一段延时程序指令格式操作码:用来规定指令进行什么操作。DELAY:MO433.3指令系统的寻址方式

(寻找操作数)有我的信,找信去立即找到信!找信是寻找存放信的!找到放信的箱子才找到信!“地方”3.3指令系统的寻址方式

(寻找操作数)有我的信,找信去立443.3指令系统的寻址方式

(寻找操作数)找到放信的箱子才找到信!10000H0001H0002H2002H2003H2004H2005H2006H……80H2002H找信是寻找存放信的!“地方”“地址”找操作数是找操作数的“地址”3.3指令系统的寻址方式

(寻找操作数)找到放信的箱子才找45立即寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址信操作数立即找到信!立即数寻址!#XXHMOVA,#55H#55HCPUAAMOVRn,#01HR0-R700H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器MOVDPTR,#1FFFHDPTRMOVdirect,#88HdirectMOV

Direct,

#88H直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址70H……70H88H10001000ADDA,#55HSUBA,#01H立即寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻46立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址CPU操作数内部RAM或SFR区20HMOVA,20HA88HAMOVRn,20HMOVdirect,30HMOV@Ri,30HAR0-R7direct@Ri直接给出操作数地址的方式20H——直接寻址ADDA,20HSUBA,30H立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位47寻址比较MOV P1, #20H ①MOV P1, 20H ②MOV P1, R0 ③MOV P1, @R0 ④寻址比较MOV P1, #20H ①48指出下列指令寻址方式MOV P1, #0FFHMOV A, F0HPUSH 12H立即寻址直接寻址直接寻址指出下列指令寻址方式MOV P1, #0FFH立即寻址直接寻49立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址CPU88H20H操作数60H寄存器A操作数操作数MOVP1,A你能说出:带圈的圆弧箭头代表的是什么吗?谁能说出:寄存器寻址与直接寻址的区别?AR0-R7BDPTRP1MOVP1,R4CLRA立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位50立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址22通过

间接找到的地址——“2号”!“1号”信寄存器操作数寄存器1CPU3AH寄存器R0猜一猜:操作数的地址是多少吗?内部RAM3AH我才是操作数65HMOVA,@R0AR0R1DPTR寄存器间接寻址寄存器MOVXA,@

DPTR立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位51立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址CPU寄存器3AH3AH程序存储区65H操作数变址寄存器02H基址寄存器0300H+0302H0302H88HADPTRPCMOVCA,@A+DPTRAMOVCA,@A+PC立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位52立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址……0000H0001H0002H2002H2003H2004H2005H2006HPCPCPCPCPCPC如果想跳到2006H执行,该给PC值加上多少呢?2006H2003H—03H03H就是当前PC值与目的PC值相对差SJMP03H(PC+03H)SJMP=2003H+03H

=2006H操作数哪去了?03就是操作数立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位53立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址20H21H27H28H20H21H……D7D0000000001想一想:如果想使27H单元的D5位置1,该怎么办呢?00H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位54单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800位寻址地址表单元地址2FH7FMSB55立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址SETB3DH20H21H27H28H……D7D020H21H000000001立即数寻址直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位56单片机的原理与应用课件57MCS-51单片机指令系统分类介绍MCS-51单片机指令系统共有111条指令,按功能分类,可分下面5大类:数据传送类(29条)算数操作类(24条)逻辑运算类(24条)控制转移类(17条)位操作类(17条)常用伪指令(17条)MCS-51单片机指令系统分类介绍MCS-51单片机58符号含义Rn表示当前选定寄存器组的工作寄存器R0~R7Ri表示作为间接寻址的地址指针R0~R1#data表示8位立即数,即00H~FFH#data16表示16位立即数,即0000H~FFFFHaddr16表示16位地址,用于64K范围内寻址addr11表示11位地址,用于2K范围内寻址direct8位直接地址,可以是内部RAM区的某一单元或某一专用功能寄存器的地址Rel带符号的8位偏移量(-128~+127)Bit位寻址区的直接寻址位(X)X地址单元中的内容,或X作为间接寻址寄存器时所指单元的内容←将←后面的内容传送到前面去指令中一些符号的约定意义符号含义Rn表示当前选定寄存器组的工作寄存器R059简答题:3.MCS-51指令按功能可以分为哪几类?每类指令的作用是什么?并举例说明.简答题:60目的地址源地址数据MOV<目的操作数>,<源操作数>MOVA,#20H,ARndirect1@RiARndirect2@Ri#dataARndirect2@Ri#dataMOVRnA#datadirect2direct1ARndirect2@Ri#data@RiAdirect2#data20HA数据传送指令(29条)

——8位数据传送指令(15条)

目的地址源地址数据M61数据传送指令(29条)

——16位数据传送指令(1条)

MOVDPTR,#data16——外部数据传送指令(4条)

MOVX<目的操作数>,<源操作数>,A@DPTR@RiMOVXA@DPTR@Ri@DPTRA@Ri@DPTRA@RiA数据传送指令(29条)

——16位数据传送指令(1条)62谁知道内RAM中30H中数据→外RAM的1001H中?MOVA,30HMOVDPTR,#1001HMOVX@DPTR,A谁知道MOVA,30HMOVDPTR,#1001HM63片内传送——MOV在A累加器、工作寄存器R0~R7、片内RAM与SFR(direct、@Ri)之间传送数据。片内传送——MOV在A累加器、工作寄存器R0~R7、片内RA64单片机与片外RAM之间的数据传送(取数/送数)——MOVX在片外RAM(或外扩I/O口)与A累加器之间传送。仅采用寄存器间接寻址方式。单片机与片外RAM之间的数据传送(取数/送数)——MOVX在65单片机与ROM之间的数据传送

(查表)——MOVC读取存放在程序存储器ROM中的数据,通常是以表格形式存放。采用变址寻址方式。MOVC A, @A+DPTR MOVC A, @A+PC

A

ROM单片机与ROM之间的数据传送

(查表)——MOVC读取存放在66优点:不改变特殊功能寄存器及PC的状态,根据A的内容就可以取出表格中的常数。缺点:表格只能存放在该条查表指令后面的256个单元之内,表格的大小受到限制,且表格只能被一段程序所利用。注意:PSEN*信号有效。单片机与ROM之间的数据传送

(查表)——MOVC优点:不改变特殊功能寄存器及PC的状态,根据A的内容就可以取67编程时还需要进行偏移量的计算,即MOVCA,@A+PC指令所在地址与表格存放首地址间的距离字节数的计算,并需要一条加法指令进行调整。单片机与ROM之间的数据传送

(查表)——MOVC编程时还需要进行偏移量的计算,即单片机与ROM之间的数据传送68(2)MOVCA,@A+DPTR以DPTR作为基址寄存器,A的内容作为无符号整数和DPTR的内容相加得到一个16位的地址,把由该地址指出的程序存储器单元的内容送到累加器A。例如:MOVCA,@A+DPTR本指令的执行结果只和指针DPTR及累加器A的内容有关,与该指令存放的地址及常数表格存放的地址无关。表格的大小和位置可以在64K程序存储器中任意安排,一个表格可以为各个程序块公用。(2)MOVCA,@A+DPTR69例:从程序存储器2000H单元开始存放0~9的平方值,以DPTR作为基址寄存器进行查表得9的平方值,若用以DPTR作为基址寄存器的查表指令.程序如下:MOVDPTR,#2000HMOVA,#09HMOVCA,@A+DPTR例:从程序存储器2000H单元开始存放0~9701)字节交换指令(3条)——交换类指令(3条)AF581内部RAM directXCH A,Rn @Ri

2)低半字节交换指令(1条)XCHD A,@Ri这里假设i=0A85F15B5B寄存器R01)字节交换指令(3条)——交换类指令(3条)AF581内部713)累加器A中高4位和低4位交换指令(1条)SWAP A01011100PUSH directPOP directPUSH 33HPUSH 34H——堆栈操作指令(2条)POP 36HPOP 35H. .. .★堆栈原则:后进先出3)累加器A中高4位和低4位交换指令(1条)SWAP A072数据缓冲堆栈区堆栈指针SPSP内是存放的是堆栈栈顶的地址★堆栈原则:后进先出数据缓冲堆栈区堆栈指针SPSP内是存放的是堆栈栈顶的地址73PUSH directPOP directPUSH 33HPUSH 34H★堆栈原则:后进先出复位后SP=07HPUSH directPOP directPUSH 374PUSH directPOP directPOP 36HPOP 35H★堆栈原则:后进先出复位后SP=07HPUSH directPOP directPOP 3675传送类指令分类单片机内部数据传送指令:MOVXCH XCHDSWAPPUSHPOP单片机内部与单片机外部RAM之间的数据传送指令:MOVX单片机内部与ROM之间的数据传送指令:MOVC★MOVX和MOVC以A作中介传送类指令分类单片机内部数据传送指令:★MOVX和MOVC76directdirect算术运算类指令(24条)

——加法指令(8条)

A,Rn@Ri#dataADDRn@Ri#datadirectdirectA,Rn@Ri#dataADDCRn@Ri#data——减法指令(4条)

directdirectA,Rn@Ri#dataSUBBRn@Ri#dataADDCA,B(A+B+CY→A)SUBBA,B(A–B–

CY→A)directdirect算术运算类指令(24条)

——加法77算术操作类指令(24条)——加法指令(8条) RnADDCA,direct @Ri #data

0011,0110,1010,1101+1010,1100,1101,1100———————————1110,0011,1000,10011010,1101+1101,1100———————————1000,1001MOVA,#0ADHADDA,#0DCHMOV20H,A——————MOVA,#36HADDCA,#0ACHMOV21H,A算术操作类指令(24条)——加法指令(8条) Rn78BCD码:00110100——BCD码调整指令(1条)

DAA注意:DAA指令只能跟在ADD或ADDC加法指令后,不适用于减法指令。十进制二进制BCD码012345678910

11

12

13

14

15000000010010001101000101011001111000100110101011110011011110111100000001001000110100010101100111100010010001000000010001000100100001001100010100000101011816+34十进制0001100000010110+BCD码001011100011010000101110-00000110差6BCD码:00110100——BCD码调整指令(79——BCD码调整指令BCD码也叫8421码,就是将十进制的数以8421的形式展开成二进制,大家知道十进制是0~9十个数组成,这十个数每个数都有自己的8421码:举个例子:321的8421码就是321001100100001原因:0011=8x0+4x0+2x1+1x1=30010=8x0+4x0+2x1+1x0=2.0001=8x0+4x0+2x0+1x1=1

——BCD码调整指令BCD码也叫8421码,就是将十进制的数80——BCD码调整指令DA A该指令有何用途呢?注意:DAA指令只能跟在进行BCD码运算的ADD或ADDC加法指令后,不适用与减法指令。——BCD码调整指令DA A该指令有何用途呢?注意:D81——BCD码调整指令例如:87+13——BCD码调整指令例如:82——加1减1指令——加1减1指令83A中存放结果的低8位B中存放结果的高8位——乘法指令(1条)——除法指令(1条)MUL ABDIV ABA中存放结果的商B中存放结果的余数A中存放结果的低8位——乘法指令(1条)——除法指令(1条)84A中存放结果的低8位B中存放结果的高8位——乘法指令(1条)MUL AB例如:MOVA,#02HMOVB,#03HMULABA=06HB=00HA中存放结果的低8位——乘法指令(1条)MUL AB例如:A85——乘法指令(1条)MUL AB例如:MOVA,#20MOVB,#20MULAB20=14HA=90HB=01H20*20=40020=14H400=0190H★提示:——乘法指令(1条)MUL AB例如:20=14H20*2086——除法指令(1条)DIV ABA中存放结果的商B中存放结果的余数例如:MOVA,#25MOVB,#03DIVABA=08HB=01H——除法指令(1条)DIV ABA中存放结果的商例如:A=0873.4.3逻辑运算指令——逻辑与指令(6条)逻辑与指令常用于屏蔽字节中的某些位。若清除某位,则用0和该位相与;若保留某位,则用1和该位相与。3.4.3逻辑运算指令——逻辑与指令(6条)逻辑与指令88——逻辑或指令(6条)逻辑或指令常用于使字节中的某些位置1,其它位保持不变。若置位某位,则用1和该位相或;若保留某位,则用0和该位相或。——逻辑或指令(6条)逻辑或指令常用于使字节中的某些位置89——逻辑异或指令(6条)逻辑异或指令常用于使字节中的某些位进行取反操作,其它位保持不变。若某位取反,则用1和该位相异或;若保留某位,则用0和该位相异或。——逻辑异或指令(6条)逻辑异或指令常用于使字节中的某些90——累加器A清0和取反指令——累加器A清0和取反指令91A.0A.7A.0A.7A.0A.7A.0A.7CYCYRLARRARLCARRCA注意:执行带进位的循环移位指令之前,必须给CY置位或清零。——循环移位指令A.0A.7A.0A.7A.0A.7A.0A.7CYCY注意92MOVA,#01HMOVP1,ARLAMOVP1,A——循环移位指令MOVA,#01H——循环移位指令933.4.4控制转移类指令

——无条件转移指令(4条)1)长转移指令:LJMPAAAAH;AAAAHPCPC=0000HPC=AAAAH0000H0001H······AAA9HAAAAH0002H假设执行该指令前,PC的值为0000H。注意:该指令可以转移到64KB程序存储器中的任意位置。3.4.4控制转移类指令

——无条件转移指令(4条)94PC高5位(保持不变)PC低11位A10A9A800001A7A6A5A4A3A2A1A0操作码(第一字节)操作数(第二字节)11位转移地址的形成示意图转移范围2k程序计数器PC2)绝对转移指令AJMPaddr11;PC+2PC,addr11PC.10~PC.0PC高5位PC低11位A10A9A80095PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC3)相对转移指令例:SJMP03H

03H03H就是当前PC值与目的PC值相对差PCPC2002H2003H0000H0001H······2096JMP @A+DPTR4)散转指令

功能:将DPTR中的内容作为基地址,通过修改A的内容实现散转!一般应用在键盘程序中JMP @A+DPTR4)散转指令功能:将DPTR中971)累加器A判0指令(2条)——条件转移指令(8条)1)累加器A判0指令(2条)——条件转移指令(8条)982)判别进位标志CY状态指令(2条)3)判别某位Bit状态指令(2条)2)判别进位标志CY状态指令(2条)3)判别某位Bit状态指994)减1非零转移指令(2条)4)减1非零转移指令(2条)1005)比较转移指令(4条)条件转移指令的共同特点:都是相对转移指令5)比较转移指令(4条)条件转移指令的共同特点:都是相对转移101条件转移类指令范例(一)问答题:2.将00H~0FH这16个数顺序地置入片内RAM20H~2FH单元中。2FH...21H20H0FH...01H00H数据地址条件转移类指令范例(一)问答题:2FH0FH数据地址102条件转移类指令范例(一)将00H~0FH这16个数顺序地置入片内RAM20H~2FH单元中。可以用16个MOV指令将16个数据依次装入存储器中!采用循环方式将16个数据依次装入存储器中!条件转移类指令范例(一)将00H~0FH这16个数顺序地103条件转移类指令范例(一)MOV R0, #20H MOV R7, #10H CLR ALOOP: MOV @R0, A INC A INC R0 DJNZ R7, LOOP SJMP $将地址20H放入R0中,明确了数据起始地址循环次数16放入R7,明确循环15次累加器A=0实现数据00放入20H中A=01RO=21判断作用!判断什么?判断R7的值,(-1不等于0则跳转)条件转移类指令范例(一)104 MOV R0, #20H CLR ALOOP: MOV @R0,A INC A INC R0 CJNEA,#10H,LOOP SJMP$条件转移类指令范例(二)将地址20H放入R0中,明确了数据终点起始地址累加器A=0实现数据00放入20H中A=01RO=21判断作用!判断什么?判断A的值与#10H是否相等(比较不相等则跳转) MOV R0, #20H条件转移类指令范例(二)将地址2105 MOV R0,#20H MOV A,#10H MOV 30H, #00HLOOP:MOV @R0,30H INC 30H INC R0 DEC A JNZ LOOP SJMP $条件转移类指令范例(三)将20H放入R0中将10H放入A中将00H放入30H地址下将30H地址下内容放入R0内容地址下30H下内容+1R0下内容+1A的内容-1A不等于0则跳转3FH...30H...X变量X的值从00-0F不等于0则跳转 MOV R0,#20H条件转移类指令范例(三106 MOV R0,#20H MOV A,#0FH MOV 30H, #00HLOOP:MOV @R0,30H INC 30H INC R0 SUBB A, #0FH JNC LOOP SJMP $条件转移类指令范例(四)将20H放入R0中将0FH放入A中将00H放入30H地址下将30H地址下内容放入R0内容地址下30H下内容+1R0下内容+1带借位将A的内容-1判断CY不等于1则跳转无借位则跳转带借位减法指令,15-1=14..1-1=00-1有借位顺次执行 MOV R0,#20H条件转移类指令范例(四107——调用和返回指令(8条)1)绝对调用指令(1条)2K范围内调用子程序指令助记符格式机器码(B)相应操作机器周期ACALLaddr11a10a9a810001addr7~0PCPC+2SPSP+1,(SP)PC0~7SPSP+1,(SP)PC8~15PC0~10addr112比较PUSHdirectPOPdirect比较AJMPaddr11——调用和返回指令(8条)1)绝对调用指令(1条)2K范围内108——调用和返回指令(8条)2)长调用指令(1条)助记符格式机器码(B)相应操作机器周期LCALLaddr1600010010addr15~8addr7~0PCPC+3SPSP+1,SPPC0~7SP

SP+1,SPPC8~15PCaddr16264K范围内程序存储器内调用子程序指令——调用和返回指令(8条)2)长调用指令(1条)助记符格式机1093)返回指令助记符格式机器码(B)相应操作机器周期RET00100010PC8~15

(SP),SPSP-1PC0~7(SP),SPSP-1子程序返回指令2RETI00110010PC8~15

SP,SPSP-1PC0~7SP,SPSP-1中断返回指令23)返回指令助记符格式机器码(B)相应操作机器周期RET001104)空操作指令助记符格式机器码(B)相应操作指令说明NOP00000000空操作消耗1个机器周期硬件延时4)空操作指令助记符格式机器码(B)相应操作指令说明NOP01113.4.5位操作类指令单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位寻址区位地址表3.4.5位操作类指令单元地址2FH7FMSB1121.位传送指令助记符格式机器码(B)相应操作指令说明机器周期MOVC,bit10100010CYbit位传送指令,结果影响CY标志2MOVbit,C10010010bitCY位传送指令,结果不影响PSW2例:MOV20H,21HMOVC,21H1.位传送指令助记符格式机器码(B)相应操作指令说明机器周1132.位置位和位清零指令助记符格式机器码(B)相应操作指令说明机器周期CLRC11000011CY0位清0指令,结果影响CY标志1CLRbit11000010bitbit0位清0指令,结果不影响PSW1SETBC11010011CY1位置1指令,结果影响CY标志1SETBbitbit1位置1指令,结果不影响PSW111010010bit2.位置位和位清零指令助记符格式机器码(B)相应操作指令说1143.位运算指令助记符格式机器码(B)相应操作指令说明机器周期ANLC,bit10000010bitCYCY∧bit位与指令2ANLC,/bit10110010bit位与指令2ORLC,bit01110010bitCYCY∨bit位或指令2ORLC,/bit10100010bit位或指令2CPLC10110011位取反指令2CPLbit10110010位取反指令,结果不影响CY2CYCY∧bitCYCY∨bitCYCYbitbit3.位运算指令助记符格式机器码(B)相应操作指令说明机器周1154.位判断转移指令助记符格式机器码(B)相应操作机器周期JBbit,rel00100000bitrel若bit=1,则PCPC+rel,否则顺序执行2JNBbit,rel00110000bitrel若bit=0,则PCPC+rel,否则顺序执行2JBCbit,rel00010000bitrel若bit=1,则PCPC+rel,bit0,否则顺序执行24.位判断转移指令助记符格式机器码(B)相应操作机器周期J1165.判CY标志转移指令(条件转移指令)助记符格式机器码(B)相应操作机器周期JCrel01000000若CY=1,则PCPC+rel,否则顺序执行2JNCrel01010000若CY≠1,则PCPC+rel,否则顺序执行25.判CY标志转移指令(条件转移指令)助记符格式机器码(B1173.5MCS-51汇编语言的伪指令

伪指令是对汇编过程起控制作用,是程序员发给汇编程序的命令,指示如何完成汇编工作。伪指令没有对应的机器代码,不产生目标程序。1)设置目标程序起始地址伪指令ORG(ORiGin)伪指令格式为:ORG

地址(十六进制表示)该伪指令的作用是指明后面的程序或数据块的起始地址,后面的源程序或数据块就依次连续存放,直到遇到另一个ORG指令为止。3.5MCS-51汇编语言的伪指令118

例:ORG0100HSTART:MOVSP,#60HMOVR0,#2FHMOVR2,#0FFH例:ORG0100H119在一个源程序中,可多次使用ORG指令,来规定不同的程序段的起始地址。但是,地址必须由小到大排列,地址不能交叉、重叠。例如: ORG2000H ┇ORG2500H ┇ ORG3000H ┇在一个源程序中,可多次使用ORG指令,来规定1202)汇编结束命令END(ENDofassembly)指令格式:END汇编语言源程序的结束标志,用于终止源程序的汇编工作。在整个源程序中只能有一条END命令,且位于程序的最后。3)定义字节伪指令DB(DefineByte)指令格式:DB项或项表其中项或项表指一个字节数据或用逗号分开的字节数据串,或以单(双)引号括起来的字符串。2)汇编结束命令END(ENDofassembly)121

ORG2000HTAB:DB30H,7FH,24DB‘C’,‘5’,‘AB’汇编后: (2000H)=30H (2001H)=7FH (2002H)=18H(十进制数24) (2003H)=43H(字符C的ASCII码) (2004H)=35H(字符5的ASCII码)(2005H)=41H(字符A的ASCII码)(2006H)=42H(字符B的ASCII码)ORG2000H122注意:DB功能:从指定单元开始定义(存储)若干个字节,10进制数自然转换成16进制数,字符按ASCII码存储。注意:1234)定义字(2字节)伪指令DW(DefineWord)指令格式:DW项或项表例,ORG2000H DW1246H,7BH,10汇编后:(2000H)=12H ;第1个字(2001H)=46H(2002H)=00H ;第2个字(2003H)=7BH(2004H)=00H ;第3个字(2005H)=0AH4)定义字(2字节)伪指令DW(DefineWord)124

5)赋值伪指令EQU指令格式:标号EQU数字或汇编符号该伪指令功能是使标号等价于给定的数字或汇编符号。例:

TESTEQU2000H表示标号TEST=2000H,在汇编时,凡是遇到标号TEST时,均以2000H来代替。注意:在同一个源程序中,同一个标号只能赋值一次。5)赋值伪指令EQU1256)预留存储空间伪指令DS指令格式:[标号:]DS表达式该伪指令的功能是从标号地址开始,保留若干字节的内存空间以备存放数据。保留的字节单元数由表达式的值决定。例如:ORG1000HDS20HDB30H,8FH汇编后从1000H开始,预留32(20H)个字节的内存单元,然后(1020H)=30H,(1021H)=8FH。6)预留存储空间伪指令DS1267)位地址定义伪指令BIT指令格式:标号BIT位地址该伪指令的功能是将位地址赋予前面的标号,经赋值后可用该标号代替BIT前面的位地址。例如:FLGBITF07)位地址定义伪指令BIT127简单程序设计

结构特点:按指令的先后顺序依次执行。问答题:3.将20H单元的两个压缩BCD码拆开变成ASCII码,存入21H、22H单元。(假设20H中的BCD码为00110100)·········20H21H22HAB0011压缩BCD码001100110100低四位ASCII码高四位ASCII码简单程序设计结构特点:按指令的先后顺序依次执行。128程序设计-举例例1.将20H单元的两个压缩BCD码拆开变成ASCII码,存入21H,22H单元.(假设20H中的BCD码为00110100)BCD码表示范围:0-9ASCII码表示为:30H-39H程序设计-举例例1.将20H单元的两个压缩BCD码拆开变成A129程序设计-启示方法1.将BCD码除以10H,恰好是将BCD码分别移到了A.B的低4位,然后再各自与30H相或,即成为ASCII码.①②③程序设计-启示方法1.将BCD码除以10H,恰好是将BCD码130ORG0000HMOVA,20HMOVB,#10HDIVABORLB,#30HMOV22H,BORLA,#30HMOV21H,ASJMP$END

开始(20H)A10HBA/B(A中为高4位BCD码,B中为低4位BCD码)B+30HBB(22H)A+30HAA(21H)结束简单程序例1---方法1源程序如下:·········20H21H22HAB00110100PCPC0011010000010000PC0011000000000100PC00110100PCPCPC0011PCORG0000H开始(20H)A10HBA131ORG0000HMOVR0,#20HMOVA,#30HXCHDA,@R0MOV22H,AMOVA,@R0SWAPAORLA,#30HMOV21H,ASJMP$END简单程序例1---方法2

开始#20HR0#30HAA的低4位(20H)的低4位A(22H)(20H)AA的低4位A的高4位A(21H)结束A+30HAPCPCPCPCPCPCPCPC源程序如下:·········20H21H22HAR000110010000000110100000001000011010000110000001100000011PC0011

132ThankYou!ENDThankYou!END133单片机原理及应用第1,2,3章复习光华学院信息工程系王超单片机原理及应用第1,2,3章复习光华学院134单片机实物图单片机实物图135单片机开发板单片机开发板136单片机流水灯数码管电机传感器单片机应用原理单片机流水灯数码管电机传感器单片机应用原理137一个微电脑包括微处理器(CPU),存放程序指令的(ROM),存放数据的(RAM),输入输出端口(I/O口)以及时钟,计数器,中断系统等,它们经过地址总线(AddressBus),数据总线(DadaBus),控制总线(ControlBus)的连接以及输入输出端口与外围设备连接,构成微电脑系统。由于单片机微处理器把微电脑的主要器件制造在一块芯片上,所以可以把单片机微处理器看成是一个不带外围装置的微电脑。什么是单片机?一个微电脑包括微处理器(CPU),存放程序指令的(ROM),138测试题9.8051单片机的内部硬件结构包括了:______________、______________、______________

、和______________以及并行I/O口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过_____________相连接。13.8031单片机中片内RAM共有()字节。A.128B.256C.4KD.64K测试题9.8051单片机的内部硬件结构包括了:_139工业方面民用方面仪表方面电讯方面数据处理方面汽车方面单片机的应用工业方面民用方面仪表方面电讯方面数据处理方面汽车方面单片机的140微型计算机硬件结构硬件系统:微机实体和装置软件系统:微机系统使用的各种程序的总称微型计算机硬件结构硬件系统:软件系统:141单片机硬件结构单片机硬件结构142MCS-51单片机的硬件结构时钟电路CPUROMRAMT0T1中断系统串行接口并行接口P0P1P2P3TXDRXDINT0INT1定时计数器结构框图微处

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论