第一篇:【微机实验】2018东南大学微型计算机原理及应用实验二
实验二 基本算术和逻辑运算
学院:信息科学与工程学院
姓名:周信元
学号:04016523 实验日期:2018.4.4
一、实验目的
1.熟悉算术和逻辑运算指令的功能。
2.进一步了解标志寄存器各标志位的意义和指令执行对它的影响。
二、实验任务
1.采用单步执行方式执行下列各程序段,检查各标志位的情况。
程序段1 MOV AX, 10101H MOV SI, 2000H ADD AL, 30H ADD AX, SI
;AX=1010H
;SI=2000H
;AX=1040H
;AX=3040H;BX=03FFH MOV BX, 03FFH ADD AX, BX
;AX=343FH;DS:[0020]=1000H;DS:[0020]=443FH MOV[0020],1000H ADD 0020, AX 程序段2: MOV AX, OA0AOIH ADO AX, OFFFFH
;AX=A0A0H;AX=A09FH MOV CX, OFFOOH ADD AX, CX SUB AX, AX INC AX
;CX=FF00H;AX=9F9FH
;AX=0000H
;AX=0001H
;CX=FFFFH OR CX, OOFFH AND CX, OFOFH M0V[0010],CX 程序段3: MOV BL, 25H MO[0010],04H MOV AL, [0010] MUL BL 程序段4: MOV BL, 04H
;CX=0F0FH;DS:[0010]=OFOFH
;BX=0025H;DS:[0010]=04H
;AX=0004H
;AX=0094H
;BX=0004H MOV WORD PTR L0010], 0080H;DS:[0010]=0080H MOV AX, [0010] DIV BL 程序段5: MOV AX, 00 DEC AX
;AX=0000H;AX=FFFFH
;AX=3FFEH
;AX=0080H;AX=0020H ADC AX, 3FFFH ADD AX, AX
;AX=7FFCH NOT AX SUB AX, 3
;AX=8003H;AX=8000H
;AX=FBFDH OR AX, OFEFDH AND AX, OAFCFH SHL AX, 1 RCL AX, 1 步骤
;AX=ABCDH;AX=579AH;AX=AF35H(1)进入 Turbo Debugger,在CPU窗口下输入程序段 2)将IP指针指向程序段开始处(3)按下F7键(单步)运行程序。
(4)分析各条指令执行后的结果与各标志位在指令执行后对它的影响
2.将寄存器BⅨ作地址指针,自BX所指的内存单元(0010HD)开始连续存放着三个无符号数(10H、04H、30H),。试编写程序分别求它们的和与积,并将结果存放在这三个数之后的单元中。
求和程序段
MOV[0010],10H MOV[0011],04H MOV[0012],30H SUB AX, AX MOV BX, 0010H MOV AL, BXI ADD AL, [BX+1] ADD Al, [BX+2] MOV [BX+3], AL 结果[DS:0013]=44H 求积程序段
MOV[0010],10H MOV[0011],04H MOV[0012],30H SUB AX, AX MOV A1,[0010] MOV BL, [0011 MUL BL MOV BL, [0012] MUL BL MOV [0013], AX 结果[DS:0013=0C00H 3.写出完成下述功能的程序段(1)传送15H到AL寄存器。(2)将L的内容乘以2(3)传送15H到L寄存器 4)AL的内容乘以BL的内容。最后结果(AX)=?
MOV AL, 15H SHL AL, 1 MOV BL, 15H MUL BL 结果(AX)=0372H 4.写出完成下述功能的程序段
(1)从地址DS:0000H单元中,传送一个数据58H到AL寄存器。(2)把AL寄存器的内容右移两位
(3)再把L寄存器的内容与字节单元DS:0001H中的数据12H相乘。(4)将乘积存入字单元DS:0002H中
M0V[0000],58H MOV[0001],12H MOV AL, [0000] SHR AL, 02 MOV BL, [0001] MUL BL MOV [0002], AX 结果[0002]=018CH 5.假设下面的程序段用来清除数据段中相应字存储单元的内容(即零送到这些存储 单元中去),其偏移地址从0010H到0020H(1)将第4条比较指令语句填写完整(划线处)MOV SI, 0010H NEXT: MOV WORD PTR[SI].00 ADD SI, 0022H CMP SI, INE NEXT(2)假设要清除偏移地址从0020H到001字存储单元中的内容(即由高地址到 低地址清零),试编写程序段。
MOV SI, 0020H NEXT MOV WORD PTR[S1], 00 SUB SI, 2 CMP SI, 000EH JNE NEXT
三,实验设备
IBM-TC/XT微机一台
四、实验预习要求
1.复习8086指令系统的算术和逻辑运算指令 2,按照题目要求在实验前编写好程序
五、实验报告要求
1.整理出运行正确的各题源程序段和结果, 2.,简要说明ADD指今和AND指令对标志位的影响。
1.见报告中加粗文字部分
2.普通加法指令ADD,指令格式:ADD Reg/mem,Reg/mem/imm受影响标志位:AF/CF/OF/PF/SF/ZF 逻辑与操作指令AND,指令的格式: AND Reg/Mem, Reg/Mem/imm受影响的标志位:CF(0)、OF(0)、PF、SF和ZF(AF无定义)
第二篇:微机原理实验三子程序设计实验
实验三 子程序设计实验
一、实验目的
1.学习子程序的定义和调用方法。2.掌握子程序的程序设计、编制及调用。
二、实验设备
TDN86/88教学实验系统一台
三、实验内容及步骤
1.求无符号字节序列中的最大值和最小值
设有一字节序列,其存储首址为3000H,字节数为08H。利用子程序的方法编程求出该序列中的最大值和最小值。实验程序及流程如下:
主程序STACK1SEGMENT STACK
开始DW 64 DUP(?)STACK1 ENDS CODE SEGMENT ASSUME CS:CODE START: MOV SI,3000H MOV CX,0008H CALL branch A1:JMP A1 branch: JCXZ A4 PUSH SI PUSH CX PUSH BX
结束序列的字节个数→CX数据区首址→SI调用求最大最小值子程序 MOV BH,[SI] MOV BL,BH A1: LODSB CMP AL,BH JBE A2 MOV BH,AL JMP A3 A2: CMP AL,BL JAE A3
Y子程序CX=0?NSI、CX、BX入栈[SI]→BHBH→BLSI+1→SI[SI]→ALNAL﹤BHAL→BHMOV BL,AL A3: LOOP A1 MOV AX,BX POP BX POP CX
YAL﹥BLYCX-1→CXNNAL→BLCX=0?POP SI A4: RET CODE ENDS END START
实验步骤
(1)输入源程序,进行编译、链接和加载。
YSI、CX、BX出栈RET
(2)在调试区键入E0000:3000↙,输入8个字节的数据:D9、07、8B、C5、EB、04、9D、F9。
(3)运行程序,查看结果,在调试区键入R AX↙,显示结果应为AX=F9 04,AH中为最大值,AL中为最小值。
2.数组求和
设有一字节序列(存储地址和字节数可自定义),编写程序,求出该序列的和,求和工作由子程序来实现。
程序:
STACK1 SEGMENT STACK DW 64 DUP(?)STACK1 ENDS CODE
SEGMENT ASSUME CS:CODE START: MOV SI,3000H MOV CX,0008H XOR AX,AX CALL branch A5: JMP A5 branch: JCXZ A4 PUSH SI
PUSH CX A1: ADD AL,[SI] INC SI A3: LOOP A1
POP CX POP SI A4: RET CODE
ENDS END START
8个01,总和为08
第三篇:微机原理实验总结
微机原理实验总结
不知不觉,微机原理与接口技术实验课程已经结束了。回想起来受益匪浅,主要是加深了对计算机的一些硬件情况和运行原理的理解和汇编语言的编写汇编语言,对于学习机电工程的自动控制和计算机都是很重要的,因为它是和机器语言最接近的了,如果用它来编程序的话,会比用其它高级语言要快得多。本学期我们在老师的带领下,进行了微机原理实验六到十这五组实验。它们分别是: 实验六
8255 PA口控制PB口
实验目的掌握单片机系统中扩展外围芯片的方法,了解 8255 芯片的结构及编程方法。实验内容
用 8255 PA 口作开关量输入口,PB 口作输出口。
实验步骤
1、用8 芯线将8 255 PA口接至开关Kl~K8,PB口接至发光二极管L1~L8;
2、运行程序 HW06.ASM,拨动开关K1~K8,观察L1~L8发光二极管是否对应点亮。
实验七
8255控制交通灯
实验目的进一步了解8 255 芯片的结构及编程方法,学习模拟交通控制的实现方法。
实验内容
用8255 做输出口,控制六个发光二极管燃灭,模拟交通灯管理。
实验步骤
1、用双头线将 8 255 PA0~PA2 口接至发光二极管L3~L1,PA3~PA5口接至发光二极管L7~L5;
2、执行 程序HW07.ASM,初始态为四个路口的红灯全亮,之后,东西路口的绿灯亮,南北路口的红灯亮,东西路口方向通车,延时一段时间后东西路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,东西路口红灯亮,而同时南北路口的绿灯亮,南北路口方向开始通车,延时一段时间后,南北路口的绿灯熄灭,黄灯开始闪烁,闪烁若干次后,再切换到东西路口方向,之后重复以上过程。实验八
简单I /O口扩展
实验目的学习单片机系统中扩展简单I/O 口的方法; 学习数据输入输出程序的编制方法。实验内容
利用74LS244 作为输入口,读取开关状态,并将此状态,通过74LS273再驱动发光二极管显示出来。
五、实验步骤
1、用8 芯线将Y0~Y7接至开关K1~K8,Q0~Q7 接至发光二极管L1~L8,用双头线将 CS1 接至8 000 孔,CS2 接至9 000 孔,用8 芯线将J X0 接至JX7(D0~D7数据线);
2、执行程序 HW08.ASM,按动开关K1~K8,观察发光二极管L1~L8是否对应点亮。
实验九
A/D 0809转换实验
实验目的)掌握A/D 转换与单片机接口的方法;)了解A/D 芯片0809转换性能及编程方法;)通过实验了解单片机如何进行数据采集。实验内容
利用实验系统上的 0809 做A /D 转换器,实验系统上的电位器提输入,编制程序,将模拟量转换成数字,通过数码管显示出来。实验步骤
1、用双头线将可调电压区的VOUT接至ADC0809 模数转换区的IN0,可调电压区的VIN 接至电源+5V,ADC0809 模数转换区的CS4 接至系统接口区的8000H 端口,ADC0809模数转换区的WR接至系统接口区的/IOWR端口,ADC0809 模数转换去的 RD 接至系统接口区的/IORD,ADC0809 模数转换区的ADDA、ADDB、ADDC接至G ND,CLK接至单脉冲与时钟区的500K,用8 芯线将数据总线JX0 接至A DC0809模数转换区的JX6;
2、运行程序 HW09.ASM,数码管上显示0809.XX,后二位显示当前采集的电压转换的数字量,调节可调电压,该二位将随着电压变化而相应变化,变化范围为00至FF。
实验十
D/A 0832转换实验
实验目的(1)了解D/A 转换与单片机的接口方法;
(2)了解D/A 转换芯片 0832 的性能及编程方法;
(3)了解单片机系统中扩展D/A 转换芯片的基本方法。
实验步骤
1、用双头线将DAC0832 数模转换区的CS5 端口接至系统接口区的8000H端口,WR端口接至系统接口区的/IOWR端口,AOUT输出接电压表或小直流电机DJ,用8 芯线将DAC0832 数模转换区的JX2 接至数据总线JX0
2、运行程序HW10.ASM,数码管上显示不断加大或减小的数字量,数字变化范围 00 到FF,用万 用表测试 D/A 输出孔 AOUT 应能测出不断加大或减小的电压值,电压变化范围 0V 到5V。
这次实验课程加深了我们对汇编语言指令的熟悉和理解。不仅巩固了书本所学的知识,还具有一定的灵活性,发挥了操作,加深了我们对硬件的熟悉,锻炼了动手能力,发挥创造才能。
通过这次课程使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。
这门课程可以阐明微处理器,汇编语言程序设计,计算机结构和操作系统等基本概念。详尽地论述了有关微处理器及其指令系统的概念和程序设计方法,介绍构成微型计算机的存储器,接口部件,总线等各项技术。.微机的最基础语言--汇编语言是一个最基础最古老的计算机语言,依赖于计算机的低级程序设计语言。汇编语言是我们理解整个计算机系统的最佳起点和最有效途径。汇编是对寄存的地址,以及数据单元进行最直接的修改,而在某些时候,这种方法的确是最有效,也是最可靠的.然而有优点,自然也就有缺点,最重要的一点就是汇编语言很繁琐,对某个数据进行修改时,本来很简单一个操作会用很多条繁琐的语句来解决,而这些语句本身在执行和操作的过程中,占用大量的时间和成本。并有大量的程序和硬件设计类题目,使我们能够深入了解计算机的原理、结构和特点,以及如何运用这些知识来设计一个实用的微型计算机系统。具体来说,就是掌握Intel8086/8088微型计算机系统地组成原理,熟练运用8086宏汇编语言进行程序设计,熟悉各种I/O接口芯片的配套使用技术,并通过一定的课程实验与实践,进一步提高系统设计的能力,使学生能够完成实用的微型计算机系统的软硬件设计。
学习该门课程知识时,其思维方法也和其它课程不同,该课程偏重于工程思维,具体地说,在了解了微处理器各种芯片的功能和外部特性以后,剩下额是如何将它们用于实际系统中,其创造性劳动在于如何用计算机的有关技术和厂家提供的各种芯片,设计实用的电路和系统,再配上相应的应用程序,完成各种实际应用项目。
这次实验并不是很难,主要的困难来自对程序的理解。我们最后对实验的原理有了清晰的认识。让我们知道了实验台上各个模块的用法;而且它还让我们对自己动手写程序来控制实验台的运作有了一定的基础。虽然实验台只是一个小型的模拟平台,但是通过对它的学习和操作,我们对有关接口的知识将会有一个更广泛的认识,而且它对我们以后的学习也会有帮助的。
实验中个人的力量是不及群体的力量的,我们分工合作,做事的效率高了很多。虽然有时候会为了一些细节争论不休,但最后得出的总是最好的结论。而且实验也教会我们在团队中要善于与人相处,与人共事,不要一个人解决所有问题。总之,这次课程设计对于我们有很大的帮助,通过课程设计,我更加深入地理解了,微机原理课程上讲到的各种芯片的功能,以及引脚的作用,同时加深了对于主要芯片的应用的认识,同时在试验室的环境里熟悉了汇编程序的编写过程和运行过程,最后还提高了自己的动手能力 对课程设计的建议
本次课程设计的几个实验相对都比较简单,而且经过老师的讲解以及实验书上的指导,几乎把我们要用到的程序和实验台电路的接线方法都告诉我们了,所以做起来很容易。
实验过程中,获得了很多收获,获得了很多感悟,当然也遇到了很多困难。但我们都一一克服了他们,成功的完成了实验。并在解决问题,克服困难的过程中,发现了自己平时忽略的,隐藏的问题,以及一些不该出现的粗心大意的小毛病。通过这些,我们认识的更加深刻,了解的更加深入。做到了学以致用,对知识掌握得更加牢固。通过了这一学期对微机原理的学习,真的对它有了一个全新的认识,我会坚持对它的学习,使自己在汇编语言上有一个长足的提高!
第四篇:通信原理实验二
通信原理实验二
数字锁相环
一实验目的
1、了解数字锁相环的基本概念
2、熟悉数字锁相环与模拟锁相环的指标
3、掌握全数字锁相环的设计
二 实验仪器
1、JH5001 通信原理综合实验系统 2、20MHz 双踪示波器
3、函数信号发生器
三 实验原理和电路说明
数字锁相环的结构如图2.2.1 所示,其主要由四大部分组成:参考时钟、多模分频器(一般为三种模式:超前分频、正常分频、滞后分频)、相位比较(双路相位比较)、高倍时钟振荡器(一般为参考时钟的整数倍,此倍数大于20)等。数字锁相环均在FPGA 内部实现,其工作过程如图2.2.2 所示。
在图2.2.1,采样器1、2 构成一个数字鉴相器,时钟信号E、F 对D 信号进行采样,如果采样值为01,则数字锁相环不进行调整(÷64);如果采样值为00,则下一个分频系数为(1/63);如果采样值为11,则下一分频系数为(÷65)。数字锁相环调整的最终结果使本地分频时钟锁在输入的信道时钟上。
在图2.2.2 中也给出了数字锁相环的基本锁相过程与数字锁相环的基本特征。在锁相环开始工作之前的T1 时该,图2.2.2 中D 点的时钟与输入参考时钟C 没有确定的相关系,鉴相输出为00,则下一时刻分频器为÷63 模式,这样使D 点信号前沿提前。在T2 时刻,鉴相输出为01,则下一时刻分频器为÷64 模式。由于振荡器为自由方式,因而在T3 时刻,鉴相输出为11,则下一时刻分频器为÷65 模式,这样使D 点信号前沿滞后。这样,可变分频器不断在三种模式之间进行切换,其最终目的使D 点时钟信号的时钟沿在E、F 时钟上升沿之间,从而使D点信号与外部参考信号达到同步。在该模块中,各测试点定义如下:
1、TPMZ01:本地经数字锁相环之后输出时钟(56KHz)
2、TPMZ02:本地经数字锁相环之后输出时钟(16KHz)
3、TPMZ03:外部输入时钟÷4 分频后信号(16KHz)
4、TPMZ04:外部输入时钟÷4 分频后延时信号(16KHz)
5、TPMZ05:数字锁相环调整信号
四 实验内容以及观测结果
准备工作:用函数信号发生器产生一个64KHz 的TTL 信号送入数字数字信号测试端口J007(实验箱左端)。1.锁定状态测量
用示波器同时测量TPMZ03、TPMZ02 的相位关系,测量时用TPMZ03 同步;
由上图可看出,将64KHz 的TTL 信号送入端口J007时,TPMZ03、TPMZ02上升沿对齐,环路锁定。
2.数字锁相环的相位抖动特性测量 数字锁相环在锁定时,输出信号存在相位抖动是数字锁相环的固有特征。测量时,以TPMZ03 为示波器的同步信号,用示波器测量TPMZ02,仔细调整示波器时基,使示波器刚好容纳TPMZ02 的一个半周期,观察其上升沿。可以观察到其上升较粗(抖动),其宽度与TPMZ02 周期的比值的一半即为数字锁相环的时钟抖动。
由上图可看出上升较粗(抖动)宽度约为0.45格,整个周期约是6.2格,因而数字锁相环的时钟抖动为0.45/(6.2*2)=0.0363。
3.锁定过程观测
用示波器同时观测TPMZ03、TPMZ02 的相位关系,测量时用TPMZ03 同步; 复位通信原理综合实验系统,则FPGA 进行初始化,数字锁相环进行重锁状态。此时,观察它们的变化过程(锁相过程)。
在第一项实验内容锁相状态测量时,观测TPMZ03、TPMZ02 的波形上升沿对齐,环路锁定。复位通信原理综合实验系统,波形随即变为两直线,如上图,然后几秒后又重新恢复锁定状态。4.同步带测量
(1)用函数信号发生器产生一个64KHz 的TTL 信号送入数字信号测试端口J007。用示波器同时测量TPMZ03、TPMZ02 的相位关系,测量时用TPMZ03 同步;正常时环路锁定,该两信号应为上升沿对齐。
(2)缓慢增加函数信号发生器输出频率,直至TPMZ03、TPMZ02 两点波形失步,记录下失步前的频率。
(3)调整函数信号发生器频率,使环路锁定。缓慢降低函数信号发生器输出频率,直至TPMZ03、TPMZ02 两点波形失步,记录下失步前的频率。
(4)计算同步带。
同步带=66.12KHz-61.88 KHz=4.24 KHz。
5.捕捉带测量
(1)用函数信号发生器产生一个64KHz 的TTL 信号送入数字信号测试端口J0007。用示波器同时测量TPMZ03、TPMZ02 的相位关系,测量时用TPMZ03同步;在理论上,环路锁定时该两信号应为上升沿对齐。
(2)增加函数信号发生器输出频率,使TPMZ03、TPMZ02 两点波形失步;然后缓慢降低函数信号发生器输出频率,直至TPMZ03、TPMZ02 两点波形同步。记录下同步一刻的频率。
上图同步一刻的频率是66.03KHz。
(3)降低函数信号发生器输出频率,使TPMZ03、TPMZ02 两点波形失步;然后缓慢增加函数信号发生器输出频率,直至TPMZ03、TPMZ02 两点波形同步。记录下同步一刻的频率。
(4)计算捕捉带。
捕捉带=66.03-62.07=3.96KHz。
六 实验总结
(1)分析总结数字锁相环与模拟锁相环同步带和捕捉带的大致关系。
对于这次数字锁相环实验,由实验内容2,还有查阅相关资料,可以了解到数字锁相环在锁定时,输出信号存在相位抖动是数字锁相环的固有特征。也正是由于这个相位抖动特性,使得数字锁相环的同步带和捕捉带的带宽相对较窄,有实验内容4、5加以验证,而且同步带与捕捉带大致相等。
第一次实验模拟锁相环,同步带,捕捉带的宽度都很大,而且我测得的同步带带宽要比捕捉带带宽大了约5KHz,数字锁相环的同步带捕捉带还没有5KHz。(2)实验心得体会
这次实验是紧承着上一次实验的,我觉得自己做实验过程中没有遇到太大障碍,就是在实验原理方面掌握的不是太好,自己觉得对双踪示波器和函数信号发生器的操作还是挺熟练的,没有在波形显示上遇到问题。
第五篇:通信原理实验二
实验二:PCM系统仿真
班级: 学号: 姓名: 实验室: 实验时间: 指导老师:
实验目的:
1、掌握脉冲编码调制原理;
2、理解量化级数、量化方法与量化信噪比的关系。
3、理解非均匀量化的优点。
实验内容:
对模拟信号进行抽样和均匀量化,改变量化级数和信号大小,根据MATLAB仿真获得量化误差和量化信噪比。
实验步骤:
1)产生一个周期的正弦波x(t)cos 2 pi t ,以1000Hz频率进行采样,并进行8级均匀量化,用plot函数在同一张图上绘出原信号和量化后的信号。代码及图见附录。
2)以32Hz的抽样频率对x(t)进行抽样,并进行8级均匀量化。绘出正弦波波形(用plot函数)、样值图,量化后的样值图、量化误差图(后三个用stem函数)。代码及图见附录。
3)以2000Hz对x(t)进行采样,改变量化级数,分别仿真得到编码位数为2~8位时的量化信噪比,绘出量化信噪比随编码位数变化的曲线。另外绘出理论的量化信噪比曲线进行比较。代码及图见附录。
4)在编码位数为8和12时采用均匀量化,在输入信号衰减为0~50 dB时,以均匀间隔5 dB仿真得到均匀量化的量化信噪比,绘出量化信噪比随信号衰减变化的图形。注意,输入信号减小时,量化范围不变;抽样频率为2000 Hz。代码及图见附录。
实验思考题:
1.图2-3表明均匀量化信噪比与量化级数(或编码位数)的关系是怎样的?
答:量化信噪比随着量化级数的增加而提高,当量化级数较小是不能满足通信质量的要求。
2.分析图2-5,A律压缩量化相比均匀量化的优势是什么?
答:量化信噪比随着量化级数的增加而提高,当量化级数较小是不能满足通信质量的要求
心得体会:
附录:
PCM代码:
输入信号和量化信号代码及波形:
采样样值和8级均匀量化后的样值,量化误差代码及波形
均匀量化信噪比随编码位数变化
量化信噪比随信号衰减的变化情况