数码转换实验报告材料微机原理

合集下载

微机原理实验报告

微机原理实验报告

微机原理实验报告概述:微机原理是计算机科学与技术专业中的一门重要课程,通过实验学习,可以加深对计算机内部运行原理的理解,提高软硬件的开发和调试能力。

本实验报告将介绍我对微机原理实验的学习和思考。

实验一:二进制转换实验在这个实验中,我首先了解了二进制数的概念以及其和十进制数的转换方法。

通过实际操作,我加深了对计算机内部数据表示方式的理解。

这对于后续学习计算机系统结构和编程语言至关重要。

实验二:逻辑门电路实验逻辑门电路是计算机硬件的基础组成部分,通过实验,我学会了使用逻辑门芯片构建各种逻辑电路,并能够通过真值表分析和验证逻辑电路的正确性。

这对于理解计算机内部的数据处理和控制逻辑有着直接的帮助。

实验三:运算器设计实验在这个实验中,我通过学习和设计算术逻辑单元(ALU),了解了计算机的算术操作过程,并能够通过运算器实现基本算术运算。

这对于理解计算机内部数据的处理和计算机指令的执行有着重要的意义。

实验四:存储器与外设实验存储器是计算机系统的重要组成部分,通过实验,我深入了解了存储器的类型、组织结构和访问方式,并通过外设与存储器的交互,实践了计算机系统的输入和输出过程。

实验五:微处理器实验微处理器是计算机系统中最核心的部件,通过实验,我学习了微处理器的基本运行原理,能够通过汇编语言编写程序,并通过微处理器执行程序实现特定的功能。

这个实验为我今后学习计算机体系结构和操作系统打下了坚实的基础。

实验总结:通过这几个实验,我深入了解了微机原理课程的实践内容和相关知识。

实验的过程中,我不仅学会了使用仪器设备和工具,还培养了自己的动手能力和团队合作精神。

通过不断的实践,我对计算机内部结构和运行原理有了更深刻的理解,也提高了我的问题解决能力和创新思维。

未来展望:微机原理实验的学习只是计算机科学与技术专业中的一小部分。

我希望在今后的学习过程中能加深对计算机体系结构、操作系统、编程语言等方面的学习,并不断深入钻研,成为一名优秀的计算机科学与技术专业人才。

微机原理数制转换报告

微机原理数制转换报告

《微型计算机原理实验》报告学院:华工电子与信息学院专业班级:信息工程2班学号:姓名:实验名称:实验日期:2013/4/16一、实验内容:将ASCII码表示的十进制数转换为二进制数二、实验步骤1、从键盘输入五位的十进制数,保存在地址为3500H的存储单元2、把这个十进制数转换为十六进制数,所得结果保存在地址为3510H的存储单元中3、把这个十六进制的结果的每位取出来,转换为ACSII码值,存储在地址为3514H的存储单元中4、把以3514H为起始地址的字符串输出到屏幕,即可得到5位十进制数转换为二进制数的结果三、代码运算过程四、程序代码:DATA SEGMENT ORG 34FEH BUF DB 10 DB ?DB 10 DUP (?)ORG 3510HBBF DB 20 DUP (?),0DH,0AH,'$'IBF DB 'Please input one number:',0DH,0AH,'$'ICF DB 0DH,0AH,'The result is:',0DH,0AH,'$' DATA ENDSSTACK SEGMENT STACK 'STACK' STACK ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACK START :MOV AX,DATA MOV DS,AX MOV DX,OFFSET IBF MOV AH,9 INT 21H MOV DX,0 MOV AH,0AH LEA DX,BUF INT 21H MOV SI,3500H MOV DX,0 MOV CX,04H MOV BX,000AH MOV AH,00HLOOP CIRCLEMOV AL,[SI] SUB AL,30H ADD AX,DX LEA SI,BBFMOV [SI],AX MOV DX,AX MOV CH,04H MOV CL,04H MOV BX,3514H NEXT:ROL AX,CL MOV DL,AL AND DL,0FH CMP DL,09H JBE PLADD DL,07H PL: ADD DL,30H MOV [BX],DL INC BX DEC CH JNZ NEXTMOV DX,OFFSET ICF MOV AH,9 INT 21H MOV AH,09HCIRCLE:MOV AL,[SI] SUB AL,30H ADD AX,DX MUL BX MOV DX,AX INC SI MOV AH,0五:实验2-5实验2:将从键盘输入的五位十进制数的ASCII 码已存在3500起始的内存单元中。

微机原理实验指导书(软件)

微机原理实验指导书(软件)

实验一系统认识与数码转换实验一、实验目的1.学习汇编语言的开发过程。

2.熟练掌握DEBUG调试程序。

参考书后附录E二、实验设备PC机一台三、实验内容及步骤1.系统认识实验在内存缓冲区BUFF中存储0-F共16个字节数据,实验参考程序如下:DATA SEGMENTBUFF DB 16 DUP (?);定义数据段DATA ENDSCODE SEGMENT ;定义代码段ASSUME CS:CODE,DS:DATASTART:MOV AX,DATAMOV DS,AXMOV DI,OFFSET BUFF ;设置缓冲区首址MOV CX,16 ;字节数送入CX中MOV AL,0A1: MOV [DI],AL ;写入一字节INC DI ;修改地址指针INC AL ;修改数据LOOP A1 ;未填完循环MOV AH,4CHINT 21HCODE ENDS ;代码段结束END START ;程序结束实验步骤:(1)把实验用的相关软件拷贝到PC机中,比如D盘的HUIBIAN文件夹(D:\HUIBIAN)。

(2)进入DOS环境(开始\程序\附件\‘C:\命令提示符’),进入路径D:\HUIBIAN。

(3)编辑,启动编辑软件EDIT,输入源程序,检查无误后存盘,如文件名11.ASM。

(4)汇编,即键入MASM 11.ASM回车,通过后应生成文件11.OBJ。

(5)连接,即键入LINK 11.OBJ回车,通过后应生成文件11.EXE。

(6)调试,即键入DEBUG 11.EXE,进入调试软件DEBUG来调试源程序。

DEBUG的用法可参考教材的附录E。

(7)运行程序,观察结果是否正确。

2.数码转换实验将十进制数的ASCⅡ码转换为BCD码。

设五位十进制数的ASCⅡ码已存放在内存缓冲区BUF1中,转换为 BCD 码后,再分别存入内存缓冲区BUF2中。

提示:一字节ASCⅡ码取其低四位即变为BCD码。

实验程序如下:DATA SEGMENTBUF1 DB 31H,32H,33H,34H,35H ;定义数据段BUF2 DB 5 DUP (?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXMOV CX, 5 ;循环计数器赋初值MOV SI,OFFSET BUF1 ;ASCⅡ码首址MOV DI,OFFSET BUF2 ;BCD码首址A1: MOV AL,[SI] ;送ASCⅡ码至ALCMP AL,3AH ;比较AL与3AJAE A2 ;大于3A则转A2SUB AL,30H ;小于3A则取ASCⅡ码低4位JB A2 ;小于30则转A2MOV [DI],AL ;保存结果A2: INC SIINC DILOOP A1MOV AH,4CHINT 21HCODE ENDSEND START实验步骤(1)输入源程序,进行汇编、连接。

微机实验数码转换

微机实验数码转换

微机原理实验报告实验九:数码转换电子信息工程150210班金峥15021005一、实验题目实验九——数码转换二、实验目的1、掌握计算机常用数据编码之间的相互转换方法。

2、进一步熟悉DEBUG软件的使用方法。

三、实验步骤1、编辑源文件,经汇编连接产生EXE文件。

2、用DEBUG调试、检查、修改程序。

四、实验流程图实验9——1流程图五、实验源代码实验(一)ASCⅡ码转换为非压缩型BCD码编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。

将其转换成非压缩型(非组合型) BCD 码后,再存入DATA2开始的单元中。

若输入的不是十进制数,则相应单元中存放FFH。

调试程序,用D命令检查执行结果。

代码DATA SEGMENT PARA 'DATA' ;定义数据段DATA1 DB 16 DUP(0) ;输入的ACSII码DATA2 DB 16 DUP(0) ;转换后输出的BCD码DATA ENDSSTACK SEGMENT PARA STACK 'STACK' ;定义堆栈段STACK1 DB 256 DUP(0) ;为堆栈准备256字节STACK ENDSCODE SEGMENT ;定义代码段ASSUME SS:STACK,CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXLEA SI,DATA1 ;DATA1首地址存入SILEA DI,DATA2 ;DATA2首地址存入DIMOV CX,16 ;循环次数STEP1: MOV AH,01H ;输入字符,AL=输入的ASCII码INT 21HMOV [SI],ALCMP AL,0DH ;与回车作比较JE STEP3 ;若为回车则跳转到STEP3CMP AL,'0' ;比较AL与0的大小JB STEP2 ;若AL<0,跳转到STEP2CMP AL,'9' ;比较AL与9的大小JA STEP2 ;若AL>9,跳转到STEP2SUB AL,30H ;将输入字符的ASCII码转换为十进制数MOV [DI],AL ;将结果存入DATA2中INC SIINC DI ;为下一次数码转换做准备LOOP STEP1 ;跳转到STEP1,进行循环STEP2: MOV [DI],0FFH ;若输入的不是十进制数,相应单元存入0FFH INC SIINC DILOOP STEP1 ;跳转到STEP1,进行循环STEP3: MOV AH,4CH ;带返回码的结束INT 21HCODE ENDSEND START代码截图实验(二)BCD码转换为二进制数编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成二进制数存入DATA2字单元中调试程序,用D命令检查执行结果。

微机ad转换实验报告

微机ad转换实验报告

微机ad转换实验报告微机AD转换实验报告一、引言AD转换是现代电子技术中非常重要的一部分,广泛应用于各种领域,如通信、仪器仪表、自动控制等。

本实验旨在通过使用微机进行AD转换实验,探究其原理和应用。

二、实验目的1. 了解AD转换的基本原理;2. 掌握使用微机进行AD转换的方法;3. 分析AD转换的精度和速度。

三、实验原理AD转换是将模拟信号转换为数字信号的过程。

在本实验中,我们将使用微机的AD转换器将模拟信号转换为数字信号。

微机的AD转换器通常是一个多通道的模数转换器,能够将多个模拟信号转换成相应的数字信号。

四、实验步骤1. 连接硬件设备:将待转换的模拟信号通过信号调理电路连接到微机的AD转换器输入端;2. 打开实验软件:启动微机上的AD转换实验软件;3. 设置参数:根据实验要求,设置采样率、分辨率等参数;4. 进行AD转换:点击软件界面上的“开始转换”按钮,开始进行AD转换;5. 数据分析:获取转换后的数字信号,进行数据分析和处理。

五、实验结果与分析通过实验,我们得到了一系列数字信号。

根据这些数字信号,我们可以进行各种数据处理和分析。

例如,我们可以绘制出信号的波形图、频谱图等,进一步分析信号的特性和性能。

六、实验中的问题与解决方法在实验过程中,我们可能会遇到一些问题,如信号失真、噪声干扰等。

针对这些问题,我们可以采取一些解决方法,如增加滤波电路、调整采样率等,以提高AD转换的精度和稳定性。

七、实验总结通过本次实验,我们深入了解了AD转换的原理和应用,掌握了使用微机进行AD转换的方法。

AD转换在现代电子技术中具有广泛的应用前景,掌握AD转换的原理和技术对于我们的学习和工作都具有重要意义。

八、实验心得本次实验让我对AD转换有了更深入的了解。

通过实际操作,我进一步掌握了使用微机进行AD转换的方法,并且了解到了AD转换的精度和速度对于实际应用的重要性。

在今后的学习和工作中,我将更加注重AD转换技术的应用与研究,为现代电子技术的发展做出自己的贡献。

数码转换程序实验报告

数码转换程序实验报告

数码转换程序实验报告实验报告:数码转换程序一、实验目的:本实验的目的是编写一个数码转换程序,能够将给定的十进制数转换为二进制数、八进制数和十六进制数。

二、实验原理:1. 十进制数转二进制数的方法:首先,将十进制数不断除以2,得到的商继续除以2,直到商为0为止。

然后,将每次得到的余数按照相反的顺序排列,即为转换后的二进制数。

2. 十进制数转八进制数的方法:将十进制数不断除以8,得到的商继续除以8,直到商为0为止。

然后,将每次得到的余数按照相反的顺序排列,即为转换后的八进制数。

3. 十进制数转十六进制数的方法:将十进制数不断除以16,得到的商继续除以16,直到商为0为止。

然后,将每次得到的余数按照相反的顺序排列,并将10、11、12、13、14、15分别表示为A、B、C、D、E、F,即为转换后的十六进制数。

三、实验过程:1. 设计数码转换程序的算法。

2. 使用Python编程语言实现该算法。

3. 运行程序,输入一个十进制数。

4. 程序将根据用户输入的十进制数,分别计算出对应的二进制数、八进制数和十六进制数。

5. 输出转换结果。

四、实验结果:例如,用户输入的十进制数为1776。

则转换结果为:二进制数:11011110000八进制数:3400十六进制数:6F0五、实验总结:通过本次实验,我学会了如何编写一个数码转换程序,能够将给定的十进制数转换为二进制数、八进制数和十六进制数。

此外,我还加深了对十进制数转换为其他进制数的原理的理解。

通过实际操作,我发现编写一个数码转换程序并不复杂,只需要遵循一定的转换方法,按照算法进行计算即可得到转换结果。

这次实验还增加了我对Python编程语言的实际应用能力。

总的来说,本次实验使我更加熟悉了程序设计与算法,提高了我解决类似问题的能力。

微机原理实验报告

微机原理实验报告

微机原理实验报告一、实验目的本实验旨在通过实际操控和操作微型计算机,深入了解微机系统的组成和工作原理,加深对计算机硬件结构以及基本操作的理解,培养实际动手能力。

二、实验内容1.熟悉微机系统组成部分:主机、显示器、键盘等。

2.掌握微机系统的基本操作:开机、关机、复位、重启等。

3.了解微机系统的工作原理:运行机制、输入输出等。

4.实践运用微机系统进行一些简单的应用操作。

三、实验步骤1.开机操作:按下主机电源按钮,等待主机启动。

2.系统自检:主机启动后会进行自检操作,检查硬件是否正常。

如果发现问题,主机会发出蜂鸣声。

3.输入输出设备准备:连接好显示器和键盘,并检查是否正常连接。

4.系统登录:按照屏幕上的提示,输入用户名和密码进行系统登录。

5.系统操作:根据实验要求,进行相应的系统操作。

6.关机操作:在操作完成后,选择关机选项进行关机。

四、实验结果与分析通过本次实验,我掌握了微机系统的基本操作,并对其工作原理有了更深入的了解。

通过实际操作,我可以熟练地开机、关机、复位等操作,并可以进行一些简单的应用操作。

同时,我也了解到了微机系统由主机、显示器、键盘等多个组成部分组成,不同组成部分的协作工作实现了系统的正常运行。

五、实验心得通过本次实验,我对微机系统的组成和工作原理有了更深入的了解。

这对我后续学习计算机原理和操作系统提供了基础。

在实验过程中,我也发现了一些问题,比如操作系统选择界面的选择问题,我没有选择正确的操作系统,导致后续实验操作遇到一些困难。

这些问题提醒我在实际操作中需要格外注意,仔细阅读提示并选择正确的操作选项。

总结来说,本次实验对我深入理解微机系统的组成和工作原理提供了良好的机会。

通过实际操控和操作微型计算机,我对计算机硬件结构以及基本操作有了更直观的认识,掌握了一些基本操作技能。

在未来的学习和应用中,我将更加注重细节,提高自己的操作技能,并不断深入学习和了解更多关于微机系统的知识。

微机原理 实验五 AD转换实验

微机原理  实验五 AD转换实验

实验五 A/D转换实验一、实验目的了解模/数转换基本原理,掌握ADC0809的使用方法;掌握定时数据采集程序的编制方法。

二、实验内容1、A/D转换实验利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。

(1)实验接线图图6-1(2)编程指南ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:MOV DX,ADPORT ;ADC0809端口地址OUT DX,AL ;发CS和WR信号并送通道地址用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果。

MOV DX,ADPORT ;ADC0809端口地址IN AL,DX循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。

(3)实验程序框图(4)实验步骤①将0809 CS4插孔连到译码输出FF80H插孔、连JX6→JX17。

②将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(0-5V)插孔,8MHZ→T。

③运行实验程序如在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击H0809.ASM文件,单击“确定”即可装入A/D转换实验源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“R运行”或工具图标运行,即开始运行程序。

如果在没有PC机的情况下,则在8086K系统显示监控提示符“P.”时,用户段地址固定为0000(省略输入),按SCAL键,输入起始偏移地址1000,按EXEC键,在系统上显示“0809 XX”。

“XX”表示输入模拟量转换后的数字量。

④调节电位器Wl, 显示器上会不断显示新的转换结果。

实验五 数码转化

实验五 数码转化

实验五数码转化(二~十进制)及显示一.实验目的1.掌握VHDL程序语言,并学会简单的编程和程序调试。

2.设计二进制转成十进制和BCD码。

3.学会使用七段LED数码管。

二:实验原理1.实验说明在数字逻辑电路的内部,大多采用二进制或者十六进制的数字节类型,在日常生活当中则几乎用的是十进制,所以经常会遇到数字类型之间的相互转换的问题。

其实电路并不会用到十进制,转成十进制的目的是为了方便人们理解或便于观察电路的输出结果,现在用VHDL来设计一个执行数码转化电路,将二进制的输入转化成是十进制的输出。

实验仪器上Scan Display 区的七段数码管为共阴极,但七段码输入之前加入一个74LS20缓冲/驱动且信号相反,因此这里七段输入也是低电平有效。

注:七段数码管的段顺序为:a,b,c,d,e,f,g,dp.基本结构如下:三实验连线20(CP1)- 1024HZ34—>K1;35--->K2;36--->K3;37--->K4;11--->L1;12--->L2;Z1--->JX1(a~g)拨动逻辑开关K1~K4,输入不同的二进制数,观察数码管的对应输入出是否为相应的十进制BCD码。

设计显示编码表,通过改变输入端的值,观察输入显示数据的变化,并记录输入的结果。

附录:VHDL设计程序清单如下:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity numcvt isPort(A:IN UNSIGNED(3 DOWNTO 0);CP:IN STD_LOGIC;SEL:OUT STD_LOGIC_VECTOR(1 DOWNTO 0);NUM:OUT STD_LOGIC_VECTOR(7 DOWNTO 0));END numcvt;Architecture a of numcvt isSignal count:STD_LOGIC_VECTOR(1 DOWNTO 0);Signal temp:STD_LOGIC_VECTOR(3 DOWNTO 0);Signal BCD0,BCD1:STD_LOGIC_VECTOR(3 DOWNTO 0); Signal SEVEN0,SEVEN1:STD_LOGIC_VECTOR(6 DOWNTO 0); BeginProcess(CP)BeginIf(CP'event and CP='1')thenIf(count="01")thencount<="00";Elsecount<=count+'1';End if;End if;End process;Process(A)BeginIf A<10 thenBCD1<="0000";BCD0<=STD_LOGIC_VECTOR(A);ElseBCD1<="0001";BCD0<=A-10;End if;End process;SEL<="01" when count="00" else"10" when count="01";Temp<=BCD1 when count="01"elseBCD0 when count="00";WITH temp selectNUM <="00000011"WHEN"0000","10011111"WHEN"0001","00100101"WHEN"0010","00001101"WHEN"0011","10011001"WHEN"0100","01001001"WHEN"0101","01000001"WHEN"0110","00011111"WHEN"0111","00000001"WHEN"1000","00001001"WHEN"1001","01110001"WHEN OTHERs; END a;五.实验结果以及截图:六:实验结果以及实验体会心得:拔动逻辑开关K1~K4,输入不同的二进制数,数码管的对应输出是为相应的十进制BCD 码。

微机原理 实验五 AD转换实验

微机原理  实验五 AD转换实验

实验五 A/D转换实验一、实验目的了解模/数转换基本原理,掌握ADC0809的使用方法;掌握定时数据采集程序的编制方法。

二、实验内容1、A/D转换实验利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。

(1)实验接线图图6-1(2)编程指南ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:MOV DX,ADPORT ;ADC0809端口地址OUT DX,AL ;发CS和WR信号并送通道地址用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果。

MOV DX,ADPORT ;ADC0809端口地址IN AL,DX循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。

(3)实验程序框图(4)实验步骤①将0809 CS4插孔连到译码输出FF80H插孔、连JX6→JX17。

②将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(0-5V)插孔,8MHZ→T。

③运行实验程序如在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击H0809.ASM文件,单击“确定”即可装入A/D转换实验源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“R运行”或工具图标运行,即开始运行程序。

如果在没有PC机的情况下,则在8086K系统显示监控提示符“P.”时,用户段地址固定为0000(省略输入),按SCAL键,输入起始偏移地址1000,按EXEC键,在系统上显示“0809 XX”。

“XX”表示输入模拟量转换后的数字量。

④调节电位器Wl, 显示器上会不断显示新的转换结果。

微机原理实验报告

微机原理实验报告

微机原理实验报告实验目的,通过本次实验,掌握微机原理的基本知识,了解微机系统的组成和工作原理,掌握微机系统的组装和调试方法。

实验一,微机系统组成及工作原理。

1.1 微机系统的组成。

微机系统由中央处理器(CPU)、内存、输入设备、输出设备和外部设备等组成。

其中,CPU是微机系统的核心部件,负责控制整个系统的运行。

1.2 微机系统的工作原理。

微机系统的工作原理是通过CPU对内存中的指令进行解释和执行,从而实现各种功能。

CPU通过总线与内存、输入输出设备进行数据传输和控制信号的交换,实现对整个系统的控制和管理。

实验二,微机系统的组装和调试。

2.1 微机系统的组装。

在组装微机系统时,首先要选择合适的主板、CPU、内存、硬盘等配件,然后按照正确的安装顺序和方法进行组装。

组装完成后,还需连接电源、显示器、键盘、鼠标等外部设备。

2.2 微机系统的调试。

组装完成后,需要对微机系统进行调试,检查各个部件是否连接正确,是否能够正常工作。

通过BIOS设置和操作系统的安装,完成对微机系统的调试和配置。

实验三,微机系统的应用。

3.1 微机系统的应用领域。

微机系统广泛应用于各个领域,如办公、教育、科研、娱乐等。

在办公领域,微机系统可以用于文字处理、表格制作、图像处理等;在教育领域,微机系统可以用于多媒体教学、网络教学等。

3.2 微机系统的发展趋势。

随着科技的不断发展,微机系统也在不断更新换代,性能不断提升,体积不断缩小,功耗不断降低。

未来,微机系统将更加智能化、便携化,成为人们生活、工作不可或缺的一部分。

结论,通过本次实验,我对微机原理有了更深入的了解,掌握了微机系统的组成和工作原理,了解了微机系统的组装和调试方法,对微机系统的应用和发展趋势也有了一定的认识。

这对我今后的学习和工作将有很大的帮助。

微机数模转换实验报告

微机数模转换实验报告

微机数模转换实验报告实验目的本实验旨在探究微机数模转换的原理和应用,并通过实际操作,掌握利用微机进行数模转换的方法。

实验背景在微机系统中,数字信号与模拟信号之间的转换是非常常见的操作。

其中,数字信号是指由离散值组成的信号,而模拟信号是连续变化的信号。

将数字信号转换为模拟信号的过程称为数模转换,而将模拟信号转换为数字信号的过程称为模数转换。

实验原理微机数模转换的原理是利用数模转换芯片将数字信号转换为模拟信号。

常见的数模转换芯片有DAC(数模转换器)和PWM(脉宽调制器)。

DAC是一种能将数字信号转换为模拟信号的电子元件。

它通过将一系列数字量映射到一系列连续变化的模拟信号,实现信号的转换。

DAC的输入可以是多位的数字信号,输出是一个连续的模拟电压信号或电流信号。

PWM是一种通过改变信号的脉冲宽度来实现模拟信号的转换的电子元件。

它的原理是通过改变周期相同的脉冲信号的脉冲宽度,从而改变信号的平均值,实现模拟信号的转换。

实验步骤1. 准备工作:选取适当的数模转换芯片,并准备好相关的电路连接材料。

2. 按照电路图连接相关电路。

根据使用的芯片类型不同,连接方式也会有所区别。

可以借助数字信号发生器和示波器进行连接测试,确保连接正确。

3. 编写控制程序。

根据芯片使用的控制方式,编写相应的控制程序。

使用汇编语言或C语言编写的程序,通过微机控制芯片的工作。

4. 调试程序。

将程序下载到微机上,通过调试工具进行运行。

可以通过示波器观察输出信号是否正确。

5. 进行实验。

根据实验要求,输入相应的数字信号,观察模拟信号的输出情况。

6. 记录实验结果。

记录实验参数、实验过程和实验结果,包括输入数字信号和输出模拟信号的对应关系。

实验结果经过实验,我们成功实现了微机数模转换的功能。

通过调整输入的数字信号,我们观察到模拟信号的输出随之改变。

在实验过程中,我们发现芯片的选择和电路的连接非常关键,正确的连接方式和合适的芯片可以确保实验的顺利进行。

微机原理实验报告_5

微机原理实验报告_5

《微机原理与接口技术》实验报告实验名称:数模(D /A)转换学院:信息科学技术学院专业:电子信息工程班级:2009级理科实验班学号:20091613310032姓名:姬晓鹏2011年12月20日一、实验目的1、熟悉DAC0832数模转换器的特性和接口方法。

2、掌握D/A输出程序的设计和调试方法。

二、实验原理1、DAC0832的结构DAC0832是用先进的CMOS工艺制成的双列直插式单片8位D/A转换器。

它可以直接和8088CPU相接口。

它采用二次缓冲方式(有两个写信号WR1、WR2),这样可以在输出的同时,采集下一个数字量,以提高转换速度。

而更重要的是能够在多个转换器同时工作时,有可能同时输出模拟量。

它的主要技术参数如下:分辨率为8位,电流建立时间为1μs,单一电源5V-15V直流供电,可双缓冲、单缓冲或直接数据输入。

2、DAC0832引脚功能✧DI0-DI7:数据输入线,TTL电平,有效时间应大于90ns(否则锁存的数据会出错)。

✧ILE:数据锁存允许控制信号输入线,高电平有效。

✧/CS:片选信号输入线,低电平有效。

✧/WR1:输入锁存器写选通输入线,负脉冲有效(脉宽应大于500ns)。

当/CS为“0”、ILE为“1”、/WR1为“0”时,DI0-DI7状态被锁存到输入锁存器。

✧/XFER:数据传输控制信号输入线,低电平有效。

✧/WR2:DAC寄存器写选通输入线,负脉冲有效(脉宽应大于500ns)。

当/XFER为“0”且/WR2有效时,输入锁存器的状态被传送到DAC寄存器中。

✧Iout1:电流输出线,当输入为全1时Iout1最大。

✧Iout2:电流输出线,其值和Iout1值之和为一常数。

✧Rfb:反馈信号输入线,改变Rfb端外接电容器值可调整转换满量程精度。

✧Vcc:电源电压线,Vcc范围为+5V~+15V。

✧VREF:基准电压输入线,VREF范围为-10V~+10V。

✧AGND:模拟地。

✧DGND:数字地。

微机原理实验报告3

微机原理实验报告3

微机原理实验报告实验三七段数码管显示一、实验目的掌握接口芯片的编址方法,掌握8255的初始化设置,及数码管显示原理,掌握段控及位控的概念。

二、实验内容连接地址译码器与8255的连线及8255与数码管的连线;在数据段中存放0到9的字形码;从微机键盘输入2个数字的ASCII码,在输入过程中检查如非数字键则重新输入;然后将输入的ASCII码变成相应的数字,再利用换码指令XLAT查表得到相应的字形码;将字形码送到8255输出口所接的数码管上显示。

三、实验原理图四、实验流程图定义堆栈段、数据段定义代码段,写主函数返回DOS开始输入1号数字并转换成BCD 码存入输入2号数字并转换成BCD 码存入找到1号数字对应的字符并转换输出找到2号数字对应的字符并转换输出是否有按键按下INT21H 6号功能YN五、实验结论数码管能正确显示数字,调节DELAY 函数中数值可以调整延迟时间,得到不同显示效果。

六、实验心得学习使用XLAT ,同时可以不使用此方法,利用偏移地址的方法转换字符。

学习使用了INT 21H 6号功能,判断按键是否按下。

学习使用了实验箱及正确的连线。

学习分辨简易非简易连线方法。

附录:程序清单INPORT_1 EQU 0EF00H-280H+28BHINPORT_A EQU 0EF00H-280H+288HINPORT_C EQU 0EF00H-280H+28AHSTACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDATA SEGMENTTABL DB 3FH,06H,5BH,4FH,6BH,6DH,7DH,07H,7FH,6FH DIGIT DB 2 DUP(?)DATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACKMAIN PROCMOV AX,DATAMOV DS,AXLEA BX,DIGITCALL KEYINAND AL,0FHMOV [BX],ALINC BXCALL KEYINAND AL,0FHMOV [BX],ALMOV DX,INPORT_1MOV AL,10001010BOUT DX,ALDISP: MOV DX,INPORT_ALEA BX,DIGITMOV AL,[BX]LEA BX,TABLEXLAT TABLEOUT DX,ALMOV DX,INPORT_CMOV AL,10BOUT DX,ALCALL DELAYINC BXMOV DX,INPORT_ALEA BX,DIGITMOV AL,[BX]LEA BX,TABLXLAT TABLOUT DX,ALMOV DX,INPORT_CMOV AL,01BOUT DX,ALCALL DELAYMOV AH,6MOV DL,0FFHINT 21HJZ DISPMOV AX,4C00HINT 21H MAIN ENDPKEYIN PROC INPUT: MOV AH,8INT 21HCMP AL,30HJB INPUTCMP AL,39HJA INPUTMOV DL,ALMOV AH,2INT 21HRETKEYIN ENDPDELAY PROCPUSH DIPUSH CXMOV DI,0FFFHMOV CX,0 NEXT1: LOOP NEXT1DEC DIJNZ NEXT1POP CXPOP DIRETDELAY ENDPCODE ENDSEND MAIN。

微机原理实验——数模转换报告

微机原理实验——数模转换报告

学号:38152115 姓名:张亚婷 实验日期:2010年12月28日一、实验名称:数模转换二、实验目的:了解数模转换的原理,学习数模转换芯片的使用方法,掌握利用数模转换芯片产生方波或正弦波的方法。

三、实验内容:① 在数据段中存放好对应能够产生方波或正弦波的数字量,正弦波要求20个值。

② 编写程序将数据段中的数字量送到DA0832的输出端产生方波或正弦波。

四、实验原理图:电路中DA0832采用单缓冲方式,具有单、双极性输出端(图示中分别为Ua 、Ub )。

五、实验流程图:NOYESNOYESD7D0...WR1CS XFER WR2Vref ILE-+Rf Iout 1Iout 2Ua +5V DB 290H~298H IOW -+20K 20K 10K Ub (-5~0V)(-5~+5V)定义数据段,将正弦波对应的数字量存入将20个数字量依次取出,在输出端输出有键按下用电压表测量电压值并记录有键按下 返回DOS六、实验结论:在电路输出Ub端,使用电压表测量其电压值并记录,记录20个值之后使用模拟波形将测量值导入,结果图如下:七、实验心得感想:这次硬件实验,主要的心得有:硬件外部连线部分比较主要,实验时将外部电路开启更是重要,在本次试验中,开始由于忽略了外部电路,浪费了不少时间;其次,在实验中要注意实际操作与理论的差别,比如实验编程中要用到的实际地址,要据计算机的实际情况来查找确定。

附:程序清单STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDA TA SEGMENTX DB 0,255Y DB 128,168,203,232,250,255,250,232,203,168,128,88,53,24,6,0,6,24,53,88DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACKMAIN PROCMOV AX,DATAMOV DS,AXNEXT1:MOV SI,OFFSET YMOV CX,20NEXT:MOV AL,[SI]MOV DX,0EF00H-280H+290HOUT DX,ALMOV AH,1INT 21HINC SILOOP NEXTMOV AH,6MOV DL,0FFHINT 21HJZ NEXT1MOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN。

da数模转换实验报告范文

da数模转换实验报告范文

da数模转换实验报告范文篇一:微机原理实验报告--数模转换微机原理实验报告实验题目:数/模转换器DAC0832系部:电子与信息工程系学生姓名:专业班级:学号:指导教师:2022.12.30一.实验目的1.掌握D/A转换原理;2.熟悉D/A芯片接口设计方法;3.掌握DAC0832芯片的使用方法。

二.实验设备1.PC微机一台;2.TD-PIT实验装置一台;3.示波器一台。

三.实验要求用DAC0832设计一个D/A转换接口电路,采用单缓冲工作方式,产生方波、三角波、锯齿波和正弦波。

四.实验原理1.DAC3802的结构及性能(1)输入/输出信号。

D7-D0为8位数据输入线;IOUT1为DAC电流输出1,IOUT2为DAC电流输出2,IOUT1和IOUT2之和为一常量;RFB为反馈信号输入端,反馈电阻在芯片内。

(2)控制信号。

ILE为允许输入锁存信号;WR1和WR2分别为锁存输入数据信号和锁存输入寄存器到DAC寄存器的写信号;某FER为传送控制信号;CS为片选信号。

(3)电源。

VCC为主电源,电压范围为+5V到+15V;VREF为参考输入电压,范围为-10V到+10V。

DAC0832管脚及其内部结构框图2.工作方式外部五个控制信号:ILE,CS,WR1,WR2,某FER连接方式的不同,可工作于多种方式:直通方式,单缓冲方式,双缓冲方式(1)直通方式ILE接高、CS、WR1、WR2、某FER接地,两级寄存器均直通;(2)单缓冲方式两级寄存器一个受控,一个直通;(3)双缓冲方式两级寄存器均受控。

0832为电流输出型D/A,要得模拟电压,必需外加转换电路(运放)。

五.实验内容1.硬件电路图:2.软件程序设计(1)产生方波tackegmenttack'tack'dw32dup()tackendcodeegmentbeginprocfaraume:tack,c:codepuhduba某,a某puha某MOVD某,0D800H;片选信号输入地址MOVAL,0NE某T:OUTD某,ALMOVD 某,0D800HOUTD某,ALLOOP$;延时NOTAL;求反,由高电平转为低电平或有低电平转为高电平PUSHA某;保护数据MOVAH,11INT21HCMPAL,0;有按键退出POPA某JZNE某Tretbeginendpcodeendendbegin(2)产生三角波tackegmenttack'tack'dw32dup()tackenddataegmentdataendcodeegmentbeginprocfaraume:tack,c:code,d:datapuhduba某,a某puha某MOVD某,0D800HMOVAL,0NE某T:OUTD某,ALCALLDELAY;调用延时篇二:数模转换器和模数转换器实验报告实验报告课程名称实验项目数/模转换器和模/数转换器实验实验仪器系别计算机系专业网络工程班级/学号学生姓名_实验日期成绩_______________________指导教师实验五数/模转换器和模/数转换器实验一、实验目的1.了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法。

微机原理实验报告

微机原理实验报告

微机原理实验报告
一、实验目的
本次实验的主要目的是了解微机原理、学习微机的基础知识、技能和操作方法,还有熟悉微机实验室的使用方法。

二、实验过程
在实验室中,我们首先进行了掌握微处理器的基本指令集和编程技巧的实验。

通过对微处理器的学习,我们了解到了微处理器的组成结构和工作原理,同时也了解了微处理器的基础指令集,包括数据的传送、算术、逻辑、分支、循环指令等等。

接着我们进行了CPU总线实验。

通过对CPU总线的学习,我们了解了CPU读写内部和外部存储器的方法和原理。

同时,我们学习了编写程序来控制CPU读写存储器等。

最后,我们进行了8255并行接口控制实验。

通过学习并实践8255并行接口控制实验,我们了解了接口及其编程。

三、实验结果
在实验中,我们成功地掌握了微处理器的基本指令集和编程技巧,了解了微处理器的组成结构和工作原理,同时掌握了CPU总
线实验和8255并行接口控制实验。

在实验中不仅增长了专业知识,而且也培养了我们的实验能力,并进一步增强了我们的实践能力。

四、实验心得
通过这次实验,我们意识到,要想成为一名优秀的计算机专业
人才,必须首先打牢微机原理的基础,通过大量的实践和实验,
来应用理论知识,深入了解计算机底层的数据处理方式以及处理
器和存储器的工作原理。

只有这样才能够在日后工作中运用自如,并且在以后的学习和研究中更具备竞争力。

在以后的学习中,我将持续学习和实践,不断探索和发现,提
升自身的能力,为未来的发展做好充分的准备。

微机原理实验四报告

微机原理实验四报告

微机原理及接口技术实验报告数/模转换1.实验名称:数/模转换2.实验目的了解数/模转换的原理,学习数/模转换芯片的使用方法,掌握利用数/模转换芯片产生方波及正弦波的方法。

3.实验容在数据段中存放好对应于产生方波和正弦波的数字量,正弦波要求20个值。

编写程序将数据段中的数字量送到DAC0832的输出端产生方波和正弦波。

4.硬件连线按下图2.2连接电路,DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua为单极性、Ub为双极性)。

图2.2 数/模转换电路连线图连线为:CS ——290H~297H,5.程序流程图(1)产生方波否(26.实验程序(1)产生方波STACK SEGMENT STACKDW 100 DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE, SS:STACKMAIN PROCMOV DX, 290HMOV CX,10NEXT: MOV AL, 0OUT DX, ALCALL KEYMOV AL, 0FFHOUT DX, ALCALL KEYLOOP NEXTMOV AH, 4CHINT 21HMAIN ENDP;KEY PROCPUSH AXMOV AH,1INT 21HPOP AXRETDELAY ENDPCODE ENDSEND MAIN(2)产生正弦波STACK SEGMENT STACKDW 100 DUP (?)STACK ENDSDATA SEGMENTVAL DB128,168,203,232,250,255,250,232,203,168,128,88,53,24,6,0,6,24,53,88 DATAENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK MAIN PROCMOV AX,DATAMOV DS,AXNEXT2:MOV DX,290HMOV SI,OFFSET VALMOV CX,20NEXT1:MOV AL,[SI]OUT DX,ALINC SIMOV AH,1INT 21HLOOP NEXT1MOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN7.实验截图:EXCEL画图:虚拟示波器画图:EXCEL画图:虚拟示波器画图:8.实验结论:运行程序,用三用表测量输出端电压,记录下后,利用虚拟示波器画出图像。

数码转换实验报告材料微机原理

数码转换实验报告材料微机原理

实验九数码转换一、实验目的1、掌握计算机常用数据编码之间的相互转换方法。

2、进一步熟悉DEBUG软件的使用方法。

二、实验内容1. ACSII码转换为非压缩型BCD码编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。

将其转换成非压缩型(非组合型) BCD码后,再存入DATA2开始的单元中。

若输入的不是十进制数,则相应单元中存放FFH。

调试程序,用D命令检查执行结果。

2. BCD码转换为二进制码编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成二进制数存入DATA2字单元中。

调试程序,用D命令检查执行结果。

3. 十六进制数转换为ASCII码编写并调试正确的汇编语言源程序,使之将内存DATA1字单元中存放的4位十六进制数,转换为ASCⅡ码后分别存入DATA2为起始地址的4个单元中,低位数存在低地址的字节中,并在屏幕上显示出来。

三、实验预习1. 复习材料中有关计算机数据编码部分的内容。

2. 按要求编写程序。

四、实验步骤1. 编辑源文件,经汇编连接产生EXE文件。

2. 用DEBUG调试、检查、修改程序。

五、实验内容1. ACSII码转换为非压缩型BCD码STACK SEGMENT PARA STACK 'STACK'DB 256 DUP(?) ; 为堆栈段留出256个字节单位STACK ENDSDATA SEGMENT PARA 'DATA' ;定义数据段DATA1 DB 32 ; 缓冲区最大长度DB ?DB 32 DUP(?)DATA2 DB 32 DUP(?)DATA ENDSCODE SEGMENT ; 定义代码段ASSUME SS:STACKASSUME CS:CODEASSUME DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,DATA1 ; 规定:DX存放输入字符串的缓冲区首地址MOV AH,0AHINT 21H ; 字符串输入 AL=键入的ASCII码LEA SI,DATA1LEA DI,DATA2 ; DI存放DATA2首地址INC SIMOV CL,[SI] ; 取输入字符串长度INC SI ; 指向第一个输入字符LP1: MOV AL,[SI]SUB AL,30H ; 输入的字符存为ASCII码,将其转换成十进制数CMP AL,0 ; 若AL<0(AL-0<0),跳转到LP2JL LP2CMP AL,9 ; 若AL>9(AL-9>0),跳转到LP2JG LP2MOV BL,AL ; 将AL->BLMOV [DI],BL ; 将结果存到DATA2开始的单元中INC DIINC SIDEC CLJMP LP1LP2: MOV AL,0FFH ; 若输入的不是十进制数,在相应的单元存放FFH; 以字母开头的十六进制数前面需加'0' MOV BL,AL ; 将AL->BLMOV [DI],BLINC DIINC SIDEC CL CL=CL-1JNZ LP1 ; CL=0,执行LP3中的语句LP3: MOV AH,4CH INT 21HCODE ENDSEND START2. BCD码转换为二进制码DATA SEGMENTDATA1 DW 2497HDATA2 DW ?DATA ENDSCODE SEGMENTASSUME SS:STACK,CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXXOR BX,BX ; 累加单元清0(BX=0)MOV SI,0AH ; 设置乘数10MOV CL,4 ; 指4位BCD码MOV CH,3 ; 循环次数=3MOV AX,DATA1 ; 取十进制数LP: ROL AX,CL ; 取数字MOV DI,AX ; 保存当前AX值AND AX,0FH ; 屏蔽高位ADD AX,BX ; 累加MUL SIMOV BX,AXMOV AX,DIDEC CH ; 循环次数减1JNZ LP ; 以上完成循环三次ROL AX,CL ; 取个位数字AND AX,0FH ; 屏蔽高位ADD AX,BX ; 进行累加,直接将最后的累加结果放到AX中MOV DATA2,AXMOV AH,4CHINT 21HCODE ENDSEND START3. 十六进制数转换为ACSII码STACK SEGMENTDB 256 DUP(?)STACK ENDSDATA SEGMENTDATA1 DB 24H,06DHDATA2 DB 4 DUP(?) ; 存放ASCII码JUMP DB 4 DUP(?) ; 4位十六进制数分别存放在DATA3的4个字节中DATA ENDSCODE SEGMENTASSUME SS:STACK,DS:DATA,CS:CODESTART: MOV AX,DATAMOV DS,AXLEA SI,DATA1LEA DI,JUMPMOV CL,2 ; 循环2次,取两次两位十六进制数LP0: MOV AL,[SI] ; 取2位十六进制数AND AL,0F0H ; 低四位为零ROR AL,4 ; 右移4位相当于除以16MOV [DI],AL ; 高位数存放在高地址字节中INC DIMOV AL,[SI] ; 取2位十六进制数AND AL,0FH ; 高四位为零MOV [DI],AL ; 低位数存放在低地址字节中INC SIINC DIDEC CLJNZ LP0LEA SI,JUMP ; SI=JUMP的首地址偏移量LEA DI,DATA2 ; DI=DATA2的首地址偏移量MOV CL,4 ; 因为是四位十六进制数,所以设置为循环4次LP1: MOV AL,[SI] ; 取JUMP中的十六进制数CMP AL,9JG LP3 ; 若AL>9(AL-9>0),跳转到LP3ADD AL,30H ; 0~9H+30H=ASCIIJMP LP3LP2: ADD AL,37H ; A~FH+30H=ASCIILP3: MOV [DI],AL ; 将ASCII码依次存入DATA2中INC DIINC SIDEC CLJNZ LP1MOV AH,09HINT 21HMOV DX,OFFSET DATA2MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START六、实验习题与思考1. 编程实现:从键盘上输入两位十六进制数,转换成十进制数后显示在屏幕上。

东华大学微机实验原理实验报告材料

东华大学微机实验原理实验报告材料

实验一基本程序编程和程序调试一、实验目的1、掌握数码转换等基本程序设计的技巧和方法。

2、熟悉DEBUG命令。

3、学会和掌握用DEBUG调试程序的方法。

二、实验设备PC机一台,装有DOS基本系统三、实验内容及步骤用DEBUG建立、汇编和运行调试程序的操作。

DEBUG是DOS系统支持的用于汇编语言源程序调试的系统软件。

它共有19条命令完成相应的功能,命令及其格式可参阅附录一。

(一)DEBUG操作练习1)实验调试程序程序的功能是从3500H内存单元开始建立0-15共16个数据。

程序如下:地址(H)机器码(H)助记符2000 BF0035 MOV DI,35002003 B91000 MOV CX,00102006 B80000 MOV AX,00002009 9E SAHF200A 8805 MOV BYTE[DI],AL200C 47 INC DI200D 40 INC AX200E 27 DAA200F E2F9 LOOP 200A2011 F4 HLT2)实验步骤:(1)输入与修改①启动DOS,在DOS提示符下输入D E B U G后回车,屏幕立即显示DEBUG提示符“—”,表明已进入DEBUG状态,可以执行DEBUG的各种命令。

②用DEBUG中的汇编命令“A 地址”将程序建立在内存单元中。

在提示符“—”下键入:“A 2000 ”此时显示器上将会显示程序的段地址CS和偏移地址IP,你就可以输入以上的程序了。

即显示169C :2000 键入MOV DI,3500169C:2003 MOV CX,0010169C:2011 HLT:::③用反汇编命令“U 地址”检查程序在提示符“—”下,键入“U 2000↵”,将从2000内存单元开始的内容反汇编,屏幕上显示169C:2000 BF0035 MOV DI,3500169C:2003 B91000 MOV CX,0010169C:2006 B8000 MOV AX,0000::::::169C:2011 F4 HLT当发现程序有错时,可用汇编命令“A 地址”进行修改,如要修改200A单元中的指令,则键入“A 200A↵”,屏幕显示169C:200A ,然后再键入MOV BYTE[DI],AL↵,就把错误的程序改正了。

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

实验九数码转换一、实验目的1、掌握计算机常用数据编码之间的相互转换方法。

2、进一步熟悉DEBUG软件的使用方法。

二、实验内容1.ACSII码转换为非压缩型BCD码编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1 单元中,按回车停止键盘输入。

将其转换成非压缩型(非组合型)BCD码后,再存入DATA2开始的单元中。

若输入的不是十进制数,则相应单元中存放FFH。

调试程序,用D命令检查执行结果。

2.BCD码转换为二进制码编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成二进制数存入DATA2字单元中。

调试程序,用D命令检查执行结果。

3.十六进制数转换为ASCII码编写并调试正确的汇编语言源程序,使之将内存DATA1字单元中存放的4位十六进制数,转换为ASC H码后分别存入DATA2为起始地址的4个单元中,低位数存在低地址的字节中,并在屏幕上显示出来。

三、实验预习1. 复习材料中有关计算机数据编码部分的内容。

2. 按要求编写程序。

四、 实验步骤1. 编辑源文件,经汇编连接产生 EXE 文件。

2. 用DEBUG 调试、检查、修改程序。

五、实验内容1. ACSII 码转换为非压缩型 BCD 码STACK SEGMENT PARA STACK 'STACK'为堆栈段留出256个字节单位STACK ENDSDATA SEGMENT PARA 'DATA';定义数据段DATA1 DB 32DB ?DB 32 DUP ⑺DATA2 DB 32 DUP ⑺DATA ENDSCODE SEGMENT ;定义代码段ASSUME SS:STACK ASSUME CS:CODEDB 256 DUP ⑺ ;缓冲区最大长度ASSUME DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,DATA1 ;规定:DX存放输入字符串的缓冲区首地址MOV AH,0AHINT 21H ;字符串输入AL=键入的ASCII码LEA SI,DATA1LEA DI,DATA2 ;DI存放DATA2首地址INC SIMOV CL,[SI] ;取输入字符串长度INC SI ;指向第一个输入字符LP1: MOV AL,[SI]SUB AL,30H ;输入的字符存为ASCII码,将其转换成十进制数CMP AL,0 ;若AL<0(AL-0<0),跳转到LP2JL LP2CMP AL,9 ;若AL>9( AL-9>0 ),跳转到LP2JG LP2MOV BL,AL ;将AL->BLMOV [DI],BL ;将结果存到DATA2开始的单元中LP2: FFHLP3:INC DIINC SIDEC CLJMP LP1MOV AL,0FFHMOV BL,ALINC DIINC SIDEC CL CL=CL-1JNZ LP1MOV AH,4CH INT 21HCODE ENDSEND START;若输入的不是十进制数,在相应的单元存放;以字母开头的十六进制数前面需加;将AL->BL;CL=0,执行LP3中的语句'0'[开炉j+输Ar±+®制数搭SS-1,C8 E辔INC1F-00S2 HU UP El PL HZ AC FE NCRK=Wfl VV吕X=(J 粘护FDSES=1?BI 1TDB:001]346rCX=(M«1 DK=(J£HMSS=丄YC8 CS=1TUIINC 窑ISF=Wl(fl0iF=ee53BF=^«ati st =wih Di=a«3FNil UP E] PL NZ m re MCAK^BAFF BX =9&FYD£ =1$M EG =19B>1»DB:8B54 FEC9 -rcx^B4ei DK^oees£S=19Cfl dlPDR DEC CLsp^aieeIP=H054RP询腼SI Dl=0QSFMJ UP El PL NZ Mt ?0 NCRX=0AFF BX=00FF DS-1?DB ES -1VB< 1MB:00SD 75DL D DG:00O0 0眄0 191)3 00130 20 1>19DA :fiRW 4& 4*1*DR:BH5W (W AH 1?D8:0030 FF FF 1?D@:O04&的0B 19D8:00SO BSGX=&4005S-1TCS CS-l^DB JHZ0636SF=0108IF-0656BF=0008 SJ =001F DI=0@3FW UP El PL Zfl MA FE NC314RfllFF盹3249恥FF003^-37 38 39 4C4D-4F 4P 跖W.-H7 RR刖FF FF-FF FF FP @00@-00 00 砸31FF0041 42S?FFFFyj33FF@4-sFFfl44FFB45FFB5DFa^f.1234567fl9ABCDEPnMrJkE.MNfiPQRSl.LEA SI T DAU1 LEA DI T DATA2^AL-3CK9& AL-3D>0-'BLJAL-JDI]斗BL#01 + 1-■0 2. BCD码转换为二进制码结東门DATA SEGMENTDATA1 DW 2497HDATA2 DW ?DATA ENDSCODE SEGMENTASSUME SS:STACK,CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXXOR BX,BXMOV SI,0AHMOV CL,4MOV CH,3MOV AX,DATA1 LP: ROL AX,CLMOV DI,AXAND AX,0FHADD AX,BXMUL SIMOV BX,AXMOV AX,DIDEC CHJNZ LP;累加单元清0(BX=0) ;设置乘数10;指4位BCD码;循环次数=3;取十进制数;取数字;保存当前AX值;屏蔽高位;累加;循环次数减1;以上完成循环三次ROL AX,CLAND AX,0FHADD AX,BXMOV DATA2,AXMOV AH,4CHINT 21HCODE ENDSEND START;取个位数字;屏蔽高位;进行累加,直接将最后的累加结果放到 AX 中幵始将(WWU分离为千、百、十、个位数存于4沖连续子单元中首地址为两3乘10子程厚千位数DATA3->AXAX左移1位AX->3X子程序AX左移1位舷左穆1位AX+BX->AX结束保存结臬至DATA!3.十六进制数转换为ACSII码STACK SEGMENTDB 256 DUP⑺STACK ENDSDATA SEGMENTDATA1 DB 24H,06DHDATA2 DB 4 DUP⑺;存放ASCII 码实用标准文案JUMP DB 4 DUP⑺;4位十六进制数分别存放在DATA3的4个字实用标准文案节中CODE DATA ENDSSEGMENTASSUME SS:STACK,DS:DATA,CS:CODESTART: LPO:MOV AX,DATAMOV DS,AXLEA SI,DATA1LEA DIJUMPMOV CL,2MOV AL,[SI]AND AL,0F0HROR AL,4MOV [DI],ALINC DIMOV AL,[SI]AND AL,0FHMOV [DI],ALINC SIINC DIDEC CLJNZ LP0LEA SI,JUMP;循环2次,取两次两位十六进制数;取2位十六进制数;低四位为零;右移4位相当于除以16;高位数存放在高地址字节中;取2位十六进制数;高四位为零;低位数存放在低地址字节中;SI=JUMP的首地址偏移量LEA DIQATA2MOV CL,4次LP1: MOV AL,[SI]CMP AL,9JG LP3ADD AL,30HJMP LP3LP2: ADD AL,37HLP3: MOV [DI],ALINC DIINC SIDEC CLJNZ LP1MOV AH,09HINT 21HMOV DX,OFFSET DATA2MOV AH,09HINT 21HMOV AH,4CHINT 21H;DI=DATA2 的首地址偏移量因为是四位十六进制数,所以设置为循环 4 ;取JUMP中的十六进制数;若AL>9(AL-9>0),跳转到LP3;0~9H+30H=ASCII;A~FH+30H=ASCII;将ASCII码依次存入DATA2中CODE ENDS苯§卜S 4W 占国§ M M W QM XG ® 3—v w I:ns xg ffi 口甲I:n00±B Hd »」:n 呈U A B T t awe丄ii sd 9z»§?K a希1x 1r a ®E ?X A ®S 8N 3WH在 呈s s s > x ono盂戟BCh 匕8G 0V 鲁呂6TS5f S I » ss s s -x o H «s s ・x 0常0WI3>B s 04>m 6- q —06命3A雋冒»凸4m a 6I £sOHMBBaA一b m T to gE 4T S s i >£氏HKBUH 6蛊0」兽6 CHAPSW AaATS s i "x » 严-L #<-L S 山六、实验习题与思考1.编程实现:从键盘上输入两位十六进制数,转换成十进制数后显示在屏幕上。

STACK SEGMENTDB 256 DUP⑺STACK ENDSDATA SEGMENTDATA1 DB 5,?,2 DUP⑺DATA2 DB 2 DUP⑺DATA3 DB 2 DUP⑺DATA ENDSCODE SEGMENTASSUMESS:STACK,DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXLEA DX,DATA1MOV AH,0AHINT 21H 输入字符串LEA SI,DATA1+2LEA DI,DATA2MOV CL,2 ;将ASC码转换为十六进制数LP1: MOV AL,[SI]SUB AL,30HCMP AL,9JA LP2MOV [DI],ALINC DIINC SIDEC CLJZ LP3JNZ LP1LP2: SUB AL,7MOV [DI],ALINC DIINC SIDEC CLJNZLP1 ;将十六进制数转换成十进制数,并保存LP3: LEA DI,DATA2MOV AL,[DI]MOV BL,[DI+1]MOV CL,4SHL AL,CLADD AL,BLMOV [DI],ALLEA SI,DATA3XOR AH,AHMOV CL,100DIV CL ;AH=AX%100 , AL=AX/100MOV [SI],AL ;保存百位数MOV AL,AHXOR AH,AHMOV CL,10DIV CLMOV [SI+1],AL ;保存十位数MOV [SI+2],AH ;保存个位数;屏幕显示十进制数LP4:MOV DL,[SI] ;取百位数送显OR DL,30HMOV AH,02HINT 21HMOV DL,[SI+1] ;取十位数送显OR DL,30HMOV AH,02HINT 21H;取个位数送MOV DL,[SI+2]显OR DL,30HMOV AH,02HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START2.十进制数转换为七段码。

相关文档
最新文档