欢迎来到天天文库
浏览记录
ID:38568084
大小:373.32 KB
页数:17页
时间:2019-06-15
《MCS-51基本程序结构设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、概述1.汇编语言程序设计的步骤(1)分析问题。(2)确定算法。(3)画出程序流程图。(4)分配内存单元。(5)编写汇编语言源程序。(6)汇编语言程序的调试。2021/7/19第页流程线端点符号处理符号判断符号连接符号实现流程图之间的连接程序的判断功能程序的处理功能单元程序的起始和结束程序执行顺序流程2021/7/19第页基本结构程序设计ABC入口出口(a)顺序结构图S1S2条件满足?入口出口(b)分支结构A条件满足?修改条件出口入口(c)循环结构2021/7/19第页一、顺序结构程序设计及举例例4-1将片外数据存储器中2040
2、H的内容拆成两段,其高4位存入2041H单元的低4位,其低4位存入2042H单元的低4位。开始(DPTR)←2040H取数送A,R0分离高4位高、低4位交换(2041H)→结果分离低4位(2042H)←低4位结束START:MOVDPTR,#2040H;MOVXA,@DPTR;取数送AMOVR0,A;数据暂存于R0SWAPA;(A)的高、低4位互换ANLA,#0FH;分离出(A)的低4位INCDPTR;MOVX@DPTR,A;将分离结果送2041H单元MOVA,R0;重新取数ANLA,#0FH;分离出(A)的低4位INCDPT
3、R;MOVX@DPTR,A;将分离结果送2042H单元END2021/7/19第页例4-2设数a存放在R1中,数b存放在R2中,计算,并将结果放入R4和R5中。开始A←a,B←aA.BA←A—b,R4←AA←B,A←A—CYR5←A结束MOVA,R1;A←aMOVB,A;B←aMULAB;计算CLRCSUBBA,R2;MOVR4,A;结果低8位送R4MOVA,B;高8位送ASUBBA,#00H;MOVR5,A;END;结束低8位减b2021/7/19第页分支结构程序设计在形成分支时,一般要有测试、转向和标识三个部分;测试:通过
4、对程序状态寄存器PSW中各位状态的测试,或通过对指定的单元或指定的寄存器的某位或某些位或全部位的测试,判断某条件是否成立,决定是否转移,形成分支,MCS-51系列单片机指令系统中的条件转移类指令均具有这种测试功能,可用它们来实现。转向:根据测试结果决定程序的走向。在源程序中由转移类指令完成,在流程图中以菱形逻辑框表示走向。标识:对每个程序分支,给出一个标识,以标明程序转移的方向,一般将分支程序转向的第一个语句赋予一个标号,作为此分支的标识。2021/7/19第页求符号函数,其中X在30H单元,结果y放在31H单元y=1,x>0
5、0,x=0-1,x<0YY开始y←—1y←0(31H)←yy←1结束x=0?x>0?NN2021/7/19第页ORG1000HMOVA,30H;取xCJNEA,#00H,N2;比较x≠0,则转N2MOVA,#00HAJMPL2;若x=0,置A=0,转L2N2:JBACC.7,M2;判x是否为负数,是转M2MOVA,#01H;判x不为负数,A置为01HAJMPL2M2:MOVA,#81H;若x是负数,置A为-1L2:MOV31H,A;A送结果单元END2021/7/19第页设有两个16位无符号数NA,NB分别存放在8031单片机
6、内部RAM的40H、41H及50H、51H单元中,当NA>NB时,将内部RAM的42H单元清0;否则,将该单元置成全1,试编制实现此功能的程序。YYNN开始结果单元置大于标志结束NAL>NBL?NAL=NBL?NAH=NBH?NAH>NBH?结果单元置非大于标志YY2021/7/19第页ORG1000HSTART1:MOVA,50H;取NB高8位CJNEA,40H,SUB1;判NA高8位=NB高8位?若不相等,则转SUB1MOVA,51H;若高8位相等,则取NB低8位CJNEA,41H,SUB1;判NA低8位=NB低8位?若不
7、相等,则转SUB1SJMPSUB2;若NA=NB,则转SUB2SUB1:JCSUB3;若NA>NB,则转SUB3SUB2:MOV42H,#0FFH;NA≤NB,则置非大于标志SJMPDONESUB3:MOV42H,#00H;NA>NB,则置大于标志DONE:RETEND2021/7/19第页NAH>NBH?YNN开始将R0置成大于标志结束NAL>NBL?NAL=NBL?NAH=NBH?将R0置成非大于标志将R0送结果单元NNYNYY2021/7/19第页ORG1000HSTART2:MOVR0,#00H;R0置成大于标志MOV
8、A,50HCJNEA,40H,SUB1MOVA,51HCJNEA,41H,SUB1SJMPSUB2SUB1:JCSUB3SUB2:MOVR0,#0FFH;置R0为非大于标志SUB3:MOV42H,R0END2021/7/19第页例4-5散转程序某单片机应用系统有16个键,经键
此文档下载收益归作者所有