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

下载本文档

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

文档简介

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

、和______________以及并行I/O口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过_____________相连接。13.8031单片机中片内RAM共有()字节。A.128B.256C.4KD.64K工业方面民用方面仪表方面电讯方面数据处理方面汽车方面单片机的应用微型计算机硬件结构硬件系统:微机实体和装置软件系统:微机系统使用的各种程序的总称单片机硬件结构MCS-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和12MHZ测试试题题简答题题:1、MCS-51单单片机机的片片内都都集成成了哪哪些功功能部部件??各个个功能能部件件的最最主要要的功功能是是什么么?测试试题题1.一一个完完整的的微机机系统统由_____________和_______________两大大部分分组成成.3.半半导体体存储储器分分成两两大类类__________和__________,,其中中_______________具具有易易失性性,常常用于于存储储___________。。MCS-51单单片机机信号号引脚脚简介介P3口线的的第二二功能能VCCVSSXTAL2XTAL1RSTP0.0P0.1P0.2P0.3P0.4P0.5P0.6P0.7P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7P2.7P2.6P2.5P2.4P2.3P2.2P2.1P2.0ALEP3.0P3.1P3.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

313029282726252424222180318051875189C51时钟电电路与与复位位电路路(1)时钟钟振荡荡电路路测试试题题12.单单片机机8051的XTALl和XTAL2引脚脚是(())引引脚A.外外接接定时时器B..外接接串行行口C.外外接中中断D.外外接晶晶振例:若振荡荡频率率fosc=12MHz,则MCS-51的的振荡荡周期期,状状态周周期,,机器器周期期是多多少??振荡周周期(时钟钟周期期)=1/12us状态周周期=2*(1/12)us机器周周期=12*(1/12)us=1us10.在MCS-51单单片机机中,,如果果采用用12MHz晶晶振,,一个个机器器周期期为____________。。测试试题题1.8031单单片机机的()口口的引引脚,,还具具有外外中断断、串串行通通信等等第二二功能能。a)P0b))P1c))P2d))P32.单单片机机应用用程序序一般般存放放在(())a)RAMb))ROMc)寄寄存器器d)CPU3.已已知某某数的的BCD码码为0111010101000010则则其表表示的的十进进制数数值为为())a)7542Hb))7542c))75.42Hd))75.42测试试题题2.8051的的引引脚RST是_________(IN脚还还是OUT脚),当当其端端出现现_____电电平时时,8051进进入复复位状状态。。8051一直直维持持这个个值,,直到到RST脚脚收到到____电平平,8051才才脱离离复位位状态态,进进入程程序运运行状状态,,从ROM_______H单元元开始始取指指令并并翻译译和执执行。。MCS-51的的微处处理器器MCS-51的的微处处理器器(CPU)由运算器器和控制器器所构成成。2.3.1运算器器作用:对操作作数进进行算算术、、逻辑辑运算算和位位操作作。由算术逻逻辑单单元(ALU)、累加器器A、寄存器器B、位处理理器和程序状状态字字寄存存器(PSW)等构成成。1.算算术逻逻辑运运算单单元ALU它是运运算器器的的的核心心.+-*/,&|-...2.累累加器器A((8位位)使用最最频繁繁的寄寄存器器,可可写为为Acc。。累加器器A的的作用用:(1))是ALU的输输入(数据据处理理源)之一一,又又是运运算结结果的存存放单单元。。(2))数据据传送送大多多都通通过累累加器器A。。3.寄寄存存器B(8位位)是为执执行乘、除除法操作设设置的的,作作为ALU的输输入之之一。。在不不执行行乘、、除法法操作作的情情况下下,可可当作作普通通寄存存器使使用。。(A*B=BA)(A/B=A…B)4.程程序状状态字字寄存存器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…PD0HD7D6D5D4D3D2D1D0PSW表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…PD0HD7D6D5D4D3D2D1D0PSWRAM共128个单单元测试题题6.若由程程序设定RS1、RS0=01,则工工作寄存器器R0~R7的直接接地址为______。5.INTEL8051单单片机是(())位的的单片机a)16b)4c)8d)准1611.进进位标志CY在()中。。A.累加加器AB.算术术逻辑运算算部件ALUC.程序状状态字寄存存器PSWD.DPDR14.当当标志寄存存器PSW的RS0、RS1分别为1,0时,,选用的工工作寄存器器组为()。。A.组0B.组1C..组2D.组3(5)OV((PSW.2))::溢出出标标志志位位指示示运运算算是是否否产产生生溢溢出出。。各各种种算算术术运运算算指指令令对对该该位位的的影影响响情情况况较较复复杂杂,,将将在在第第3章章介介绍绍。。(6)PSW.1位位:保保留留位位,,未未用用(7)P(PSW.0)::奇偶偶标标志志位位,每每个个指指令令周周期期都都由由硬硬件件置置位位或或清清除除.P=1,,A中中““1””的的个个数数为为奇奇数数P=0,,A中中““1””的的个个数数为为偶偶数数注::奇偶偶标标志志位位对对串行行口口通通讯讯中中的的数数据据传传输输有重重要要意意义义,,常常用用奇偶偶检检验验的的方方法法来检检验验数数据据传传输输的的可可靠靠性性。。CyACF0RS1RS0OV…PD0HD7D6D5D4D3D2D1D0PSW1

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((字字节节))4K64K64K(1)程序序存存储储器器程序序存储储器器内部外部0000H0FFFH(4K)0000HFFFFH(64K)0000H0FFFH(4K)0000H0001H0002H(PC)0000H是程序执行的起始单元,

在这三个单元存放一条

无条件转移指令中断5中断4中断3中断2中断10003H000BH0013H001BH0023H002BH外部中断0定时器0中断外部中断1定时器1中断串行口中断8位...0FFFH0FFEHEA=1EA=0程序序存储储器器资资源源分分布布中断断入入口口地地址址0000HFFFFH(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、、RS1测试试题题简答答题题:2.请请画画出出MCS-51RAM区区的的示示意意图图,并并注注明明各各区区域域基基本本用用途途.注意意:一一个个单单元元地地址址对对应应有有8个个位位地地址址MSB————MostSignificantBit((最最高高有有效效位位))LSB————LeastSignificantBit((最最低低有有效效位位))单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位寻寻址址区区位位地地址址表表测试试题题15.8051的的内内部部RAM中中,,可可以以进进行行位位寻寻址址的的地地址址空空间间为为()。。A.00H~2FHB..20H~2FHC..00H~FFHD.20H~FFH高128个个单单元元☆离散散分分布布有有21个个特特殊殊功功能能寄寄存存器器SFR。。☆11个个可可以以进进行行位位寻寻址址。。☆特别别提提示示::对对SFR只只能能使使用用直直接接寻寻址址方方式式,,书书写写时时可可使使用用寄寄存存器器符符号号,,也也可可用用寄寄存存器器单单元元地地址址。。测试试题题4..CPU主主要要的的组组成成部部部部分分为为(())a))运运算算器器、、控控制制器器b))加加法法器器、、寄寄存存器器c))运运算算器器、、寄寄存存器器d))运运算算器器、、指指令令译译码码器器8..11H位位寻寻址址所所在在的的单单元元地地址址是是(())a))20Hb))30Hc))22Hd))70H1)堆堆栈栈和和堆堆栈栈指指针针SP堆栈栈是是按先先进进后后出出或后进进先先出出原则则进进行行存存取取的的片内RAM区区域域。(主主要要是是为为子子程程序序调调用用和和中中断断操操作作而而设立立的的)堆栈栈的的具具体体功功能能是是::①保保护护断断点点(PC的的内内容容);;②保保护护现现场场(保保存存有有关关寄寄存存器器单单元元的的内内容容)。。MCS-51单单片片机机的的堆堆栈栈区区是是不不固固定定的的,,原原则则上上可可设置置在在内内部部RAM(00H~~7FH)的的任任意意单单元元。。但但实实际际应应用中中要要根根据据对对片片内内RAM的的各各功功能能区区的的使使用用情情况况灵灵活活设置置,,但但应应避避开开工工作作寄寄存存器器区区、、位位寻寻址址区区、、和和用用户使用用的数数据区区,一一般设设在2FH地址以以后的的区域域。堆栈指指针SP是是一个个8位位的SFR。SP的的内容容指示示出堆栈顶顶部在RAM区区中的的位置置。单片机机复位后,SP中中的内内容为为07H(即指指向07H的RAM单元元),,使堆堆栈事事实上上由08H单元元开始始。所以在在使用用堆栈栈前,,先给给SP赋值值(一般般为2FH以后后的单元元),以规规定堆堆栈的的起始始位置置(栈栈底)。当当数据存入入堆栈栈后,,SP的值值也随随之自自动变变化。。测试试题题8.MCS-51的的堆栈栈只可可设置置在________,,一般般设在在______地址址以后后的区区域,,。堆堆栈寄寄存器器SP是____位位寄存存器,,存放放___________。。复位时时,PC初初始化化为0000H,使MCS-51单片片机从从程序存存储器器0000H单元开开始执执行程程序。。除PC之外外,复复位操操作还还对其其它一一些寄寄存器器有影影响,,见表表2.3(P26)。SP=07H,,P0-P3的引引脚均均为高高电平平。复位电电路(2)复位位电路路单片机机复位位条件件:必须使使RST引引脚持持续2微秒秒高电平平(外外部时时钟12MHz)谁知道道复位电电路怎怎么起起到复复位的的作用用?测试试题题6.8051复复位后后,PC与与SP的值值为(())a))0000H,,00Hb))0000H,07Hc))0003H,,07Hd))0800H,00H指令系系统概概述指令:控控制计算算机完成成指定操操作的命命令。指令系统统:计算算机所能能执行的的指令的的集合。。★测试试题题4.所所谓寻址址,其实实质就是是___________。。问答题:1、MCS-51共有有哪几种种寻址方方式?各各有什么么特点??并举例例说明.指令格式式操作码::用来规定定指令进进行什么么操作。。操作数::是指令操操作的对对象。标号:代表该指指令所存存放的第第一个字字节存储储单元的的地址,,故标号号又称为为“符号号地址””。DELAY:MOVR3,#0FFH;一段延延时程序序3.3指指令系系统的寻寻址方式式

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

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

Direct,

#88H直接寻址寄存器寻址寄存器间接寻址变址寻址相对寻址位寻址70H……70H88H10001000ADDA,#55HSUBA,#01H立即数寻寻址直接寻址址寄存器寻寻址寄存器间间接寻址址变址寻址址相对寻址址位寻址CPU操作数内部RAM或SFR区区20HMOVA,20HA88HAMOVRn,20HMOVdirect,30HMOV@Ri,30HAR0-R7direct@Ri直接给出出操作数数地址的的方式20H———直接接寻址ADDA,20HSUBA,30H寻址比较较MOVP1,#20H①MOVP1,20H②MOVP1,R0③MOVP1,@R0④指出下列列指令寻寻址方式式MOVP1, #0FFHMOVA,F0HPUSH 12H立即寻址址直接寻址址直接寻址址立即数寻寻址直接寻址址寄存器寻寻址寄存器间间接寻址址变址寻址址相对寻址址位寻址CPU88H20H操作数60H寄存器A操作数操作数MOVP1,A你能说出出:带圈的圆圆弧箭头头代表的是是什么吗吗?谁能说出出:寄存器寻寻址与直接寻址址的区别?AR0-R7BDPTRP1MOVP1,R4CLRA立即数寻寻址直接寻址址寄存器寻寻址寄存器间间接寻址址变址寻址址相对寻址址位寻址22通过间接找到到的地址———“2号”!“1号””信寄存器操作数寄存器1CPU3AH寄存器R0猜一猜::操作数的的地址是多少吗吗?内部RAM3AH我才是操操作数65HMOVA,@R0AR0R1DPTR寄存器间间接寻址址寄存器器MOVXA,@DPTR立即数寻寻址直接寻址址寄存器寻寻址寄存器间间接寻址址变址寻址址相对寻址址位寻址CPU寄存器3AH3AH程序存储储区65H操作数变址寄存器02H基址寄存器0300H+0302H0302H88HADPTRPCMOVCA,@A+DPTRAMOVCA,@A+PC立即数寻寻址直接寻址址寄存器寻寻址寄存器间间接寻址址变址寻址址相对寻址址位寻址……0000H0001H0002H2002H2003H2004H2005H2006HPCPCPCPCPCPC如果想跳跳到2006H执行,,该给PC值加上多少少呢?2006H2003H—03H03H就就是当前前PC值值与目的的PC值值相对差SJMP03H(PC+03H)SJMP=2003H+03H=2006H操作数哪哪去了??03就是是操作数数立即数寻寻址直接寻址址寄存器寻寻址寄存器间间接寻址址变址寻址址相对寻址址位寻址20H21H27H28H20H21H……D7D0000000001想一想::如果想使使27H单元的的D5位置1,该怎怎么办呢呢?00H07H08H0FH10H17H18H1FH0区R0R7R0R7R0R7R0R71区2区3区工作寄存器区可位寻址区20H2FH7F78070030H7FH数据缓冲区/堆栈区内部RAM存储器单元地址2FH2EH2DH2CH2BH2AH29H28H27H26H25H24H23H22H21H20H7F776F675F574F473F372F271F170F07

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800位寻址地地址表立即数寻寻址直接寻址址寄存器寻寻址寄存器间间接寻址址变址寻址址相对寻址址位寻址SETB3DH20H21H27H28H……D7D020H21H000000001MCS-51单单片机指指令系统统分类介介绍MCS-51单单片机指指令系统统共有111条条指令,,按功能能分类,,可分下下面5大大类:数据传送送类(29条))算数操作作类(24条))逻辑运算算类(24条))控制转移移类(17条))位操作类类((17条))常用伪指指令(17条))符号含义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作为间接寻址寄存器时所指单元的内容←将←后面的内容传送到前面去指令中一一些符号号的约定定意义简答题:3.MCS-51指令令按功能能可以分分为哪几几类?每每类指令令的作用用是什么么?并举举例说明明.目的地址址源源地址址数据据MOV<目的操作作数>,<源操作数数>MOVA,#20H,ARndirect1@RiARndirect2@Ri#dataARndirect2@Ri#dataMOVRnA#datadirect2direct1ARndirect2@Ri#data@RiAdirect2#data20HA数据传送送指令((29条条)———8位数据传送送指令(15条条)数据传送送指令((29条条)———16位数据传送送指令((1条))MOVDPTR,#data16——外部数据传送送指令(4条)MOVX<目的操作作数>,<源操作数数>,A@DPTR@RiMOVXA@DPTR@Ri@DPTRA@Ri@DPTRA@RiA谁知道内RAM中30H中数数据→外RAM的1001H中?MOVA,30HMOVDPTR,#1001HMOVX@DPTR,A片内传送送——MOV在A累加加器、工工作寄存存器R0~R7、片内内RAM与SFR(direct、、@Ri)之间间传送数数据。单片机与片片外RAM之间的数数据传送((取数/送送数)———MOVX在片外RAM(或外扩I/O口))与A累加器之间间传送。仅仅采用寄存存器间接寻寻址方式。。单片机与ROM之间间的数据传传送

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

(查查表)———MOVC编程时还需需要进行偏移量的计算,即即MOVCA,@A+PC指指令所在地址与表格存放首首地址间的距离字节节数的计算算,并需要要一条加法指令进行调整。单片机与ROM之间间的数据传传送

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

2)低半字字节交换指指令(1条条)XCHDA,@Ri这里假设i=0A85F15B5B寄存器R03)累加器器A中高4位和低4位交换指指令(1条条)SWAPA01011100PUSHdirectPOPdirectPUSH33HPUSH34H——堆栈操作指令(2条条)POP36HPOP35H. .. .★堆栈原则::后进先出数据缓冲堆堆栈区堆栈指针SPSP内是是存放的是是堆栈栈顶顶的地址★堆栈原则::后进先出出PUSHdirectPOPdirectPUSH33HPUSH34H★堆栈原则::后进先出出复位后SP=07HPUSHdirectPOPdirectPOP36HPOP35H★堆栈原则::后进先出出复位后SP=07H传送类指令令分类单片机内部部数据传送送指令:MOVXCHXCHDSWAPPUSHPOP单片机内部与单片机外部RAM之间间的数据传传送指令::MOVX单片机内部与ROM之之间的数据据传送指令令:MOVC★MOVX和和MOVC以A作中介directdirect算术运算类类指令(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)算术操作类类指令(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,ABCD码:00110100——BCD码调调整指令(1条条)DAA注意:DAA指令只只能跟在ADD或ADDC加加法指令后后,不适用用于减法指指令。十进制二进制BCD码012345678910

11

12

13

14

15000000010010001101000101011001111000100110101011110011011110111100000001001000110100010101100111100010010001000000010001000100100001001100010100000101011816+34十进制0001100000010110+BCD码001011100011010000101110-00000110差6——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码调整指指令DA A该指令有何何用途呢??注意:DAA指令只只能跟在进进行BCD码运算的的ADD或或ADDC加法指令令后,不适适用与减法法指令。——BCD码调整指指令例如:87+13——加1减1指令A中存放结结果的低8位B中存放结结果的高8位——乘法指令(1条条)——除法指令(1条条)MULABDIVABA中存放结结果的商B中存放结结果的余数数A中存放结结果的低8位B中存放结结果的高8位——乘法指令(1条条)MULAB例如:MOVA,#02HMOVB,#03HMULABA=06HB=00H——乘法指令(1条条)MULAB例如:MOVA,#20MOVB,#20MULAB20=14HA=90HB=01H20*20=40020=14H400=0190H★提示:——除法指令(1条条)DIVABA中存放结结果的商B中存放结结果的余数数例如:MOVA,#25MOVB,#03DIVABA=08HB=01H3.4.3逻辑运运算指令——逻辑与指令(6条条)逻辑与指令常用于于屏蔽字节中中的某些位位。若清除某位,则用用0和该位相与;若保留某位,则用用1和该位相与。——逻辑或指令(6条条)逻辑或指令常用于于使字节中的的某些位置置1,其它位保保持不变。。若置位某位,则用用1和该位相或;若保留某某位,则用用0和该位位相或。——逻辑异或指令(6条条)逻辑异或指指令常用于于使字节中中的某些位位进行取反操作,其它它位保持不不变。若某某位取反,,则用1和该位位相异或;若保留某某位,则用用0和该位位相异或。。——累加器A清清0和取反反指令A.0A.7A.0A.7A.0A.7A.0A.7CYCYRLARRARLCARRCA注意:执行带进位位的循环移移位指令之之前,必须须给CY置置位或清零零。——循环移位指令MOVA,#01HMOVP1,ARLAMOVP1,A——循环移位指令3.4.4控制转转移类指令令———无条件转移移指令(4条条)1)长转转移指令::LJMPAAAAH;;AAAAHPCPC=0000HPC=AAAAH0000H0001H······AAA9HAAAAH0002H假设执行该该指令前,,PC的值值为0000H。注意:该指令可以以转移到64KB程序存储储器中的任任意位置。。PC高5位位(保持不变变)PC低11位A10A9A800001A7A6A5A4A3A2A1A0操作码(第第一字节)操作数数(第第二字字节)11位位转移移地址址的形形成示示意图图转移范范围2k程序计计数器器PC2)绝绝对转转移指指令AJMPaddr11;;PC+2PC,addr11PC.10~PC.0PC2002H2003H0000H0001H······2004H2005H2006HPCPCPC2006H2003HPC0002HPC3)相相对转转移指指令例:SJMP03H03H03H就是是当前前PC值与目的的PC值相对差差PCJMP@A+DPTR4)散散转指指令功能::将DPTR中的内内容作作为基基地址址,通通过修改A的内容容实现现散转转!一般应应用在在键盘盘程序序中1)累加器器A判判0指令((2条条)——条件转转移指令((8条条)2)判判别进进位标标志CY状状态指指令((2条条)3)判判别某某位Bit状态态指令令(2条))4)减减1非非零转转移指指令((2条条)5)比比较转转移指指令((4条条)条件转转移指指令的的共同同特点点:都是相相对转转移指指令条件转转移类类指令令范例例(一一)问答题题:2.将将00H~0FH这这16个数数顺序序地置置入片片内RAM20H~2FH单单元中中。2FH...21H20H0FH...01H00H数据地址条件转转移类类指令令范例例(一一)将00H~0FH这这16个数数顺序序地置置入片片内RAM20H~2FH单单元中中。可以用用16个MOV指令令将16个个数据据依次次装入入存储储器中中!采用循循环方方式将将16个数数据依依次装装入存存储器器中!!条件转转移类类指令令范例例(一一)MOVR0,#20HMOVR7,#10HCLRALOOP:MOV@R0,AINCAINCR0DJNZR7,LOOPSJMP$将地址址20H放放入R0中中,明确了了数据据起始始地址址循环环次次数数16放放入入R7,,明确确循循环环15次次累加加器器A=0实现现数数据据00放放入入20H中中A=01RO=21判断断作作用用!!判断断什什么么??判断断R7的的值值,,(-1不不等等于于0则则跳跳转转))MOVR0,#20HCLRALOOP:MOV@R0,AINCAINCR0CJNEA,#10H,LOOPSJMP$条件件转转移移类类指指令令范范例例((二二))将地地址址20H放放入入R0中中,,明确确了了数数据据终终点点起起始始地地址址累加加器器A=0实现现数数据据00放放入入20H中中A=01RO=21判断断作作用用!!判断断什什么么??判断断A的的值值与与#10H是是否否相相等等(比比较较不不相相等等则则跳跳转转))MOVR0,#20HMOVA,#10HMOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0DECAJNZLOOPSJMP$条件件转转移移类类指指令令范范例例((三三))将20H放放入入R0中中将10H放放入入A中中将00H放放入入30H地地址址下下将30H地地址址下下内内容容放放入入R0内内容容地地址址下下30H下下内内容容+1R0下下内内容容+1A的的内内容容-1A不不等等于于0则则跳跳转转3FH...30H...X变量量X的的值值从从00-0F不等等于于0则则跳跳转转MOVR0,#20HMOVA,#0FHMOV30H,#00HLOOP:MOV@R0,30HINC30HINCR0SUBBA,#0FHJNCLOOPSJMP$条件件转转移移类类指指令令范范例例((四四))将20H放放入入R0中中将0FH放放入入A中中将00H放放入入30H地地址址下下将30H地地址址下下内内容容放放入入R0内内容容地地址址下下30H下下内内容容+1R0下下内内容容+1带借借位位将将A的的内内容容-1判断断CY不不等等于于1则则跳跳转转无借借位位则则跳跳转转带借借位位减减法法指指令令,,15-1=14..1-1=00-1有借位位顺次执行——调用和返回指令(8条))1)绝对调用指令(1条))2K范围内调调用子程序指指令助记符格式机器码(B)相应操作机器周期ACALLaddr11a10a9a810001addr7~0PCPC+2SPSP+1,(SP)PC0~7SPSP+1,(SP)PC8~15PC0~10addr112比较PUSHdirectPOPdirect比较AJMPaddr11——调用和返回指令(8条))2)长调用指令(1条))助记符格式机器码(B)相应操作机器周期LCALLaddr1600010010addr15~8addr7~0PCPC+3SPSP+1,SPPC0~7SP

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

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

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

MSB

位地址

LSB7E766E665E564E463E362E261E160E067D756D655D554D453D352D251D150D057C746C645C544C443C342C241C140C047B736B635B534B433B332B231B130B037A726A625A524A423A322A221A120A027971696159514941393129211911090178706860585048403830282018100800RAM位寻址区位地地址表1.位传送送指令助记符格式机器码(B)相应操作指令说明机器周期MOVC,bit10100010CYbit位传送指令,结果影响CY标志2MOVbit,C10010010bitCY位传送指令,结果不影响PSW2例:MOV20H,21HMOVC,21H2.位置位位和位清零指指令助记符格式机器码(B)相应操作指令说明机器周期CLRC11000011CY0位清0指令,结果影响CY标志1CLRbit11000010bitbit0位清0指令,结果不影响PSW1SETBC11010011CY1位置1指令,结果影响CY标志1SETBbitbit1位置1指令,结果不影响PSW111010010bit3.位运算算指令助记符格式机器码(B)相应操作指令说明机器周期ANLC,bit10000010bitCYCY∧bit位与指令2ANLC,/bit10110010bit位与指令2ORLC,bit01110010bitCYCY∨bit位或指令2ORLC,/bit10100010bit位或指令2CPLC10110011位取反指令2CPLbit10110010位取反指令,结果不影响CY2CYCY∧bitCYCY∨bitCYCYbitbit4.位判断断转移指令助记符格式机器码(B)相应操作机器周期JBbit,rel00100000bitrel若bit=1,则PCPC+rel,否则顺序执行2JNBbit,rel00110000bitrel若bit=0,则PCPC+rel,否则顺序执行2JBCbit,rel00010000bitrel若bit=1,则PCPC+rel,bit0,否则顺序执行25.判CY标志转移指指令(条件转转移指令)助记符格式机器码(B)相应操作机器周期JCrel01000000若CY=1,则PCPC+rel,否则顺序执行2JNCrel01010000若CY≠1,则PCPC+rel,否则顺序执行23.5MCS-51汇编语言言的伪指令伪指令是对汇编过程起起控制作用,是程序员发给汇编程序序的命令,指指示如何完成成汇编工作。。伪指令没有对对应的机器代代码,不产生生目标程序。。1)设置目目标程序起始始地址伪指令令ORG(ORiGin)伪指令格式为为:ORG地址(十六进进制表示)该伪指令的作作用是指明后面的程程序或数据块的起始地址,后后面的源程序或数据块就依次连续存存放,直到遇到到另一个ORG指令为止止。例:ORG0100HSTART:MOVSP,##60HMOVR0,#2FHMOVR2,#0FFH在一个源程序序中,可多次次使用ORG指令,来规规定不同的程序段段的起始地址址。但是,地址必须由小小到大排列,地地址不能交叉叉、重叠。例如:ORG2000H┇ORG2500H┇ORG3000H┇2)汇编结结束命令END(ENDofassembly)指令格式:END汇编语言源程程序的结束标标志,用于终终止源程序的汇编工作作。在整个源程序序中只能有一一条END命令,且位于于程序的最后后。3)定义字字节伪指令DB(DefineByte))指令格式:DB项或或项表其中项或项表表指一个字节节数据或用逗逗号分开的字字节数据串,或或以单(双)引号括起来来的字符串。。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码)注意:DB功能:从从指定单元开开始定义(存存储)若干个个字节,10进制数自自然转换成16进制数,,字符按ASCII码存存储。4)定义字字(2字节)伪指令DW(DefineWord)指令格式:DW项或项表例,ORG2000HDW1246H,7BH,10汇编后:(2000H)=12H ;第1个个字(2001H)=46H(2002H)=00H ;第2个个字(2003H)=7BH(2004H)=00H ;第3个个字(2005H)=0AH5)赋值伪伪指令EQU指令格式:标号EQU数字字或汇编符号号该伪指令功能能是使标号等价于给定的数字或或汇编符号。。例:TESTEQU2000H表示标号TEST=2000H,在汇编时,,凡是遇到标标号TEST时,均以2000H来来代替。注意:在同一个源程程序中,同同一个标号只只能赋值一次次。6)预留存存储空间伪指指令DS指令格式:[标号:]DS表达达式该伪指令的功功能是从标号地址开始,保留若若干字节的内存存空间以备存存放数据。保保留的字节单单元数由表达式式的值决定。。例如:ORG1000HDS20HDB30H,8FH汇编后从1000H开始始,预留32(20H)个字节的内内存单元,然后(1020H)=30H,(1021H)=8FH。7)位地址址定义伪指令令BIT指令格式:标号BIT位地地址该伪指令的功功能是将位地址赋予前面的标标号,经赋值后后可用该标号号代替BIT前面的位地地址。例如:FLGBITF0简单程序设计计结构特点:按指令的的先后顺序依依次执行。问答题:3.将20H单元元的两个压缩缩BCD码拆拆开变成ASCII码,,存入21H、、22H单元元。(假设20H中的BCD码为00110100)·········20H21H22HAB0011压缩BCD码码001100110100低四位ASCII码高四位ASCII码程序设计-举举例例1.将20H单单元的两个压缩BCD码拆开变成ASCII码,存入21H,22H单元元.(假设20H中的BCD码为00110100)BCD码表示示范围:0-9ASCII码码表示为:30H-39H程序设计-启启示方法1.将BCD码除以以10H,恰恰好是将BCD码分别移移到了A.B的低4位,然后再再各自与30H相或,即即成为ASCII码.①②③ORG0000HMOVA,20HMOVB,#10HDIVABORLB,#30HMOV22H,BORLA,#30HMOV21H,ASJMP$END

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

温馨提示

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

评论

0/150

提交评论