(实验三)BCD码转换为二进制码实验报告
- 格式:docx
- 大小:28.81 KB
- 文档页数:2
一、实训目的通过本次实训,掌握数码显示译码器的基本原理、工作原理及电路设计方法,了解数码显示译码器在数字电路中的应用,提高动手能力和实践技能。
二、实训内容1. 数码显示译码器原理及分类(1)原理:数码显示译码器是一种将二进制、BCD码等编码转换为数码管显示的电路。
它主要由编码器、译码器、驱动器等组成。
(2)分类:根据编码方式,可分为二进制译码器、BCD码译码器、十六进制译码器等;根据输出方式,可分为共阳极译码器和共阴极译码器。
2. 数码显示译码器电路设计(1)共阳极译码器电路设计以4-7译码器为例,输入端为二进制编码,输出端为7段数码管的驱动信号。
电路图如下:```A||+---+---+---+---+| | | | |B---+ | | +---C| | | | |+---+---+---+---+| | | |D---+ | +---E| | | |+---+---+---+---+| | | | |F---+ | | +---G| | | | |+---+---+---+---+H```(2)共阴极译码器电路设计以CC4511BCD译码器为例,输入端为BCD码,输出端为7段数码管的驱动信号。
电路图如下:```A||+---+---+---+---+| | | | |B---+ | | +---C| | | | |+---+---+---+---+| | | |D---+ | +---E| | | |+---+---+---+---+| | | |F---+ | | +---G| | | |+---+---+---+---+H```3. 数码显示译码器应用(1)计时器:将计数器输出的二进制编码转换为数码管显示,实现计时功能。
(2)数码管显示模块:在嵌入式系统、智能仪表等设备中,将数字信号转换为数码管显示,方便用户读取数据。
(3)地址译码:在存储器、I/O端口等地址译码电路中,将地址信号转换为输出端口,实现数据传输。
微机原理-数码转换实验报告-CAL-FENGHAI.-(YICAI)-Company One1实验九数码转换一、实验目的1、掌握计算机常用数据编码之间的相互转换方法。
2、进一步熟悉DEBUG软件的使用方法。
二、实验内容1、ACSII码转换为非压缩型BCD码2、BCD码转换为二进制码3、十六进制数转换为ASCII码三、实验1、ACSII码转换为非压缩型BCD码DATA SEGMENT PARA 'DATA'DATA1 DB 8 DUP()DATA2 DB 8 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,SEG DATA1MOV DS,AXMOV DX,DATAMOV AH,0AHINT 21HLEA SI,DATA1MOV CL,[SI+1]LEA DI,DATA2ADD SI, 2CHK: MOV AL,[SI+2]CMP AL, '0'JB L01CMP AL, '9'JA L01SUB AL,30HMOV BL,ALMOV [DI], BLINC SIINC DIDEC CXJNZ CHKL01: MOV BL, 0FFHLOOP CHKMOV AH,4CH INT 21H CODE ENDSEND START2、BCD码转换为二进制码DATA SEGMENTBCD DB 1,2,3,4,5A DWDATA ENDSSTACK SEGMENT PARA STACK''STACK''STAPN DW 50 DUP()STACK ENDSCODE SEGMENTMAIN PROC FARASSUME DS:DATA,CS:CODE,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXCALL CONVERTMOV A,BXRETMAIN ENDPCONVERT PROC NEARPUSH SIPUSH CXPUSH AXMOV SI,4L1:MOV AL,BCD[SI]CBWXCHG AX, BXMOV CX,10DMUL CXXCHG AX,BXADD BX,AXDEC SIJNZ L1POP AXPOP CXPOP SIEXIT:MOV AH,4CH INT 21H CONVERT ENDP CODE ENDSEND START3、十六进制数转换为ASCII码DATA SEGMENTDATA1 DW 2010HDATA2 DB 4 DUP()DATA ENDSSTACKS SEGMENT PARA STACK 'STACK'STACKS ENDSCODES SEGMENTASSUME SS:STACKS,CS:CODESASSUME DS:DATASSTART: MOV AX, DATAMOV DS, AXLEA SI, DATA1MOV AX, [SI]MOV CL, 12SHR AX, CLMOV BL, ALCALL ASCMOV DATA2, BLCALL XSMOV AX, [SI]MOV CL, 8SHR AX, CLAND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+1, BLCALL XSMOV AX, [SI]MOV CL, 4SHR AX, CLAND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+2, BLCALL XSMOV AX, [SI]AND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+3, BLCALL XSMOV AH, 4CHINT 21HASC PROCCMP BL, 0AH JC LPADD BL, 07H LP: ADD BL, 30H RETASC ENDPXS PROCMOV DL, BL MOV AH, 02H INT 21HRETXS ENDPCODE ENDSEND START4、六进制数转换为十进制DATAS SEGMENTSTRING1 DB 0DH,0AH,'$'STRING2 DB 0DH,0AH,'$'DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV DX,OFFSET STRING1MOV AH,9INT 21HMOV CL,10HMOV BX,0NEWCHAR:MOV AH,1INT 21HSUB AL,30HJB DISPCBWXCHG AX,BXMOV CH,0MUL CXXCHG AX,BXADD BX,AXJNC NEWCHARDISP:MOV DX,OFFSET STRING2MOV AH,9INT 21HMOV CX,10000AGAIN:MOV DX,0MOV AX,BXDIV CXMOV BX,DXMOV DL,ALADD DL,30HCMP DL,39HJLE NEXTADD DL,7H NEXT:MOV AH,2INT 21HMOV DX,0MOV AX,CXMOV CX,10DIV CXMOV CX,AXCMP CX,0JNZ AGAINMOV AH,4CH INT 21H CODES ENDS END START5、十进制转换成七段码DATA SEGMENTDATA1 DB 3,4TABLE DB 23H,56H,42H,75H,00H,24H,67H,39H,20H DATA2 DB 2 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA ST: MOV DI, OFFSET BUFDAMOV CL, 80HMOV BX, OFFSET TABLE DISI: MOV BL, [DI+0]MOV AX, BXXLATMOV DX, PORTSEGOUT DX, ALMOV AL, CLMOV DX, PORTBITOUT DX, ALPUSH CXMOV CX, 30HDELAY: LOOP DELAYPOP CXCMP CL, 20HJZ QUITINC DISHR CL, 1JMP DISIQUITCODE ENDSEND ST。
实验二二进制码转换为BCD码一、实验目的1、掌握数码转换基本方法,加深对数码的理解。
2、用于十进制BCD码显示。
二、实验内容将AX的内容转换为十进制BCD码。
三、实验程序框图四、实验步骤脱机模式:(1)在P.态,按SCAL键,输入2CE0,按EXEC键。
(2)复位RST键,由于AX中给定数为0FFFF,查看BCD码结果保留在4100H~4104H 单元中,故其值应为06、05、05、03、05。
联机模式:(1)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8kAsm文件夹,点击S2.ASM 文件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
(2)复位“系统复位”键,由于AX中给定数为0FFFF,查看BCD码结果保留在4100H~4104H单元中,故其值应为06、05、05、03、05。
注:操作过程参照“实验一二进制多位加法运算”。
五、实验程序清单X:\DICE-8086K3微机原理与接口实验箱CDROM\CODE\86kasm\S2.ASM;将AX拆为5个BCD码,并存入Result开始的5个单元DATA SEGMENT AT 0 ;S2.ASM,BIN-->BCDORG 4000HRESULT DB 5 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATAORG 2CE0HSTART PROC NEARMOV AX, DATAMOV DS, AXMOV DX,0000HMOV AX, 65535MOV CX, 10000DIV CXMOV RESULT, AL ; 除以 10000, 得WAN位数MOV AX,DXMOV DX,0000HMOV CX, 1000DIV CXMOV RESULT+1, AL ; 除以 1000, 得QIAN位数MOV AX,DXMOV DX,0000HMOV CX, 100DIV CXMOV RESULT+2, AL ; 除以 100, 得BAI位数MOV AX,DXMOV DX,0000HMOV CX, 10DIV CXMOV RESULT+3, AL ; 除以 10, 得SHI位数MOV RESULT+4, DL ; 得GE位数JMP $CODE ENDSEND START。
第一部分软件实验实验一二进制到BCD码转换一、实验目的1、掌握简单的数值转换算法2、基本了解数值的各种表达方法二、实验说明单片机中的数值有各种表达方式,这是单片机的基础。
掌握各种数制之间的转换是一种基本功。
我们将给定的一个二进制数,转换成二十进制(BCD)码。
将累加器A的值拆为三个BCD码,并存入RESULT开始的三个单元,例程A赋值#123。
三、实验内容及步骤1、启动计算机,打开伟福仿真软件,进入仿真环境。
首先进行仿真器的设置,选择使用伟福软件模拟器。
2、打开TH2.ASM源程序进行编译,编译无误后,全速运行程序,打开数据窗口(DATA),点击暂停按钮,观察地址30H、31H、32H的数据变化,30H更新为01,31H更新为02,32H更新为03。
用键盘输入改变地址30H、31H、32H的值,点击复位按钮后,可再次运行程序,观察其实验效果。
修改源程序中给累加器A的赋值,重复实验,观察实验效果。
3、打开CPU窗口,选择单步或跟踪执行方式运行程序,观察CPU窗口各寄存器的变化,可以看到程序执行的过程,加深对实验的了解。
四、流程图及源程序1.源程序RESULT EQU 30HORG 0000HLJMP STARTBINTOBCD:MOV B,#100DIV ABMOV RESULT,A ;除以100得百位数MOV A,BMOV B,#10DIV ABMOV RESULT+1,A ;余数除以10得十位数MOV RESULT+2,B ;余数为个位数RETSTART:MOV SP,#40HMOV A,#123CALL BINTOBCDLJMP $END2.流程图实验四程序跳转表一、实验目的1、了解程序的多分支结构2、掌握多分支结构程序的编程方法二、实验说明多分支结构是程序中常见的结构,在多分支结构的程序中,能够按调用号执行相应的功能,完成指定操作。
若给出调用号来调用子程序,一般用查表方法,查到子程序的地址,转到相应子程序。
在将BCD码转换为二进制码时,我们需要将每个十进制数位转换为4位二进制数。
例如,十进制数37的BCD码为0011 0111,而其对应的二进制码为0011 0111(将每个BCD码中的十进制数位分别转换为4位二进制数即可)。
相反地,在将二进制码转换为BCD码时,我们需要将每个四位二进制数转换为对应的
十进制数位。
这可以通过将二进制数从右往左以4位为一组进行分组,然后将每个4
位二进制数转换为对应的十进制数位。
例如,二进制数11010101可以分组为1101和0101,分别对应十进制数13和5,因此该二进制数的BCD码为0001 0011 0101。
需要注意的是,当将二进制数转换为BCD码时,如果分组后得到的十进制数超过了9,则需要使用两个BCD码来表示该十进制数。
例如,二进制数10011011可以分组为
0001和1001,分别对应十进制数1和9,但是9超过了BCD码的最大值,因此我们需要将其拆分为两个BCD码,分别表示1和0x0001。
因此,该二进制数的BCD码为0001 0001 0000 1001。
bcd码转化为二进制数 c语言(原创实用版)目录1.BCD 码的概念和表示方式2.C 语言中 BCD 码转二进制数的方法3.实例演示正文一、BCD 码的概念和表示方式BCD(Binary Coded Decimal)码,即二进制编码十进制,是一种用 4 位二进制数表示 1 位十进制数的编码方式。
它的每一位二进制数都可以转换为相应的十进制数,因此便于电子设备进行处理。
在实际应用中,BCD 码广泛应用于计算机系统、数字电路和电子设备等领域。
二、C 语言中 BCD 码转二进制数的方法在 C 语言中,我们可以通过将 BCD 码的每一位与相应的权值相乘,然后将结果相加,得到对应的二进制数。
具体实现如下:```c#include <stdio.h>int bcd_to_binary(int bcd) {int binary = 0;for (int i = 3; i >= 0; i--) {binary += (bcd >> i) * (2 << i);}return binary;}int main() {int bcd = 1011; // 示例:BCD 码表示的十进制数 11int binary = bcd_to_binary(bcd);printf("BCD 码%d转化为二进制数为%d", bcd, binary);return 0;}```三、实例演示以 BCD 码 1011 为例,我们通过上述方法将其转换为二进制数:1.初始化 binary 变量为 0。
2.从高位到低位(从右到左),依次将 BCD 码的每一位与相应的权值相乘,然后将结果相加。
3.计算过程如下:- 当 i=3 时,2^3=8,bcd 的第 3 位为 1,所以 binary += 1 * 8 = 8。
- 当 i=2 时,2^2=4,bcd 的第 2 位为 0,所以 binary += 0 * 4 = 0。
P L C可编程控制器及应用
实验报告
Prepared on 24 November 2020
学 院 机电工程学院 专 业 机械设计制造及其自动化 班 级 学 号 姓 名
可编程序控制器及应用课程建设组编制 《可编程序控制器及应用》实验报告一
实验名称:PLC 基本指令实验 开课实验室:PLC 实验室
可编程序控制器及应用
实验报告
实验名称:PLC高级指令实验开课实验室:PLC实验室
实验名称:数码显示控制实验开课实验室:PLC实验室
实验名称:四节传送带控制实验开课实验室:PLC实验室
实验名称:天塔之光控制实验开课实验室:PLC实验室
实验名称:红绿灯控制实验开课实验室:PLC实验室。
BCD码转换成二进制什么是BCD码?BCD(Binary-Coded Decimal)码是一种用二进制编码的十进制数表示方法。
在BCD码中,每个十进制数的每位都用4位二进制数表示,称为“BCD位”。
比如,十进制数23的BCD码为00100011,其中“0010”表示2,“0011”表示3。
BCD码可以用于数字显示、计算机存储和传输等领域。
BCD码的转换方法将BCD码转换成二进制的方法非常简单。
对于每一个BCD位,只需要将其转换成对应的4位二进制数即可。
以十进制数23的BCD码为例,我们需要将其转换成二进制数。
1.首先,将BCD码的第一个BCD位“0010”转换成4位二进制数“0010”;2.接下来,将BCD码的第二个BCD位“0011”转换成4位二进制数“0011”;3.最后,将这两个4位二进制数连接起来,得到十进制数23的二进制表示:“0010 0011”。
BCD码转换成二进制的算法为了更好地理解BCD码转换成二进制的算法,我们可以先将十进制数转换成BCD码,然后再将BCD码转换成二进制。
下面是BCD码转换成二进制的算法:1.将BCD码的第一个BCD位转换成4位二进制数;2.将BCD码的第二个BCD位转换成4位二进制数;3.重复上述步骤,直到所有的BCD位都被转换成4位二进制数;4.将所有的4位二进制数连接起来,得到最终的二进制表示。
BCD码转换成二进制的示例让我们通过一个具体的例子来演示BCD码转换成二进制的过程。
假设我们要将十进制数27转换成BCD码,然后再将BCD码转换成二进制。
1.将十进制数27转换成BCD码,得到BCD码的表示为“0010 0111”;2.将BCD码的第一个BCD位“0010”转换成4位二进制数“0010”;3.将BCD码的第二个BCD位“0111”转换成4位二进制数“0111”;4.将这两个4位二进制数连接起来,得到最终的二进制表示:“0010 0111”。
总结BCD码是一种用二进制编码的十进制数表示方法。
bcd转换为二进制BCD码(Binary-Coded Decimal,二进制编码十进制)是一种用二进制数码来表示十进制数的方法,即将0-9十个数字分别进行二进制编码,可以被计算机直接处理。
由于它的特殊性质,使得BCD码不同于其他的编码方式,同时也使得BCD码可以被应用于很多领域,例如金融、准确度要求高的计算等。
然而,很多时候我们需要将BCD码转换成二进制数,在本篇文章中将详细讲述BCD码转换成二进制码的方法。
一、什么是BCD码?BCD码是一种二进制编码,可以用于表示数字0-9。
使用BCD码表示一个数时,将这个数的每一位数字转换成BCD码(即用4位二进制数来表示),拼接而成。
例如,数字29的BCD码是0010 1001。
二、BCD码转二进制码的基本方法将BCD码转换为二进制码,只需要将每一位的BCD码拆分后转换成二进制码,再将这些二进制码按位拼接在一起即可。
具体操作步骤如下:1. 选中一个BCD码。
2. 查看BCD码最高位(MSB,即最左边那一位),如果是1,则表示这个十进制数字大于或等于5;如果是0,则表示这个十进制数字小于5。
因此,可以根据最高位的值,做出递归处理。
3. 如果MSB是1,那么将这个BCD码减去5,然后按照步骤1和步骤2递归处理。
4. 如果MSB是0,那么将这个BCD码乘以2,然后按照步骤1和步骤2递归处理。
5. 递归处理这个BCD码的每个数字,把它们的二进制码连接成一个二进制数。
6. 完成后得到的就是BCD码转换后的二进制码。
三、实例讲解以BCD码1001(即数字9的BCD码)为例,通过上述步骤,将其转换为二进制码的过程如下:1. 选中BCD码1001。
2. 最高位为1,表示这个十进制数字大于等于5。
3. 1001 - 0101 = 0100。
减去5,得到4,然后对这个数字应用上述步骤。
4. 选中BCD码0100。
5. 最高位为0,表示这个十进制数字小于5。
6. 0100 * 2 = 1000。
实验三BCD码转换为二进制码
一、实验目的
1、掌握BCD码到二进制码的转换方法。
2、用于BCD码转入信号处理。
二、实验内容
对于内存中给定的几个十进制BCD码数转换为二进制数。
三、实验程序框图
四、实验步骤
脱机模式:
⑴在P.态下,按SCAL键,然后在内存单元4000H~4006H中依次写入四个十进制数(12、
34、56、78)的BCD码,即输入01、02、03、04、05、06、07,按MON键,返回P状态。
⑵在P.态下,输入2D40,按EXEC键。
⑶复位RST键,查看结果在4100~4107中,其内容应为:0C,00,22,00,38,00,4E,00。
联机模式:
(1)在内存单元4000H~4006H中依次写入四个十进制数(12、34、56、78)的BCD码,即输入01、02、03、04、05、06、07,按MON键,返回P状态。
(2)在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”
或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开8kAsm文件夹,点击S3.ASM文
件,单击“确定”即可装入源文件,再单击工具栏中编译,即可完成源文件自动编译、装载目
标代码功能,再单击“调试”中“连续运行”或工具图标运行,即开始运行程序。
(3)按“系统复位”键,查看结果在4100~4107中,其内容应为:0C,00,22,00,38,
00,4E,00。
五、实验程序清单
X:\DICE-8086K3微机原理与接口实验箱CDROM\CODE\86kasm\S3.ASM
CODE SEGMENT ;S3.ASM ,BCD 码转换为2 进制码
ASSUME CS:CODE
ORG 2D40H
START: MOV CX,0004H ;输入数据长度。
[4000]:01,02..
MOV DI,4000H ;结果存放在 [4100]: 0C,00,. CON1: MOV AL,[DI]
ADD AL,AL ;*2
MOV BL,AL
ADD AL,AL ;*2
ADD AL,AL ;*2
ADD AL,BL ;*10
INC DI
MOV AH,00
ADD AL,[DI] ;BCD码个位,十位相加
MOV [DI+0FFH],AX ;存结果
INC DI ;结果地址加1
LOOP CON1 ;CX不为零继续
JMP $
CODE ENDS
END START。