第4章AT89S51汇编语言程序设计_第1页
第4章AT89S51汇编语言程序设计_第2页
第4章AT89S51汇编语言程序设计_第3页
第4章AT89S51汇编语言程序设计_第4页
第4章AT89S51汇编语言程序设计_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、第第4章章 AT89S51汇编语言程序设计汇编语言程序设计主要内容:主要内容: 1. 程序设计的一般方法 2. 应用程序设计举例 重点理解:重点理解:程序设计的一般方法和技巧程序设计的一般方法和技巧 汇编语言汇编语言 汇编语言源程序汇编语言源程序 汇编汇编 目标程序目标程序汇编指令与机器码指令有一一对应的关系。汇编指令与机器码指令有一一对应的关系。一、单片机编程语言一、单片机编程语言 高级语言高级语言 机器语言机器语言用汇编语言编写程序效率高,占用存储空间小,运行速度快。可读性差,离不开具体的硬件,是面向“硬件”的语言。4.1 汇编语言程序设计概述汇编语言程序设计概述两种基本语句:二、汇编语言

2、语句和格式二、汇编语言语句和格式汇编时产生相应的机器代码。执行时对应机器的一种操作。汇编时无机器代码与之对应。控制汇编过程的一些控制命令。4.1 汇编语言程序设计概述(续)汇编语言程序设计概述(续)指令语句指令语句伪指令语句伪指令语句“伪”体现在该种指令汇编后无相应机器代码产生。具有控制汇编程序的输入/输出、定义数据和符号、 条件汇编、分配存储空间等功能。ORG定位END结束汇编EQU赋值DB定义字节DW定义数据字DS定义存储区BIT位定义常用的伪指令(七条)三、三、 伪指令伪指令4.1 汇编语言程序设计概述(续)汇编语言程序设计概述(续) 1ORG(ORiGin)汇编起始地址命令汇编起始地址

3、命令(1)规定程序的起始地址。若省略,则目标程序 从0000H地址开始。ORG 2000HORG 2500HORG 3000HORG 2500HORG 2000HORG 3000H(2)可多次用ORG指令,以规定不同程序段的起始地址。但地址必须由小到大,且不能交叉、重叠。例:三、三、 伪指令(续)伪指令(续) 2. END(END of Assembly)汇编终止命令汇编终止命令整个源程序只能有一条END命令,且位于最后。 3. EQU(EQUate)标号赋值命令)标号赋值命令 用于给标号赋值,赋值后标号值在整个程序有效。例: TEST EQU 2000H表示TEST=2000H,汇编时,凡是

4、遇到TEST,均以2000H来代替。 若出现在程序中间,其后的源程序将不进行汇编。三、三、 伪指令(续)伪指令(续)4DB(Define Byte)定义数据字节命令)定义数据字节命令 用于在程序存储器连续单元中定义字节数据例: ORG 2000H DB30H,24,”C”汇编后 (2000H)=30H (2001H)=18H (十进制数24) (2002H)=43H (字符“C”的ASCII码)三、三、 伪指令(续)伪指令(续)5DW(Define Word)定义数据字命令)定义数据字命令用于在程序存储器的连续单元中定义16位的数据字例: ORG 2000H DW 1246H,7BH,10 汇

5、编后 (2000H)=12H ;第1个字 (2001H)=46H (2002H)=00H ;第2个字 (2003H)=7BH (2004H)=00H ;第3个字 (2005H)=0AH三、三、 伪指令(续)伪指令(续) 6DS(Define Storage)定义存储区命令)定义存储区命令用于在程序存储器中预留指定数目的连续单元例1:TABEL: DS10;从TABEL代表的地址开始,保留10个连续的地址单元。例2:ORG 2000H DS 10 H;从2000H地址开始,保留16个连续地址单元。注意:DB、DW和DS命令只能对程序存储器有效, 不能对数据存储器使用。三、三、 伪指令(续)伪指令

6、(续)三、三、 伪指令(续)伪指令(续) 7BIT 位定义命令位定义命令用于给字符名称赋以位地址。例1 :QA BIT P1.6; 把P1.6的位地址赋给变量QA。位地址可以是符号地址,也可是绝对位地址。例2: QA BIT 96H一、单片机汇编语言程序设计的基本步骤:一、单片机汇编语言程序设计的基本步骤:4.2 AT89S51汇编语言程序设计汇编语言程序设计分析题意、明确要求、设计算法等。确定数据结构:合理地选择和分配内存单元 以及工作寄存器;画出程序流程图。编写汇编源程序。仿真、调试和优化程序。固化程序。4.2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续)程序编写做到:占用存

7、储空间少;运行时间短;结构清晰,易读、易于移植。 按结构化程序设计思想,程序都可由:顺序结构顺序结构分支结构分支结构循环结构循环结构等构成等构成二、单片机汇编语言程序设计思想:二、单片机汇编语言程序设计思想:分析: 0 1 0 1 0 1 1 04.2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续)三、程序举例三、程序举例-顺序程序顺序程序例1:拆字程序把70H的内容拆开,高位送71H低位,低位送72H低位70H71H72H 0 0 0 0 0 1 0 1 0 0 0 0 0 1 1 0例1:拆字程序(续)4.2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续)结束70H

8、内容送A高低位交换,屏蔽高位送71H70H内容送A屏蔽高位后送72H开始ORG 0000HAJMP MAIN ORG 0100HMOV 70H,#56HMOV A, 70HSWAP AANLA,#0FHMOV 71H,AMOV A,70HANLA,#0FHMOV 72H,AENDMAIN:4.2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续)三、程序举例三、程序举例-分支程序分支程序通常用条件转移指令形成简单分支结构。如: 判(A) = Z 或 NZ ,转移判(CY)= 1 或 0 ,转移判(bit)=1 或 0 ,转移CJNE 比较不相等转移 例2:假设内RAM 30H、31H单

9、元内容分别为a、b, 按下式计算Y值,并将结果存于32H单元中。 a-b (a0) a+b (a 0) Y =4.2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续)ORG 0000HAJMP MAIN ORG 0100HMOV A, 30HA内容为负数?结束 (30H) A计算a+b结果送32H单元开始计算a-bYNJBACC.7, JIAFACLRCSUBB A,31HSJMP DONEADDA,31HMOV 32H,AENDMAIN:JIAFA:DONE:例2程序清单4.2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续)三、程序举例三、程序举例-循环程序循环程序例3

10、:数据块传递程序:将内RAM 60H6FH 内容传送到内 RAM 70H7FH 单元ORG0000HAJMP MAIN ORG0100HMOV R0,#60HMOV R1,#70HMOV R2,#10HMOV A,R0MOV R1,AINC R0INC R1DJNZ R2,ZHCENDNOPYN数据全部传递?结束 初始化 修改地址指针开始 送数 取数MAIN:ZHC:4.2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续) 子程序是子程序是单独编写的程序段,需要时可调用。 简化程序结构,减少占用程序存储空间。子程序的形式与要求:子程序的形式与要求:标明子程序的入口地址,以方便调用;指

11、出入口与出口参数,以正确进行参数传递;常采用工作寄存器或累加器、地址指针寄存器或堆栈进行参数传递。注意保护现场;子程序的末尾用RET返回指令结束。子程序可以嵌套。三、程序举例三、程序举例-子程序子程序4.2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续)有关指令:有关指令:1、堆栈操作指令、堆栈操作指令2、子程序调用指令、子程序调用指令;绝对调用指令;长调用指令ACALL addrllLCALL addr163、子程序返回指令:、子程序返回指令: RET PUSH directPOP direct;入栈指令;出栈指令三、程序举例三、程序举例-子程序(续)子程序(续)子子程程序序4.

12、2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续)基本结构基本结构MAIN: ;MAIN为主程序入口标号 LCALL SUB ;调用子程序SUB SUB: PUSH PSW ;现场保护 PUSH Acc POP Acc ;现场恢复,注意要先进后出 POP PSW RET ;最后一条指令必须为RET 子程序处理程序段三、程序举例三、程序举例-子程序(续)子程序(续)4.2 AT89S51汇编语言程序设计(续)汇编语言程序设计(续)例例5:要求在P1.0引脚上产生周期为4ms的方波。三、程序举例三、程序举例-子程序(续)子程序(续)例5程序清单FB: CPL P1.0 ;P1.0取反 ACALL DL2ms SJMP FBDL2ms: MOV R7,#10 ;延时2ms的子程序DL1: MOV R6,#48 DL2: NOP NOP DJNZ R6,DL2 DJNZ R7,DL1 RET END设晶振为12MHZ,则机器周期为1us。 所以子程序延时:1+1+(1+1+2)48+210+2 = 1953 (us)三、程序举例三、程序举例-子程序(续)子程序(续)已知程序执行前有A=02H,SP=42H, (41H)=FFH, (42H)=FFH。下述程序执行后,A=? SP

温馨提示

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

评论

0/150

提交评论