北邮微原硬件实验

合集下载

北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告

北京邮电大学微机原理硬件实验报告实验报告一:I/0地址译码和简单并行接口——实验一&实验二一、实验目的掌握I/O地址译码电路的工作原理;掌握简单并行接口的工作原理及使用方法。

二、实验原理及内容a) I/0地址译码1、实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。

译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。

例如:执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲,执行下面两条指令MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲。

利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔经过软件延时实现。

2、接线: Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D触发器接 +5VQ/D触发器接L7(LED灯)或逻辑笔b) 简单并行接口1、按下面图4-2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。

74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。

2、编程从键盘输入一个字符或数字,将其ASCⅡ码经过这个输出接口输出,根据8个发光二极管发光情况验证正确性。

3、按下面图4-2-2简单并行输入接口电路图连接电路(74LS244插通用插座,74LS32用实验台上的“或门”)。

74LS244为八缓冲器,8个数据输入端分别接逻辑电平开关输出K0~K7,8个数据输出端分别接数据总线D0~D7。

4、用逻辑电平开关预置某个字母的ASCⅡ码,编程输入这个ASCⅡ码,并将其对应字母在屏幕上显示出来。

北邮微机原理硬件实验报告

北邮微机原理硬件实验报告

北邮微机原理硬件实验报告实验目的本次实验主要是通过对微机原理的学习,掌握多种硬件器件的基本使用,包括程序寄存器(PRG)、数据寄存器(DR)、累加器(AC)等,也希望能够初步了解微机系统的结构和工作原理。

实验内容1. 按以下程序编写汇编程序ORG 0HLOOP: MOV A,NUMADD BINC R5MOV MEM,R5SJMP LOOPENDNUM: DB 50HB: DB 35HR5: EQU 25HMEM: DS 1编写程序后,运行该程序,观察程序在8051微处理器上执行的情况。

2. 制作简易流水灯电路使用LED等元器件,制作一个简单的流水灯电路。

同时,编写相应的汇编程序,实现流水灯的基本效果。

3. 实现双向流水灯效果在完成流水灯电路的基础上,通过改变程序实现双向流水灯的效果。

在这个过程中,需要仔细分析程序的实现方式,并且结合8615芯片的具体情况,理解程序在底层机器中的工作方式。

4. 实现用数码管显示数字的功能使用7段数码管,将程序输出的结果显示在数码管上。

在这个过程中,我们需要灵活处理I/O端口和存储器的读写,以及处理各类中断信号。

实验过程1. 编写并调试汇编程序我们首先使用Keil软件编写了相应的汇编程序,并在8051单片机上运行。

在运行过程中发现,程序能够成功地对NUM与B进行加法运算,并将结果存储在MEM中。

2. 制作流水灯电路我们使用LED、电阻等元器件,制作了一个简单的流水灯电路,并测试了该电路的基本工作情况。

由于电路较为简单,因此没有出现特别明显的问题。

3. 实现双向流水灯效果为了实现双向流水灯效果,我们对程序进行了修改。

在这个过程中,初步出现了一些问题,包括倒计时初始值不正确、程序中断启动终止不及时等。

经过反复调试,我们成功地实现了这一功能。

4. 实现用数码管显示数字的功能最后,我们将流水灯程序变更为用数码管显示数字的程序。

在这个过程中,我们主要用到了表格查找和存储器读写等基本操作,成功将结果在数码管上显示。

北邮通原实验报告

北邮通原实验报告

电子工程学院通信原理硬件实验报告指导教师:实验日期:目录实验一双边带抑制载波调幅(DSB-SC AM) (4)一、实验目的 (4)二、实验原理 (4)三、实验连接框图 (5)四、实验步骤 (5)五、实验结果与分析 (6)六、思考题 (8)七、问题及解决 (9)实验二具有离散大载波的双边带调幅(AM) (10)一、实验目的 (10)二、实验原理 (10)三、实验连接框图 (11)四、实验步骤 (12)五、实验结果与分析 (12)六、思考题 (16)实验四线路码的编码与解码 (17)一、实验目的 (17)二、实验原理 (17)三、实验连接框图 (18)四、实验步骤 (18)五、实验结果及分析 (18)实验六眼图 (25)一、实验目的 (25)二、实验原理 (25)三、实验连接框图 (25)四、实验步骤 (25)五、实验结果及分析 (26)六、问题及解决 (26)实验八二进制通断键控(OOK) (27)一、实验目的 (27)二、实验原理 (27)三、实验框图 (27)四、实验步骤 (28)五、实验结果及分析 (29)六、思考题 (34)实验心得 (35)实验一双边带抑制载波调幅(DSB-SC AM)一、实验目的1.了解DSB-SC AM信号的产生及相干解调的原理和实现方法。

2.了解DSB-SC AM的信号波形及振幅频谱特点,并掌握其测量方法。

3.了解在发送DSB-SC AM信号加导频分量的条件下,收端用锁相环提取载波的原理及实现方法。

4.掌握锁相环的同步带和捕捉带的测量方法,掌握锁相环提取载波的调试方法。

二、实验原理DSB-SC AM信号的产生及相干解调原理框图如下将均值为0的模拟基带信号m(t)与正弦载波c(t)相乘得到DSB-SC AM信号,其频谱不包含离散的载波分量。

DSB-SC AM信号的解调只能采用相干解调。

为了能在接收端获取载波,其中一种方法是在发送端添加导频(如上图)。

收端可用锁相环来提取导频信号作为恢复载波。

北邮 通信原理硬件实验报告

北邮 通信原理硬件实验报告

实验一:双边带抑制载波调幅(DSB-AM)一、实验目的:(1)了解DSB-SC AM信号的产生以及相干解调的原理和实现方法;(2)了解DSB-SC AM信号波形以及振幅频谱特点,并掌握其测量方法;(3)了解在发送DSB-SC AM 信号加导频分量的条件下,收端用锁相环提取载波的原理及其实现方法;(4)掌握锁相环的同步带和捕捉带的测量方法,掌握锁相环提取载波的调试方法。

二、实验系统框图:DSB-SC加导频的产生测量VCO压控灵敏度的框图DSB-SC加导频分量的相干解调及载波提取框图三、实验步骤:SC-DSB 信号的数学表达式为s(t)=Acm(t)cos(Wct),这个实验产生SC-DSB 的方法很简单,就是用载波跟调制信号直接相乘,其中载波是由主振荡器产生为幅度为1V,频率为100KHZ的正弦波,而调制信号由音频振荡器产生的正弦信号再经缓冲放大器组成,幅度为1V,频率为1KHZ。

1、DSB-SC AM 信号的产生1)按照图连接,将音频振荡器输出的模拟音频信号及主振荡器输出的100KHz模拟载频信号分别用连接线连至乘法器的两个输出端;2)用示波器观看音频输出信号的信号波形的幅度以及振荡频率,调整音频信号的输出频率为10kHz,作为均值为0的调制信号m(t);3)用示波器观看主振荡器输出信号的幅度以及振幅频谱;4)用示波器观看乘法器的输出波形,并注意已调信号波形的相位翻转与已调信号波形;5)测量已调信号的波形频谱,注意其振幅频谱的特点;6)调整增益G=1:将加法器的B 输出端接地,A 输入端接已调信号,用示波器观看加法器的输出波形以及振幅频谱,使加法器输入与加法器输出幅度一致;7)调整增益g;加法器A 端接已调信号,B 接导频信号。

用频谱仪观看加法器输出信号的振幅频谱,调节增益g 旋钮,使导频信号振幅频谱的幅度为已调信号的边带频谱幅度的0.8倍。

此导频信号功率为已调信号功率的0.32倍。

2、DSB-SC AM 信号的相干解调及载波提取1)锁相环的调试1 单独测量VCO的性能将VCO 模板前面板的频率开关拨到HI 载波频段的位置,VCO 的Vin 输入端暂不接信号。

北邮通原硬件实验报告

北邮通原硬件实验报告

学院: 信息与通信工程 班 级: 姓 名: 学 号:班内序号:通信原理硬件实验实验报告实验一:双边带抑制载波调幅(DSB-SC AM )一、实验目的1、了解DSB-SC AM 信号的产生以及相干解调的原理和实现方法。

2、了解DSB-SC AM 信号波形以及振幅频谱特点,并掌握其测量方法。

3、了解在发送DSB-SC AM 信号加导频分量的条件下,收端用锁相环提取载波的原理及其实现方法。

4、掌握锁相环的同步带和捕捉带的测量方法,掌握锁相环提取载波的调试方法。

二、实验原理DSB 信号的时域表达式为()()cos DSB c s t m t t ω=频域表达式为1()[()()]2DSB c c S M M ωωωωω=-++其波形和频谱如下图所示将均值为零的模拟基带信号m(t)与正弦载波c(t)相乘得到DSB —SC AM 信号,其频谱不包含离散的载波分量。

DSB—SC AM信号的解调只能采用相干解调。

为了能在接收端获取载波,一种方法是在发送端加导频。

收端可用锁相环来提取导频信号作为恢复载波。

此锁相环必须是窄带锁相,仅用来跟踪导频信号。

在锁相环锁定时,VCO输出信号错误!未找到引用源。

与输入的导频信号错误!未找到引用源。

的频率相同,但二者的相位差为错误!未找到引用源。

度,其中错误!未找到引用源。

很小。

锁相环中乘法器的两个输入信号分别为发来的信号s(t)与锁相环中VCO的输出信号,二者相乘得到在锁相环中的LPF带宽窄,能通过错误!未找到引用源。

分量,滤除m(t)的频率分量及四倍频载频分量,因为错误!未找到引用源。

很小,所以错误!未找到引用源。

约等于错误!未找到引用源。

LPF的输出以负反馈的方式控制VCO,使其保持在锁相状态。

锁定后的VCO输出信号错误!未找到引用源。

经90度移相后,以错误!未找到引用源。

作为相干解调的恢复载波,它与输入的导频信号同频,几乎同相。

相干解调是将发来的信号s(t)与恢复载波相乘,再经过低通滤波后输出模拟基带信号,经过低通滤波可以滤除四倍载频分量,而错误!未找到引用源。

北邮微机原理实验报告

北邮微机原理实验报告

北邮微机原理实验报告微原软件实验报告班级:序号:学号:姓名:实验⼆分⽀,循环程序设计⼀.实验⽬的:1.开始独⽴进⾏汇编语⾔程序设计;2.掌握基本分⽀,循环程序设计;3.掌握最简单的DOS 功能调⽤.⼆.实验内容:1.安排⼀个数据区(数据段),内存有若⼲个正数,负数和零.每类数的个数都不超过9.2.编写⼀个程序统计数据区中正数,负数和零的个数.3.将统计结果在屏幕上显⽰.三.预习题:1.⼗进制数0 -- 9 所对应的ASCII 码是什么? 如何将⼗进制数0 -- 9 在屏幕上显⽰出来?答:0—9对应的ASCII码是30H,31H,32H,33H,34H,35H,36H,37H,38H,39H,将⼗进制数转换成相应的ASCII码并调⽤字符显⽰功能即能实现⼗进制数在屏幕上的显⽰。

2.如何检验⼀个数为正,为负或为零? 你能举出多少种不同的⽅法?答:将该数与0字符(ASCII码为30H)⽐较,根据⽐较的结果转⼊不同的分⽀。

四.流程图:开始初始化CX,BX,AH,DH,DL[BX] 0?[BX]=0?DH++DH 记录等于零的个数BX++BX++CX--AH++AH 记录⼩于零的个数DL++DL 记录⼤于零的个数CX 0?将AH,DH,DL 中的数转成ASCII 码并存储显⽰结束YES YES NOYESNO NO CX 是待处理的数的个数,BX 是这串数的⾸地址五.代码:六.运⾏结果:七.总结:第⼀次在DOS窗⼝下⽤汇编编程,⼀些基本的操作和以前的⾼级语⾔迥然不同,如建⽴⽂件,编译,链接,调试,这些操作都是要在DOS窗⼝中键⼊语⾔指令来完成的,不像⾼级语⾔的编译器只要按下相关的键就好了,⽤语⾔指令能更加明⽩编译,调试这些操作真正的含义。

更重要的是调试指令,通过这些指令,可以直接看到寄存器,内存中真真切切的变化,对硬件的⼯作机制特别是cpu的指令运⾏,内存的数据存储与读取,整个程序运⾏的本质过程有了更加透彻的了解和认识。

推荐-北邮—微原软件实验报告 精品

微机原理软件实验报告学院:信息与通信工程学院班级:班内序号:姓名:学号:实验二分支,循环程序设计一.实验目的:1.开始独立进行汇编语言程序设计;2.掌握基本分支,循环程序设计;3.掌握最简单的DOS 功能调用.二.实验内容:1.安排一个数据区(数据段),内存有若干个正数,负数和零.每类数的个数都不超过9.2.编写一个程序统计数据区中正数,负数和零的个数.3.将统计结果在屏幕上显示.三.预习题:1.十进制数0 -- 9 所对应的ASCII 码是什么? 如何将十进制数0 -- 9 在屏幕上显示出来?答:0—9对应的ASCII 码是30H—39H;在屏幕上显示0—9,需要将对应字符的ASCII 码赋给DL,并进行DOS的2号功能调用,0—9的ASCII 码正是其本身的数值加上30H。

2.如何检验一个数为正,为负或为零? 你能举出多少种不同的方法?答:①用CMP命令和0比较,如果ZF为1,则该数为零;再用该数和8000H相与,取出符号位判断,可区分正负;②用CMP命令和0比较,结果不小于0时用JGE命令进行跳转,否则为负数;用JGE 命令跳转后,如果为0再用JZ命令跳转,否则为正数。

四.选作题:统计出正奇数,正偶数,负奇数,负偶数以及零的个数.五.实验过程1.流程图2.源代码DATA SEGMENTNUM DW 0,0,1,2,3,4,5,101,-6,-7,-8,-8,-9 ;有2个0,6 个正数,5 个负数N DW ($-NUM)/2 ;该组数据的个数Z DB 0 ;0 的个数P DB 0 ;正数的个数PO DB 0 ;正奇数的个数PE DB 0;正偶数的个数M DB 0 ;负数的个数MO DB 0;负奇数的个数ME DB 0 ;负偶数的个数STR0 DB 'number of zeros : $' ;STR0-4为用于显示的字符串STR1 DB 0DH, 0AH, 'number of positive numbers : $'STR2 DB 0DH, 0AH, 'number of negative numbers : $'STR3 DB 0DH, 0AH, ' odd : $'STR4 DB ' even : $'DATA ENDSSTACK SEGMENT STACKDW 100 DUP(?)STACK ENDSCODE SEGMENTASSUME DS:DATA, SS:STACK, CS:CODESTART: MOV AX, DATAMOV DS, AXMOV AX, STACKMOV SS, AX ;初始化DS、SSLEA BX, NUM ;将NUM 中第一个数字的地址送入BXMOV CX, N ;将数据个数送入CXAGAIN: MOV AX, [BX] ;取出NUM 中的第一个数字CMP AX, 0 ;和0比较JGE PLU ;大于等于0时转PLUINC M ;负数的个数加1TEST AX, 1 ;检测该数据最低位是否为1,即是否为负奇数JNZ MINODD ;ZF为0时转MINODD,该数为负奇数INC ME ;负偶数个数加1JMP NEXTMINODD: INC MO ;负奇数个数加1JMP NEXTPLU: JZ ZER ;等于0时转ZERINC P ;正数个数加1TEST AX, 1 ;检测该数据最低位是否为1,即是否为正奇数JNZ PLUODD ;ZF为0时转PLUODD,该数为正奇数INC PE ;正偶数个数加1JMP NEXTPLUODD: INC PO ;正奇数个数加1JMP NEXTZER: INC Z ;零的个数加1NEXT: ADD BX,2 ;偏移地址加2,指向下一数字LOOP AGAIN ;CX自减,CX≠0时继续循环DISPLAY: ;在屏幕上显示统计结果MOV AH, 09H ;9号功能调用,显示字符串MOV DX, OFFSET STR0 ;将字符串的首地址的偏移地址送到DX,DS已;是其段基址INT 21HMOV AH, 02H ;2号功能调用,显示单个字符MOV DL, Z ;将零的个数送到DLADD DL, 30H ;0—9数字本身加上30H即为其ASCII 码INT 21HMOV AH, 09H ;正数部分统计结果显示,原理同上MOV DX, OFFSET STR1INT 21HMOV AH, 02HMOV DL, PADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR3INT 21HMOV AH, 02HMOV DL, POADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR4INT 21HMOV AH, 02HMOV DL, PEADD DL, 30HINT 21HMOV AH, 09H ;负数部分统计结果显示,原理同上MOV DX, OFFSET STR2INT 21HMOV AH, 02HMOV DL, MADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR3INT 21HMOV AH, 02HMOV DL, MOADD DL, 30HINT 21HMOV AH, 09HMOV DX, OFFSET STR4INT 21HMOV AH, 02HMOV DL, MEADD DL, 30HINT 21HMOV AX, 4C00H ;返回DOSINT 21HCODE ENDSEND START3.运行结果数据为:0,0,1,2,3,4,5,101,-6,-7,-8,-8,-9运行结果:zero表示零的个数,为2;positive number表示正数的个数,为6,其中奇数odd为4个,偶数even为2个;negative number表示负数的个数,为5,其中奇数odd为2个,偶数even 为3个。

北邮微原硬件实验报告

2015-2016学年第一学期微机原理硬件实验报告学院:班级:学号:姓名:序号:目录实验一熟悉实验环境及IO的使用 (3)一实验目的 (3)二实验内容 (3)三实验过程 (3)1 实验原理 (3)2 流程图 (3)3 源代码 (4)4 子程序清单 (6)5 代码分析 (6)四实验总结 (6)实验二 8255A并行接口应用 (7)一实验目的 (7)二实验内容 (7)三实验过程 (7)1 八位数码管位选规律 (7)2 六位数码管静态显示 (8)3 六位数码管动态显示 (11)4 扩展:显示键盘输入学号 (15)四实验总结 (21)实验三 8253计数器/定时器的应用 (22)一实验目的 (22)二实验内容 (22)三实验过程 (22)1 蜂鸣器发音规律 (22)2 音乐发生器 (23)3 扩展:小键盘弹琴功能 (32)四实验总结 (38)实验一熟悉实验环境及IO的使用一实验目的1 通过实验了解和熟悉实验台的结构,功能及使用方法。

2 通过实验掌握直接使用Debug的I、O命令来读写I/O端口。

3 学会Debug的使用及编写汇编程序。

二实验内容1 学习使用Debug命令,并用I、O命令直接对端口进行读写操作。

2 用汇编语言编写跑马灯程序。

实现功能:1)通过读入端口状态,选择工作模式(灯闪烁方式、速度等);2)通过输出端口控制灯的工作状态(低电平灯亮)。

三实验过程1 实验原理1 在Debug下,用I是命令读输入端口的状态,即拨码开关的状态,用O命令向端口输出数据,通过LED发光管来查看。

测试结果:1)使用命令:I 0EEE0H读取开关状态,得出的结果为左低右高,即S0是低位,S7是高位。

2)实验命令:O 0EEE0H测试LED,改变输入的值可依次测试各个数码管是否正常。

LED左边为高位,右边为低位。

2 分析以下程序段的作用MOV AH, 0BHINT 21HOR AL,ALJZ 0100INT 20H该段程序实现了检测键盘状态,在键盘有任意键输入时退出程序返回DOS的功能。

微原硬件北邮

微原硬件实验报告班级:2010211101 班学号:102100班内序号:姓名:实验一I/O地址译码一.实验目的掌握I/O地址译码电路的工作原理二.实验内容当cpu执行I/O指令且地址哎280H~2BFH范围内,译码器选中,必有一根译码器输出负脉冲,利用这个负脉冲控制L7闪烁发光,时间间隔通过软件实现。

三.源程序代码i oport equ 00houtport1 equ ioport+2a0houtport2 equ ioport+2a8hcode segmentassume cs:codestart:mov dx,outport1out dx,al ;将al中的数值输出到地址为dx的端口call delaymov dx,outport2out dx,alcall delaymov ah,1int 16h ;16h为中断向量标号je start ;mov ah,4chint 21hdelay proc nearmov bx,200lll: mov cx,0ll: loop lldec bxjne lllretdelay endpcode endsend start四.实验收获和体会通过这次实验,我对I/O地址译码器的工作原理有了了解,对软件和硬件的配合操作有了初步认识。

实验二简单并行接口一.实验目的掌握简单并行接口的工作原理及使用方法二.实验原理及内容编程从键盘输入一个符号或者数字,将其ASCII码通过这个输出接口输出,根据八个发光二极管发光情况验证正确性。

三.程序流程图四.源程序代码ls273 equ 2a8hcode segment assume cs:code start: mov ah,2mov dl,0dhint 21hmov ah,1int 21hcmp al,27je exitmov dx,ls273out dx,aljmp start exit: mov ah,4chint 21hcode ends五.实验心得与体会该实验是第一次实验课和实验一一起做的,也比较简单,只是熟悉了一下并行接口的工作原理,用的的芯片业非常简单。

北邮通原硬件实验报告材料

信息与通信工程学院通信原理硬件实验报告指导教师:实验日期:实验一双边带抑制载波调幅(DSB-SC AM)一、实验目的1) 了解DSB-SC AM信号的产生及相干解调的原理和实现方法。

2) 了解DSB-SC AM的信号波形及振幅频谱的特点,并掌握其测量方法。

3) 了解在发送DSB-SC AM信号加导频分量的条件下,收端用锁相环提取载波的原理及实现方法。

4) 掌握锁相环的同步带和捕捉带的测量方法,掌握锁相环提取载波调试方法。

二、实验内容及步骤1. DSB-SC AM 信号的产生1) 按照指导书图示,连接实验模块。

2) 示波器观察音频振荡器输出调制信号m(t),调整频率10kHz03) 示波器观察主振荡器输出信号波形和频率;观察乘法器输出,注意相位翻转。

4) 测量已调信号的振幅频谱,调整加法器的G和g,使导频信号的振幅频谱的幅度为已调信号的编带频谱幅度的0.8倍。

2、DSB-SC AM 信号的相干解调及载波提取1) 调试锁相环a) 单独测试VCO的性能 Vin暂不接输入,调节f0旋钮,改变中心频率,频率范围约为 70~130kHz。

V in接直流电压,调节中心频率100kHz-2~2V变化,观察VCO 线性工作范围;由GAIN调节VCO灵敏度,使直流电压变化正负1V时VCO频偏为10kHzb) 单独测试相乘和低通滤波工作是否正常。

锁相环开环,LPF输出接示波器。

两VCO经过混频之后由LPF输出,输出信号为差拍信号。

c) 测试同步带和捕捉带:锁相环闭环,输出接示波器,直流耦合。

将信号源VCO的频率f0调节到比100kHz小很多的频率,使锁相环失锁,输出为交变波形。

调节信号源VCO频率缓慢升高,当波形由交流变直流时说明VCO锁定,记录频率f2=96.8kHz,继续升高频率,当直流突变为交流时再次失锁,记录频率 f4=115.6kHz。

缓慢降低输入VCO频率,记录同步时频率f3=106.9kHz和再次失锁时频率f1=90.7kHz。

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

信息与通信工程学院微原硬件实验报告姓名:班级:20122111262014.12.21实验一熟悉实验环境及10的使用一,实验目的1.通过实验了解和熟悉实验台的结构,功能及使用方法。

2.通过实验掌握直接使用Debug的I、0命令来读写10端口。

3.学会Debug的使用及编写汇编程序二,实验内容1.学习使用Debug命令,并用I、0命令直接对端口进行读写操作,2•用汇编语言编写跑马灯程序。

(使用EDIT编辑工具)实现功能A.通过读入端口状态(0N为低电平),选择工作模式(灯的闪烁方式、速度等)。

B.通过输出端口控制灯的工作状态(低电平灯亮)三,实验步骤1.实验板的10端口地址为EEE0H在Debug下,I是读命令。

(即读输入端口的状态---拨码开关的状态)0是写命令。

(即向端口输出数据---通过发光管来查看)进入Debug后,读端口拨动实验台上八位拨码开关输入I端口地址回车屏幕显示xx表示从端口读出的内容,即八位开关的状态0N是O,0FF是1写端口输入0端口地址xx (xx表示要向端口输出的内容)回车查看实验台上的发光二极管状态,0是灯亮,1是灯灭。

2.在Debug环境下用a命令录入程序,用g命令运行C>Debug -amov dx,端口地址mov al,输出内容out dx, almov ah, Obhint 21hor al, aljzO1OOint 20h-g运行查看结果,修改输出内容再运行查看结果分析mov ah, Obhint 21hor al, aljzO1OOint 2Oh该段程序的作用:检测键盘有没有按键,有则返回DOS。

没有继续执行3.利用EDIT工具编写汇编写跑马灯程序程序实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)B.通过输出端口控制灯的工作状态(低电平灯亮)C>EDIT文件名.asm录入程序按Alt键打开菜单进行存盘或退出编译文件C>MASM 文件名.asm连接文件C>LINK 文件名.obj运行文件或用Debug进行调试。

四,程序流程图硬件连线图:五,源程序代码data segme nt led db Ocfhdata endsstack segme nt 'stack' stack db 100 dup⑺stack ends code segme ntassume cs: code, ds: data, ss: stack start proc far push ds xor ax, ax push ax mov ax, data mov ds, ax mov dx, 0eee0hIoop0: in al, dx mov ah, al and al, 80h xor al, 80h jz loop4 mov al, ah and al, 40h xor al, 40h jz loop2 mov ah, aland al, 20h xor al, 20h jz stop rol led, 1 jmp loop3Ioop2: ror led ,1 Ioop3: and ah, 3fh mov cl,ah mov ch, 0 mov al,led out dx, al inc ex loop1: call delay loop loopl jmp loopO loop4: retf stop: mov led, Offh mov al, led out dx,al jmp loopO start endp delay proc push cx mov cx,1500h delayl: push cx mov cx,800h delay2: loop delay2 pop cx loop delayl pop cx ret delay endp code ends end start 六,思考题通过实验说明用debug中的a命令录入实验中给出的小程序中,有些语句可以不写出“ h”字符的原因。

答:在DEBU环境下,地址都是默认以16进制显示的,所以当语句中的数据是地址时,可以不加H,如果输入的不是地址而是数据时,就要加上H以表示为十六进制数V-'T0 luF -=5U3七,实验收获和体会在这次试验中,我主要学会使用debug环境下的I/O命令,利用该命令点亮了LED灯,并且读取了拨码开关的状态,并知道了如何利用键盘检测返回DOS 在跑马灯实验中,我学会了写延时子程序,在一开始只用了一层循环,导致速度过快而无法观察到跑马灯的效果,在同学的帮助下我编写了二层循环才达到了应有的效果。

同时,自己也整体的练习了汇编语言程序的编写,包括段声明,子程序编写等等。

除了软件部分,也学习了实验板上的电路连接,初步了解了CPU 是如何通过总线读写数据和地址的,为以后的学习奠定了基础。

实验二8255A并行接口应用一、实验目的1.掌握8255A的功能及方式0、1的实现2.熟悉8255A与CPU的接口,以及传输数据的工作原理及编程方法。

3.了解七段数码管显示数字的原理。

4.掌握同时显示多位数字的技术。

二、实验要求在实验一的基础上学习PIO芯片(8255)编程应用,熟悉平台的主要内容。

CS 用Y0 (EE00H)1.查找八段数码管的显示的显示规律及位选规律在方式0(输入/输出)下,以A 口为输出口,B 口为输出口, A 口接六个共阴极数码管的八位段码,高电平点亮数码管的某一段,B 口接数码管的位选(即要使哪个数码管亮),高电平选中某一位数码管点亮。

8255A 中A端口地址EE00HB端口地址EE01HC端口地址EE02H控制地址EE03H八段数码管的显示规律及数码管的位选规律自己查找,可用实验一中,学过的I、O命令来做。

2.6位数码管静态显示学号在数码管电路上静态地显示6位学号,当主机键盘按下任意键时,停止显示,返回DOS。

要求在数码管电路1-6位数码管上按图3.2所示的规律,动态显示字符 串HELLO,当 主机键盘按下任意键时结束。

三、实验原理 1.八段数码管的显示的显示规律及位选规律经实验发现8255A 的数码管的显示规律如下图所示:PA6PA5 PA4PAOPA7I . PA1由此很容易得到数字0~9及字母A~F 的编码:2. 6位数码管静态显示学号该电路6个数码管的同名阳极段已经复接,当段选寄存器寄存了一个字 型编码之后,6个数码管都有可能显示出相同的数字。

如果要使6个数码管“同时”显示不同的数 字,必须采用扫描显示的方法,通过选位寄存器选择某 一位数码管,显示其数字(对应段值 为1),然后关闭此数码管,再选择下一位 数码管进行显示;如果在一秒钟内,每一位数码 管都能显示30次以上,则人 眼看到的是几位数码管同时在显示。

实验证明,在扫描显示过程中,每一位显示延迟1ms 是最佳选择PA3PA21•本实验应在上面实验的基础上完成2.在数据段,按下列规律设置12个字型码:MESG DB 0,0,0,0,0,0,3DH,0DCH,8CH,8CH,0EDH,0POINT DW MESGPOINT单元存放MESG单元的有效地址,程序取出POINT单元的内容一BX,然后用BX间址取数送数码管电路,扫描显示6个字符。

每过0.5s将POINT单元的内容加1,再将POINT单元的内容一BX,……。

POINT单元内容加1,使字符串显示的首地址向高地址移动一个单元,从而使6位字符串向“左”移动一位,实现动态显示。

4.动态显示的速度可控制(快或慢),利用实验一读入端口的5.动态显示的示意图如下:四、程序框图8255初始化point偏移地址送BX, SI否五、程序清单1. 6位数码管静态显示学号DATA SEGMENTNUM1 DB 0F4H,21H,21H,61H,0F4H,0FDH; 211728NUM2 DB 0F4H,21H,0EDH,61H,21H,0DDH; 211716 ;将两个学号都存在数据段,供显示选择DATA ENDSSTACK SEGMENT STACK 'STACK';堆栈段DB 100 DUP⑺STACK ENDSCODE SEGMENT ;代码段ASSUME SS:STACK,DS:DATA,CS:CODESTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXMOV DX,0EE03H MOV AL,80H OUT DX,AL ;初始化段基址;给8255A写入控制字;A 口与B 口输出模式LOP: MOV AH,0BHINT 21HOR AL,ALJZ LOP1MOV DX,0EE01HMOV AL,00H;判断是否有键盘输入;若有,则先把显示清零OUT DX,ALMOV AH,4CHINT 21H;再中止程序LOP1:XOR SI,SI ;SI存放学号段码偏移量MOV CX,06H ;CX存放扫描次数MOV DX,0EEE0HIN AL,DX;判断拨码开关取低位疋否为高电平MOV BH,ALMOV AL,01HSHR BH,1;AL存放位选信号JC NUM ;若拨码开关为高电平则输出学号一MOV SI,OFFSET NUM1JMP LOP2NUM: MOV SI,OFFSET NUM2 ;否贝U输出学号二;开始循环LOP2: MOV DX,0EE01HOUT DX,AL;向A 口输出位选信号DEC DX ;切换为B 口PUSH AXMOV AL,[SI]OUT DX,ALPOP AX;输出对应学号的段选信号INC DX ;切换回A 口INC SI ;切换为学号的下一位,共6位ROL AL,1 ;循环扫描位选信号CALL DELAY ;扫描延时,一个周期大约1msLOOP LOP2 ;循环扫描6次JMP LOP ;回到开头,进行下一次扫描JDELAY PROC NEAR;延时程序,通过执行指令消耗时间,形成延时PUSH BXPUSH CXMOV BX,0003H LOP3: MOV CX,0FFFFH LOP4: LOOP LOP4DEC BXJNZ LOP3POP CXPOP BX RETDELAY ENDPCODE ENDSEND START2. 6 位数码管动态显示 HELLO DATA SEGMENTHELLO DB 3DH,0DCH,8CH,8CH,0EDH,0TEMP DW 0010H;循环显示的段码 POINT DW HELLO;循环显示指针DATA ENDSSTACK SEGMENT STACK 'STACK' ;堆栈段 DB 100 DUP ⑺STACK ENDSCODE SEGMENT ;代码段 ASSUME SS:STACK,DS:DATA,CS:CODESTART:MOV AX,SEG DATAMOV DS,AXMOV AX,SEG STACKMOV SS,AX ;初始化段基址 ;外层循环,;循环3*16A 4次,周期大约为1msMOV DX,0EE03H;初始化控制字MOV AL,80HOUT DX,AL LOP: MOV BX,TEMP ;外层循环变量,循环 TEMP 次,大约每0.5S 滚动一次 INC POINT ;每结束一次内层循环,将指针值加一 CMP POINT,OFFSET HELLO+06H ;若滚动完 6 次,将“ HELLO ”和 一个空格显示一遍,再从头开始滚动 JNZ LOP1 SUB POINT,07H ;内层循环 ;每次循环BX 减一,判断BX 是否为0 ;更内层循环,扫描6次数码管 ;滚动速度选择 ;若拨码开关拨下来 ;滚动速度变慢 ;否则变快,TEMP 的值决定了延时时间,从而控制速度 LOP1: DEC BXJZ LOP XOR SI,SI MOV CX,06H MOV DX,0EEE0H IN AL,DX TEST AL,01H JNZ LOPP MOV TEMP,0054H JMP AA LOPP: MOV TEMP,0010H;将目前的指针值赋给偏移寄存器MOV AX,0001H LOP2: MOV DX,0EE01HOUT DX,ALDEC DXPUSH AX;位选信号;静态显示数码管的程序段;输出位选DELAY PROC NEARPUSH BXPUSH CXMOV BX,0003HLOP3: MOV CX,0FFFFHLOP4: LOOP LOP4DEC BXJNZ LOP3POP CXPOP BXRETDELAY ENDPCODE ENDS MOV AL,[SI]OUT DX,ALPOP AXINC DXINC SIROL AL,1CALL DELAYPUSH AXMOV AH,0BHINT 21HOR AL,ALJNZ EXITPOP AXLOOP LOP2JMP LOP1EXIT: MOV AH,4CH;输出段选 ;位选右移一位 涎时 ;判断是否有键盘输入 ;按任意键退出 ;循环扫描6次 ;扫描完,回到内层循环END START六、 实验结果讨论1. 静态显示学号实验中,关键在于找好延时时间,延时过长会导致,显示数字闪 烁,无法稳定;显示时间过短,系统循环次数多,显示亮度降低。

相关文档
最新文档