1.2章程序设计本科ppt课件

上传人:枫** 文档编号:579058940 上传时间:2024-08-25 格式:PPT 页数:29 大小:643.50KB
返回 下载 相关 举报
1.2章程序设计本科ppt课件_第1页
第1页 / 共29页
1.2章程序设计本科ppt课件_第2页
第2页 / 共29页
1.2章程序设计本科ppt课件_第3页
第3页 / 共29页
1.2章程序设计本科ppt课件_第4页
第4页 / 共29页
1.2章程序设计本科ppt课件_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《1.2章程序设计本科ppt课件》由会员分享,可在线阅读,更多相关《1.2章程序设计本科ppt课件(29页珍藏版)》请在金锄头文库上搜索。

1、例例例例3-23-2:将:将:将:将R4R5R4R5双字双字双字双字节节符号数求符号数求符号数求符号数求补码补码程序。程序。程序。程序。 ORG 0000H ORG 0000H MOV A MOV A,R4R4 JB ACC.7, CPLL JB ACC.7, CPLL ;判符号位;判符号位;判符号位;判符号位 SJMP $ ; SJMP $ ;正数的正数的正数的正数的补码补码原原原原码码CPLL: MOV ACPLL: MOV A,R5 R5 ;取低字;取低字;取低字;取低字节节 CPL A CPL A ADD A ADD A,#1 #1 ;低字;低字;低字;低字节变补节变补 MOV R5

2、MOV R5,A A MOV A MOV A,R4 R4 ;取高字;取高字;取高字;取高字节节 CPL A CPL A ADDC A ADDC A,#0 #0 ;高字;高字;高字;高字节变补节变补 ORL A, #80H ; ORL A, #80H ; 恢复恢复恢复恢复负负号号号号 MOV R4 MOV R4,A A SJMP $ SJMP $分析:先判符号,再根据不同情况分析:先判符号,再根据不同情况分析:先判符号,再根据不同情况分析:先判符号,再根据不同情况处处理。理。理。理。例例3-3 求求 Y=X2 (0X5)。分析分析 :变量量X放在片内放在片内RAM的的20H单元元,其其值为00H

3、05H之之间, Y在片内在片内RAM的的21H单元,在程序存元,在程序存储器安排一器安排一张平平方表,通方表,通过查表求表求 Y=X2 这样比完成比完成 X*X 编程程简便多了。便多了。表表 ORG 0000H MOV DPTR,#TAB MOV A, 20H ;取;取X MOVC A,A+DPTR ; 查表表 MOV 21H,A ; 存于存于Y SJMP $TAB: DB 00H,01H,04H,09H,16H,25H END 首地址首地址为TAB,以,以DPTR指向表首址,利用指向表首址,利用查表指令表指令MOVC A,A+DPTR,即可求得。,即可求得。表中数据用表中数据用BCD码存放合

4、乎人存放合乎人们的的习惯. 如果平方如果平方值为两个字两个字节,程序,程序应如何如何编。DPTRA例例例例3-4 3-4 分解分解分解分解压缩压缩式式式式BCDBCD码码, ,使其成使其成使其成使其成为为非非非非压缩压缩式式式式BCDBCD码码。如把如把如把如把 65H06H 65H06H和和和和05H,05H,见图见图ORG 0000HORG 0000HMOVMOV R0 R0,#40H#40H;设设设设指指指指针针针针MOVMOV A A,R0R0;取一个字;取一个字;取一个字;取一个字节节节节MOVMOV R2 R2,A A;暂暂暂暂存存存存ANLANL A A,#0FH#0FH;清;清

5、;清;清0 0高半字高半字高半字高半字节节节节INCINC R0 R0MOVMOV R0 R0,A A ;保存数据个位;保存数据个位;保存数据个位;保存数据个位MOV A,R2SWAP A ;十位;十位换换到低半字到低半字节节ANL A,#0FHINC R0MOV R0,A;保存数据十位;保存数据十位SJMP $050506063.4 3.4 3.4 3.4 分支程序的分支程序的分支程序的分支程序的设计设计设计设计 由条件由条件由条件由条件转转转转移指令构成程序判断框部分,形成分支移指令构成程序判断框部分,形成分支移指令构成程序判断框部分,形成分支移指令构成程序判断框部分,形成分支结结结结构,

6、通常构,通常构,通常构,通常转转转转移条件取决移条件取决移条件取决移条件取决标标标标志位。常志位。常志位。常志位。常见见见见的分支的分支的分支的分支见见见见下下下下图图图图:条件满足条件满足?N影响条件影响条件Y处理段处理段条件满足条件满足?N影响条件影响条件Y处理处理1处理处理2【例【例【例【例3-53-5】 在内部在内部在内部在内部RAMRAM的的的的40H40H和和和和41H41H地址地址地址地址单单单单元中,有元中,有元中,有元中,有 2 2个无符号数,个无符号数,个无符号数,个无符号数,试编试编试编试编程比程比程比程比较这较这较这较这两数的大小,将大数存于两数的大小,将大数存于两数的

7、大小,将大数存于两数的大小,将大数存于内部内部内部内部RAMRAM的的的的GRGR单单单单元,小数存于元,小数存于元,小数存于元,小数存于LELE单单单单元,如两数相等,元,如两数相等,元,如两数相等,元,如两数相等,则则则则分分分分别别别别送入送入送入送入GRGR和和和和LELE地址地址地址地址单单单单元。元。元。元。分析分析分析分析 采用采用采用采用CJNECJNE指令,即可以判断相等与否,指令,即可以判断相等与否,指令,即可以判断相等与否,指令,即可以判断相等与否,还还还还可以可以可以可以通通通通过过过过CYCY标标标标志判断大小,程序如下:志判断大小,程序如下:志判断大小,程序如下:志

8、判断大小,程序如下: ORG 0000H ORG 0000H MOV A, 40H MOV A, 40H CJNE A, 41H, NEQ CJNE A, 41H, NEQ; ;两数不等转两数不等转两数不等转两数不等转 NEQ NEQ MOV GR, A MOV GR, A; ;两数相等,两数相等,两数相等,两数相等,GRGR单元和单元和单元和单元和LELE单元均存此数单元均存此数单元均存此数单元均存此数 MOV LE, A MOV LE, A SJMP $ SJMP $NEQ: JC LESSNEQ: JC LESS;A;A小则转小则转小则转小则转LESSLESSMOV GR, AMOV G

9、R, A;A;A大,大数存大,大数存大,大数存大,大数存GRGR单元单元单元单元MOV LE, 41HMOV LE, 41H; ;小数存小数存小数存小数存LELE单元单元单元单元 SJNE $ SJNE $LESS: MOV LE, ALESS: MOV LE, A;A;A小,小数存小,小数存小,小数存小,小数存LELE单元单元单元单元 MOV GR, 41HMOV GR, 41H; ;大数存大数存大数存大数存GRGR单元单元单元单元 SJMP $ SJMP $GR EQU 30HGR EQU 30HLE EQU 31HLE EQU 31H END END 例例 3-6】 设变量设变量X以补码

10、形式存放在片内以补码形式存放在片内RAM的的30H单元,单元, 函数函数Y与与X有如下关系式:有如下关系式: X X0Y= 20H X=0 X+5 X0;X0转转转转EDED MOV A, #05H MOV A, #05H;X0;X0完成完成完成完成X+5X+5 ADD A, #30H ADD A, #30H MOV 30H, A MOV 30H, A SJMP ED SJMP EDNEXT: MOV 30H, #20HNEXT: MOV 30H, #20H;X=0, Y=20H;X=0, Y=20HED: SJNE $ED: SJNE $ 例例例例 用用用用单单片机加重力片机加重力片机加重力

11、片机加重力传传感器作磅秤,秤出重量后算出感器作磅秤,秤出重量后算出感器作磅秤,秤出重量后算出感器作磅秤,秤出重量后算出行李运行李运行李运行李运费费价格,其秤出的重量以价格,其秤出的重量以价格,其秤出的重量以价格,其秤出的重量以10kg10kg为为1 1个个个个计计价价价价单单位位位位G , G , GG已存入已存入已存入已存入40H40H单单元。元。元。元。计计价方法价方法价方法价方法为为50kg50kg以内按以内按以内按以内按3 3元元元元, , 50kg50kg以上分段以上分段以上分段以上分段计计价价价价: : 50kg50kg按按按按3 3元元元元计计价,超价,超价,超价,超过过部分部分

12、部分部分按按按按2 2元元元元计计价。价。价。价。 由此列出算式:由此列出算式:由此列出算式:由此列出算式: G3 + (G-5)2; 当当G5M=G3 ;当;当G5 3G因重复使用,先因重复使用,先暂暂存在存在R2。流程流程见见左左, 程序如下:程序如下: ORG 0100H ORG 0100HFRTFRT: MOV A MOV A,40H40H;取行李重量;取行李重量;取行李重量;取行李重量计计价价价价单单位位位位GG MOV R3 MOV R3,A A MOV B MOV B,#03H#03H;运;运;运;运费费M=G3M=G3 MUL AB MUL AB MOV R2 MOV R2,A

13、 A;暂暂存存存存3G3G MOV A MOV A,R3R3;取回;取回;取回;取回GG CJNE A CJNE A,#05H#05H,L1L1;G 5 ?G 5 ? SJMP WETC SJMP WETCL1L1: JC JC WETC WETC;是,;是,;是,;是,转转至至至至WETCWETC SUBB A SUBB A,#05H#05H;否;否;否;否则则 M=3G+2(G- M=3G+2(G-5) 5) RLC A RLC A ADD A ADD A,R2R2 MOV R2 MOV R2 ,A AWETCWETC:MOV 41HMOV 41H,R2 R2 ;存运;存运;存运;存运费费

14、 M M RET RET1. 利用利用转转移地址表移地址表实现转实现转移移 例例3-7 根据根据R3的内容的内容转转向向对应对应的程序,的程序,R3的内容的内容为为0n,处处理程序的入口符号地址分理程序的入口符号地址分别为别为PR0PRn (nCY;0-CYSUBB A,R1SUBB A,R1; ;两数相减,比较大小两数相减,比较大小两数相减,比较大小两数相减,比较大小JNC LP3JNC LP3 ; ;原数仍为最大值转原数仍为最大值转原数仍为最大值转原数仍为最大值转LP3LP3MOV A,R1MOV A,R1; ;否,用此数代替最大值否,用此数代替最大值否,用此数代替最大值否,用此数代替最大值SJMP LP4SJMP LP4 ; ;无条件转移无条件转移无条件转移无条件转移LP3:ADD A,R1LP3:ADD A,R1; ;恢复原最大值因用恢复原最大值因用恢复原最大值因用恢复原最大值因用SUBBSUBB做比较指令做比较指令做比较指令做比较指令) )LP4:DJNZ R2,LP1LP4:DJNZ R2,LP1 ; ;若没比较完,继续比较若没比较完,继续比较若没比较完,继续比较若没比较完,继续比较RETRET; ;比较完比较完比较完比较完, ,返回返回返回返回ENDEND

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号