教学课件微机原理(第2版)3.18子程序设计ppt(全).pptx

上传人:春哥&#****71; 文档编号:89967494 上传时间:2023-05-13 格式:PPTX 页数:17 大小:1.13MB
返回 下载 相关 举报
教学课件微机原理(第2版)3.18子程序设计ppt(全).pptx_第1页
第1页 / 共17页
教学课件微机原理(第2版)3.18子程序设计ppt(全).pptx_第2页
第2页 / 共17页
点击查看更多>>
资源描述

《教学课件微机原理(第2版)3.18子程序设计ppt(全).pptx》由会员分享,可在线阅读,更多相关《教学课件微机原理(第2版)3.18子程序设计ppt(全).pptx(17页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、教学课件微机原理(第2版)3.18子程序设计2学习内容:子程序设计目标:掌握设计子程序的方法第3章 8051指令系统和汇编程序设计3第3章 8051指令系统和汇编程序设计3.6.4 子程序设计举例例3-29:用程序实现c=a2+b2。设a、b均小于10,a存在31H单元,B存在32H单元,并将c存入33H单元。解:因两次用到求平方值,所以在程序中把求平方设计为一个子程序。3.6.4 子程序设计举例第3章 8051指令系统和汇编程序设计主程序:ORG 200H MOV SP,#3FH ;设堆栈指针 MOV A,31H ;取a值 LCALL SQR ;求a2 MOV R1,A ;a2暂存R1 MO

2、V A,32H ;取b值 LCALL SQR ;求b2 ADD A,R1 ;求a2+b2 MOV 33H,A ;存入33H SJMP$子程序SQR:;*;功能:求平方值(查表法);入口:A存放欲求平方的数。;出口:A存放平方值;*SQR:INC AMOVC A,A+PCRET TAB:DB 0,1,4,9,16,25,36,49,64,81END3.6.4 子程序设计举例第3章 8051指令系统和汇编程序设计例3-30:编程将片内RAM20H开始的8字节16进制数据转换为对应的ASCII码串,转换结果低半字节在前,高半字节在后,存于30H开始的片内RAM中。6第3章 8051指令系统和汇编程序

3、设计3.6.4 子程序设计举例ORG 0000HMOVR7,#8MOVR0,#20HMOVR1,#30HLOOP:MOVA,R0;取出一个字节16进制数ACALL ASCII;转换低半字节MOVR1,A;存放转换结果INCR1MOVA,R0;重取该字节16进制数SWAP AACALL ASCII;转换高半字节MOVR1,A;存放转换结果INCR1 3.6.4 子程序设计举例第3章 8051指令系统和汇编程序设计LOOP:MOVA,R0;取出一个字节16进制数ACALL ASCII;转换低半字节MOVR1,A;存放转换结果INCR1MOVA,R0;重取该字节16进制数SWAP AACALL AS

4、CII;转换高半字节MOVR1,A;存放转换结果INCR1INCR0;更新源指针DJNZR7,LOOP ;8字节转换未结束,继续SJMP$8第3章 8051指令系统和汇编程序设计3.6.4 子程序设计举例子程序ASCII:功能:将16进制数转化成ASCII码(查表法)入口:A低4位存放单个16进制数。出口:A存放转化后的ASCII码。3.6.4 子程序设计举例第3章 8051指令系统和汇编程序设计子程序ASCII:ASCII:ANLA,#0FH ;保留低4位MOV DPTR,#TABLEMOVC A,A+DPTR ;数值换码RETTABLE:DB 30H,31H,32H,33H,34H,35H

5、,36H,37H,38H,39H,41H,42H,43H,44H,45H,46HEND3.6.4 子程序设计举例第3章 8051指令系统和汇编程序设计子程序ASCII:0-9的ASCII码是30H-39H;A-F的ASCII码是41H-46H。所以对于0-9的16进制数,ASCII码为原数值+30H;对于A-F的16进制数,ASCII码为原数值+37H。11第3章 8051指令系统和汇编程序设计例3-31 微控制器主频为12MHz,试编写软件延时程序,延时时间分别为0.1s,1s,10s的程序。3.6.4 子程序设计举例3.6.4 子程序设计举例第3章 8051指令系统和汇编程序设计主频为12

6、MHz,则机器周期为1微秒。程序:助记符 机器周期 DL1:PUSH 30H ;2MOV 30H,#N ;1D1:NOP ;1NOP ;1DJNZ 30H,D1 ;2POP30H;2RET;23.6.4 子程序设计举例第3章 8051指令系统和汇编程序设计主频为12MHz,则机器周期为1微秒。要求程序执行时间:1ms=1000S=2+1+(1+1+2)N+2+2则有4N=993S;取 N=248=0F8H,代入后可得子程序真正延时为999S,有千分之一误差。若在RET前加入NOP,即实现了1ms延时。14第3章 8051指令系统和汇编程序设计3.6.4 子程序设计举例其它各档延时程序均可以通过

7、调用1ms延时子程序来实现:(1)0.1s子程序 DL100:PUSH 30H;0.1s子程序:调用DL1共100次MOV 30H,#100D100:LCALLDL1DJNZ 30H,D100POP30HRET 3.6.4 子程序设计举例第3章 8051指令系统和汇编程序设计(2)1s子程序 DL1S:PUSH 30H ;1s子程序:调用 DL100共10次 MOV 30H,#10 D1S:LCALL DL100 DJNZ30H,D1S POP 30H RET16第3章 8051指令系统和汇编程序设计3.6.4 子程序设计举例(3)10s子程序DL10S:PUSH 30 ;10s子程序,调用DL100ms共100次MOV 30H,#100D10S:LCALLDL100DJNZ 30H,D10SPOP30HRET 3.6.4 子程序设计举例第3章 8051指令系统和汇编程序设计由于各子程序的保护和恢复30H内容、循环、调用和返回等都需要时间,所以存在一定的定时误差,可通过减少基准定时DL1ms的时间来补偿。更准确的延时,可利用MCU中的定时器/计数器来实现。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁