编程实现片内RAM的数据由小到大排序并求平均值

编程实现片内RAM的数据由小到大排序并求平均值

ID:38046960

大小:43.00 KB

页数:5页

时间:2019-05-24

编程实现片内RAM的数据由小到大排序并求平均值_第1页
编程实现片内RAM的数据由小到大排序并求平均值_第2页
编程实现片内RAM的数据由小到大排序并求平均值_第3页
编程实现片内RAM的数据由小到大排序并求平均值_第4页
编程实现片内RAM的数据由小到大排序并求平均值_第5页
资源描述:

《编程实现片内RAM的数据由小到大排序并求平均值》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、实验一编程实现片内RAM的数据由小到大排序并求平均值一、实验目的:(1)了解Wedwin仿真软件使用,学会使单步、全速运行程序及察看各存储单元特殊寄存器等参数变化情况。(2)熟悉单片机硬件仿真环境及模块、挂箱、结构功能。二、实验器材万利仿真器一台、实验台(包括计算机)一套三、实验步骤1.编写程序使片内RAM单元20H~29H内的数据由小到大排列。2.编译无错误后,点击“调试”对话框后,再点击“查看”对话框,击活数据区“DATA”栏。随后由键盘在20H~29H单元内添入你所要排列的10个数据。3.全速运行程序观察20H~29H数据

2、变化。分析程序、修改程序并把实验数据填入格。4.编写将数据由大到小排列的程序。5.编写数据排好后去最大值及最小值后的8个数据累加求平均值程序,结果存入累加器。(要求记录实验结果)。四、程序清单1.ORG0000HLJMPMAINORG0030HMAIN:WLP:MOVR7,#9MOVR0,#20HNLP:MOVA,@R0MOVB,AINCR0MOVA,@R0CJNEA,B,L1L1:JNCNOCHDECR0XCHA,@R0INCR0XCHA,@R0NOCH:DJNZR7,NLPSJMP$end2.数据由小到大排列ORG0000H

3、LJMPMAINORG0030HMAIN:MOVR6,#9WLP:MOVR7,#9MOVR0,#20HNLP:MOVA,@R0MOVB,AINCR0MOVA,@R0CJNEA,B,L1L1:JNCNOCHDECR0XCHA,@R0INCR0XCHA,@R0NOCH:DJNZR7,NLPDJNZR6,WLPSJMP$END3.数据由大到小排列ORG0000HLJMPMAINORG0030HMAIN:MOVR6,#9WLP:MOVR7,#9MOVR0,#20HNLP:MOVA,@R0MOVB,AINCR0MOVA,@R0CJNEA,

4、B,L1L1:JCNOCHDECR0XCHA,@R0INCR0XCHA,@R0NOCH:DJNZR7,NLPDJNZR6,WLPSJMP$END4.数据排好后去最大值及最小值后的8个数据累加求平均值ORG0000HLJMPMAINORG0030HMAIN:MOVR6,#9WLP:MOVR7,#9MOVR0,#20HNLP:MOVA,@R0MOVB,AINCR0MOVA,@R0CJNEA,B,L1L1:JNCNOCHDECR0XCHA,@R0INCR0XCHA,@R0NOCH:DJNZR7,NLPDJNZR6,WLPMOVR7,#

5、8MOVR0,#21HCLRAMOVR3,ALJ:ADDA,@R0JNCLPINCR3LP:INCR0DJNZR7,LJMOVR2,AMOVR7,#3LP1:CLRCMOVA,R3RRCAMOVR3,AMOVA,R2RRCAMOVR2,ADJNZR7,LP1SJMP$END五、数据分析1.单步运行调试(F8)单步运行后,最大值置于底部。地址20H21H22H23H24H25H26H27H28H29H运行前BBAA1235093000ACBA1F运行后AA1235093000ACBA1FBB每按一次F8键,系统就按照程序计数器PC

6、所指示的地址(黄色箭头处)执行该条指令,且PC的内容将自动指向下一条将要执行指令的地址,黄色光标也向下移动一次。若单步运行的是调用子程序指令,它将把被调用子程序内部的所有指令全部执行完毕,PC的内容将自动指向该调用指令的下一条指令处。所以采用单步运行能快速观察被调用子程序执行后的最终结果。2.全速运行调试(F9)a.全速运行后,片内RAM单元20H~29H内的数据由小到大排列。地址20H21H22H23H24H25H26H27H28H29H运行前BBAA1235093000ACBA1F运行后0009121F3035AAACBAB

7、B全速运行调试便于观察程序连续运行状态下相关显示及控制过程的动态过程。b.片内RAM单元20H~29H内的数据由小到大排列地址20H21H22H23H24H25H26H27H28H29H运行前BBAA1235093000ACBA1F运行后BBBAACAA35301F1209003.数据排好后去最大值及最小值后的8个数据累加求平均值结果为,高8位:R3=00H低8位:R2=55H六、结论在将数据由小到大进行排列的程序中,工作寄存器R0依次将20H~29H单元内的数据取出送入A、B中进行两两比较,若(A)<(B),则两数交换,反之跳

8、转进行下一轮比较。每个数据将进行9次比较,程序将进行9次循环。在累加求平均值的程序中,R2、R3作为连续8次累加的16位工作寄存器,R2为低字节,累加的结果再取平均值,即除以8,相当于除以2的三次方。在此,采用将R2、R3各右移1次的操作重复3次,最后结果在R2

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

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

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