单片机基础(第3版)——第4章.ppt

单片机基础(第3版)——第4章.ppt

ID:48074186

大小:495.81 KB

页数:44页

时间:2019-05-06

单片机基础(第3版)——第4章.ppt_第1页
单片机基础(第3版)——第4章.ppt_第2页
单片机基础(第3版)——第4章.ppt_第3页
单片机基础(第3版)——第4章.ppt_第4页
单片机基础(第3版)——第4章.ppt_第5页
资源描述:

《单片机基础(第3版)——第4章.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、单片机基础(第3版)李广弟等编著北京航空航天大学出版社2007年6月第4章80C51单片机汇编语言程序设计4.1单片机程序设计语言概述4.2汇编语言程序的基本结构形式4.380C51单片机汇编语言程序设计举例4.4单片机汇编语言源程序的编辑和汇编4.580C51单片机汇编语言伪指令4.1单片机程序设计语言概述4.1.1机器语言和汇编语言机器语言:用二进制编码表示的指令,是计算机能直接识别并执行的指令。汇编语言:用助记符和专门的语言规则表示指令的功能和特征。汇编语言是对机器语言的改进,比机器语言高级。汇编语言的最大优点是助记符与机器指令一一对应。用汇编语言编写的程序占用存

2、储空间小,运行速度快,程序效率高。缺点:难以记忆和使用,程序设计的技巧性较高,编程难度较大。要求使用者必须精通单片机的硬件系统和指令系统。缺乏通用性,程序不易移植。4.1.2单片机使用的高级语言对于8051单片机,现有4种语言支持,即汇编、PL/M、C和BASIC。C语言最终得到广泛应用。可以大大提高单片机应用系统研制的开发效率。移植性好。高级语言的不足:生成的目标代码较长,导致应用程序运行速度较慢。4.1.380C51单片机汇编语言的语句格式80C51汇编语言的语句格式如下:[<标号>]:<操作码>[<操作数>];[<注释>]1.标号是语句地址的标志符号,标号的几点规

3、定:1~8个ASCII字符组成,第一个字符必须是字母。不能使用本汇编语言已经定义的符号作为标号。标号后面必须跟以冒号“:”。同一标号在一个程序中只能定义一次。标号可有可无。2.操作码用于规定语句执行的操作内容,用指令助记符表示。不能空缺。3.操作数操作数用于为指令操作提供数据。可以是空白,也可能有1~3个操作数,各操作数之间以逗号分隔。4.注释不属于语句的功能部分,只是对语句的解释说明,以“;”开头。5.分界符(分隔符)用于把语句中的各部分隔开,以便于区分。分界符包括空格、冒号、分号或逗号等符号。4.2汇编语言程序的基本结构形式三种基本结构形式:顺序程序结构,分支程序结

4、构,循环程序结构。4.2.1顺序程序结构顺序结构程序是最简单的程序结构。程序既无分支、循环,也不调用子程序,程序执行时一条接一条地按顺序执行指令。3字节无符号数相加:其中被加数在内部RAM的50H、51H和52H单元中;加数在内部RAM的53H、54H和55H单元中;要求把相加之和存放在50H、51H和52H单元中,进位存放在位寻址区的20H位中。MOVR0,#52H;被加数的低字节地址MOVR1,#55H;加数的低字节地址MOVA,@R0ADDA,@R1;低字节相加MOV@R0,A;存低字节相加结果DECR0DECR1MOVA,@R0ADDCA,@R1;中间字节带进位

5、相加MOV@R0,A;存中间字节相加结果DECR0DECR1MOVA,@R0ADDCA,@R1;高字节带进位相加MOV@R0,A;存高字节相加结果CLRAADDCA,#00H;进位送00H位保存MOVR0,#20H;存放进位的单元地址MOV@R0,A分支结构也称为选择结构。为分支需要,程序设计时应给程序段的起始地址赋予一个地址标号,以供选择分支使用。分支结构又可分为单分支结构和多分支结构。1.单分支程序结构单分支程序结构即二中选一,是通过条件判断实现的。一般都使用条件转移指令对程序的执行结果进行判断(1)单分支结构举例假定在外部RAM中有ST1、ST2和ST3共3个连续

6、单元,其中ST1和ST2单元中存放着两个无符号二进制数,要求找出其中的大数并存入ST3单元中。4.2.2分支程序结构START:CLRC;进位位清0MOVDPTR,#ST1;设置数据指针MOVXA,@DPTR;取第1个数MOVR2,A;第1个数存于R2INCDPTR;数据指针加1MOVXA,@DPTR;取第2个数SUBBA,R2;两数比较JNCBIG1;若第2个数大,则转向BIG1XCHA,R2;若第1个数大,则整字节交换BIG0:INCDPTRMOVX@DPTR,A;存大数RETBIG1:MOVXA,@DPTRSJMPBIG0(2)多重单分支结构举例多重单分支结构中,

7、通过一系列条件判断,进行逐级分支。为此可使用比较转移指令CJNE实现。例:假定采集的温度值Ta放在累加器A中。此外,在内部RAM54H单元存放温度下限值T54,在55H单元存放温度上限值T55。若Ta>T55,程序转向JW(降温处理程序);若Ta<T54,则程序转向SW(升温处理程序);若T55≥Ta≥T54,则程序转向FH(返回主程序)。CJNEA,55H,LOOP1;若Ta≠T55,则转向LOOP1AJMPFH;若Ta=T55,则返回LOOP1:JNCJW;若(CY)=0,表明Ta>T55,转降温处理程序CJNEA,54H,LOOP2

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

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

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