MCS51单片机汇编语言程序设计.ppt
《MCS51单片机汇编语言程序设计.ppt》由会员分享,可在线阅读,更多相关《MCS51单片机汇编语言程序设计.ppt(47页珍藏版)》请在三一办公上搜索。
1、第3章 MCS51单片机汇编语言程序设计,单片机原理、接口及应用,内 容 提 要,伪指令汇编语言程序设计步骤顺序程序设计分支程序设计循环程序设计位操作程序设计子程序小结,1.机器指令:指令系统中的全部指令。每条机器指令都有对应的机器代码,可以被CPU执行。2.伪指令:汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息。,一、汇编语言指令类型,宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替代被定义的程序段(宏调用)。,3.1伪指令,宏定义过程:,宏调用过程:宏指令名 实际参数 宏指令名 实际参数,宏指令名 MACRO 形式参
2、数;被定义的程序段 ENDM,二伪指令 常用伪指令及功能:,1.起始指令 ORG nn功能:定义程序或数据块的起始地址。指示此语句后面的程序或数据块以nn为起始地址,连续存放在程序存储器中。指令地址 机器码源程序 ORG 2000H 2000H 78 30 MAIN:MOV R0,#30H 2002H E6 MOV A,R0,ORG 3000H 3000H 23 TAB:DB 23H,100,A 3001H 64 3002H 41,2.字节定义 标号:DB(字节常数,或字符或表达式)功能:指示在程序存储器中以标号为起始地址的单元里存放的数为字节数据(八位二进制数)。例如 LN:DB 32,C,
3、25H,-1;LNLN+2 地址单元依次存放20H,43H,25H,FFH,3.字定义 标号:DW(字常数或表达式)作用:指示在程序存储器中以标号为起始地址的单元里存放的数为字数据(即16位的二进制数),例如:GH:DW 1234H,5678H,08,5.等值指令 标号 EQU(数值表达式)表示EQU两边的量等值,用于为标号或标识符赋值。例如:X1 EQU 2000H X2 EQU 0FH MAIN:MOV DPTR,#X1;DPTR=2000H ADD A,#X2;A=A+0FH,4保留字节 标号:DS(数值表达式)作用:指示在程序存储器中保留以标号为起始地址的若干字节单元,其单元个数由数值
4、表达式指定。例如 L1:DS 32;从L1地址开始保留32个存储单元。,6.位定义 标号 BIT 位地址作用:同EQU指令,不过定义的是位操作地址。例如 AIC BIT P1.1。,7.汇编结束 END作用:指示源程序段结束。END指令放在程序的最后。A51汇编程序还有一些其它的伪指令,列在教材表3-1中,以备查阅。,汇编语言程序设计步骤,一.确定方案和计算方法二.了解应用系统的硬件配置、性能指标三.建立系统数学模型,确定控制算法和操作步骤四.合理分配存储器单元和了解I/O接口地址,五.编制源程序1.按功能设计程序,明确各程序之间的相互关系2.用流程图表示程序结构和功能,3.程序中用注释说明指
5、令在程序中的作用,方便阅读、调试和修改,顺序程序设计例3-1 编程将外部数据存储器的000EH和000FH单元的内容相换。,常用程序结构 顺序程序、分支程序、循环程序、子程序,分析:外部数据存储器的数据操作只能用MOVX指令,且只能和A之间传送,因此必须用一个中间环节作暂存,设用20H单元。用R0、R1指示两单元的低八位地址,高八位地址由P2指示。编程过程如下:,ORG 0000H MOV P2,#0H;送地址高八位至P2口 MOV R0,#0EH;R0=0EH MOV R1,#0FH;R1=OFH MOVX A,R0;A=(000EH)MOV 20H,A;(20H)=(000EH)MOVX
6、A,R1;A=(000FH)XCH A,20H;A=(000EH),(20H)=(000FH)MOVX R1,A MOV A,20H MOVX R0,A;交换后的数送各单元 SJMP$END,3.3 顺序程序设计顺序程序(简单程序),程序走向只有一条路径,例3-2:将R4R5双字节符号数求补程序。,ORG 0000H MOV A,R5;取低字节 CPL A ADD A,#1;低字节变补 MOV R5,A MOV A,R4;取高字节 CPL A ADDC A,#0;高字节变补 ORL A,#80H;恢复负号 MOV R4,A END,例3-3 分解压缩式BCD码,使其成为非压缩式BCD码。,OR
7、G 0000HMOV R0,#40H;设指针MOV A,R0;取一个字节MOV R2,A;暂存ANL A,#0FH;清0高半字节INC R0MOV R0,A;保存数据个位,MOV A,R2SWAP A;十位换到低半字节ANL A,#0FHINC R0MOV R0,A;保存数据十位END,05,06,例3-4 设变量放在片内RAM的20H单元,其值为00H05H之间,要求编查表程序,查出变量的平方值,并放入片内RAM的21H单元。,ORG 0000H MOV DPTR,#TAB MOV A,20H MOVC A,A+DPTR;查表 MOV 21H,A SJMP$TAB2:DB 00H,01H,0
8、4H,09H,16H,25H END,分析:在程序存储器安排一张平方表,首地址为TAB,以DPTR指向表首址,A存放变量值,利用查表指令MOVC A,A+DPTR,即可求得。表中数据用BCD码存放合乎人们的习惯.,如果平方值为两个字节,程序应如何编。,ORG 0000H MOV A,R2 JNB ACC.7,N;为正数?CPL A;负数变补 INC A MOV R2,AN:SJMP$;结束,3.4 分支程序的设计 由条件转移指令构成程序判断框部分,形成分支结构,3.5.1 单分支程序一个判断决策框,两种分支结构图。,例1 求8位有符号数的绝对值。方法:正数不变,负数变补,例2 用单片机加重力传
9、感器作磅秤,秤出重量后算出行李运费价格,其秤出的重量以10kg为1个计价单位G,G已存入40H单元。计价方法为50kg以内按3元,50kg以上分段计价:50kg按3元计价,超过部分按2元计价。由此列出算式:,G3;当G5,3G因重复使用,先暂存在R2。流程见左,程序如下:,ORG 0100HFRT:MOV A,40H;取行李重量计价单位G MOV R3,A MOV B,#03H;运费M=G3 MUL AB MOV R2,A;暂存3G,MOV A,R3;取回G CJNE A,#05H,L1;G 5?SJMP WETCL1:JC WETC;是,转至WETC SUBB A,#05H;否则 M=3G+
10、2(G-5)RLC A ADD A,R2 MOV R2,AWETC:MOV 41H,R2;存运费 M RET,多分支散转程序的设计 有一类分支程序,它根据不同的输入条件或不同的运算结果,转向不同的处理程序,称之为散转程序。这类程序通常利用JMPA+DPTR间接转移指令实现转移。有如下两种设计方法:1.查转移地址表:将转移地址列成表格,将表格的内容作转移的目标地址。2.查转移指令表:将转移到不同程序的转移指令列成表格,判断条件后查表,转到表中指令执行,下面用两个例子说明。,1.利用转移地址表实现转移 例3-7 根据R3的内容转向对应的程序,R3的内容为0n,处理程序的入口符号地址分别为PR0PR
11、n(n128)。分析:将PR0PRn入口地址列在表格中,每一项占两个单元,PRn在表中的偏移量为2n,因此将R3的内容乘2即得PRn在表中的偏移地址,从偏移地址2n和2n+1两个单元分别取出PRn的高八位地址和低八位地址送DPTR寄存器,用JMP A+DPTR指令(A先清零)即转移到PRn入口执行。,ORG 0000HMOV A,R3;R3AADD A,ACC;A*2MOV DPTR,#TABPUSH ACCMOVC A,A+DPTR;取地址表中高字节MOV B,A;暂存于BINC DPLPOP ACCMOVC A,A+DPTR;取地址表中低字节MOV DPL,AMOV DPH,B;DPTR为
12、表中地址CLR A;A=0JMP A+DPTR;转移TAB:DW PR0,PR1,PR2,.,PRn;转移地址表END,TAB,TAB+2,DPH DPL,例如 R3=1的操作,02,20,2.利用转移指令表实现转移 例3-8 设有五个按键 0、1、2、3、4其编码分别为3AH、47H、65H、70H、8BH,要求根据按下的键转向不同的处理程序,分别为PR0、PR1/PR2、PR3、PR4,设按键的编码已在B寄存器中,编出程序。,分析:将键码排成表,将键码表中的值和B中的键编码比对,记下在键码表中和B中的键编码相等的序号,另安排一个转移表,安排AJMP指令(机器码),因每条AJMP指令占二字节
13、,将刚才记下的序号乘2即为转移表的偏移地址,利用JMP A+DPTR执行表内的AJMP指令,从而实现多分支转移,,设JPT的地址为001AH、PR0入口地址为0110H、,参考节,求AJMP PR0的机器码0000 0001 0001 0000 001 00001 0000(2110h),a10a9a8a7a6a5a4a3a2a1a0,AJMP PR0的机器码为2110H,PR1入口地址为0220H AJMP PR1的机器码为4120H,转移指令表JPT的内容如下所示。设B=65H,键值为2:,转移指令表JPT,键码表TAB,65H,A,2,B,2A,A=1,A=2,A=0,65H,65H,O
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 单片机 汇编语言 程序设计
链接地址:https://www.31ppt.com/p-5439688.html