编程实现片内RAM的数据由小到大排序并求平均值.doc_第1页
编程实现片内RAM的数据由小到大排序并求平均值.doc_第2页
编程实现片内RAM的数据由小到大排序并求平均值.doc_第3页
编程实现片内RAM的数据由小到大排序并求平均值.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验一 编程实现片内RAM的数据由小到大排序并求平均值一、实验目的:(1) 了解Wedwin仿真软件使用,学会使单步、全速运行程序及察看各存储单元特殊寄存器等参数变化情况。(2) 熟悉单片机硬件仿真环境及模块、挂箱、结构功能。二、实验器材 万利仿真器一台、实验台(包括计算机)一套三、实验步骤1.编写程序使片内RAM单元20H29H内的数据由小到大排列。2.编译无错误后,点击“调试”对话框后,再点击“查看”对话框,击活数据区 “DATA”栏。随后由键盘在20H29H单元内添入你所要排列的10个数据。3.全速运行程序观察20H29H数据变化。分析程序、修改程序并把实验数据填入格。4.编写将数据由大到小排列的程序。5编写数据排好后去最大值及最小值后的8个数据累加求平均值程序,结果存入累加器。(要求记录实验结果)。四、程序清单1. ORG 0000H LJMP MAIN ORG 0030HMAIN:WLP: MOV R7,#9 MOV R0,#20HNLP: MOV A,R0 MOV B,A INC R0 MOV A,R0 CJNE A,B,L1L1: JNC NOCH DEC R0 XCH A,R0 INC R0 XCH A,R0NOCH: DJNZ R7,NLP SJMP $ end 2. 数据由小到大排列 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV R6,#9WLP: MOV R7,#9 MOV R0,#20HNLP: MOV A,R0 MOV B,A INC R0 MOV A,R0 CJNE A,B,L1L1: JNC NOCH DEC R0 XCH A,R0 INC R0 XCH A,R0NOCH: DJNZ R7,NLP DJNZ R6,WLP SJMP $ END 3. 数据由大到小排列 ORG 0000H LJMP MAIN ORG 0030HMAIN: MOV R6,#9WLP: MOV R7,#9 MOV R0,#20HNLP: MOV A,R0 MOV B,A INC R0 MOV A,R0 CJNE A,B,L1L1: JC NOCH DEC R0 XCH A,R0 INC R0 XCH A,R0NOCH: DJNZ R7,NLP DJNZ R6,WLP SJMP $ END 4. 数据排好后去最大值及最小值后的8个数据累加求平均值 ORG 0000H LJMP MAIN ORG 0030H MAIN: MOV R6,#9 WLP: MOV R7,#9 MOV R0,#20H NLP: MOV A,R0 MOV B,A INC R0 MOV A,R0 CJNE A,B,L1 L1: JNC NOCH DEC R0 XCH A,R0 INC R0 XCH A,R0 NOCH: DJNZ R7,NLP DJNZ R6,WLP MOV R7,#8 MOV R0,#21H CLR A MOV R3,A LJ: ADD A,R0 JNC LP INC R3 LP: INC R0 DJNZ R7,LJ MOV R2,A MOV R7,#3 LP1: CLR C MOV A,R3 RRC A MOV R3,A MOV A,R2 RRC A MOV R2,A DJNZ R7,LP1 SJMP $ END五、数据分析1.单步运行调试(F8) 单步运行后,最大值置于底部。地址20H21H22H23H24H25H26H27H28H29H运行前BBAA1235093000ACBA1F运行后AA1235093000ACBA1FBB每按一次F8键,系统就按照程序计数器PC所指示的地址(黄色箭头处)执行该条指令,且PC的内容将自动指向下一条将要执行指令的地址,黄色光标也向下移动一次。若单步运行的是调用子程序指令,它将把被调用子程序内部的所有指令全部执行完毕,PC的内容将自动指向该调用指令的下一条指令处。所以采用单步运行能快速观察被调用子程序执行后的最终结果。2. 全速运行调试(F9) a.全速运行后,片内RAM单元20H29H内的数据由小到大排列。地址20H21H22H23H24H25H26H27H28H29H运行前BBAA1235093000ACBA1F运行后0009121F3035AAACBABB全速运行调试便于观察程序连续运行状态下相关显示及控制过程的动态过程。 b.片内RAM单元20H29H内的数据由小到大排列地址20H21H22H23H24H25H26H27H28H29H运行前BBAA1235093000ACBA1F运行后BBBAACAA35301F1209003. 数据排好后去最大值及最小值后的8个数据累加求平均值 结果为,高8位:R3=00H 低8位:R2=55H六、结论在将数据由小到大进行排列的程序中,工作寄存器R0依次将20H29H单元内的数据取出送入A、B中进行两两比较,若(A)(B),则两数交换,反之跳转进行下一轮比较。每个数据将进行9次比较,程序将进

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论