欢迎来到天天文库
浏览记录
ID:37461259
大小:556.31 KB
页数:69页
时间:2019-05-12
《片机程序设计基础》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章单片机程序设计基础§4.1编程的步骤、方法和技巧§4.2汇编语言源程序的编辑和汇编§4.3汇编语言程序设计举例§4.4C51高级语言简介2021/7/16§4.1编程的步骤、方法和技巧§4.1.1编程的步骤§4.1.2编程的方法和技巧§4.1.3汇编语言程序的基本结构2021/7/16§4.1.1编程的步骤一、分析问题二、确定算法三、画程序流程图四、编写程序2021/7/16§4.1.2编程的方法和技巧一、模块化的程序设计方法二、编程技巧2021/7/16一、模块化的程序设计方法1、程序功能模
2、块化的优点2、划分模块的原则2021/7/161、程序功能模块化的优点单个模块结构的程序功能单一,易于编写、调试和修改。便于分工,从而可使多个程序员同时进行程序的编写和调试工作,加快软件研制进度。程序可读性好,便于功能扩充和版本升级。对程序的修改可局部进行,其它部分可以保持不变。对于使用频繁的子程序可以建立子程序库,便于多个模块调用。2021/7/162、划分模块的原则每个模块应具有独立的功能,能产生一个明确的结果,即单模块的功能高内聚性。模块之间的控制耦合应尽量简单,数据耦合应尽量少,即模块间的低
3、耦合性。控制耦合是指模块进入和退出的条件及方式,数据耦合是指模块间的信息交换方式、交换量的多少及交换频繁程度。模块长度适中。20条~100条的范围较合适。2021/7/16二、编程技巧1、尽量采用循环结构和子程序。2、尽量少用无条件转移指令。3、对于通用的子程序,考虑到其通用性,除了用于存放子程序入口参数的寄存器外,子程序中用到的其他寄存器的内容应压入堆栈保护。4、在中断处理程序中,除了要保护处理程序中用到的寄存器外,还要保护标志寄存器。5、用累加器传递入口参数或返回参数比较方便,在子程序中,一般不
4、必把累加器内容压入堆栈。2021/7/16§4.1.3汇编语言程序的基本结构一、顺序程序二、分支程序三、循环程序子程序结构2021/7/16§4.2汇编语言源程序的编辑和汇编§4.2.1源程序的编辑§4.2.2源程序的汇编§4.2.3伪指令2021/7/16§4.2.1源程序的编辑在微型计算机上,借助编辑软件,编写或修改汇编语言源程序。如行编辑或屏幕编辑软件。2021/7/16§4.2.2源程序的汇编汇编:将汇编语言源程序转换为机器码表示的目标程序的过程。对单片机有:一、手工汇编二、机器汇编反汇编:
5、将二进制机器语言程序翻译成汇编语言程序的过程称反汇编。源程序(汇编语言)目标码(机器语言)汇编反汇编2021/7/16§4.2.3伪指令伪指令不是真正的指令,无对应的机器码,在汇编时不产生目标程序,只是用来对汇编过程进行某种控制。89S51有8个伪指令:ORGENDEQUDATADBDWDSBIT2021/7/16ORG汇编起始命令格式:ORG16位地址功能:规定该伪指令后面程序的汇编地址,即汇编后生成目标程序存放的起始地址。例如:ORG2000HSTART:MOVA,#64H┇规定了START的地
6、址是2000H,又规定了汇编后的第一条指令码从2000H开始存放。2021/7/16END汇编结束指令格式:END功能:通知汇编程序结束汇编。在END之后所有的汇编指令均不予以处理。2021/7/16EQU赋值命令格式:字符名称EQU项(数或汇编符号)功能:把“项”赋给“字符名称”。注意:字符名称不等于标号(其后没有冒号);其中的项可以是数,也可以是汇编符号。EQU赋值过的符号名可以用作数据、代码地址、位地址或一个立即数。可以是8位的,也可以是16位的。例1:AAEQUR1MOVA,AA;AA代表工
7、作寄存器R1例2:A10EQU10DELYEQU07EBHMOVA,A10;A10作为片内的一个直接地址LCALLDELY;DELY作为一个16位子程序的入口地址2021/7/16DATA数据地址赋值命令格式:字符名称DATA表达式功能:与EQU类似,但有以下差别:1、EQU定义的字符名必须先定义后使用,而DATA定义的字符名可以后定义先使用。2、用EQU伪指令可以把一个汇编符号赋给一个名字,而DATA只能把数据赋给字符名。3、DATA语句可以把一个表达式的值赋给字符名称,其中的表达式应是可求值的。
8、DATA伪指令在程序中用来定义数据地址。2021/7/16DB定义字节命令格式:DB(项或项表)功能:通知汇编程序从当前ROM地址开始,保留一个字或字节串的存储单元,并存入DB后的数据。注意:项或项表可以是一个字节,用逗号隔开的字节串或括在单引号中的ASCII字符串。例如:ORG2000HDB0A3HLIST:DB26H,03HSTR:DB‘ABC’┇经汇编后(2000H)=A3H,(2001H)=26H,(2002H)=03H,(2003H)=41H,(41H~43
此文档下载收益归作者所有