ImageVerifierCode 换一换
格式:PPT , 页数:16 ,大小:433.50KB ,
资源ID:3836233      下载积分:15 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.docduoduo.com/d-3836233.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(单片机第11讲PPT课件..ppt)为本站会员(Facebook)主动上传,道客多多仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知道客多多(发送邮件至docduoduo@163.com或直接QQ联系客服),我们立即给予删除!

单片机第11讲PPT课件..ppt

1、1,单片机原理与应用 第 十一 讲主要内容实用程序举例(二)1. 子程序的递归调用2. 排序3. 多字节BCD码加法4. 双字节无符号数乘法运算程序,2,子程序的递归调用子程序自已能调用自己,称为子程序的递归调用。 在单片机应用中,用特殊的方式处理这类调用。例: 汉字 LCD 液晶显示器界面处理中设子程序显示 PAGE1: “欢迎使用本仪器, 某某公司” PAGE2: “ 1. 电压上限设定 ”“ 2.电流上限设定 ”“ 3. 时 间 校 验 ” TIMESUB:“ 时 间 校 验 ”原时间: 09年 06月 04 日 21 时 35分 20秒校验时间: 09年 06月 04 日 21 时 4

2、5分 10秒,3,采用非常简单的记标志方式解决,子程序不再嵌套。PAGE2: “ 1. 电压上限设定 ”“ 2. 电流上限设定 ” “ 3. 时 间 校 验 ”当光标在 1 处时,按下 “确认键” 则 置标志 2FH.0=0当光标在 2 处时,按下 “确认键” 则 置标志 2FH.1=0当光标在 3 处时,按下 “确认键” 则 置标志 2FH.2=0当退出键按下时则 置标志 2FH.3=0子程序 PAGE2 正常结束;主程序LCALL PAGE1M1: LCALL PAGE2JNB 2FH.0, M2JNB 2FH.1, M3JNB 2FH.2, M4JNB 2FH.2, M5; 退出键按下M

3、2: LCALL DIANYA; 调电压设定子程序 AJMP M1 M3: LCALL DIANLIU; 调电流设定子程序 AJMP M1M4: LCALL TIMESUB ; 调时间校验子程序AJMP M1M5: 主程序,4,2排序排序是软件滤波方法的基础,对采集到的 N 个数先进行排序,然后去除若干个最大值和若干个最小值,对剩余的数进行平均。例4.20 将片内RAM 30H开始的连续16个单元的数据按从小到大的顺序排序。此题采用的是冒泡排序法,即对这16个数据组成的数据串,依次将相邻两数分别进行比较,若后面的数小于前面的数,则比较的相邻两数互换,且置位地址单元7FH为1。若这组数据比较完后

4、,相邻两数有交换(即交换标志位7FH为1),则再重新进行两两比较,直到16个数已从小到大排序,相邻两数比较后不再交换为止。交换标志位7FH用来控制是否再需要重新两两比较。程序流程如图4-7所示。,5,图4-7 排序程序流程图,6,ORG 2000H SORT: MOV R1,#30H ;指向数据块首地址MOV R7,#10H ;数据块长度送R7CLR 7FH ;交换标志位清零DEC R7 ;块长减1为比较次数LOOP1: MOV A,R1;取相邻两数中的前一个数MOV 20H,AINC R1MOV A,R1;取相邻两数中的后一个数 CJNE A,20H,LOOP;相邻两数比较 LOOP: JN

5、C NEXT ;前者小于后者转至NEXTXCH A,20H ;前者大于后者,相邻两数互换,即后面数小MOV R1,ADEC R1MOV R1,20HINC R1 ;恢复数据块指针 SETB 7FH ;置1标志位 NEXT: DJNZ R7,LOOP1 ;所有相邻两数未比较完,转至LOOP1JB 7FH,SORT ;交换标志位为1,转至SORTRET,7,4.4.4 算术运算1多字节BCD码加法例4.21 已知在BLOCK1和BLOCK2为始址的存储区中分别有长度为N字节压缩的BCD码,请编写程序使它们相加并将和送入BLOCK1为始址的存储单元。 使用加法指令从低字节相加,因为是BCD码相加,还

6、需用DA指令调整。,8,ORG 0100HMOV R7,#N ;数据块长度送R7MOV R0,#BLOCK1 ;被加数始址送R0MOV R1,#BLOCK2 ;加数始址送R1CLR C ;CY清零LOOP: MOV A,R0 ;被加数送AADDC A,R1 ;相加DA A ;BCD码调整MOV R0。A ;存和INC R0 ;修改被加数地址指针INC R1 ;修改加数地址指针DJNZ R7,LOOP ;未加完,则转至LOOPMOV R0,#00H ;无进位则保存JNC RTN ;最高位无进位转至RTNMOV R0,#01H ;有进位则保存 RTN: RET 说明: 其和放在BLOCK1为起始地

7、址单元中,长度为N+1,9,2双字节无符号数乘法运算程序例4.22 已知在寄存器R4R5和R2R3中分别存放有双字节的被乘数和乘数(R5、R3存放低8位,R4、R2存放高8位),试编程求积并存入BLOCK开始的连续四个存储单元(低字节在前,高字节在后)。AT89C51乘法指令只能完成两个8位无符号数相乘,因此16位无符号数求积必须将它们分解成四个8位数相乘来实现,其方法是边乘边加。原理和过程如图4-8所示。,10,图4-8 双字节无符号数乘法原理图,11,图中ab为16位被乘数,cd为16位乘数(a、c代表高8位,b、d代表低8位),而其后跟H表示乘积后的高8位,跟L表示乘积后的低8位。 OR

8、G 1000H BLOCK EQU 30H MOV R0,#BLOCK ;指向积单元首址 MOV A,R5 MOV B,R3 MUL AB ;bd MOV R0,A ;保存bdL,12,MOV A,B INC R0 MOV R0,A ;保存bdH MOV A,R4 MOV B,R3 MUL AB ;ad ADD A,R0 ;bdH+adL R0 指向 BLOK+1 MOV R0,A INC R0 MOV A,B ADDC A,#00H ;adH+进位R0 指向 BLOK+2,13,MOV R0,A DEC R0 ;R0 指向 BLOK+1 MOV A,R5 MOV B,R2 MUL AB ;b

9、c ADD A,R0 ;bcL与bdh、adL、进位累加 MOV R0,A MOV A,B,14,INC R0; R0 指向 BLOK+2 ADDC A,R0 ;bcH与adH、进位累加 MOV R0,A INC R0 ;指向 BLOK+3 CLR A ADDC A,#00H MOV R0,A ;保存进位 MOV A,R4,15,MOV B,R2 MUL AB ;ac DEC R0 指向 BLOK+2 ADD A,R0 ;acL与adH、bcH、进位累加 MOV R0,A MOV A,B INC R0;指向 BLOK+3 ADDC A,R0 ;ac与进位累加 MOV R0,A RET,16,单片机原理与应用 第 十一 讲小结1. 主要内容实用程序举例(二)1. 子程序的递归调用2. 排序3. 多字节BCD码加法4. 双字节无符号数乘法运算程序要求掌握常规子程序的编程,重点是要搞清算法,画出完整的流程图,

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报