单片机双字节BCD码乘法_第1页
单片机双字节BCD码乘法_第2页
单片机双字节BCD码乘法_第3页
单片机双字节BCD码乘法_第4页
单片机双字节BCD码乘法_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、集 美 大 学计 算 机 工 程 学 院实 验 报 告课程名称单片机应用技术实验名称双字节BCD码乘法以及数据排序实验实验类型设计型 姓名学号日期地点成绩教师评语:1. 实验目的与要求1. 进一步熟悉51汇编指令,掌握汇编语言的设计和调试方法。2. 设计十进制乘法程序,了解如何调用系统提供的内置数码显示,键盘输入子程序。3. 熟悉如何高效方法对数据排序2. 实验设备STAR系列实验仪、PC机、星研集成软件环境3. 实验内容1.从键盘上输入4位被乘数,乘数,实现4位十进制数的乘法,结果显示在数码管上。2.调试状态下借助星研集成软件直接修改RAM30H-3FH的单元,数值任意,然后对其排序,检查排

2、序结果。4. 实验硬件电路及接线E5区:A0A3区:A0E5区:A、B、C、DG5区:A、B、C、D5,程序流程图6,程序源代码EXTRN CODE(DISPLAY8,GETBCDKEY)BUFFER1DATA 30H;键盘输入缓冲区BUFFER2DATA 40H;8字节显示缓冲区BUFFER3 DATA 50H;结果地址BUFFER4 DATA 60H;栈缓冲区 ORG 0000HLJMP MAIN ORG 0100H MAIN:CLR PSW.1 MOV R0,#BUFFER1 MOV A,#04HLCALL GetBCDKey MOV R0,#BUFFER4+3 MOV A,BUFFER

3、1LCALL DECOMP DEC R0 MOV A,BUFFER1+1LCALL DECOMP MOV R0,#BUFFER4+3LCALL BCD2B MOV R6,BUFFER3 ;BUFFER3为低4位 MOV R7,BUFFER3+1 ;BUFFER3+1为高4位CLR PSW.1 MOV R0,#BUFFER1 MOV A,#04HLCALL GetBCDKey MOV R0,#BUFFER4+3 MOV A,BUFFER1LCALL DECOMP DEC R0 MOV A,BUFFER1+1LCALL DECOMP MOV R0,#BUFFER4+3LCALL BCD2B MOV

4、 R5,BUFFER3+1 MOV R4,BUFFER3 MOV R0,#BUFFER3LCALL MLTY MOV R3,BUFFER3 MOV R2,BUFFER3+1 MOV R1,BUFFER3+2 MOV R0,BUFFER3+3LCALL B2BCD MOV R0,#BUFFER2+7 MOV A,R4LCALL DECOMP DEC R0 MOV A,R5LCALL DECOMP DEC R0 MOV A,R6LCALL DECOMP DEC R0 MOV A,R7LCALL DECOMP MOV R0,#BUFFER2+7CLR C MOV A,R0SUBB A,#00 JNZ

5、 SHOW MOV BUFFER2+7,#10H SHOW: MOV R0,#BUFFER2LCALL DISPLAY8SJMP $ DECOMP: ;A中压缩BCD码转化成非压缩BCD码,结果存放在R0结束的两个字节,高位放H位BCD低位放L位BCD PUSH ACCSWAP AANL A,#0FH MOV R0,A POP ACCANL A,#0FH DEC R0 MOV R0,A RET BCD2B: ;R0结束的4位BCD码转化成二进制存在BUFFER3开始的两个字节 MOV BUFFER3,#00H MOV BUFFER3+1,#00H MOV R3,#4 ;四个字节LOOP:CLR

6、 C MOV A,BUFFER3RLC A MOV BUFFER3,A MOV BUFFER3+2,A MOV A,BUFFER3+1RLC A MOV BUFFER3+1,A ;结果左移一位 MOV BUFFER3+3,A MOV R2,#2LOOP1:CLR C MOV A,BUFFER3RLC A MOV BUFFER3,A MOV A,BUFFER3+1RLC A MOV BUFFER3+1,A ;结果左移一位DJNZ R2,LOOP1;整体左移2位CLR C MOV A,BUFFER3+2 ;取移一位的值 ADD A,BUFFER3 MOV BUFFER3,A MOV A,BUFFE

7、R3+3ADDC A,BUFFER3+1 MOV BUFFER3+1,A ;结果*10 MOV A,R0 ;先取12的1后取2 DEC R0CLR C ADD A,BUFFER3 MOV BUFFER3,A MOV A,#00HADDC A,BUFFER3+1 MOV BUFFER3+1,A ;结果*10+1DJNZ R3,LOOP RET MLTY: MOV A,R6 MOV B,R4 MUL AB MOV R0,A MOV R3,B MOV A,R7 MOV B,R4 MUL AB ADD A,R3 MOV R3,A MOV A,BADDC A,#00H MOV R2,A MOV A,R6

8、 MOV B,R5 MUL AB ADD A,R3 INC R0 MOV R0,A MOV A,R2ADDC A,B MOV R2,A MOV R1,#00H JNC NEXT INC R1 NEXT: MOV A,R7 MOV B,R5 MUL AB ADD A,R2 INC R0 MOV R0,A MOV A,BADDC A,R1 INC R0 MOV R0,A RET;字节二进制数转十进制数;R0R1R2R3为二进制数,R4R5R6R7为压缩BCD码B2BCD:CLR A MOV R4,A MOV R5,A MOV R6,A MOV R7,A MOV B,#32LOOPB2: CLR C

9、 MOV A,R3RLC A MOV R3,A MOV A,R2RLC A MOV R2,A MOV A,R1RLC A MOV R1,A MOV A,R0RLC A MOV R0,A MOV A,R7ADDC A,R7DA A MOV R7,A MOV A,R6ADDC A,R6DA A MOV R6,A MOV A,R5ADDC A,R5DA A MOV R5,A MOV A,R4ADDC A,R4DA A MOV R4,ADJNZ B,LOOPB2 RET END2.冒泡排序ORG 1000H BUBBLE: MOV R0,#30H MOV R2,#64 CLR 7FH DEC R2 BULOOP: MOV 20H,R0 MOV A,R0

温馨提示

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

评论

0/150

提交评论