第14章 MCS-51程序设计及实用子程序ppt课件.ppt

第14章 MCS-51程序设计及实用子程序ppt课件.ppt

ID:58713435

大小:656.50 KB

页数:47页

时间:2020-10-04

第14章 MCS-51程序设计及实用子程序ppt课件.ppt_第1页
第14章 MCS-51程序设计及实用子程序ppt课件.ppt_第2页
第14章 MCS-51程序设计及实用子程序ppt课件.ppt_第3页
第14章 MCS-51程序设计及实用子程序ppt课件.ppt_第4页
第14章 MCS-51程序设计及实用子程序ppt课件.ppt_第5页
资源描述:

《第14章 MCS-51程序设计及实用子程序ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十四章MCS-51程序设计及实用子程序14.1查表程序设计14.2数据极值查找和数据排序14.3散转程序设计14.4循环程序设计14.5定点数运算程序设计14.6数据的拆拼14.7码制转换14.1查表程序设计查表程序是一种常用的非数值运算程序,应用广泛。方法:该方法把事先计算的结果或实验数据按一定顺序编成表格,存于程序存储器内,然后根据输入参数值,从表中取得结果。用途:复杂代码转换显示数据补偿:传感器补偿复杂函数计算:Y=SIN(X)特点:具有程序简单、执行速度快、精度高等优点,而这正是单片机在测控场合

2、或智能化仪表中所需要的。一、以DPTR为基地址的查表程序MOVCA,@A+DPTR操作步骤:初始化DPTR:将表格的首地址放入DPTR中,作为基地址。初始化A:A中应该放所要查询的数据在表格中的顺序号。执行结果:在执行该指令后,A中存放的是在表格中查到的数据。注意事项在查询表格时,若所要查询的数据是双字节的,则在初始化A中的数应为顺序号的2倍,且应执行两次本指令。对于单字节表格而言,表项的个数应不大于256个,若大于256时,则应适当修改DPTR的值。表格的存放位置。表格可以设在64K程存的任何位置。二、

3、以PC为基地址的查表指令MOVCA,@A+PC操作步骤:用传送指令把所查数据在表格中顺序号送入累加器A;使用ADDA,#data指令对累加器A进行修正,data值由下式确定:data=数据表格首地址-PC当前值实际上data值等于查表指令和数据表格之间的字节数;执行指令完成查表,结果存放在A中。注意事项对于双字节表格,其处理方法与以DPTR为基地址的情况相同。对于单字节表格而言,其项数应不大于256。对于双字节表格而言,其项数应不大于128。三、两种方式的比较PC仅能对所谓本地表格操作,即表格项数不得大于

4、256,且偏移量可能随程序的变化而变化,计算较为麻烦,其优点是少用寄存器。DPTR使用起来非常灵活,表项数不受限制,且表格可以放在64K的任意地方。规则表X的值为:0,1,2,3,…,nY的值为:y0,y1,y2,y3,…,yny0,y1,。。。yn的字节长度一样,这种表格比较简单,可由y值按顺序构成表格。查表方法:MOVCA,@A+PCMOVCA,@A+DPTR四、表格形式例:设有一个巡回检测报警装置,需对16路输入值进行比较,当每一路输入值等于或超过该路的报警值时,实现报警。设Xi为路数,查表时Xi按

5、0,1,2,…,15(i=15)取数,表中报警值是2字节数,依Xi顺序列成表格放在TAB中。进入查表程序前,路数Xi放在R2中,其输入值存于(R1R0)当中,查表结果放在(R4R3)中。若需报警,将P1.0口置1,否则清0。报警值的单元地址=表格首地址+(Xi*2)查表程序清单(方法1)TB1:MOVA,R2ADDA,R2;A←路数Xi*2MOVR4,A;保存ADDA,#06H;MOVCA,@A+PC;1XCHA,R4;1ADDA,#03H;2MOVCA,@A+PC;1MOVR3,A;1RET;1TAB1

6、:DW05F0H,0E89H,0A695H,1EAAHDW0D9BH,7F93H,0373H,26D7HDW2710H,9E3FH,1A66H,22E3HDW1174H,16EFH,33E4H,6CA0H查表程序清单(方法2)ORG1000HTB1:MOVDPTR,#TAB1;DPTR←表格首地址MOVA,R2ADDA,R2;A←路数Xi*2MOVR4,AMOVCA,@A+DPTR;取出高字节XCHR4,A;R4←高字节INCDPTRMOVCA,@A+DPTR;取出低字节MOVR3,A;R3←低字节CLR

7、CMOVA,R0;当前输入值与报警值比较SUBBA,R3;低字节相减MOVA,R1SUBBA,R4;高字节相减JNCLOOP;(C)=0,转移,报警CLRP1.0RET查表程序清单(方法2)续LOOP:SETBP1.0RETORG2000HTAB1:DW05F0H,0E89H,0A695H,1EAAHDW0D9BH,7F93H,0373H,26D7HDW2710H,9E3FH,1A66H,22E3HDW1174H,16EFH,33E4H,6CA0H14.2数据极值查找和数据排序定义:数据极值查找就是在指定

8、的数据区中找出最大值或最小值。方法:比较交换法。数据极值查找例:从内存BLOCK单元开始有一个无符号数的数据块,块长度为LEN,试找出数据块中最大值,并存入MAX单元。ORG2000HLENDATA20HMAXDATA22HMOVMAX,#00H;MAX单元清零MOVR0,#BLOCK;数据块首地址送R0LOOP:MOVA,@R0CJNEA,MAX,NEXT1;比较NEXT1:JCNEXT;若(A)<(MAX),转NEXTXC

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

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

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