片机的程序设计与调试

片机的程序设计与调试

ID:39531176

大小:907.01 KB

页数:141页

时间:2019-07-05

片机的程序设计与调试_第1页
片机的程序设计与调试_第2页
片机的程序设计与调试_第3页
片机的程序设计与调试_第4页
片机的程序设计与调试_第5页
资源描述:

《片机的程序设计与调试》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章单片机的程序设计与调试【本章内容】本章主要介绍伪指令、源程序汇编以及常用程序的设计方法。【项目驱动的学习要点】应用项目中各段程序功能分析。应用项目中的程序流程图分析。应用项目中各段程序设计方法分析。1第4章单片机的程序设计与调试4.1源程序的设计与汇编4.2单片机开发系统与源程序的调试4.3顺序和分支程序设计4.4循环和查表程序设计4.5子程序和中断程序设计练习题END24.1源程序的设计与汇编4.1.0几个概念4.1.1伪指令4.1.2源程序的设计4.1.3源程序的汇编3二进制形式的机器指令称为机器语言,采用机器

2、语言编写的程序能直接被计算机识别和执行。由于机器语言不容易理解和记忆,所以人们通常用符号指令来编写源程序。采用符号指令编写的程序必须通过编译软件(也叫汇编程序)或手工翻译(汇编)成机器指令的形式才能被计算机执行。前者称为机器汇编,后者称为手工汇编。4.1.0几个概念4用符号指令的计算机语言称汇编语言。符号指令也称为汇编语言指令;采用汇编语言指令编写的程序叫做汇编语言源程序。汇编的反过程称为反汇编。几个概念5图4-1源程序的汇编与反汇编源程序的汇编与反汇编64.1.1伪指令为了使编译软件能按设计者的要求汇编源程序,编写汇编语言源

3、程序时,还要用到伪指令。伪指令是供汇编程序识别和执行并对汇编过程进行某种控制的指令性语句。它不是真正的单片机指令,无对应的机器码。所以汇编后产生的目标程序中不会出现伪指令。7指令格式:ORG表达式指令功能:用于向汇编程序说明下面紧接的程序段或数据段存放从表达指定的起始地址开始存放。表达式通常为十六位地址或自定义的标号地址。通常每一个汇编语言源程序的开始,都要设置一条ORG伪指令来指定该程序在ROM中存放的起始位置。可以在源程序中使用多条ORG伪指令来规定不同程序段或数据段存放的起始地址,但要求地址值由小到大顺序排列,不允许空间

4、重叠。1.起始汇编伪指令81ORG0000H2LJMPMAIN;转主程序3ORG0003H4LJMPBREAK0;转中断5ORG000BH6LJMPCLOCK;转定时器T0中断7ORG0013H8LJMPBREAKl;转中断;②主程序:9ORG0050H10MAIN:MOVA,#03H;8155初始化……;⑨控制字码表:137ORG1010H138DB0FEH,06H,20H,00H,0FFH,06H,20H,15H……【项目应用】以下是应用项目中使用的ORG伪指令,请分析各条ORG指令的作用。9解:(1)第一条ORG伪指令用

5、于说明整个程序的起始地址为0000H,其后的LJMPMAIN指令的机器码便从ROM的0000H单元开始存放。这是单片机开机或复位时的PC初值,所以单片机在开机或复位时总是从这个地址开始读出程序。(2)第二至第四条ORG指令中的地址分别对应系统规定的3个中断入口地址,用于使其后的中断服务程序能存放在正确的位置(详见第5章)。(3)第五条ORG伪指令用于说明从标号为MAIN的指令往后的程序存放在0050H开始的ROM单元中。于是应用项目中的主程序,便由0000H单元通过无条件长转移指令LJMPMAIN转移到0050H往后的ROM单

6、元,从而防止系统设定的中断入口地址被占用。(4)第六条ORG伪指令用于指定作为控制字码表的一个数据区的起始地址为1010H。从应用项目的反汇编源程序可以看出,ORG伪指令指定的地址没有发生重叠。10指令格式:END指令功能:结束汇编。放置于汇编源程序的末尾,当汇编程序遇到END伪指令时,即结束汇编。处于END之后的程序,汇编程序不会进行处理。2.结束汇编伪指令11指令格式:符号名EQU表达式指令功能:将表达式的值赋给指定的符号名。表达式通常是8位或16位的地址、数据或汇编符,如果是位地址,则必须采用位的物理地址。符号的命名与标

7、号的命名规定相同:可以由1~8个ASCII字符组成。首字符必须是字母,其余字符可以是字母、数字或其他特定字符,不能使用汇编语言已经定义了的符号,如指令助记符、寄存器符号名称等。“符号名”一旦被赋值,就可以在源程序的任意地方使用,汇编时,汇编程序自动用表达式的值进行代真。使用EQU伪指令有两个优点,一是当源程序中有多处引用“符号名”的地方要修改时,只要修改为“符号名”赋值的指令即可;二是当“符号名”具有见字明义的名称时,可增加程序的可读性。3.通用赋值伪指令12符号的命名与标号的命名规定相同:可以由1~8个ASCII字符组成。第

8、一个字符必须是字母,其余字符可以是字母、数字或其他特定字符,不能使用汇编语言已经定义了的符号,如指令助记符、寄存器符号名称等。“符号名”必须先赋值后使用,一旦“符号名”被赋值,它就可以在源程序的任意地方使用,汇编时,汇编程序自动用表达式的值进行代真。使用EQU伪指令有两个优点

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。