《单片机原理及应用PPT教学课件第 1, 2, 3 章复 习.ppt》由会员分享,可在线阅读,更多相关《单片机原理及应用PPT教学课件第 1, 2, 3 章复 习.ppt(134页珍藏版)》请在三一办公上搜索。
1、单片机原理及应用,第 1,2,3 章 复 习,光华学院信息工程系王 超,单片机实物图,单片机开发板,单片机,流水灯,数码管,电机,传感器,单片机应用原理,一个微电脑包括微处理器(CPU),存放程序指令的(ROM),存放数据的(RAM),输入输出端口(I/O口)以及时钟,计数器,中断系统等,它们经过地址总线(Address Bus),数据总线(Dada Bus),控制总线(Control Bus)的连接以及输入输出端口与外围设备连接,构成微电脑系统。由于单片机微处理器把微电脑的主要器件制造在一块芯片上,所以可以把单片机微处理器看成是一个不带外围装置的微电脑。,什么是单片机?,测 试 题,9.80
2、51单片机的内部硬件结构包括了:_、_、_、和_以及并行I/O口、串行口、中断控制系统、时钟电路、位处理器等部件,这些部件通过_相连接。13.8031单片机中片内RAM共有()字节。A128 B256 C4K D64K,工业方面,民用方面,仪表方面,电讯方面,数据处理方面,汽车方面,单片机的应用,微型计算机硬件结构,硬件系统:微机实体和装置,软件系统:微机系统使用的各种程序的总称,单片机硬件结构,MCS-51单片机的硬件结构,结构框图,微处理器CPU:8位,运算和控制功能,内部RAM:共256个RAM单元,用户使用前128个单元,用于存放可读写数据,后128个单元被专用寄存器占用。,内部ROM
3、: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单片机信号引脚简介,
4、P3口线的第二功能,VCC,VSS,XTAL2XTAL1,RST,P0.0P0.1P0.2 P0.3 P0.4 P0.5 P0.6 P0.7,P1.0P1.1P1.2 P1.3 P1.4 P1.5 P1.6 P1.7,P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0,ALE,P3.0P3.1P3.2 P3.3 P3.4 P3.5 P3.6 P3.7,2、时钟引脚:XTAL1、XTAL2,3、复位引脚:RST,7、并行口:P0、P1、P2、P3,4、ALE:地址锁存控制信号,1、电源线:VCC(+5V)、VSS(地),时钟电路与复位电路(1)时钟振荡电路,测 试 题
5、,12.单片机8051的XTALl和XTAL2引脚是()引脚 A.外接定时器 B外接串行口 C.外接中断 D.外接晶振,例:若振荡频率 fosc=12MHz,则MCS-51的振荡周期,状态周期,机器周期是多少?振荡周期(时钟周期)=1/12us状态周期=2*(1/12)us机器周期=12*(1/12)us=1us 10.在MCS-51单片机中,如果采用12MHz晶振,一个机器周期为_。,测 试 题,18031单片机的()口的引脚,还具有外中断、串行通信等第二功能。a)P0 b)P1 c)P2 d)P32单片机应用程序一般存放在()a)RAMb)ROMc)寄存器d)CPU3已知某数的BCD码为0
6、111 0101 0100 0010 则其表示的十进制数值为()a)7542H b)7542 c)75.42H d)75.42,测 试 题,28051 的引脚RST是_(IN脚还是OUT脚),当其端出现_电平时,8051进入复位状态。8051一直维持这个值,直到RST脚收到_电平,8051才脱离复位状态,进入程序运行状态,从ROM_H单元开始取指令并翻译和执行。,MCS-51的微处理器,MCS-51的微处理器(CPU)由运算器和控制器所构成。,2.3.1 运算器 作用:对操作数进行算术、逻辑运算和位操作。由算术逻辑单元(ALU)、累加器A、寄存器B、位处理器和程序状态字寄存器(PSW)等构成。
7、,1算术逻辑运算单元ALU 它是运算器的的核心.+-*/,&|-.,2累加器A(8位)使用最频繁的寄存器,可写为Acc。累加器A的作用:(1)是ALU的输入(数据处理源)之一,又是运算结 果的存放单元。(2)数据传送大多都通过累加器A。,3.寄存器B(8位)是为执行乘、除法操作设置的,作为ALU的输入之一。在不执行乘、除法操作的情况下,可当作普通寄存器使用。(A*B=B A)(A/B=AB),4程序状态字寄存器PSW(Program Status Word)(1)Cy(PSW.7)进位标志位,或写为C,有进位或借位时硬件置1。(2)Ac(PSW.6)辅助进位标志位,用于BCD码的十 进制调整运
8、算。当低4位向高4位数发生进位或借位时,AC被硬件置位,否则被清0。(3)F0(PSW.5)用户自定义标志位。可用软件使它置1或清0,也可由软件来测试标志F0以控制程序的流向。编程时,该标志很有用。,D0H,D7 D6 D5 D4 D3 D2 D1 D0,PSW,表 2.3 RS1、RS0与片内工作寄存器组的对应关系,(4)RS1、RS0(PSW.4、PSW.3):4组工作寄存器区选择控制位1和位0。,D0H,D7 D6 D5 D4 D3 D2 D1 D0,PSW,RAM共128个单元,测 试 题,6若由程序设定RS1、RS0=01,则工作寄存器R0R7的直接地址为_。5INTEL8051单片
9、机是()位的单片机 a)16b)4 c)8d)准1611.进位标志CY在()中。A.累加器A B算术逻辑运算部件ALU C程序状态字寄存器PSW D.DPDR14.当标志寄存器PSW的RS0、RS1分别为1,0时,选用的工作寄存器组为()。A.组0 B组1 C组2 D.组3,(5)OV(PSW.2):溢出标志位 指示运算是否产生溢出。各种算术运算指令对该位的影响情况较复杂,将在第3章介绍。(6)PSW.1位:保留位,未用(7)P(PSW.0):奇偶标志位,每个指令周期都由硬件置位或清除.P=1,A中“1”的个数为奇数P=0,A中“1”的个数为偶数注:奇偶标志位对串行口通讯中的数据传输有重要意义
10、,常用奇偶检验的方法来检验数据传输的可靠性。,D0H,D7 D6 D5 D4 D3 D2 D1 D0,PSW,MCS51存储器的结构,80318051875189C51,256B(字节),4K,64K,64K,(1)程序存储器,程序存储器,内部,外部,(PC),程序存储器资源分布,中断入口地址,内部,外部,(2)数据存储器,数据存储器,RAM,专用寄存器,内部RAM存储器,工作寄存器区选择位RS0、RS1,测 试 题,简答题:2.请画出MCS-51 RAM区的示意图,并注明各区域基本用途.,注意:一个单元地址对应有8个位地址MSBMost Significant Bit(最高有效位)LSB L
11、east Significant Bit(最低有效位),RAM位寻址区位地址表,测 试 题,15.8051的内部RAM中,可以进行位寻址的地址空间为()。A.00H2FH B20H2FH C 00HFFH D.20HFFH,高128个单元,离散分布有21个特殊功能寄存器SFR。,11个可以进行位寻址。,特别提示:对SFR只能使用直接寻址方式,书写时可使用寄存器符号,也可用寄存器单元地址。,测 试 题,4CPU主要的组成部部分为()a)运算器、控制器b)加法器、寄存器c)运算器、寄存器 d)运算器、指令译码器811H位寻址所在的单元地址是()a)20H b)30Hc)22H d)70H,1)堆栈
12、和堆栈指针SP堆栈是按先进后出或后进先出原则进行存取的片内RAM区域。(主要是为子程序调用和中断操作而设立的)堆栈的具体功能是:保护断点(PC的内容);保护现场(保存有关寄存器单元的内容)。MCS-51单片机的堆栈区是不固定的,原则上可设置在内部RAM(00H7FH)的任意单元。但实际应用中要根据对片内RAM的各功能区的使用情况灵活设置,但应避开工作寄存器区、位寻址区、和用户使用的数据区,一般设在2FH地址以后的区域。,堆栈指针SP是一个8位的SFR。SP的内容指示出堆栈顶部在RAM区中的位置。单片机复位后,SP中的内容为07H(即指向07H的RAM单元),使堆栈事实上由08H单元开始。所以在
13、使用堆栈前,先给SP赋值(一般为2FH以后的单元),以规定堆栈的起始位置(栈底)。当数据存入堆栈后,SP的值也随之自动变化。,测 试 题,8MCS-51的堆栈只可设置在_,一般设在_地址以后的区域,。堆栈寄存器SP是_位寄存器,存放_。,复位时,PC初始化为0000H,使MCS-51单片机从程序存储器0000H单元开始执行程序。除PC之外,复位操作还对其它一些寄存器有影响,见表2.3(P26)。SP=07H,P0-P3的引脚均为高电平。,复位电路,(2)复位电路,单片机复位条件:必须使RST引脚持续2微秒高电平(外部时钟12MHz),谁知道复位电路怎么起到复位的作用?,测 试 题,68051复
14、位后,PC与SP的值为()a)0000H,00H b)0000H,07H c)0003H,07H d)0800H,00H,指令系统概述,指令:控制计算机完成指定操作的命令。指令系统:计算机所能执行的指令的集合。,测 试 题,4.所谓寻址,其实质就是_。问答题:1、MCS-51共有哪几种寻址方式?各有什么特点?并举例说明.,指令格式,操作码:用来规定指令进行什么操作。操作数:是指令操作的对象。标号:代表该指令所存放的第一个字节存储单元的地址,故标号又称为“符号地址”。,DELAY:MOV R3,#0FFH;一段延时程序,3.3 指令系统的寻址方式(寻找操作数),有我的信,找信去,立即找到信!,找
15、信是寻找存放信的!,找到放信的箱子才找到信!,“地方”,3.3 指令系统的寻址方式(寻找操作数),找到放信的箱子才找到信!,1,80H,2002H,找信是寻找存放信的!,“地方”,“地址”,找操作数是找操作数的,“地址”,立即寻址,信,操作数,立即找到信!,立即数寻址!,#XXH,#55H,CPU,A,MOV Rn,#01H,R0-R7,MOV DPTR,#1FFFH,DPTR,MOV direct,#88H,direct,70H,70H,88H,10001000,ADD A,#55H,SUB A,#01H,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,CPU,
16、操作数,内部RAM或SFR区,20H,A,88H,MOV Rn,20H,MOV direct,30H,MOV Ri,30H,R0-R7,direct,Ri,直接给出操作数地址的方式20H直接寻址,ADD A,20H,SUB A,30H,寻址比较,MOV P1,#20HMOV P1,20HMOV P1,R0MOV P1,R0,指出下列指令寻址方式,MOVP1,#0FFHMOVA,F0HPUSH12H,立即寻址,直接寻址,直接寻址,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,CPU,88H,20H,操作数,60H,寄存器,A,操作数,操作数,MOV P1,A,你能
17、说出:带圈的圆弧箭头代表的是什么吗?,谁能说出:寄存器寻址与直接寻址的区别?,P1,MOV P1,R4,CLR A,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,2,2,通过 间接找到 的地址“2号”!,“1号”,信,寄存器,操作数,寄存器,1,CPU,3AH,寄存器,R0,猜一猜:操作数的地址是多少吗?,内部RAM,3AH,我才是操作数,65H,MOV A,R0,A,寄存器间接寻址寄存器,MOVX A,DPTR,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,CPU,寄存器,3AH,3AH,程序存储区,65H,操作数,0302H,
18、0302H,88H,A,DPTRPC,MOVC A,A+DPTR,A,MOVC A,A+PC,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,0000H,0001H,0002H,2002H,2003H,2004H,2005H,2006H,PC,PC,PC,PC,PC,PC,如果想跳到2006H执行,该给PC值加上多少呢?,2006H,2003H,03H,03H就是当前PC值与目的PC值相对差,SJMP,03H,(PC+03H),SJMP,=2003H+03H=2006H,操作数哪去了?,03就是操作数,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相
19、对寻址,位寻址,20H,21H,0,0,0,0,0,0,0,0,1,想一想:如果想使27H单元的D5位置1,该怎么办呢?,位寻址地址表,立即数寻址,直接寻址,寄存器寻址,寄存器间接寻址,变址寻址,相对寻址,位寻址,SETB 3DH,20H,21H,0,0,0,0,0,0,0,0,1,MCS-51单片机指令系统分类介绍,MCS-51单片机指令系统共有111条指令,按功能分类,可分下面5大类:数据传送类(29条)算数操作类(24条)逻辑运算类(24条)控制转移类(17条)位操作类(17条)常用伪指令(17条),指令中一些符号的约定意义,简答题:3.MCS-51指令按功能可以分为哪几类?每类指令的作
20、用是什么?并举例说明.,目的地址 源地址,数 据,MOV,MOV A,#20H,,,MOV,20H,A,数据传送指令(29条)8位数据传送指令(15条),数据传送指令(29条)16位数据传送指令(1条),MOV DPTR,#data16,外部数据传送指令(4条),MOVX,,,MOVX,谁知道内RAM中30H中数据外RAM的1001H中?,MOV A,30H,MOV DPTR,#1001H,MOVX DPTR,A,片内传送MOV,在A累加器、工作寄存器R0R7、片内RAM与SFR(direct、Ri)之间传送数据。,单片机与片外RAM之间的数据传送(取数/送数)MOVX,在片外RAM(或外扩I
21、/O口)与A累加器之间传送。仅采用寄存器间接寻址方式。,单片机与ROM之间的数据传送(查表)MOVC,读取存放在程序存储器ROM中的数据,通常是以表格形式存放。采用变址寻址方式。MOVCA,A+DPTRMOVCA,A+PCAROM,优点:不改变特殊功能寄存器及PC的状态,根据A的内容就可以取出表格中的常数。缺点:表格只能存放在该条查表指令后面的256个单元之内,表格的大小受到限制,且表格只能被一段程序所利用。注意:PSEN*信号有效。,单片机与ROM之间的数据传送(查表)MOVC,编程时还需要进行偏移量的计算,即MOVC A,A+PC指令所在地址与表格存放首地址间的距离字节数的计算,并需要一条
22、加法指令进行调整。,单片机与ROM之间的数据传送(查表)MOVC,(2)MOVC A,A+DPTR以DPTR作为基址寄存器,A的内容作为无符号整数和DPTR的内容相加得到一个16位的地址,把由该地址指出的程序存储器单元的内容送到累加器A。例如:MOVC A,A+DPTR 本指令的执行结果只和指针DPTR及累加器A的内容有关,与该指令存放的地址及常数表格存放的地址无关。表格的大小和位置可以在64K程序存储器中任意安排,一个表格可以为各个程序块公用。,例:从程序存储器2000H单元开始存放09的平方值,以DPTR作为基址寄存器进行查表得的平方值,若用以DPTR作为基址寄存器的查表指令.程序如下:M
23、OV DPTR,#2000HMOV A,#09HMOVC A,A+DPTR,1)字节交换指令(3条),交换类指令(3条),A,F5,81,内部RAM,2)低半字节交换指令(1条),XCHDA,Ri 这里假设i=0,3)累加器A中高4位和低4位交换指令(1条),SWAP A,PUSH direct,POP direct,PUSH 33H,PUSH 34H,堆栈操作指令(2条),POP 36H,POP 35H,.,堆栈原则:后进先出,数据缓冲堆栈区,堆栈指针 SP,SP 内是存放的是堆栈栈顶的地址,堆栈原则:后进先出,PUSH direct,POP direct,PUSH 33H,PUSH 34H
24、,堆栈原则:后进先出,复位后SP=07H,PUSH direct,POP direct,POP 36H,POP 35H,堆栈原则:后进先出,复位后SP=07H,传送类指令分类,单片机内部数据传送指令:MOVXCHXCHDSWAPPUSHPOP单片机内部与单片机外部RAM之间的数据传送指令:MOVX单片机内部与ROM之间的数据传送指令:MOVC,MOVX 和MOVC 以A作中介,direct,算术运算类指令(24条)加法指令(8条),A,,Rn,Ri,#data,ADD,direct,A,,Rn,Ri,#data,ADDC,减法指令(4条),direct,A,,Rn,Ri,#data,SUBB,
25、ADDC A,B(A+B+CYA),SUBB A,B(A B CYA),算术操作类指令(24条),加法指令(8条),0011,0110,1010,1101+1010,1100,1101,1100 1110,0011,1000,1001,1010,1101+1101,1100 1000,1001,MOV A,#0ADHADD A,#0DCHMOV 20H,AMOV A,#36HADDC A,#0ACHMOV 21H,A,BCD码:0011 0100,BCD码调整指令(1条),DA A,注意:DA A指令只能跟在ADD或ADDC加法指令后,不适用于减法指令。,0001 1000,0001 0110
26、,BCD码,0010 1110,差6,BCD码调整指令,BCD码也叫8421码,就是将十进制的数以8421的形式展开成二进制,大家知道十进制是09十个数组成,这十个数每个数都有自己的8421码:举个例子:321的8421码就是 3 2 1 0011 0010 0001 原因:0011=8x0+4x0+2x1+1x1=3 0010=8x0+4x0+2x1+1x0=2.0001=8x0+4x0+2x0+1x1=1,BCD码调整指令,DAA,该指令有何用途呢?,注意:DA A 指令只能跟在进行BCD码运算的ADD或ADDC加法指令后,不适用与减法指令。,BCD码调整指令,例如:87+13,加1减1指
27、令,A中存放结果的低8位B中存放结果的高8位,乘法指令(1条),除法指令(1条),MULAB,DIVAB,A中存放结果的商B中存放结果的余数,A中存放结果的低8位B中存放结果的高8位,乘法指令(1条),MULAB,例如:MOV A,#02HMOV B,#03HMUL AB,A=06HB=00H,乘法指令(1条),MULAB,例如:MOV A,#20MOV B,#20MUL AB,20=14HA=90HB=01H,20*20=40020=14H400=0190H,提示:,除法指令(1条),DIVAB,A中存放结果的商B中存放结果的余数,例如:MOV A,#25MOV B,#03DIV AB,A=
28、08HB=01H,3.4.3 逻辑运算指令,逻辑与指令(6条),逻辑与指令常用于屏蔽字节中的某些位。若清除某位,则用和该位相与;若保留某位,则用和该位相与。,逻辑或指令(6条),逻辑或指令常用于使字节中的某些位置,其它位保持不变。若置位某位,则用和该位相或;若保留某位,则用和该位相或。,逻辑异或指令(6条),逻辑异或指令常用于使字节中的某些位进行取反操作,其它位保持不变。若某位取反,则用和该位相异或;若保留某位,则用和该位相异或。,累加器A清0和取反指令,A.0,A.7,A.0,A.7,A.0,A.7,A.0,A.7,CY,CY,RL A RR A RLC A RRC A,注意:执行带进位的循
29、环移位指令之前,必须给CY置位或清零。,循环移位指令,MOV A,#01HMOV P1,ARL AMOV P1,A,循环移位指令,3.4.4 控制转移类指令 无条件转移指令(4条),1)长转移指令:LJMP AAAAH;AAAAHPC,PC=0000H,PC=AAAAH,假设执行该指令前,PC的值为0000H。,注意:该指令可以转移到64 KB程序存储器中的任意位置。,PC高5位(保持不变),PC低11位,操作码(第一字节),操作数(第二字节),11位转移地址的形成示意图转移范围2k,程序计数器PC,2)绝对转移指令,AJMP addr11;PC+2PC,addr11 PC.10PC.0,PC
30、,2002H,2003H,0000H,0001H,2004H,2005H,2006H,PC,PC,PC,2006H,2003H,PC,0002H,PC,3)相对转移指令,例:SJMP 03H,03H就是当前PC值与目的PC值相对差,PC,JMPA+DPTR,4)散转指令,功能:将DPTR中的内容作为基地址,通过修改A的内容实现散转,!一般应用在键盘程序中,1)累加器A判0指令(2条),条件转移指令(8条),2)判别进位标志CY状态指令(2条),3)判别某位Bit状态指令(2条),4)减1非零转移指令(2条),5)比较转移指令(4条),条件转移指令的共同特点:都是相对转移指令,条件转移类指令范例
31、(一),问答题:2.将00H0FH这16个数顺序地置入片内RAM20H2FH单元中。,2FH.21H20H,0FH.01H00H,数据,地址,条件转移类指令范例(一),将00H0FH这16个数顺序地置入片内RAM20H2FH单元中。,可以用16个MOV指令将16个数据依次装入存储器中!,采用循环方式将16个数据依次装入存储器中!,条件转移类指令范例(一),MOVR0,#20HMOVR7,#10HCLRALOOP:MOVR0,AINCAINCR0DJNZR7,LOOPSJMP$,将地址20H放入R0中,明确了数据起始地址,循环次数16放入R7,明确循环15次,累加器A=0,实现数据00放入20H
32、中,A=01,RO=21,判断作用!判断什么?,判断R7的值,(-1不等于0则跳转),MOVR0,#20HCLRA LOOP:MOVR0,AINCAINCR0CJNE A,#10H,LOOPSJMP$,条件转移类指令范例(二),将地址20H放入R0中,明确了数据终点起始地址,累加器A=0,实现数据00放入20H中,A=01,RO=21,判断作用!判断什么?,判断A的值与#10H是否相等(比较不相等则跳转),MOVR0,#20H MOVA,#10H MOV30H,#00HLOOP:MOV R0,30H INC30H INCR0 DECA JNZLOOP SJMP$,条件转移类指令范例(三),将2
33、0H放入R0中,将10H放入A中,将00H放入30H地址下,将30H地址下内容放入R0内容地址下,30H下内容+1,R0下内容+1,A的内容-1,A不等于0则跳转,3FH.30H,.,X,变量X的值从00-0F,不等于0则跳转,MOVR0,#20H MOVA,#0FH MOV30H,#00H LOOP:MOVR0,30H INC30H INCR0 SUBBA,#0FH JNCLOOP SJMP$,条件转移类指令范例(四),将20H放入R0中,将0FH放入A中,将00H放入30H地址下,将30H地址下内容放入R0内容地址下,30H下内容+1,R0下内容+1,带借位将A的内容-1,判断CY不等于1
34、则跳转,无借位则跳转,带借位减法指令,15-1=14.1-1=00-1有借位顺次执行,调用和返回指令(8条),1)绝对调用指令(1条),2K范围内调用子程序指令,比较 PUSH direct POP direct,比较 AJMP addr11,调用和返回指令(8条),2)长调用指令(1条),64K范围内程序存储器内调用子程序指令,3)返回指令,4)空操作指令,硬件延时,3.4.5 位操作类指令,RAM位寻址区位地址表,1.位传送指令,例:MOV 20H,21H MOV C,21H,2.位置位和位清零指令,3.位运算指令,4.位判断转移指令,5.判CY标志转移指令(条件转移指令),3.5 MCS
35、-51汇编语言的伪指令 伪指令是对汇编过程起控制作用,是程序员发给汇编程序的命令,指示如何完成汇编工作。伪指令没有对应的机器代码,不产生目标程序。1)设置目标程序起始地址伪指令ORG(ORiGin)伪指令格式为:ORG 地址(十六进制表示)该伪指令的作用是指明后面的程序或数据块的起始地址,后面的源程序或数据块就依次连续存放,直到遇到另一个ORG指令为止。,例:ORG 0100HSTART:MOV SP,60H MOV R0,2FH MOV R2,0FFH,在一个源程序中,可多次使用ORG指令,来规定不同的程序段的起始地址。但是,地址必须由小到大排列,地址不能交叉、重叠。例如:ORG 2000H
36、 ORG 2500H ORG 3000H,2)汇编结束命令 END(END of assembly)指令格式:END 汇编语言源程序的结束标志,用于终止源程序的汇编工作。在整个源程序中只能有一条END命令,且位于程序的最后。3)定义字节伪指令 DB(Define Byte)指令格式:DB 项或项表其中项或项表指一个字节数据或用逗号分开的字节数据串,或以单(双)引号括起来的字符串。,ORG 2000H TAB:DB 30H,7FH,24 DB C,5,AB汇编后:(2000H)=30H(2001H)=7FH(2002H)=18H(十进制数24)(2003H)=43H(字符C的ASCII码)(20
37、04H)=35H(字符5的ASCII码)(2005H)=41H(字符A的ASCII码)(2006H)=42H(字符B的ASCII码),注意:DB功能:从指定单元开始定义(存储)若干个字节,10进制数自然转换成16进制数,字符按ASCII码存储。,4)定义字(2字节)伪指令DW(Define Word)指令格式:DW 项或项表例,ORG 2000H DW 1246H,7BH,10汇编后:(2000H)=12H;第1个字(2001H)=46H(2002H)=00H;第2个字(2003H)=7BH(2004H)=00H;第3个字(2005H)=0AH,5)赋值伪指令EQU指令格式:标号 EQU 数字
38、或汇编符号该伪指令功能是使标号等价于给定的数字或汇编符号。例:TEST EQU 2000H 表示标号TEST=2000H,在汇编时,凡是遇到标号TEST时,均以2000H来代替。注意:在同一个源程序中,同一个标号只能赋值一次。,6)预留存储空间伪指令 DS指令格式:标号:DS 表达式 该伪指令的功能是从标号地址开始,保留若干字节的内存空间以备存放数据。保留的字节单元数由表达式的值决定。例如:ORG 1000H DS 20H DB 30H,8FH汇编后从1000H开始,预留32(20H)个字节的内存单元,然后(1020H)=30H,(1021H)=8FH。,7)位地址定义伪指令 BIT指令格式:
39、标号 BIT 位地址 该伪指令的功能是将位地址赋予前面的标号,经赋值后可用该标号代替BIT前面的位地址。例如:FLG BIT F0,简单程序设计,结构特点:按指令的先后顺序依次执行。问答题:3.将20H单元的两个压缩BCD码拆开变成ASCII码,存入21H、22H单元。(假设20H中的BCD码为00110100),0011,压缩BCD码,0011,0011,0100,低四位ASCII码,高四位ASCII码,程序设计-举例,例1.将20H单元的两个压缩BCD码拆开变成ASCII码,存入21H,22H单元.(假设20H中的BCD码为00110100),BCD码表示范围:0-9ASCII码表示为:3
40、0H-39H,程序设计-启示,方法1.将BCD码除以10H,恰好是将BCD码分别移到了A.B的低4位,然后再各自与30H相或,即成为ASCII码.,ORG 0000HMOV A,20HMOV B,#10HDIV ABORL B,#30HMOV 22H,BORL A,#30HMOV 21H,ASJMP$END,简单程序例1-方法1,源程序如下:,0011,0100,PC,PC,0011 0100,0001 0000,PC,0011,0000,0000 0100,PC,0011 0100,PC,PC,PC,0011,PC,ORG 0000H MOV R0,#20H MOV A,#30H XCHD
41、A,R0 MOV 22H,A MOV A,R0 SWAP A ORL A,#30H MOV 21H,A SJMP$END,简单程序例1-方法2,PC,PC,PC,PC,PC,PC,PC,PC,源程序如下:,0011,0010 0000,0011,0100,0000,0100,0011,0100,0011,0000,0011,0000,0011,PC,0011,Thank You!,END,MajpjMVcyzj21HLfrvy96dv02lPPfYgxUS7IYmZkyEmZ0kGeYZS3bpLCkYH1lt4EK7CxmUX3ijoYSOer7ZuaVWYgz4EpZrUirVpMzzvN
42、tf1XZw5oswSXOtFaejnOcmfE1lZgnN1RSXg8wLCG8CVQ3XPJMvodPFWcpiYJgZazNSEPNIaklYSu7qSd1UpaxmZDlpN9zW7kljfsLCLi26Yv109ffbnDH8LbUN1G6ACURQ39eG12KHL9tXsZ1jzgoCK8g1kuNOh5eFvcmVT5ZYVQt9zk3rp3qLnf02FovEXxVRxjCcFRNppiJljNiOuk6fONnyX7fyGg7sXZ49BmCN5oy9VesHpKzdjTKwjrkCEQCFDehVmGax3lrOEbw63VscA3YSijtUKoCyiLzAlVRp7l
43、4QgPNHxvJFFDyjUVN3oHlMah0XBd4uTbkfPIhHtw0evPmYOrdhEDoPwvYhzlGplU1AU9mpyiCXH8gpPCBRYjq77VcnbXumNE1yGfyTsbSj89J63kRTKDkKUg3mdS5sJ4X5cQ8dK7oW9IkScssECQdz2O9UTlpRjAFPChjhLdzopQzwxQf8ozdzOhogwAooXpUF83BX4C3jRgjDJiiXEUDMaNz4vQ4n164vspddHvOIVuBBdMA4xp1YhiHk0vOJ8TL1BxogzVlMpmod6ianYGmksQq6NWCEd56hZF4wfaNyZcrGfNxnPiG6ZAxSkfmhJAKtNmCqbRmppeXp8inz4eq3HkWCMSORyMMX522xpHG6basNr6KQfbZsFbHjzyNlJrruLolKFcC84dqfijBO5Dy2NaBcNEBPgQrT12PgpcKx2or2YChN5DPjs80zzdtdAdTKuW4uVv9bbZu3K2SZ2aEhTlIC1UqrIWibkzwHh6p8gLv26zr01mJybfOzFc4T7kQH1IpPwOzMDnAKPLsLrznXGjFNIA9bSWWms6ibKZwQIKrMzalwbFrQJvOP1rPH8rx2KkyYqrtQk5VRwM1HSX,