单片机第三章.ppt
《单片机第三章.ppt》由会员分享,可在线阅读,更多相关《单片机第三章.ppt(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、LOGO单片机原理及应用第二章 汇编语言和汇编程序汇编语言的基本概念汇编语言的基本概念v程序 一条指令只能完成有限的功能,要完成比较复杂的功能,就要有一组按一定顺序排列的指令,即程序。程序是指令的有序集合。本章介绍MCS-51单片机的汇编语言程序设计。因为实现某一功能的程序并不是唯一的,程序有简有繁,占用内存单元有多有少,执行时间有长有短,所以我们应根据单片机的指令系统,力求编制简洁、占内存少、执行时间短的程序。在程序设计中,只有精心设计、选择合适的指令和合理的结构,才能达到上述的目标。第二章 汇编语言和汇编程序程序设计语言程序设计语言计算机程序设计语言是计算机能够理解和执行的语言。它随着计算
2、机的诞生而诞生,它随着计算机的发展而发展。迄今为止,计算机的程序设计语言很多,但通常分为机器语言、汇编语言、高级语言三种。1、机器语言 是一种直接为计算机识别和执行的机器级语言。有两种表现形式:一种是二进制形式,一种是十六进制形式。机器语言的二进制形式由二进制代码“0”和“1”构成,可以直接存放在计算机存储器内。机器语言的十六进制形式,由十六个数字符0-F组成。机器语言难读、难写、难记、难改,一般不用来编写程序。2、汇编语言 是人们用来替代机器语言进行程序设计的语言。由助记符、保留字和伪指令组成。3、高级语言 是面向过程和问题并能独立于机器的通用程序设计语言。第二章 汇编语言和汇编程序汇编语言
3、概述汇编语言概述v用助记符编写的程序设计语言称为汇编语言。v汇编语言是面向机器的语言,和CPU有关,不同的CPU的机器有不同的汇编语言;v汇编语言属于低级语言;v程序设计就是编写计算机程序的过程;v特点:用汇编程序设计单片机程序时,对数据的存放、寄存器和工作单元的使用等具体工作要由设计者来安排。而设计高级语言时,这些工作都由计算机自动安排,程序设地者不必过问。第二章 汇编语言和汇编程序程序设计步骤程序设计步骤分析问题确定算法绘制程序流程图分配内存单元编写汇编源代码调试第二章 汇编语言和汇编程序程序设计步骤程序设计步骤v分析问题 首先,要对需要解决的问题进行分析,以求对问题有正确的理解,明确任务
4、和要求。例如,解决问题的目的是什么,最终要达到什么要求,现有的条件,已知的数据,对运算精度各速度方面的要求等。v确定算法 解决一个问题,常常有几种可选择的方法。从数学角度来描述,可能有几种不同的算法。在编制程序前,先对不同的算法进行分析比较,找出最适宜的算法。第二章 汇编语言和汇编程序程序设计步骤程序设计步骤v绘制程序流程图程序设计工作往往很复杂,为了把复杂的工作条理化,经常使用流程图使设计思路清晰、直观;(工具Visio)流程图是一些规定的几何图形,通过带箭头的线条有机地连在一起而组成的,是对程序执行过程的一种形象描述;椭圆框:表示程序的起始或结束;矩形框:表示要进行的工作;菱形框:表示要判
5、断的事情,菱形框的表达式表示要判断的内容;圆圈:表示连接点;流程线:表示程序的走向;子程序框:表示调用子程序。准备开始/结束判断调用过程第二章 汇编语言和汇编程序程序设计步骤程序设计步骤v分配内存单元 分配内存单元,确定程序和数据区的其实地址;v编写源程序 按流程图要求编写指令,所编程序力求简洁明了,层次清晰,运算迅速,少占内存。v调试程序 程序编制好后,必须经过上机调试检查。先将汇编程序通过汇编生成目标程序,消除语法错误;再可以通过仿真软件模拟调试,如观看寄存器的值的变化;最后在实际系统进行联调,直到达到预定要求。第二章 汇编语言和汇编程序程序设计的基本技术程序设计的基本技术顺序程序设计1分
6、支程序设计2循环程序设计3子程序设计4第二章 汇编语言和汇编程序程序设计的基本技术程序设计的基本技术顺序程序:是最简单的程序,它的执行顺序和程序中指令的排列顺序完全一致。分支程序:执行顺序和指令存储顺序失去了完全的一致性。把不同的处理方法编制成各自的处理程序,运行时由计算机根据不同的条件自动做出选择判别,绕过某些指令,仅执行相应的处理程序段。循环程序:重复地执行某些指令。“先执行,后判断”;“先判断,后执行”两种。子程序:不同的程序中或同一个程序中的不同位置常常用到功能完全一致的程序段。这种被独立出来的程序段被称为子程序。第二章 汇编语言和汇编程序3.1 顺序程序设计顺序程序设计v顺序结构流程
7、图准备结束过程1过程2例:将内部RAM 40H单元中一压缩BCD数转换为二进制数。关键知识点:p压缩BCD数:例,98H表示10进制数98。十位9存放在40H的高4位,个位8存放在40H的低4位;p十位乘以10,再加上个位,为二进制数,即可实现转换;p100的10进制数,为二进制的64H;第二章 汇编语言和汇编程序3.1 顺序程序设计顺序程序设计MOV A,40H;将BCD数的十位放A的低4位SWAP AANL A,#0FHMOV B,#10MUL AB;十位乘以10ANL 40H,#0FH;将BCD数的个位保留在40H单元中ADD A,40H;10位乘以10加个位MOV 40H,A第二章 汇
8、编语言和汇编程序3.1 顺序程序设计顺序程序设计例:设一个非压缩BCD数(09)放在内部RAM 60H单元中,求其平方值并放入内部RAM 61H单元中。关键知识点:p查找表方法实现,运算速度快。p09的平方值,建表放入存储器(划分)中;最大值81,用BCD数构造,均为1个字节p因此,平方表的首地址与任意BCD数之和正是该BCD数平方值的存放地址。第二章 汇编语言和汇编程序3.1 顺序程序设计顺序程序设计MOV DPTR,#SQTABMOV A,60HMOVC A,A+DPTRMOV 61H,A SQTAB:DB 0,1,4,9,16,25,36,49,64,81第二章 汇编语言和汇编程序3.2
9、 分支程序设计分支程序设计v分支结构流程图单分支多分支第二章 汇编语言和汇编程序3.2 分支程序设计分支程序设计例:内部RAM40H和41H单元中各有一无符号数,比较其大小,将大数存放于内部RAM60H单元,小数存放于内部RAM61H单元,如两数相等,则分别送往这2个单元。要点:p用比较不等转移指令CJNE比较这2个无符号数,先确定它们是否相等,若不相等时在根据借位标志确定这2个数的大小。第二章 汇编语言和汇编程序3.2 分支程序设计分支程序设计 MOV A,40H MOV 61H,41H CJNE A,41H,$+3 JNC AGEQ;A(41H)则无借位 XCH A,61H;A(41H)有
10、借位AGEQ:MOV 60H,A;A与(61H)交换 SJMP$END第二章 汇编语言和汇编程序3.2 分支程序设计分支程序设计 MOV A,40H MOV B,41H CJNE A,B,NOT_EQU MOV 61H,A;相等相等 MOV 60H,A AJMP DONENOT_EQU:JC SMALL MOV 60H,A;大于大于 MOV 61H,B AJMP DONESMALL:MOV 61H,A;小于小于 MOV 60H,BDONE:SJMP$第二章 汇编语言和汇编程序3.3 循环程序设计循环程序设计v循环结构流程图先执行,后判断先判断,后执行循环控制第二章 汇编语言和汇编程序3.3 循
11、环程序设计循环程序设计例:计数控制的循环程序 有20字节无符号数存放在内部RAM50H开始的单元中,求它们的和,将和放内部RAM4EH和4FH单元中。要点:p加法共计进行20 次,用R7计数,用R0间(接寻)址。4EH和4FH两单元既存放最终结果也存放中间结果,开始时将它们清零。第二章 汇编语言和汇编程序3.3 循环程序设计循环程序设计MOV 4EH,#0MOV 4FH,#0MOV R7,#20;设置计数器MOV R0,#50;设置间接地址指针LOOP:MOV A,4FHADD A,R0;加一单元的内容MOV 4FH,ACLR A ADDC A,4EH;加累加时产生的进位,存在4EH中MOV
12、4EH,AINC R0;修改间址指针DJNZ R7,LOOPSJMP$END第二章 汇编语言和汇编程序3.3 循环程序设计循环程序设计 MOV 4EH,#0 MOV 4FH,#0 MOV R0,#50H;设置置间接地址指接地址指针 MOV R7,#20;设置置计数器数器LOOP:MOV A,R0 ADD A,4FH;加一加一单元的内容元的内容 MOV 4FH,A MOV A,#0H ADDC A,4EH;加累加加累加时产生的生的进位位,存在存在4EH中中 MOV 4EH,A INC R0;修改修改间址指址指针 DJNZ R7,LOOP SJMP$第二章 汇编语言和汇编程序3.3 循环程序设计循
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 第三
限制150内