MCS51单片机汇编语音程序设计课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《MCS51单片机汇编语音程序设计课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MCS51 单片机 汇编 语音 程序设计 课件
- 资源描述:
-
1、第3章 51单片机汇编语言程序设计第3章 汇编语言程序设计刘尊民刘尊民第1页,共42页。第3章 51单片机汇编语言程序设计内内 容容 提提 要要概述概述伪伪指令指令汇编语言程序设计步骤汇编语言程序设计步骤顺序程序设计顺序程序设计分支程序设计分支程序设计循环程序设计循环程序设计位操作程序设计位操作程序设计子程序子程序小结小结第2页,共42页。第3章 51单片机汇编语言程序设计3.1 概述概述 MCS-51单片机的编程语言可以是汇编语言也可以单片机的编程语言可以是汇编语言也可以是高级语言(如是高级语言(如C语言),高级语言编程快捷,但程语言),高级语言编程快捷,但程序长,占用存储空间大,执行慢;汇
2、编语言产生的目序长,占用存储空间大,执行慢;汇编语言产生的目标程序简短,占用存储空间小,执行快,能充分发挥标程序简短,占用存储空间小,执行快,能充分发挥计算机的硬件功能。无论是高级语言还是汇编语言,计算机的硬件功能。无论是高级语言还是汇编语言,源程序都要转换成目标程序(机器语言)单片机才能源程序都要转换成目标程序(机器语言)单片机才能执行。执行。第3页,共42页。第3章 51单片机汇编语言程序设计连接连接/定位器定位器L51汇编语言汇编语言源程序源程序汇编器汇编器A51符号转换程序符号转换程序OHS51绝对地址目绝对地址目标程序标程序.BINC语言程序语言程序浮动浮动地址地址目标目标程序程序编
3、译器编译器C51 HEX图图 3-1 两种语言源程序转换成目标程序两种语言源程序转换成目标程序第4页,共42页。第3章 51单片机汇编语言程序设计 目前很多公司将编辑器、汇编器、编译器、连接目前很多公司将编辑器、汇编器、编译器、连接/定位定位器、符号转换程序做成集成软件包,用户进入该集成环境,器、符号转换程序做成集成软件包,用户进入该集成环境,编辑好程序后,只需点击相应菜单就可以完成上述的各步,编辑好程序后,只需点击相应菜单就可以完成上述的各步,如如WAVEWAVE、KEIL KEIL,WAVEWAVE集成软件的使用见附录。集成软件的使用见附录。汇编汇编:将汇编语言:将汇编语言源程序源程序转换
4、成机器语言转换成机器语言目标目标程序的程序的过程称为汇编。过程称为汇编。汇编程序汇编程序:能将汇编语言:能将汇编语言源程序源程序转换成机器语言转换成机器语言目标目标程序的系统软件称为汇编程序。程序的系统软件称为汇编程序。第5页,共42页。第3章 51单片机汇编语言程序设计汇编的方法汇编的方法:汇编的方法有两种:汇编的方法有两种1.手工汇编手工汇编:人工查指令表,查出程序中每条指令对应的机人工查指令表,查出程序中每条指令对应的机器代码。早期的计算机使用。器代码。早期的计算机使用。2.机器汇编机器汇编:用计算机中的汇编程序对用户源程序进行汇编。用计算机中的汇编程序对用户源程序进行汇编。用机器汇编要
5、提供给汇编一些信息,遵循汇编程用机器汇编要提供给汇编一些信息,遵循汇编程序的一些约定。这些由伪指令指定。序的一些约定。这些由伪指令指定。第6页,共42页。第3章 51单片机汇编语言程序设计1)确定程序中每条汇编语言指令的指令机器码确定程序中每条汇编语言指令的指令机器码2)确定每条指令在存储器中的存放地址确定每条指令在存储器中的存放地址3)提供错误信息提供错误信息4)提供目标执行文件提供目标执行文件(*.OBJ/*.HEX)和列表文件和列表文件(*.LST)地址地址 机器码机器码源程序源程序 ORG 2000H 2000H 78 30 MAIN:MOV R0,#30H 2002H E6 MOV
6、A,R0 第7页,共42页。第3章 51单片机汇编语言程序设计1.机器指令:指令系统中的全部指令。每条机器指令都机器指令:指令系统中的全部指令。每条机器指令都有对应的机器代码,可以被有对应的机器代码,可以被CPU执行。执行。2.伪指令:伪指令:汇编控制指令,没有指令代码,只用于汇编汇编控制指令,没有指令代码,只用于汇编过程,为汇编程序提供汇编信息。过程,为汇编程序提供汇编信息。一、汇编语言指令类型一、汇编语言指令类型 宏汇编功能:将需要反复多次执行的程序段定义成一个宏宏汇编功能:将需要反复多次执行的程序段定义成一个宏指令名(宏定义)。编程时,可在程序中使用宏指令名来替指令名(宏定义)。编程时,
7、可在程序中使用宏指令名来替代被定义的程序段(宏调用)。代被定义的程序段(宏调用)。3.2伪指令伪指令第8页,共42页。第3章 51单片机汇编语言程序设计宏定义过程宏定义过程:宏调用过程:宏调用过程:宏指令名宏指令名 实际参数实际参数 宏指令名宏指令名 实际参数实际参数宏指令名宏指令名 MACRO 形式参数形式参数 ;被定义的程序段;被定义的程序段 ENDM第9页,共42页。第3章 51单片机汇编语言程序设计二伪指令二伪指令 常用伪指令及功能:常用伪指令及功能:1.起始指令起始指令 ORG nn功能:定义程序或数据块的起始地址。功能:定义程序或数据块的起始地址。指示此语句后面的程序指示此语句后面
8、的程序或数据块以或数据块以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第10页,共42页。第3章 51单片机汇编语言程序设计2.字节定义字节定义 标号:标号:DB(字节常数,(字节常数,或字符或表达式)或字符或表达式)功能:功能:指示在程序存储器中以标号为起始地址的指示在程序存储器中以标号为起始地址的单
9、元里存放的数为字节数据(八位二进制数)。单元里存放的数为字节数据(八位二进制数)。例如例如 LN:DB 32,C,25H,-1;LNLN+2 地地址单元依次存放址单元依次存放20H,43H,25H,FFH地址地址 数据数据LN20LN+143LN+225LN+3FF3.字定义字定义 标号:标号:DW(字常数或表达式(字常数或表达式)作用:作用:指示在程序存储器中以标号为起始地址指示在程序存储器中以标号为起始地址的单元里存放的数为字数据(即的单元里存放的数为字数据(即16位的二进制数),位的二进制数),例如:例如:GH:DW 1234H,5678H,08GH1234GH+25678GH+4000
10、8第11页,共42页。第3章 51单片机汇编语言程序设计 5.等值指令等值指令 标号标号 EQU(数值表达式)(数值表达式)表示表示EQU两边的量等值,用于为标号或标识符赋值。两边的量等值,用于为标号或标识符赋值。例如:例如:X1 EQU 2000H X2 EQU 0FH MAIN:MOV DPTR,#X1 ;DPTR=2000H ADD A,#X2 ;A=A+0FH4保留字节保留字节 标号:标号:DS(数值表达式)(数值表达式)作用:作用:指示在程序存储器中保留以标号为起始地指示在程序存储器中保留以标号为起始地址的若干字节单元,其单元个数由数值表达式指定。址的若干字节单元,其单元个数由数值表
11、达式指定。例如例如 L1:DS 32;从从L1地址开始保留地址开始保留32个存储单元。个存储单元。第12页,共42页。第3章 51单片机汇编语言程序设计6.位定义位定义 标号标号 BIT 位地址位地址 作用:作用:同同EQU指令,不过定义的是位操作地址。指令,不过定义的是位操作地址。例如例如 AIC BIT P1.1。7.汇编结束汇编结束 END作用:作用:指示源程序段结束。指示源程序段结束。END指令放在程序的最后。指令放在程序的最后。A51汇编程序还有一些其它的伪指令,列在教材表汇编程序还有一些其它的伪指令,列在教材表3-1中,以中,以备查阅。备查阅。第13页,共42页。第3章 51单片机
12、汇编语言程序设计汇编语言程序设计步骤汇编语言程序设计步骤一一.确定方案和计算方法确定方案和计算方法二二.了解应用系统的硬件配置、性能指标了解应用系统的硬件配置、性能指标三三.建立系统数学模型,确定控制算法和操作步骤建立系统数学模型,确定控制算法和操作步骤四四.合理分配存储器单元和了解合理分配存储器单元和了解I/O接口地址接口地址五五.编制源程序编制源程序1.按功能设计程序,明确各程序之间按功能设计程序,明确各程序之间的相互关系的相互关系2.用流程图表示程序结构和功能用流程图表示程序结构和功能开始开始1 YN?3.程序中用注释说明指令在程序中的程序中用注释说明指令在程序中的作用,方便阅读、调试和
13、修改作用,方便阅读、调试和修改第14页,共42页。第3章 51单片机汇编语言程序设计 顺序程序设计顺序程序设计例例3-1 编程将外部数据存储器编程将外部数据存储器的的000EH和和000FH单元的内单元的内容相换。容相换。常用程序结构常用程序结构 顺序程序、分支程序、顺序程序、分支程序、循环程序、子程序循环程序、子程序000EH000FH000EH000FH000EH000FH000EH000FH分析分析:外部数据存储器的数据操外部数据存储器的数据操作只能用作只能用MOVX指令,且只能指令,且只能和和A之间传送,因此必须用一个之间传送,因此必须用一个中间环节作暂存,设用中间环节作暂存,设用20
14、H单元。单元。用用R0、R1指示两单元的低八位指示两单元的低八位地址,高八位地址由地址,高八位地址由P2指示。指示。编程过程如下:编程过程如下:000EH000FH000EH000FH000EH000FH第15页,共42页。第3章 51单片机汇编语言程序设计 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 A,R1 ;A=(000FH)XCH A,20H ;A=(000EH),(20H
15、)=(000FH)MOVX R1,A MOV A,20H MOVX R0,A ;交换后的数送各单元交换后的数送各单元 SJMP$END第16页,共42页。第3章 51单片机汇编语言程序设计 3.3 顺序程序设计顺序程序设计顺序程序顺序程序(简单程序简单程序),程序走向只有一条路径,程序走向只有一条路径第17页,共42页。第3章 51单片机汇编语言程序设计例例3-3 分解压缩式分解压缩式BCD码码,使其成为非压缩式使其成为非压缩式BCD码。码。ORG 0000HMOV R0,#40H;设指针;设指针MOV A,R0;取一个字节;取一个字节MOV R2,A;暂存;暂存ANL A,#0FH;清;清0
16、高半字节高半字节INC R0MOV R0,A ;保存数据个位;保存数据个位片内片内RAM42H41H40H65MOV A,R2SWAP A ;十位换到低半字节;十位换到低半字节ANL A,#0FHINC R0MOV R0,A;保存数据十位;保存数据十位END05050606第18页,共42页。第3章 51单片机汇编语言程序设计地址数据TAB0TAB+11TAB+24TAB+39TAB+416HTAB+525H例例3-4 设变量放在片内设变量放在片内RAM的的20H单元单元,其值为其值为00H05H之间之间,要求编查表程序要求编查表程序,查出变量的平方值查出变量的平方值,并放入片内并放入片内RA
17、M的的21H单元。单元。ORG 0000H MOV DPTR,#TAB MOV A,20H MOVC A,A+DPTR;查表查表 MOV 21H,A SJMP$TAB2:DB 00H,01H,04H,09H,16H,25H END分析分析:在程序存储器安排一张平方表,首地址为:在程序存储器安排一张平方表,首地址为TAB,以,以DPTR指向表首址,指向表首址,A存放变量值,利用查表指令存放变量值,利用查表指令MOVC A,A+DPTR,即可求得。,即可求得。表中数据用表中数据用BCD码存放合乎人们的习惯码存放合乎人们的习惯.如果平方值为两个字节,程序应如何编。如果平方值为两个字节,程序应如何编。
18、DPTRA第19页,共42页。第3章 51单片机汇编语言程序设计 ORG 0000H ORG 0000H MOV A,R2 JNB ACC.7,N ;为正数?;为正数?CPL A ;负数变补;负数变补 INC A MOV R2,AN:SJMP$;结束;结束 3.4 分支程序的设计 由条件转移指令构成程序判断框部分,形成分支结构3.5.1 3.5.1 单分支程序单分支程序一个判断决策框,两种分支结构图。一个判断决策框,两种分支结构图。条件满足条件满足?N影响条件影响条件Y处理段处理段条件满足条件满足?N影响条件影响条件Y处理处理1处理处理2例例1 1 求求8 8位有符号数的绝对值。位有符号数的绝
19、对值。方法:正数不变,负数变补方法:正数不变,负数变补第20页,共42页。第3章 51单片机汇编语言程序设计 例例2 用单片机加重力传感器作磅秤,秤出重量后算出行李运费价格,用单片机加重力传感器作磅秤,秤出重量后算出行李运费价格,其秤出的重量以其秤出的重量以10kg为为1个计价单位个计价单位G,G已存入已存入40H单元。计价方法单元。计价方法为为50kg以内按以内按3元元,50kg以上以上分段计价分段计价:50kg按按3元计价元计价,超过部分按,超过部分按2元计价。元计价。由此列出算式:由此列出算式:G3+(G-5)2;当当G5M=G3 ;当;当G5 3G因重复使用,先暂存在因重复使用,先暂存
20、在R2。流程。流程见左见左,程序如下:程序如下:第21页,共42页。第3章 51单片机汇编语言程序设计 多分支散转程序的设计多分支散转程序的设计 有一类分支程序有一类分支程序,它根据不同的输入条件或不同的运算结果它根据不同的输入条件或不同的运算结果,转向不同的处理程序转向不同的处理程序,称之为散转程序。这类程序通常利用称之为散转程序。这类程序通常利用JMPA+DPTR间接转移指令实现转移。有如下两种设计方法:间接转移指令实现转移。有如下两种设计方法:1.查转移地址表查转移地址表:将将转移地址转移地址列成表格,将表格的内容作转移的目标地址。列成表格,将表格的内容作转移的目标地址。2.查转移指令表
21、查转移指令表:将转移到不同程序的将转移到不同程序的转移指令转移指令列成表格,判断条件后查表,列成表格,判断条件后查表,转到表中指令执行转到表中指令执行,下面用两个例子说明。下面用两个例子说明。第22页,共42页。第3章 51单片机汇编语言程序设计1.利用转移地址表实现转移利用转移地址表实现转移 例例3-7 根据根据R3的内容转向对应的程序,的内容转向对应的程序,R3的内容为的内容为0n,处处理程序的入口符号地址分别为理程序的入口符号地址分别为PR0PRn(n128)。分析:将分析:将PR0PRn入口地址列在表格中,每一项占两个单入口地址列在表格中,每一项占两个单元,元,PRn在表中的偏移量为在
展开阅读全文