太原理工大学单片机实验
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
太原理工大学单片机实验
太原理工大学现代科技学院
单片机原理与接口技术课程实验报告
专业班级通信12-2
学号2012101702
姓名徐义申
指导教师温景国
实验名称 双字节BCD 加法实验 专业班级 通信12-2 学号 2012101702 姓名 徐义申 成绩 一、实验目的: 1. 熟悉并掌握MC-51指令系统及程序设计方法。 2. 掌握双字节BCD 加法的程序算法。 二、实验设备: PC 机 1. 操作系统:Windows XP / 7 2. 程序环境:Wave 6000 三、实验内容: 完成有进位位的双字节BCD 的加法实验,两个加数分别放于 40H~41H 和45H~46H ,结果存于50H~52H 中。(两个加数为9388H 和7287H )。 四、实验原理: BCD 码因其十进制的表示方式,在直接做二进制加法,发生进位时,结果可能会出现偏差,需人为校准。 五、实验源程序: ORG 0000H MOV 40H,#88H ; 88H →(40H) MOV 41H,#93H ; 93H →(41H)
MOV 45H,#87H ; 87H →(45H) ……………………………………装………………………………………订…………………………………………线………………………………………
MOV 46H,#72H ; 72H →(46H) MOV R0,#40H ; 40H →R0 MOV R1,#45H ; 45H →R1 START: MOV A,@R0 ; ((R0))→A ADD A,@R1 ; ((R1))+A →A MOV 50H,A ; A →(50H) INC R0 ; (R0)+1→(R0) INC R1 ; (R1)+1→(R1) CLR A ; A 清0
ADDC A,@R0 ; ((R0))+A+Cy →A ADD A,@R1 ; ((R1))+A →A MOV 51H,A ; A →(51H) CLR A ; A 清0 ADDC A,#0H ; 0H+A+Cy →A MOV 52H,A ; A →(52H) SJMP $ ; 循环 END ……………………………………装…………订…………………………………………线………
……………………订………………………
本程序进行了两个双字节BCD数的加法,中途出现两次进位,每次进位参与下一次的进位加法计算。
六、实验结果与分析:
通过两次进位加法计算,两个双字节BCD数加法的结果变为三字节BCD数,并存于50H~52H单元中,其中52H单元中存结果的最高位1。
七、实验心得:
通过本次实验,我更加直观的感受到BCD加法过程中的问题,并通过编程和仿真,动态观看了数据在单片机内部的存储状况。
实验名称 数据排序程序 专业班级 通信12-2 学号 2012101702 姓名 徐义申 成绩 一、实验目的: 1. 熟悉并掌握MCS-51指令系统和程序设计方法。 2. 掌握排序程序算法。 3. 掌握用循环程序实现数据排序的方法。 二、实验设备: PC 机 1. 操作系统:Windows XP/ 7 2. 仿真软件:Wave 6000 三、实验内容: 编写一个通用排序子程序并调试,其功能为将RAM 的40H~4FH 单元16个字节无符号二进制整数按从小到大顺序排序,将排序后的数据存放在50H~5FH 缓冲区中。 四、实验原理: 从40H 单元的第一个数开始依次和相邻单元的另一个……………………………………装……………………………订…………………………………………线………………………
数比较,如果顺序正确,则不作任何操作;如果顺序错
误,则将这两个数位置对换。这样,在完成第一遍n-1次比较后,最小的数到了最后,所以第二遍比较只需要
比较n-2次,最多作n-1遍比较就可完成排序。在比较
中设立一个标志位flag 清零,在循环结束时,若flag=1
说明排序未完成,进入外循环;若flag=0,说明排序完
成,程序结束。
五、实验源程序: ORG 0000H MOV R7,#10H MOV R0,#40H MOV R1,#20H START: MOV A,R1 MOV @R0,A INC R0 DEC R1 DJNZ R7,START MOV R7,#0FH LP0: MOV R0,#40H MOV A,R7 …………………订…………………
CLR 7FH LP1: MOV A,@R0 MOV 20H,@R0 INC R0 MOV 21H,@R0 CLR C SUBB A,21H JC LP2 SETB 7FH MOV @R0,20H DEC R0 MOV @R0,21H INC R0 LP2: DJNZ R6,LP1 JNB 7FH,LP3 DJNZ R7,LP0 LP3: MOV R7,#10H MOV R0,#40H MOV R1,#50H LP4: MOV A,@R0 MOV @R1,A
INC R0 DJNZ R7,LP4
SJMP $ END 六、实验结果与分析: ……………………………………装……………………………………订…………………………………………线………………………………
(排序前:) ……………………………………装……………订…………………………………………线………
(40H) 20 1F 1E 1D 1C 1B 1A 19 (48H) 18 17 16 15 14 13 12 11 (排序后):由小到大
48
排序后,数值由小到大,从(40H )→(50H ),……………
订………………
(48H)→(58H)
七、实验心得:
通过实验让我深刻体会到实验前的理论知识准备的重要,如果自己没有一些基础知识,那也是很难做下去的。同时对我的后续课程的学习提出了更高的要求。