51单片机拆字程序实验

news2025/4/17 15:52:11

一、实验内容

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.coloradmin.cn/o/1331932.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python算法例27 对称数

1. 问题描述 对称数是一个旋转180后(倒过来)看起来与原数相同的数,找到所有长度为n的对称数。 2. 问题示例 给出n2,返回["11","69","88&#x…

docker构建镜像及项目部署

文章目录 练习资料下载一、docker基础1. 基本概念2. docker常见命令3. 命令别名4. 数据卷 二、docker自定义镜像1. 了解镜像结构2. 了解Dockerfile3. 构建Dockerfile文件,完成自定义镜像 三、网络1. docker常见网络命令2. docker自带虚拟网络3. 自定义网络 四、dock…

Web前端 ---- 【Vue】vue路由守卫(全局前置路由守卫、全局后置路由守卫、局部路由path守卫、局部路由component守卫)

目录 前言 全局前置路由守卫 全局后置路由守卫 局部路由守卫之path守卫 局部路由守卫之component守卫 前言 本文介绍Vue2最后的知识点,关于vue的路由守卫。也就是鉴权,不是所有的组件任何人都可以访问到的,需要权限,而根据权限…

simulinkveristandlabview联合仿真——模型导入搭建人机界面

目录 1.软件版本 2.搭建simulink仿真模型 编译错误 3.导入veristand并建立工程 4.veristand导入labview labview显示veristand工程数据 labview设置veristand工程数据 运行labview工程 1.软件版本 matlab2020a,veristand2020 R4,labview2020 SP…

第1课 配置FFmpeg+OpenCV开发环境

一、配置开发环境 1.下载FFmpegOpenCV开发所用的SDK压缩包,并解压到E:\SDK下,解压后的路径应为:E:\SDK\ffmpeg-sdk\58\x86\dll及E:\SDK\opencv-sdk\340\x86\dll。 2.新建VC项目,名称为demo1,项目类弄为MFC应用程序&a…

2023年浙大城市学院新生程序设计竞赛(同步赛)G

登录—专业IT笔试面试备考平台_牛客网 题意 思路 首先想法非常单一,一定是去枚举操作点,然后看它染白和不染的价值差值 也就是说,把一个黑色结点染白之后,对哪些结点的价值会影响 不难想象其实就是操作结点的子树和该点连通的…

嵌入式硬件电路原理图之跟随电路

描述 电压跟随电路 电压跟随器是共集电极电路,信号从基极输入,射极输出,故又称射极输出器。基极电压与集电极电压相位相同,即输入电压与输出电压同相。这一电路的主要特点是:高输入电阻、低输出电阻、电压增益近似为…

C/C++ 连接访问 MySQL数据库

前面我们已经讲述了MySQL的基础使用,现在我们来看一下如何使用语言来操作数据库。在实际开发中,语言连接MySQL是为了能够在编程语言中与MySQL数据库进行交互和操作。大部分情况我们都是通过语言连接MySQL,建立与MySQL数据库的连接&#xff0c…

docker笔记2-docker 容器

docker 容器的运行 docker run 镜像名:版本标签: 创建 启动容器 docker run 镜像名 ,如果镜像不存在,则会在线下载镜像。 注意事项: 容器内的进程必须处于前台运行状态,不能后台(守护进程运行…

Android UID相关知识

一、UID/PID/GID/GIDS的含义和作用 UID : android中uid用于标识一个应用程序,uid在应用安装时被分配,并且在应用存在于手机上期间,都不会改变。一个应用程序只能有一个uid,多个应用可以使用sharedUserId 方式共享同一个uid&#…

【四】【C语言\动态规划】地下城游戏、按摩师、打家劫舍 II,三道题目深度解析

动态规划 动态规划就像是解决问题的一种策略,它可以帮助我们更高效地找到问题的解决方案。这个策略的核心思想就是将问题分解为一系列的小问题,并将每个小问题的解保存起来。这样,当我们需要解决原始问题的时候,我们就可以直接利…

YOLOv8改进 | 主干篇 | 利用SENetV1改进网络结构 (ILSVRC冠军得主)

一、本文介绍 本文给大家带来的改进机制是SENet(Squeeze-and-Excitation Networks)其是一种通过调整卷积网络中的通道关系来提升性能的网络结构。SENet并不是一个独立的网络模型,而是一个可以和现有的任何一个模型相结合的模块(可以看作是一…

Linux 宝塔mysql莫名其妙数据库不见了恢复数据库

起因:宝塔安装的mysql 线上运行突然表包括库都不见了,想办法恢复数据库 登陆mysql cd /www/server/mysql/binmysql -u root -p查看binlog日志是否打开 show variables like log_%;log_bin如果为 ON 则为开启状态,如果开启了才可以进行下一…

研究论文 2022-Oncoimmunology:AI+癌RNA-seq数据 识别细胞景观

Wang, Xin, et al. "Deep learning using bulk RNA-seq data expands cell landscape identification in tumor microenvironment." Oncoimmunology 11.1 (2022): 2043662. https://www.tandfonline.com/doi/full/10.1080/2162402X.2022.2043662 被引次数&#xff1…

哈希拓展攻击CTF题做法

目录 基础: 盐(Salt): 哈希长度拓展攻击: kali下载相关工具hash-ext-attack: hash拓展题目特征: 哈希拓展ctf题: 2023楚慧杯upload_shell 实验吧之让我进去: 前言…

关于“Python”的核心知识点整理大全38

14.1.1 创建 Button 类 由于Pygame没有内置创建按钮的方法,我们创建一个Button类,用于创建带标签的实心矩形。 你可以在游戏中使用这些代码来创建任何按钮。下面是Button类的第一部分,请将这个类保存为 文件button.py: button.py …

渗透实验 XSS和SQL注入(Lab3.0)

windows server2003IIS搭建 配置2003的虚拟机 1、利用AWVS扫描留言簿网站(安装见参考文档0.AWVS安装与使用.docx),发现其存在XSS漏洞,截图。 2、 Kali使用beef生成恶意代码 cd /usr/share/beef-xss./beef执行上面两条命令 …

Maven核心概念

1 Maven工程的GAVP Maven 中的 GAVP 是指 GroupId、ArtifactId、Version、Packaging 等四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。 这四个属性主要为每个项目在maven仓库中做一个标识,方便项目之间相互引用。 GAV G 即…

模式识别与机器学习(八):决策树

1.原理 决策树(Decision Tree),它是一种以树形数据结构来展示决策规则和分类结果的模型,作为一种归纳学习算法,其重点是将看似无序、杂乱的已知数据,通过某种技术手段将它们转化成可以预测未知数据的树状模…

使用vue-qr,报错in ./node_modules/vue-qr/dist/vue-qr.js

找到node_modules—>vue-qr/dist/vue-qr.js文件,搜…e,将…去掉,然后重新运行项目。