教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 精品文档 > 互联网资料 >

哈工大单片机实验报告(上传)(3)

来源:网络收集 时间:2026-09-08
导读: MOV B, R2 MUL AB ADD A, R5 MOV R4, A CLR A ADDC A, B MOV R5, A MOV A, R6 MOV B, R3 MUL AB ADD A, R4 XCH A, R6 XCH A, B ADDC A, R5 MOV R5, A MOV F0, C MOV A, R2 MUL AB ADD A, R5 MOV R5, A CLR A MOV AC

MOV B, R2 MUL AB ADD A, R5 MOV R4, A CLR A ADDC A, B MOV R5, A MOV A, R6 MOV B, R3 MUL AB ADD A, R4 XCH A, R6 XCH A, B ADDC A, R5 MOV R5, A MOV F0, C MOV A, R2 MUL AB ADD A, R5 MOV R5, A CLR A MOV ACC.0, C MOV C, F0 ADDC A, B MOV R4, A SJMP $ END

实验八 多分支程序

一、实验目的

掌握汇编语言的编程。

二、实验内容

编写程序,根据送入的数据转移运行。

三、程序框图

-10-

四、实验过程

实验中利用散转指令JMP @A+DPTR实现程序的多分支跳转,这里A为变址寄存器,DPTR为基址寄存器。跳转到不同分支的运行结果由LED进行显示,每个分支对应的数码管上显示不同的数字。显示数字由数字七段码送至I/O口显示。在显示程序中利用循环左移加延时子程序调用,实现数字循环显示的效果。

编程中需要注意的是,A需乘以2即左移一位再作为变址寄存器,这是程序中由于分支跳转语句为2个字节所致。

五、实验结果及分析

实验中可以看到选择不同的数字进入不同分支,LED管上会出现不同数字的循环左移显示。

【问题回答】如需将循环速度减慢,只要将延时子程序初值变大,或增加循环层数,或者再增加一段循环语句即可,如可进行以下修改:

DELAY: 改为 DELAY:

MOV R3, #0FFH MOV R2, #0FFH DL1: MOV R4, #0FFH DL1: MOV R3, #0FFH DL2: NOP DL2: MOV R4, #0FFH NOP DL3: NOP DJNZ R4,DL2 NOP DJNZ R3,DL1 DJNZ R4,DL3 RET DJNZ R3,DL2

END DJNZ R2,DL1

RET

END

若将0字循环改为4字循环只需将0字七段码0C0H改为4字七段码99H即可。

六、实验源程序

ORG 0000H

LJMP MAIN

ORG 0DA0H LJMP SOX0 ORG 0A10H

MAIN: MOV 20H, #03H ;每次实验,这里可以改为0、1、2和3 MOV A, 20H ;取预置数据

-11-

MOV DPTR, #LOOP ;散转表起始地址 RL A JMP @A+DPTR LOOP: AJMP LOOP1 AJMP LOOP2 AJMP LOOP3 AJMP LOOP4

LOOP1: MOV 21H, #0C0H ;\字的7段码 SJMP SOX0

LOOP2:MOV 21H, #0F9H SJMP SOX0

LOOP3: MOV 21H, #0A4H

SJMP SOX0

;\字的7段码 ;循环显示程序 ;取来7段码 ;显示器段地址 ;显示器位地址 ;将7段码输出 ;最\右\边的位发光 ;\字的7段码 ;\字的7段码 ;A 乘以 2 ;散转指令

LOOP4: MOV 21H, #0B0H SOX0:

MOV A, 21H MOV R0, #0DCH MOV R1, #0DDH MOVX @R0, A MOV A, #01H SOX1:

MOVX @R1, A MOV R2, #20H

;准备延时

LCALL DELAY ;调用延时子程序 RL A SJMP SOX1 DELAY:

MOV R3, #0FFH DL1: MOV R4, #0FFH DL2: NOP NOP DJNZ R4,DL2 DJNZ R3,DL1 RET

END

;左移显示的位 ;无穷循环

实验十一 二进制转换到BCD

-12-

一、实验目的

将给定的一个二进制数,转换成二进制编码的十进制(BCD)码。

二、实验内容

掌握简单的数值转换算法,基本了解数值的各种表达方法。

三、程序框图

四、实验过程

本程序中需要转换的二进制数为F4H。由于八位内存存储的最大数据为FFH即十进制的255,故所转换的十进制数只有百位、十位和个位。百位的BCD码即待转换二进制数除以100得到的商,余数保存;用余数除以10得到十位BCD码,所得余数即为个位BCD码。将转换后BCD码三位装入20H-22H内存即可。

五、实验结果及分析

转换后BCD码

0020H-0022H单元中中存放的244即为二进制数F4H转换后得到的BCD码。

六、实验源程序

;待调整数A=0F4H ORG 0000H

LJMP MAIN ORG 100H

MAIN: CLR A

-13-

MOV R5, A MOV R6, A MOV A, #0F4H MOV B, #64H DIV AB MOV 20H, A MOV A, B MOV B, #0AH DIV AB MOV 21H, A MOV 22H, B

SJMP $ END

-14-

…… 此处隐藏:225字,全部文档内容请下载后查看。喜欢就下载吧 ……
哈工大单片机实验报告(上传)(3).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wendang/445188.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)