单片机汇编程序设计课件.ppt

单片机汇编程序设计课件.ppt

ID:58230056

大小:328.00 KB

页数:50页

时间:2020-09-05

单片机汇编程序设计课件.ppt_第1页
单片机汇编程序设计课件.ppt_第2页
单片机汇编程序设计课件.ppt_第3页
单片机汇编程序设计课件.ppt_第4页
单片机汇编程序设计课件.ppt_第5页
资源描述:

《单片机汇编程序设计课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、3.3汇编语言程序设计3.3.1汇编语言及其语句格式1、汇编语言这里介绍MCS-51单片机的汇编语言。2、汇编语言的语句格式一条汇编语言的语句包括四部分内容:标号、操作码、操作数和注释。其格式为:标号:操作码 操作数;注释例如:LOOP:MOVA,#20H;(A)←20H3.3.2伪指令1、定位伪指令格式:ORGn2、定义字节伪指令格式:标号:DBX1,X2,……Xn此伪指令的功能是把Xi存入从标号开始连续的单元中。3、定义双字节伪指令格式:标号:DWX1,X2,……Xn此伪指令的功能是把Xi存入从标号开始的连续单元中。4、预留存贮区伪指令格式

2、:DSnDSn从标号指定单元开始,预留n个单元的存贮区。5、赋值伪指令格式:字符名称xEQUn此指令的功能是将数据或地址n赋给字符名称。6、结束汇编指令格式:ENDEND指示源程序到结束,常将其放在汇编语言源程序的末尾。3.3.3汇编语言程序设计过程1、分析任务,确定算法或解题思路2、根据算法和解决思路画出程序流程图流程图是由一些框图和流程线组合而成:`置的框图连接在一起,位于不同框图的圈内,应标注相同的字母。3、根据流程图编写程序4、上机调试程序3.3.4顺序结构程序设计按照程序编写的顺序,依次执行。任何复杂的程序,都含有较大成份的顺序结构程

3、序。【例3-8】将两位压缩BCD码转换成二进制数编程思路:(a1a0)BCD=a1×10+a0编程说明:待转换的两位压缩BCD码存放于R2,转换结果存回R2。程序流程图如图3-1所示。编程如下:START:MOVA,R2ANLA,#0F0H;取高位BCD码SWAPAMOVB,#0AHMVLABMOVR3,AMOVA,R2ANLA,#0FH;取低位BCD码ADDA,R3MOVR2,AEND3.3.5分支程序设计【例3-9】求符号函数的值1当X>0Y=0当X=0的值。-1当X<0编程说明:设变量X存放在40H单元中,函数Y存放在41H单元中。此程序

4、为三分支程序。程序流程图如图3-3所示。编程如下:START:MOVA,40HJZCOMPJNBACC.7,POSTMOVA,#81H;表示-1SJMPCOMPPOSI:MOVA,#01H;表示+1COMP:MOV41H,AEND【例3-10】求单字节有符号二进制数的补码。编程如下:CMPT:MOVA,30HJNBACC.7,NCH;(A)≥0,不需要转换MOVC,ACC.7;保存符号MOV10H,CCPLAADDA,#1MOVC,10HMOVACC.7,C;恢复符号NCH:END图3-5中,K的最大值一般为128。【例3-1】用单片机作四则运

5、算。编程说明:在单片机系统中,设置+、-、×、÷四个运算键,这四个运算键的键值分别为0、1、2、3(键值存放在寄存器(2中),当其中一个按键按下时,进行相应的运算。P1口输入被加数、被减数、被乘数或被除数,以及运算结果的低8位或商。P3口输入加数、减数、乘数或除数,,以及结果的高8位或余数。键号存放在累加器A中。程序流程图如图3-6所示。参考程序如下:START:MOVP1,#0FFHMOVP3,#0FFHMOVDPTR,#TABLECLRCMOVA,R2SUBBA,#04HJNCERRORADDA,#0-4HCLRCRLA;正确的散转偏移号,

6、键号×2JMPA+DPTRTABLE:AJMPPRG0AJMPPRG1AJMPPRG2AJMPPRG3ERROR:(错误处理)PRG0:MOVA,P1ADDA,P3MOVP1,ACLRAADDCA,#00H;进位位放入A中MOVP3,ARETPRG1:MOVA,P1CLRCSUBBA,P3MOVP1,ACLRARLCA;借位放入A中MOVP3,ARETPRG2:MOVA,P1MOVB,P3MULABMOVP1,AMOVP3,BRETPRG3:MOVA,P1MOVB,P3DIVABMOVP1,AMOVP3,BRET【例3-12】已知内存单元有16

7、个二进制无符号数,分别存放在30H~3FH中,试求它们的累加和,并将其和数存放在R4、R5中。编程说明:存放16个二进制无符号数的首地址为30H,此循环程序的循环次数为16次,和数放在R4、R5中。程序流程如图3-8。参考程序如下:START:MOVR0,#30HMOVR2,#10HMOVR4,#00HMOVR5,#00HLOOP:MOVA,R5ADDA,R0MOVR5,AMOVA,#00HADDCA,R4MOVR4,AINCR0DJNZR2,LOOPEND【例3-13】将内部数据存贮器30H~4FH单元中的内容传送至外部数据存贮器2000H开

8、始的单元中。解:编程说明:内部数据区首址:R0←30H外部数据区首址:DPTR←2000H循环次数:R2←32H程序流程如图3-9所示。参考程序如下:

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

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

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