【精品】八位二进制码转化为BCD码及余三码、BCD码转化余三码

合集下载

二进制数到BCD码的转换

二进制数到BCD码的转换

得分教师签名批改日期课程编号1801770001深圳大学实验报告课程名称:微机原理及应用实验名称:二进制数到BCD码的转换学院:物理科学与技术学院指导教师:报告人:组号:学号实验地点K302实验时间:2014 年10 月22 日提交时间:2014.11.12一、实验要求:将AX中的一个二进制数(对应的十进制数范围是0-65535),转换成压缩性BCD码表示的十进制,并从屏幕输出转换结果。

要求用减法实现,并比较与除法方法进行运行速度比较。

二、实验目的:(1)进一步熟练掌握8086汇编语言编译调试工具和环境的操作;(2)掌握完整8086汇编的程序设计编写方法;(3)掌握简单的数值码制转换方法;(4)掌握键盘输出的DOS功能调用方法。

三、实验说明:计算机中的数值有各种表达方式,这是计算机的基础。

掌握各种数制、码制之间的转换是一种基本功;利用DOS功能调用实现在屏幕上显示字符或数字的方法是本课程的基本要求之一。

四、除法方法:1、算法说明:三位数先除以100,得到的商就是百分位的结果;将之前一次的余数除以10,得到的商就是十分位的结果;剩下来的余数就是个位的结果。

2、程序流程图:图1 除法程序流程图3、程序:DATA SEGMENT ; 数据段RESULT_1 DB 1RESULT_2 DB 1RESULT_3 DB 1DATA ENDSSTACK SEGMENT STACK ; 堆栈段STA DB 64 DUP(0)STACK_TOP DB 0STACK ENDSCODE SEGMENT ; 代码段ASSUME CS:CODE , DS:DATA , ES:DATA , SS:STACKSTART:; 程序开头必须要有的五条指令MOV AX, DATAMOV DS, AX ; 设置数据段MOV AX, STACKMOV SS, AX ; 设置堆栈段LEA SP, STACK_TOP ; 设置栈顶指针;---------------------------------------; 程序的中间部分MOV AX, 467MOV CL, 100DIV CLMOV RESULT_1, AL ; 除以 100, 得百位数MOV AL, AHMOV AH, 0MOV CL, 10DIV CLMOV RESULT_2, AL ; 余数除以 10, 得十位数MOV RESULT_3, AH ; 余数为个位数;------------------------------------------ ; 程序结束必须要有的两条指令MOV AX, 4C00H ;INT 21H ;;------------------------------------------ CODE ENDSEND START ; 最后一行要按回车键五、减法方法1、算法说明:三位数先循环减100,直到不够减了,做减法的次数就是百分位的结果;将不够减之前一次的余数恢复,再循环减去10,直到不够减了,做减法的次数就是十分位的结果;最后恢复的正余数就是个位的结果。

单片机 数值转换 X进制转换BCD码、ASCII码 编程

单片机  数值转换   X进制转换BCD码、ASCII码   编程
-个8位二进制数转换为BCD码
在片内RAM 30H单元有-个8位二进制数,将其转换成压缩BCD码,存于片内RAM 41H(高位)40H(低位)中。
(方法:2^8=256,所以8位二进制A<=256,A/100商是百位数,存放到41h单元,余数再除以10,再得商是10位数,高低位互换,)
ORG 0100H
START:
MOV A,30H ;取来8位二进制数
MOV B,#100
DIV AB ;除以100
MOV 41H,A ;商是百位数,存放到41h单元
MOV A,B ;取回余数
MOV B,#10
DIV AB ;再除以10
SWAP A;商是10位数,高低位互换
ORL A,B
MOV 40H,A ;将十位数与个位位数存入40h
MOV A,R2
ANL A,#0FH
CJNE A,#0AH,NEQ
NEQ: JC LOOP
ADD A,#37H
JMP LOOP3
LOOP:ADD A,#30H
LOOP3:MOV 31H,A
MOV A,R2
SWAP A
ANL A,#0FH
CJNE A,#0AH,NE1
NE1: JC LOOP1
ADD A,#37H
JMP LOOP4
LOOP1:ADD A,#30H
LOOP4:MOV 32H,A
A1: SJMP A1
END
已知R0的低半个字节为一个四位的二进制数,要求将其转换为ASCAII码后送回R0中。
二进制数与ASCII码的对应关系:
四位二进制ASCII
0000(0)30H
0001(1)31H
1001(9)39H
LJMP MAIN

二进制转BCD码需要几步?

二进制转BCD码需要几步?

二进制转BCD码需要几步?Hi,大家好!我是至芯科技的李老师。

今天讲课的题目比较有意思,它是一个小问题:把二进制变成BCD码需要几步?请大家思考一下。

有同学可能回答需要三步,为什么啊?因为啊,把大象放进冰箱里需要三步,第一步,把冰箱门打开,第二步,把大象放进去,第三步,把冰箱门关上。

类似的,把二进制变成BCD码,也需要三步。

blablablabla ......当然啦,这是开玩笑了。

不过,歪打正着,答案确实是三步。

究竟是怎么回事呢?我们下面细细说来,原理说透之后,我们演示一下具体的Verilog实现过程。

首先,看一下下面这张表格,把二进制(8’hFF)转换为BCD (12’h255)的步骤列表。

什么是二进制转BCD?有什么用?4位二进制是16进制数,而生活中常用的数制是10进制数。

怎么样用计算机来理解、表达生活中的10进制数?这就需要进行16进制数与10进制数的相互转换了。

而BCD码(Binary-Coded Decimal)正是计算机常用的一种表达方式。

它是一种以二进制表示的十进制数码。

比如说,至芯科技ZX-1开发板上的六位数码管显示数字可以是16进制的000000~FFFFFF,但是更为方便的方法是000000~999999。

六位数码管显示六位数字用十六进制,比如说是0F423F,谁也不知道是多少,但是它对应的十进制数999999,大家肯定很熟悉。

很多场合,我们和机器之间沟通用10进制更方便,但计算机是用01编码的。

需要进行人机之间的沟通和转换。

解决的方法就是用二进制的方式来存储、计算数值,但是用10进制的方式来显示这些数值,BCD码就起到了桥梁的作用。

注意,16进制属于二进制的一种形式,希望大家理解这点,包括8进制也是。

当然,道理容易明白。

但究竟机器又是怎样实现二进制和BCD码的转换的呢?注意,转换是双向的,既可以把二进制转换成BCD码,也可以把BCD码转换成二进制数。

可以想象BCD码转成二进制相对比较简单。

8421BCD—余3码转换

8421BCD—余3码转换

8421BCD—余3码转换VHDL程序并行语句的应用一、实训目的1.巩固编译、仿真VHDL文件的方法。

2.掌握VHDL程序并行语句的应用。

二、实训器材计算机与Quartus ?工具软件。

三、实训指导(一) 实训原理8421BCD-余3码转换电路的真值表如表3-1所示。

表3-1 8421BCD-余3码转换电路的真值表输入输出a3 a2 a1 a0 y3 y2 y1 y00 0 0 0 0 0 1 10 0 0 1 0 1 0 00 0 1 0 0 1 0 10 0 1 1 0 1 1 00 1 0 0 0 1 1 10 1 0 1 1 0 0 00 1 1 0 1 0 0 10 1 1 1 1 0 1 01 0 0 0 1 0 1 11 0 0 1 1 1 0 0 (二)实训步骤1.设计输入VHDL文件(1)建立工程项目。

(2)建立VHDL文件。

(3)用条件信号赋语句或选择信号赋值语句等并行语句设计VHDL文件。

VHDL 代码如下:LIBRARY ieee;USE ieee.std_logic_1164.ALL; ENTITY ysmzh ISPORT(a:IN STD_LOGIC_VECTOR(3 DOWNTO 0);y:OUT STD_LOGIC_VECTOR(3 DOWNTO 0));END ysmzh;ARCHITECTURE a OF ysmzh IS BEGINPROCESS(a)BEGINCASE a ISWHEN "0000"=>y<="0011";WHEN "0001"=>y<="0100";WHEN "0010"=>y<="0101";WHEN "0011"=>y<="0110";WHEN "0100"=>y<="0111";WHEN "0101"=>y<="1000";WHEN "0110"=>y<="1001";WHEN "0111"=>y<="1010";WHEN "1000"=>y<="1011";WHEN "1001"=>y<="1100";WHEN OTHERS=>NULL;END CASE;END PROCESS;END a;2.编译仿真VHDL文件(1)编译VHDL文件。

二进制转bcd 组合逻辑

二进制转bcd 组合逻辑

二进制转bcd 组合逻辑(原创实用版)目录1.二进制与 BCD 的概述2.二进制转 BCD 的组合逻辑方法3.实例分析4.总结正文一、二进制与 BCD 的概述二进制(Binary)是计算机中最基本的数制系统,它只有两个数码,即 0 和 1,广泛应用于计算机硬件和软件的设计中。

而 BCD(Binary Coded Decimal)即二进制编码十进制,是一种将十进制数转换为二进制数的编码方式,常用于计算机系统中数字信号的表示和处理。

二进制转 BCD,即将二进制数转换为 BCD 数,是在计算机系统中进行数字运算和处理的重要步骤。

组合逻辑是一种实现这一转换的常用方法,它主要通过逻辑门电路来实现二进制数到 BCD 数的转换。

二、二进制转 BCD 的组合逻辑方法二进制转 BCD 的组合逻辑方法主要包括以下两种:1.编码器方法:编码器是一种将多个输入信号转换为一个输出信号的组合逻辑电路。

在二进制转 BCD 的转换中,我们可以使用编码器将二进制数的每一位转换为 BCD 数的对应位。

例如,使用一个 4 位二进制数(2^3=8)来表示一个 BCD 数,即将 4 位二进制数转换为 3 位 BCD 数。

这样,我们可以通过编码器将 4 位二进制数转换为 3 位 BCD 数。

2.中间状态法:中间状态法是指在转换过程中,先将二进制数转换为十进制数,然后再将十进制数转换为 BCD 数。

这种方法需要使用更多的逻辑门电路,但是在一些特定情况下,如二进制数长度较短时,转换效果更佳。

三、实例分析假设有一个 4 位二进制数 1101,我们需要将其转换为 BCD 数。

1.使用编码器方法:首先,我们需要使用一个 4 位编码器,将二进制数的每一位转换为 BCD 数的对应位。

经过转换,得到的 BCD 数为1111。

2.使用中间状态法:首先,将二进制数 1101 转换为十进制数 13。

然后,使用一个 3 位编码器,将十进制数 13 转换为 BCD 数 1111。

8421BCD—余3码转换

8421BCD—余3码转换

VHDL程‎序并行语句‎的应用一、实训目的1.巩固编译、仿真VHD‎L文件的方‎法。

2.掌握VHD‎L程序并行‎语句的应用‎。

二、实训器材计算机与Q‎u artu‎sⅡ工具软件。

三、实训指导(一)实训原理8421B‎C D-余3码转换‎电路的真值‎表如表3-1所示。

表3-1 8421B‎C D-余3码转换‎电路的真值‎表输入输出a3 a2 a1 a0 y3 y2 y1 y00 0 0 0 0 0 1 10 0 0 1 0 1 0 00 0 1 0 0 1 0 10 0 1 1 0 1 1 00 1 0 0 0 1 1 10 1 0 1 1 0 0 00 1 1 0 1 0 0 10 1 1 1 1 0 1 01 0 0 0 1 0 1 11 0 0 1 1 1 0 0(二)实训步骤1.设计输入V‎H DL文件‎(1)建立工程项‎目。

(2)建立VHD‎L文件。

(3)用条件信号‎赋语句或选‎择信号赋值‎语句等并行‎语句设计V‎H DL文件‎。

VHDL代‎码如下:LIBRA‎R Y ieee;USE ieee.std_l‎o gic_‎1164.ALL;ENTIT‎Y ysmzh‎ISPORT(a:IN STD_L‎O GIC_‎V ECTO‎R(3 DOWNT‎O 0);y:OUT STD_L‎O GIC_‎V ECTO‎R(3 DOWNT‎O 0));END ysmzh‎;ARCHI‎T ECTU‎R E a OF ysmzh‎ISBEGIN‎PROCE‎S S(a)BEGIN‎CASE a ISWHEN "0000"=>y<="0011";WHEN "0001"=>y<="0100";WHEN "0010"=>y<="0101";WHEN "0011"=>y<="0110";WHEN "0100"=>y<="0111";WHEN "0101"=>y<="1000";WHEN "0110"=>y<="1001";WHEN "0111"=>y<="1010";WHEN "1000"=>y<="1011";WHEN "1001"=>y<="1100";WHEN OTHER‎S=>NULL;END CASE;END PROCE‎S S;END a;2.编译仿真V‎H DL文件‎(1)编译VHD‎L文件。

8位二进制转字符

8位二进制转字符

8位二进制转字符
8位二进制转字符的方法是将8位二进制数转换为对应的ASCII码,再将ASCII码转换为相应的字符。

首先,将8位二进制数分为两部分,前面7位用于表示ASCII 码,最后一位用于表示奇偶校验位。

奇偶校验位用于检测传输过程中的错误。

然后,将前面7位的二进制数转换为对应的十进制数,即将二进制数转换为十进制数。

最后,根据ASCII码表找到对应的字符。

例如,要将二进制数"01001000"转换为字符:首先将前面7位的二进制数"0100100"转换为十进制数,得到36。

然后根据ASCII码表,36对应的字符是"H"。

所以,二进制数"01001000"对应的字符是"H"。

八位二进制码转化为BCD码及余三码、BCD码转化余三码

八位二进制码转化为BCD码及余三码、BCD码转化余三码

河南科技大学课程设计说明书课程名称 EDA技术题目八位二进制转化为BCD码及余三码、BCD码转化为余三码学院车辆与动力工程学院班级学生姓名指导教师日期2012年7月14号八位二进制码转化为BCD码及余三码、BCD码转化余三码摘要八位二进制数转化为BCD码和余三码的转换在计算机语言中起到了非常重要的作用,通过这次的课程设计让我们更好地掌握二进制数转化为BCD 码和余三码。

二进制转化为余三码不能直接转化,只能通过BCD码为中介进而转化成余三码。

余三码(余3码)是由8421BCD码加上0011形成的一种无权码,由于它的每个字符编码比相应的8421BCD码多3,故称为余三码。

BCD码的一种。

余三码是一种对9的自补代码,因而可给运算带来方便。

其次,在将两个余三码表示的十进制数相加时,能正确产生进位信号,但对“和”必须修正。

修正的方法是:如果有进位,则结果加3;如果无进位,则结果减3。

如,(526)10进制=(0101 0010 0110)8421BCD码=(1000 0101 1001)余3码EDA技术打破了软件和硬件间的壁垒,使计算机的软件技术与硬件实现、设计效率与产品性能合二为一,它代表了电子设计技术和应用技术的发展方向。

VHDL主要用于描述数字系统的接口,结构和功能,它的语法简单易懂,移植性好。

本设计采用VHDL,Altera公司的Quartus II软件仿真,来实现八位二进制到BCD和BCD到余三码的转换。

由于八位二进制的最大范围是0~255,而八位BCD码的范围是0~99,故在转换时输入信号只能取99以内的数。

关键词:八位二进制、BCD码、余三码、VHDL目录第一章绪论 (1)§1.1 课程设计题目 (1)§1.2 设计目的 (2)§1.3 课程设计要求 (2)第二章EDA、VHDL简介 (3)§2.1 EDA简介 (3)§2.2 VHDL简介 (3)第三章设计过程 (5)§3.1设计规划 (5)§3.2各个模块设计及原理图 (5)§3.2.1八位二进制码转化为八位BCD码 (5)§3.2.2八位BCD码转化为八位余三码 (6)§3.2.3八位二进制码转化为8位余三码 (7)第四章系统仿真 (9)§4.1八位二进制码转化为八位BCD码仿真及分析 (9)§4.2八位BCD码转化为八位余三码仿真及分析 (9)§4.3八位二进制码转化为八位余三码仿真及分析 (10)第五章总结 (11)参考文献 (12)第一章绪论随着计算机科学与技术突飞猛进地发展,用数字电路进行信号处理的优势也更加突出,自20世纪70年代开始,这种用数字电路处理模拟信号的所谓“数字化”浪潮已经席卷了电子技术几乎所有的应用领域EDA是电子设计自动化(Electronic Design Automation)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
相关文档
最新文档