MCS-51程序设计(4学时)

MCS-51程序设计(4学时)

ID:41058995

大小:275.96 KB

页数:19页

时间:2019-08-15

MCS-51程序设计(4学时)_第1页
MCS-51程序设计(4学时)_第2页
MCS-51程序设计(4学时)_第3页
MCS-51程序设计(4学时)_第4页
MCS-51程序设计(4学时)_第5页
资源描述:

《MCS-51程序设计(4学时)》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第4章MCS-51程序设计4.1汇编语言的格式伪指令4.2伪指令4.3查表程序设计4.4循环程序设计4.5分支程序设计4.6散转程序设计4.7数制转换程序设计4.1汇编语言的格式ORG0000H;整个程序起始地址AJMPMAIN;跳向主程序ORG0030H;主程序起始地址MAIN:CLRC;MAIN为程序标号LOOP:MOVA,@R0ADDCA,@R1INCR0DJNZR1,LOOP;相对转移SJMPNEXTMOVR1,#03HNEXT:DECR0SJMP$;相当于LOOP1:SJMPLOOP1END;结束标记汇编语言格式:地址机器码源程序注释ORG0000H;整个程序起始地址000

2、0200030LJMPMAIN;跳向主程序ORG0030H;主程序起始地址0030C3MAIN:CLRC;MAIN为程序标号0031E6LOOP:MOVA,@R0003237ADDCA,@R1003308INCR00034DAFBDJNZR1,LOOP;相对转移00368003SJMPNEXT00387803MOVR0,#03H003A18NEXT:DECR0003B80FESJMP$;HERE:SJMPHEREEND;结束标记4.2伪操作指令1.ORG(Origin)定义程序的起始地址2.END程序结束标志3.DB(DefineByte)定义字节4.DW(DefineWord)定义

3、字5.EQU(Equate)表达式赋值伪操作指令例子MATHEQU03HORG0000HMAIN:CLRCLOOP:MOVA,@R0MOVR1,#MATH;相当于MOVR1,#03HNEXT:SJMP$ORG1100HDB01H,04H,09H,05H;ENDROM中地址数据110001110104110209110305汇编语言程序设计步骤1.确定方案和计算方法2.了解应用系统的硬件配置、性能指标。3.建立系统数学模型,确定控制算法和操作步骤。4.画程序流程图,确定程序的流向5.编制源程序1)合理分配存储器单元和了解I/O接口地址。2)按功能设计程序,明确各程序之间的相互关系。3)

4、用注释行说明程序,便于阅读和修改调试和修改。开始1YN?4.3查表程序设计1.用DPTR查表(查0~9平方表)1000C083TA:PUSHDPH1002C082PUSHDPL1004902000MOVDPTR,#TAB100793MOVCA,@A+DPTR1008D082POPDPL100AD083POPDPH100C22RETORG2000HTAB:DB00H,01H,04H,09H2000002001012002042003092.用PC查表(查0~9平方表)ORG1000H1000C083TA:ADDA,#01H;#01H为偏移量100283MOVCA,@A+PC100322

5、RET100400DB00H,01H,04H,09H100501END100604100709偏移量=表首地址-(查表指令下一条指令地址)=1004H-1003H=01H4.4循环程序设计1.延时50ms程序DEL:MOVR7,#200DEL1:MOVR6,#125DEL2:DJNZR6,DEL2;125*2=250usDJNZR7,DEL1;0.25ms*200=50msRET使用12MHz晶振时,一个机器周期为1us,执行DJNZ指令为2us,加其他指令的时间(250+1+2)*200+1=50.301ms精确计算见P3272.计算几个数据的和例题:对内部RAM50h开始的10个

6、无符号数求和。源程序:ADD1:MOVR7,#10;循环次数n=10MOVR3,#0;存放结果的高8位MOVR4,#0;存放结果的低8位MOVR0,#50H;求和的数据存放在从内部RAM50h开始的;单元中,。注意:(50h)=?不知道LOOP:MOVA,R4;ADDA,@R0;(R4)+(5?H)→AMOVR4,A;结果送回R4CLRA;ADDCA,R3;把进位位C加到高8位去MOVR3,AINCR0;为下一轮循环作准备DJNZR7,LOOPEND解释:高8位低8位(R3)(R4)+(50h)C(A)MOVA,R4ADDA,@R0MOVR4,ACLRAADDCA,R3MOVR3,A

7、(50h)中是什么,不知道,不能用ADDA,#50H4.5分支程序设计基本分支程序:(1)若(A)<14H,转NEXT,否则继续执行(2)若(A)≤14H,转NEXT,否则继续执行(3)若(A)≥14H,转NEXT,否则继续执行(4)若(A)>14H,转NEXT,否则继续执行(A)≤14H相当于(A)<15HCJNEA,#15H,LOOPLOOP:JCNEXT……(A)>14H相当于(A)≥15HCJNEA,#15H,LOOPLOOP:JNCNEXT……C

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

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

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