51单片机拆字程序实验

一、实验内容

1.基本要求

熟悉51仿真系统;设计并单步调试,实现将R5中数值(初值为本人学号后两位)拆分成两位独立的数据分别存于R6,R7中;

2.扩展要求

将R6,R7中的被拆出来的一位HEX数据转换为可显示的ASCII编码;

3.思考要求

分析BIN,HEX,BCD, ASCII等不同编码的数学意义及表现形式上的异同。

二、理论分析或算法分析

要求将R5中的数值分开高四位和低四位显示在R6和R7当中,R5的二进制有八位,需要将R5拆成两部分,变成两个独立的数据,分别保存在R6,R7当中,R6保存R5的高四位,R6的高四位为0000,;R7保存R5的低四位,R7的高四位为0000;

实现拆字实验有以下方法:

  1. XCHD、SWAP使用累加器互换,将7654的值与3210的值进行交换;
  2. 使用除法,R5除以10H,可以得到商是7654,余数是3210;
  3. 使用逻辑运算,R5与0F0H  以及R5 与0FH;

R5:7654 3210  27H

R6:xxxx 7564

R7:xxxx 3210

扩展要求:

R5:7654 3210   27H

R6:xxxx 7564   02H

R7:xxxx 3210   07H

对应的数据是3和5,对应的数据取值范围是从0到15,0到9的转化结果是30H到39H,10到15转化的结果需要转化为A到F的转变;

实现的办法:

  1. 直接进行数学计算;R6和R7大于等于10,就把内容变成+41H-10=55,反之,直接加30H=48;
  2. 可以使用查表的方法,“0123456789ABCDEF”,movc  A,@A+DPTR

三、实现方法

基本要求代码

使用方法一的代码:

使用方法二的代码:

扩展要求代码

四.实验结果分析

基本要求结果

方法一执行过程:

取R5为27H.

单步运行:(R7赋值为00H)

(R0赋值为07H) 

           

执行结果:(R6为02,R7为07)

方法二执行过程:

取R5为27H,

单步执行:

       

实现结果:(R6中保存2,R7中保存7)

扩展要求结果

出现的问题

(1)表达语法错误:

(2)表达语法错误:

解决方法

1.将A5保存到A当中,将R7保存到B当中;

2.使用寄存器间接寻址;

五、结论

在本次实验中,学会了如何使用medwin编程来实现对字节的拆分,使用了两种算法来将一个字节的数拆分成两个数值,将其高四位存于一个数,将其低四位存于一个数,了解到了medwin的操作以及窗口平铺等功能。

思考题:分析BIN,HEX,BCD, ASCII等不同编码的数学意义及表现形式上的异同。

BIN在数字上表示的是二进制。其数值为0和1,是计算机中的最小的存储单位;而HEX表示的是十六进制。其数值范围为0到9、A到F,便于在计算机中进行计算ASCII是单字节编码系统,定义字符表示;而BCD码是用来解决二进制和十进制之间的一些转换。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/297049.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

安全实践:保障 Kubernetes 生产环境的安全性

▲ 点击上方"DevOps和k8s全栈技术"关注公众号 Kubernetes(简称 K8s)是一个强大的容器编排平台,广泛应用于生产环境中。然而,与其功能强大相对应的是对安全性的高要求。在生产环境中,我们必须采取一系列措施来…

【微服务】springboot整合kafka-stream使用详解

目录 一、前言 二、kafka stream概述 2.1 什么是kafka stream 2.2 为什么需要kafka stream 2.2.1 对接成本低 2.2.2 节省资源 2.2.3 使用简单 2.3 kafka stream特点 2.4 kafka stream中的一些概念 2.5 Kafka Stream应用场景 三、环境准备 3.1 搭建zk 3.1.1 自定义d…

JS中的Set和Map数据结构

新的数据结构出现,往往是为了解决之前的痛点,更快更便捷的实现代码逻辑。本篇文章咱们一起学习一下JS中Set和Map数据结构。 Set 定义 Set结构中储存的是值,类似于数组,但是储存的值具有唯一性。定义Set结构方式如下图&#xff1…

三菱人机交互GT Designer的安装

今天,与小编一起来学习三菱的GT Designer软件,下面就是小编记录的软件查找,安装的全过程,希望对你学习三菱有帮助。 目录 安装 选择官网下载安装包 解压安装包进行安装 创建一个工程 安装 选择官网下载安装包 三菱(中…

Linux怎么解压zip格式文件?

Linux解压命令zip是一种常见的文件压缩格式,用于把文件打包成一个zip文件,当我们需要共享或是发送时,能够更快速的发送,储存起来能够减少储存空间。那我们在Linux上怎么使用解压命令zip来解压zip格式文件呢?我们一起来…

Python遥感影像深度学习指南(1)-使用卷积神经网络(CNN、U-Net)和 FastAI进行简单云层检测

【遥感影像深度学习】系列的第一章,Python遥感影像深度学习的入门课程,介绍如何使用卷积神经网络(CNN)从卫星图像中分割云层 1、数据集 在本项目中,我们将使用 Kaggle 提供的 38-Cloud Segmentation in Satellite Images数据集。 该数据集由裁剪成 384x384 (适用…

探索 HTTP 请求的世界:get 和 post 的奥秘(下)

🤍 前端开发工程师(主业)、技术博主(副业)、已过CET6 🍨 阿珊和她的猫_CSDN个人主页 🕠 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 🍚 蓝桥云课签约作者、已在蓝桥云…

【Pytorch】学习记录分享7——PyTorch数据增强/经典网络架构训练图像分类模型

【Pytorch】学习记录分享7——PyTorch 1. 数据增强、transform 模块数据预处理部分:网络模块设置:网络模型保存与测试 2. 迁移学习3. 参考pytorch官网例子 1. 数据增强、transform 模块 数据预处理部分: 数据增强:torchvision中…

Vue3学习(后端开发)

目录 一、安装Node.js 二、创建Vue3工程 三、用VSCode打开 四、源代码目录src 五、入门案例——手写src 六、测试案例 七、ref和reactive的区别 一、安装Node.js 下载20.10.0 LTS版本 https://nodejs.org/en 使用node命令检验安装是否成功 node 二、创建Vue3工程 在…

基于Linphone android sdk开发Android软话机

1.Linphone简介 1.1 简介 LinPhone是一个遵循GPL协议的开源网络电话或者IP语音电话(VOIP)系统,其主要如下。使用linphone,开发者可以在互联网上随意的通信,包括语音、视频、即时文本消息。linphone使用SIP协议&#…

I Doc View在线文档预览系统 cmd.json RCE漏洞复现

0x01 产品简介 IDocView是一个在线文档解析应用,旨在提供便捷的文件查看和编辑服务。 0x02 漏洞概述 I Doc View在线文档预览系统 cmd.json 接口处存在命令执行漏洞,攻击者可通过该漏洞在服务器端任意执行代码,写入后门,获取服务器权限,进而控制整个web服务器。 0x03 影…

Linux操作系统基础 – 修改文件权限

Linux操作系统基础 – 修改文件权限 Linux Operating System Essentials - Modify File Rights By JacksonML 文件是Linux操作系统存储信息的基本结构。文件是一组信息的集合。 在Linux操作系统和Windows操作系统相比较的最大不同,是Linux文件没有扩展名&#xff…