单片机教学课件-第3章--MCS-51单片机汇编语音程序设计

上传人:aa****6 文档编号:48799955 上传时间:2018-07-20 格式:PPT 页数:46 大小:799KB
返回 下载 相关 举报
单片机教学课件-第3章--MCS-51单片机汇编语音程序设计_第1页
第1页 / 共46页
单片机教学课件-第3章--MCS-51单片机汇编语音程序设计_第2页
第2页 / 共46页
单片机教学课件-第3章--MCS-51单片机汇编语音程序设计_第3页
第3页 / 共46页
单片机教学课件-第3章--MCS-51单片机汇编语音程序设计_第4页
第4页 / 共46页
单片机教学课件-第3章--MCS-51单片机汇编语音程序设计_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《单片机教学课件-第3章--MCS-51单片机汇编语音程序设计》由会员分享,可在线阅读,更多相关《单片机教学课件-第3章--MCS-51单片机汇编语音程序设计(46页珍藏版)》请在金锄头文库上搜索。

1、第3章 MCS-51单片机汇编语言程序设计 单片机原理、接口及应用单片机原理、接口及应用第3章 MCS-51单片机汇编语言程序设计 内 容 提 要概 述伪指令汇编语言程序设计步骤顺序程序设计分支程序设计循环程序设计位操作程序设计子程序小结第3章 MCS-51单片机汇编语言程序设计 3.1 概述MCS-51单片机的编程语言可以用汇编语言,也可以用 高级语言(如C语言);高级语言编程快捷,但程序长(代码效率低),占 用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小, 执行快,能充分发挥计算机的硬件功能。无论是采用高级语言还是汇编语言编程,其源程序 都要转换成目标程序(机器语言),单

2、片机才能加以执 行。 第3章 MCS-51单片机汇编语言程序设计 连接/定位器 L51汇编语言 源程序汇编器A51符号转换程序 OHS51绝对地址 目标程序.BINC语言程序浮 动 地 址 目 标 程 序编译器C51HEX图 3-1 两种语言源程序转换成目标程序第3章 MCS-51单片机汇编语言程序设计 目前很多公司将编辑器、汇编器、编译器、连接/定位器、符号转换程序做成集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步,如WAVE、KEIL 软件。WAVE、KEIL集成软件的使用见附录。 汇编:将汇编语言源程序转换成机器语言目标程序的过程称为汇编。 汇编程序:

3、将汇编语言源程序转换成机器语言目标程序的系统软件称为汇编程序(汇编软件)。第3章 MCS-51单片机汇编语言程序设计 汇编的方法:汇编的方法有两种1.手工汇编:人工查指令表,查出程序中每条指令对应的机器代码。特点是繁琐,易错。早期的计算机使用。2.机器汇编:用计算机中的汇编程序对用户源程序进行自动汇编。特点是便捷,准确。用机器汇编时,源程序要向汇编程序提供一些汇编的信息或要求。这些均由伪指令来指定。第3章 MCS-51单片机汇编语言程序设计 汇编程序的功能1)确定程序中每条汇编语言指令的机器码2)确定每条指令在存储器中的存放地址3)提供错误信息4)提供目标执行文件(*.OBJ/*.HEX)和列

4、表文件(*.LST)地址 机器码源程序ORG 2000H2000H 78 30 MAIN: MOV R0,#30H2002H E6 MOV A,R0第3章 MCS-51单片机汇编语言程序设计 1. 指令:指令系统中的全部指令。每条指令都有对应的机器代码,可以被CPU执行。2. 伪指令: 汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息。一、汇编语言指令类型宏汇编功能:将需要反复多次执行的程序段定义成一个宏指 令名(宏定义)。编程时,可在程序中使用宏指令名来替代 被定义的程序段(宏调用)。3.2伪指令第3章 MCS-51单片机汇编语言程序设计 宏定义:宏调用过程:宏指令名 实际

5、参数宏指令名 实际参数宏指令名 MACRO 形式参数 ;被定义的程序段ENDM第3章 MCS-51单片机汇编语言程序设计 二伪指令 常用伪指令及功能: 1.起始指令 ORG nn功能:定义程序或数据块的起始地址。指示此语句后面的程序 或数据块以nn为起始地址,连续存放在程序存储器中。 指令地址 机器码源程序ORG 2000H2000H 78 30 MAIN:MOV R0,#30H2002H E6 MOV A,R0ORG 3000H3000H 23 TAB: DB 23H,100,A 3001H 643002H 41第3章 MCS-51单片机汇编语言程序设计 2.字节定义 标号: DB(字节常数

6、/字符/表达式)功能:指示在程序存储器中以标号为起始地址的单元里存放的数为字节数据(八位二进制数)。例如 LN:DB 32,C,25H,-1;LNLN+3 地址单元依次存放20H , 43H , 25H ,FFH地址 数据LN20 LN+143LN+225 LN+3FF3. 字定义 标号:DW (字常数/表达式)作用: 指示在程序存储器中以标号为起始地址 的单元里存放的数为字数据(即16位的二进制数) ,例如: GH :DW 1234H,5678H,08GH1234GH+25678GH+40008第3章 MCS-51单片机汇编语言程序设计 5. 等值指令 标号 EQU(数值表达式)表示EQU两

7、边的量等值,用于为标号或标识符赋值。 例如: X1 EQU 2000HX2 EQU 0FH MAIN: MOV DPTR,#X1 ; DPTR=2000H ADD A,#X2 ; A=A+0FH4保留字节 标号:DS 数值表达式作用: 指示在程序存储器中保留以标号为起始地址的若干字节单元,其单元个数由数值表达式指定。例如 L1:DS 32 ; 从L1地址开始保留32个存储单元。第3章 MCS-51单片机汇编语言程序设计 6. 位定义 标号 BIT 位地址 作用: 同EQU指令,不过定义的是位操作地址。 例如 AIC BIT P1.1。7.汇编结束 END作用: 指示源程序段结束。END 伪指令

8、应放在程序的最后。A51汇编程序还有一些其它的伪指令,列在教材表3-1中,以 备查阅。第3章 MCS-51单片机汇编语言程序设计 汇编语言程序设计步骤一.确定方案和计算方法二.了解应用系统的硬件配置、性能指标三.建立系统的数学模型,确定控制算法和操作步骤 四.合理分配存储器单元和了解I/O接口地址五. 编制源程序,编制过程如下: 1.按功能设计程序,明确各程序之间 的相互关系 2. 用流程图表示程序结构和功能开始1YN?3.程序中用注释说明指令在程序中的 作用,以方便阅读、调试和修改程序第3章 MCS-51单片机汇编语言程序设计 顺序程序设计: 例3-1 编程:将外部数据存储 器的000EH和

9、000FH单元的内 容相交换。常用程序结构 : 顺序程序、分支程序、循环程序、子程序。000EH000FH000EH000FH000EH000FH000EH000FH分析: 外部数据存储器的数据操 作只能用MOVX指令,且只能 与A相互传送,因此必须用一个 中间环节作暂存,设用20H单元 。用R0、R1指示两单元的低八 位地址,高八位地址由P2指示 。编程过程如下:000EH000FH000EH000FH000EH000FH第3章 MCS-51单片机汇编语言程序设计 ORG 0000HMOV P2, #0H ;送地址高八位至P2口MOV R0, #0EH ;R0= 0EH MOV R1, #0

10、FH ;R1=OFHMOVX A, R0 ;A=(000EH)MOV 20H, A ;(20H)=(000EH)MOVX A, R1 ;A=(000FH)XCH A, 20H ; A=(000EH),(20H)=(000FH) MOVX R1, A MOV A, 20HMOVX R0, A ;交换后的数送各单元SJMP $END第3章 MCS-51单片机汇编语言程序设计 3.3 顺序程序设计 顺序程序(简单程序),程序走向只有一条路径例3-2:将R4R5双字节符号数(负数原码)求补码程序。ORG 0000HMOV A,R5 ;取低字节CPL AADD A,#1 ;低字节变补MOV R5,AMO

11、V A,R4 ;取高字节CPL AADDC A,#0 ;高字节变补ORL A, #80H; 恢复负号MOV R4,AEND 即一个负数的原码被转换成它的补码第3章 MCS-51单片机汇编语言程序设计 例3-3 分解压缩式BCD码,使其成为非压缩式BCD码。 ORG 0000H MOV R0,#40H;设指针 MOV A,R0;取一个字节 MOV R2,A;暂存 ANL A,#0FH;清0高半字节 INC R0 MOV R0,A ;保存数据个位片内RAM 42H 41H 40H65MOV A,R2 SWAP A ;十位换到低半字节 ANL A,#0FH INC R0 MOV R0,A;保存数据十

12、位 END0506第3章 MCS-51单片机汇编语言程序设计 地址数据 TAB0 TAB+1 1 TAB+2 4 TAB+3 9 TAB+4 16H TAB+5 25H例3-4 设变量放在片内RAM的20H单元,其值为00H05H 之间,要求编写查表程序,查出变量的平方值, 并放入片内RAM的21H单元。ORG 0000HMOV DPTR,#TAB MOV A,20HMOVC A,A+DPTR ;查表MOV 21H,ASJMP $ TAB: DB 00H,01H,04H,09H,16H,25H END分析 :在程序存储器安排一张平方表,首地址为TAB ,以DPTR指向表首址,A存放变量值,利用

13、查表指令 MOVC A,A+DPTR,即可求得。 表中数据用BCD码存放合乎人们的习惯。如果平方值为两个字节,程序应如何编?DPTRA第3章 MCS-51单片机汇编语言程序设计 ORG 0000HMOV A,R2JNB ACC.7,N ;为正数?CPL A ;负数变补INC AMOV R2,A N: SJMP $ ;结束3.4 分支程序的设计由条件转移指令构成程序判断框部分,形成分支结构3.5.1 单分支程序一个判断决策框,两种分支结构图。 条件满足? N影响条件Y处理段条件满足? N影响条件Y处理1处理2例1 求8位有符号数的绝对值。方法:正数不变,负数求补第3章 MCS-51单片机汇编语言

14、程序设计 例2 用单片机加重力传感器作磅秤,秤出重量后算出行李运费 价格,其秤出的重量以10kg为1个计价单位G , G已存入40H单元 。计价方法为: 50kg以内按3元; 50kg以上 分段计价,即50kg按3元计价,超过 部分按5元(即3元再加价2元)计价。 由此列出算式: G3 + (G-5)2; 当G5M=G3 ;当G5 因3G重复使用,先暂存在R2中。流 程见左图, 程序如下:(10kg时,G=1)第3章 MCS-51单片机汇编语言程序设计 ORG 0100H FRT: MOV A,40H;取行李重量计价单位GMOV R3,AMOV B,#03H;运费M=G3MUL ABMOV R2,A;暂存3GMOV A,R3;取回GCJNE A,#05H,L1;G 5 ?SJMP WETC L1: JC WETC;是,转至WETCSUBB A,#05H;否则 A=G-5RLC A ;A=2(G-5)ADD A,R2 ; M=3G+2(G-5) MOV R2 ,A WETC:MOV 41H,R2 ;存运费 MRET第3章 MCS-51单片机汇编语言程序设计 多分支散转程序的设计 有一类分支程序,它根据不同的输入条件或不同的运算结果, 转向不同

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号