ImageVerifierCode 换一换
格式:PPTX , 页数:29 ,大小:298.20KB ,
文档编号:4147042      下载积分:22 文币
快捷下载
登录下载
邮箱/手机:
温馨提示:
系统将以此处填写的邮箱或者手机号生成账号和密码,方便再次下载。 如填写123,账号和密码都是123。
支付方式: 支付宝    微信支付   
验证码:   换一换

优惠套餐
 

温馨提示:若手机下载失败,请复制以下地址【https://www.163wenku.com/d-4147042.html】到电脑浏览器->登陆(账号密码均为手机号或邮箱;不要扫码登陆)->重新下载(不再收费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录  
下载须知

1: 试题类文档的标题没说有答案,则无答案;主观题也可能无答案。PPT的音视频可能无法播放。 请谨慎下单,一旦售出,概不退换。
2: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
3: 本文为用户(晟晟文业)主动上传,所有收益归该用户。163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

1,本文(单片机汇编语言程序设计课件.pptx)为本站会员(晟晟文业)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!

单片机汇编语言程序设计课件.pptx

1、单片机汇编语言程序设计单片机汇编语言程序设计n汇编语言汇编语言n机器语言(面向机器 二进制表示)n汇编语言(面向机器 助记符表示)n高级语言(面向用户 类人语言)单片机汇编语言程序设计单片机汇编语言程序设计n汇编语言的格式 标号段 操作码段 操作数段 注释段指令语句伪指令 ORG(起始汇编)END(起始汇编)EQU(赋值)DATA(数据地址赋值)DB(定义字节)DW DS BIT单片机汇编语言程序设计单片机汇编语言程序设计n 例例 设在内部RAM的BLOCK单元内有一无符号数据块的长度,无符号数据块起始地址是BLOCK+1。n试编程求无符号数据块中数据的累加和(不考虑进位的加法之和),并把它存

2、入SUM单元。n 单片机汇编语言程序设计单片机汇编语言程序设计n 解解:n程序应能对数据块长度作出判断:n若它不为零,则求和;n若它为零,则不必进行加法。n相应程序为:n 单片机汇编语言程序设计单片机汇编语言程序设计nORG 1000H SUM DATA 1FH BLOCK DATA 20H START:MOV R0,#BLOCK ;数据块长度地址送R0n MOV A,R0 ;数据块长度送An CJNE A,#00H,LOOP ;若数据块长0,则LOOPHERE:SJMP$;若数据块长=0,则结束 LOOP:CLR A NEXT:INC R0 ;修改数据指针n ADD A,R0 ;加一个数n

3、DJNZ BLOCK,NEXT ;若(BLOCK)-10,则NEXTn MOV SUM,A ;存累加和n SJMP HEREn END程序设计方法程序设计方法1 1作程序流程图作程序流程图 根据题意,找出最合理、简便的解决方法并根据题意,找出最合理、简便的解决方法并作程序流程图。作程序流程图。流程图分粗略和详细两种,粗略流程图给出流程图分粗略和详细两种,粗略流程图给出大致步骤,而详细流程图则给出每一步骤细节。大致步骤,而详细流程图则给出每一步骤细节。对一些大问题,先给出粗略流程图以得出总体对一些大问题,先给出粗略流程图以得出总体概念,再作详细流程图对每一步骤作具体描述概念,再作详细流程图对每一

4、步骤作具体描述;程序设计方法程序设计方法2 2存贮单元分配存贮单元分配 根据题意合理地分配程序和数据在存贮器根据题意合理地分配程序和数据在存贮器中地址。中地址。存贮单元分配合理,可使编程简单和避免存贮单元分配合理,可使编程简单和避免程序出错。程序出错。应避免程序区与数据区相互混合、交叉。应避免程序区与数据区相互混合、交叉。内部数据存储器结构内部数据存储器结构n内部数据存内部数据存储器储器00-7FH00-7FH的结构的结构7FH30H堆栈堆栈通用数据存储器通用数据存储器通用数据存储器通用数据存储器(位寻址)(位寻址)RB3(R0-R7)RB2(R0-R7)RB1(R0-R7)RB0(R0-R7

5、)20H00H07H10H17HMOV Rn,AMOV A,RnSETBCLRMOV R0,AMOV A,R0MOV R0,AMOV A,R0MOV SP,#5FHPUSH POPMCS-51MCS-51单片机外部存储器使用单片机外部存储器使用n外部数据存储器寻址范围为外部数据存储器寻址范围为64K,包括,包括外外部数据存储器和部数据存储器和I/On通过数据指针指定外部数据存储器的地址通过数据指针指定外部数据存储器的地址 MOVX A,DPTR MOVX DPTR,An采用间接地址指定外部数据存储器的地址采用间接地址指定外部数据存储器的地址 MOVX A,R0/R1 MOVX R0/R1,A程

6、序设计方法程序设计方法3 3源程序编制源程序编制 将流程图中每步所规定的操作用程序将流程图中每步所规定的操作用程序语言实现,可选用不同指令,各人所编程语言实现,可选用不同指令,各人所编程序可能不同。序可能不同。程序质量衡量标准为:程序短,占用程序质量衡量标准为:程序短,占用存贮单元少,运行时间短,而且程序结构存贮单元少,运行时间短,而且程序结构合理。合理。源程序源程序标号操作码 操作数O R G 4 0 0 0 H MOVA,#00H MOV30H,AINC AMOVDPTR,#4100HMOVX DPTR,A INC A INCDPTRMOV A,R2 MOVX DPTR,A HE:SJMP

7、 HE 把直接数00H送到内部RAM30H单元中,把直接数01H及02H分别送到外部RAM4000H、4001H单元中。MCS-51MCS-51单片机程序设计单片机程序设计 简单程序简单程序n设计设计MCS-51MCS-51程序时,程序时,需注意内部存储器需注意内部存储器访问和外部存储器访问和外部存储器访问访问MCS-51MCS-51单片机程序设计单片机程序设计n分支程序常分支程序常用的指令用的指令指令功能JZ relJNZ relJC relJNC relJB bit,relJNB bit,relJBC bit,relCJNE A,direct,relCJNE A,#data,relCJNE

8、 Rn,#data,relCJNE Rn,#data,rel的内容为零转移此位为转移,并将此位清零的内容非零转移转移转移此位为转移此位非转移两数不相等转移两数不相等转移两数不相等转移两数不相等转移MCS-51MCS-51单片机程序设计单片机程序设计n分支程序分支程序在寄存器在寄存器R2中存有数中存有数码码0 0F,要求将其转,要求将其转换为换为ASCII码,并存码,并存于外部存贮器于外部存贮器 4100H单元中单元中 R2 AR2 AA+30HA+30HA0AHA0AHY YN NA (4100H)A (4100H)A+37HA+37H停机停机MCS-51MCS-51单片机程序设计单片机程序设

9、计利用散转指令实现多分支程序的方法利用散转指令实现多分支程序的方法 将直接转移指令如将直接转移指令如AJMPAJMP、LJMPLJMP构成转移表,构成转移表,将此表的首地址装入数据指针将此表的首地址装入数据指针DPTRDPTR,把标志单,把标志单元的内容乘以转移指令表所采用的直接转移指元的内容乘以转移指令表所采用的直接转移指令的长度令的长度(AJMP(AJMP为为2 2、LJMPLJMP为为3)3),并传送到累加,并传送到累加器器A A中,然后调用中,然后调用JMPA+DPTRJMPA+DPTR指令实现散转。指令实现散转。MCS-51MCS-51单片机程序设计单片机程序设计 利用地址偏移量表实

10、现多分支程序利用地址偏移量表实现多分支程序 适用于各个处理程序的目的地址均在适用于各个处理程序的目的地址均在同一页的情形同一页的情形 先将处理程序的目时地址减去表的首地址先将处理程序的目时地址减去表的首地址(应在同一页内,不大于应在同一页内,不大于256256字节字节)构成一偏移量构成一偏移量表,将表的首地址装入数据指针表,将表的首地址装入数据指针DPTRDPTR,利用查表,利用查表指令指令MOVC AMOVC A,A+DPTRA+DPTR求出偏移量,然后利用求出偏移量,然后利用JMPA+DPTRJMPA+DPTR实现散转。实现散转。MCS-51MCS-51单片机程序设计单片机程序设计利用目的

11、地址表实现多分支程序利用目的地址表实现多分支程序 将目的地址直接转成目的地址表,然后利将目的地址直接转成目的地址表,然后利用查表的方法根据标志单元的内容求出目的地用查表的方法根据标志单元的内容求出目的地址,将此地址装入数据指针址,将此地址装入数据指针DPTR,将累加器,将累加器A清零,再利用清零,再利用JMP A+DPTR实现散转利用实现散转利用地址偏移量表实现多分支程序,适用于各个处地址偏移量表实现多分支程序,适用于各个处理程序的目的地址均在同一页的情形理程序的目的地址均在同一页的情形.循环程序循环程序n将内部RAM的40H 4FH单元置为00H0FH,n以R2作为循环计数器 MCS-51M

12、CS-51单片机程序设计单片机程序设计 R 2-1=0NYR 2=#1 0 HR 0=#4 0 HA=#0 0 HA+1,R 0+1A R 0停停 机机循环程序循环程序n把内部把内部RAM40H 4FH的内容传送到外的内容传送到外部数据存储器的部数据存储器的4100H 410FH单元单元内。内。n以以R2作为循环计数器作为循环计数器 MCS-51MCS-51单片机程序设计单片机程序设计 R2-1=0NYR0 AA DPTRR2=#10HR0=#40HDPTR=#4100HR0+1,DPTR+1停停机机循环程序循环程序n将外部数据存储器中4100H 410FH单元置为00H0FHn以内部RAM

13、32H作为循环计数器MCS-51MCS-51单片机程序设计单片机程序设计 32H-1=0NY32H=#10HDPTR=#4100HA=#00HA+1,DPTR+1A DPTR停停 机机循环程序循环程序n将将4100H 410FH单单元的内容传送到元的内容传送到4200H开始的单元中。开始的单元中。n以内部以内部RAM 32H作为作为循环计数器,循环计数器,n用用30H、31H作为作为4200H的地址计数器的地址计数器 MCS-51MCS-51单片机程序设计单片机程序设计 3 2 H-1=0NY D P T R AD P T R+13 2 H=#1 0 HD P T R=#4 1 0 0 H3

14、1 H=#4 2 H,3 0 H=#0 0 H压压 入入 D P T R停停 机机3 1 H D P H3 0 H D P L弹弹 出出 D P T R A D P T R3 0 H+1MCS-51MCS-51单片机程序设计单片机程序设计 查表程序查表程序 在在R2寄存器存有数寄存器存有数09的的BCD码,利用查表程序求码,利用查表程序求其平方值,并存于其平方值,并存于4100H单元中。单元中。先将先将09平方值的平方值的BCD码存码存于程序存贮器中,标号为于程序存贮器中,标号为TABLE。R2 AA+偏移量 AMOVC AA+DPTRA (4100H)停机专用系统的程序构成专用系统的程序构成

15、 一个完整的系统程一个完整的系统程序的结构序的结构 专用系统的系统程序必专用系统的系统程序必须具备一个完整的结构,须具备一个完整的结构,保证在系统上电时能自动保证在系统上电时能自动启动,并根据系统硬件的启动,并根据系统硬件的要求执行一定功能要求执行一定功能 程程序序启启动动地地址址定定义义堆堆栈栈区区设设定定系系统统硬硬件件初初始始化化数数据据区区初初始始化化中中断断程程序序入入口口地地址址设设定定主主程程序序、子子程程序序中中断断服服务务程程序序数数据据 专用系统程序设计应注意的问题专用系统程序设计应注意的问题n寻址范围寻址范围:nMCS-51单片机具有单片机具有n64K程序存储器和程序存储

16、器和64K数据存储器的数据存储器的寻址能力寻址能力。n数据存储器和数据存储器和I/O设备统一编址均在设备统一编址均在64K的范围内。的范围内。专用系统程序设计应注意的问题专用系统程序设计应注意的问题n复位复位n复位后的程序指针为复位后的程序指针为0000H,n系统硬件必须将程序存储器的地址安排在系统硬件必须将程序存储器的地址安排在0000H开始的存储器,使其与系统复位后的程序指针保开始的存储器,使其与系统复位后的程序指针保持一致。持一致。n同时在设计系统程序时,也必须将程序的起始地同时在设计系统程序时,也必须将程序的起始地址安排在址安排在0000H开始的单元中。开始的单元中。专用系统程序设计应

17、注意的问题专用系统程序设计应注意的问题n堆栈的设置堆栈的设置n堆栈理论上可安排在内部堆栈理论上可安排在内部RAM的的00H7FH单元。单元。n由于由于00H1FH为寄存器组,为寄存器组,20H2FH为位操作为位操作单元,此外还需在单元,此外还需在30H以后的地址安排部分工作以后的地址安排部分工作单元,单元,n因此堆栈通常只能安排在大于因此堆栈通常只能安排在大于30H的内部的内部RAM中中。专用系统程序设计应注意的问题专用系统程序设计应注意的问题n堆栈操作堆栈操作n采用了在数据压入堆栈时,堆栈指针加大,而数采用了在数据压入堆栈时,堆栈指针加大,而数据弹出堆栈时,堆栈指针减小的方法,因此可将据弹出

18、堆栈时,堆栈指针减小的方法,因此可将堆栈指针设置为在内部堆栈指针设置为在内部RAM中堆栈的最小地址减中堆栈的最小地址减1。n堆栈大小堆栈大小n应估计子程序和中断程序使用的数量和数据压入应估计子程序和中断程序使用的数量和数据压入弹出堆栈的数量,以弹出堆栈的数量,以确定堆栈大小确定堆栈大小。如堆栈估计。如堆栈估计不足将导致程序无法执行,形成死机。不足将导致程序无法执行,形成死机。专用系统程序设计应注意的问题专用系统程序设计应注意的问题n中断功能的使用中断功能的使用nMCS-51单片机采用单片机采用5个中断个中断:外部中断外部中断0、定时器、定时器T0中断、中断、外部中断外部中断1、定时器、定时器T

19、1中断和串行口中断,中断和串行口中断,n中断服务程序入口地址分别为中断服务程序入口地址分别为 0003H、000BH、0013H、001BH和和0023H。专用系统程序设计应注意的问题专用系统程序设计应注意的问题n中断功能的使用中断功能的使用n如程序中使用上述中断,就在上述地址内存放相应如程序中使用上述中断,就在上述地址内存放相应的的转移指令转移指令,在执行中断程序时,通过这,在执行中断程序时,通过这5个地址个地址的转移指令跳转到相应的中断服务程序中。的转移指令跳转到相应的中断服务程序中。n地址地址0000H到到0003H之间只有之间只有3个字节个字节,因此启动,因此启动地址通常只能安排转移指令,使程序在启动后转移地址通常只能安排转移指令,使程序在启动后转移到主程序到主程序。单片机仿真器的使用

侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|