北邮微原硬件实验报告
- 格式:doc
- 大小:1.45 MB
- 文档页数:55
北京邮电大学微机原理硬件实验报告实验报告一: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. 实现用数码管显示数字的功能最后,我们将流水灯程序变更为用数码管显示数字的程序。
在这个过程中,我们主要用到了表格查找和存储器读写等基本操作,成功将结果在数码管上显示。
微原硬件实验报告实验一:跑马灯一、实验目的:实现跑马灯实现以下功能:1、依次点亮,同时只点亮一个灯,循环2、依次点亮,同时点亮两个灯,循环3、变速4、可选择跑马灯方向5、随时退出程序二、实验原理:1、通过读入端口状态,选择工作模式(灯的闪烁方式、速度等)2、通过输出端口控制灯的工作状态硬件连接图:三、源代码:data segmentswstate db 0 ;键盘ldstate db 0fehbuffer db 0data endsstack segment stack 'stack'db 100h dup(0)stack endscode segmentassume ds:data,ss:stack,cs:codemain proc ;主函数push dsxor ax,axpush axmov ax,datamov ds,ax ;初始化数据段mov ldstate,0feh ;初始化程序,首先点亮1号灯call endlessrepeatret ;返回main endpendlessrepeat proc ;多进程不断执行各个程序,实现跑马灯现象endlessloop :call proctorepeatjmp endlessloopretendlessrepeat endpproctorepeat proc ;不断被调用call readsw ;call excutedirection ;方向选择call excuteodd ;设置跳跃闪烁call excutemode ;设置模式,选择1个还是2个灯一起亮call excutepause ;在这个进程里,可以反复执行readswcall excutereturntodoscall excutespeed ;嵌套调用借用delay模块实现retproctorepeat endpdivfreq proc ;分频模块push cxmov cx,1000hmyloop: push cxmov cx,8000h ;分频为1000h*8000h=134.2M mynestedloop: dec cxjnz mynestedlooppop cxdec cxjnz mylooppop cxretdivfreq endpreadsw proc ;读取8位拨码开关的状态push axpush dxmov dx,0e8e0hin al,dxmov swstate,alpop dxpop axretreadsw endpwriteld proc ;led灯显示程序push dxpush axmov al,ldstatemov dx,0e8e0hout dx,alpop axpop dxretwriteld endpexcutereturntodos proc ;退出dos系统,结束程序运行test swstate,01h ;第一位表示退出dos系统jz exitexcutereturntodoscall returntodosexitexcutereturntodos:retexcutereturntodos endpreturntodos procmov ax,4c00hint 21hreturntodos endpexcutedirection proc ;选择跑马灯的方向call readswtest swstate,02h ;检测第2位,1则是向右移动jz shiftleftror ldstate,01hror ldstate,01hshiftleft: rol ldstate,01hexitexcutedirection: retexcutedirection endpexcutepause proc ;使跑马灯暂停beginexcutepause: call readswtest swstate,04h ;检测第3位,1则进入暂停jnz beginexcutepauseretexcutepause endpexcutespeed proc ;设置速度call divfreqtest swstate,08h ;检测第4位,1表示慢速模式jz exitexcutespeedcall divfreqcall divfreqexitexcutespeed: retexcutespeed endpexcuteodd proc ;设置跳跃显示test swstate,20h ;检测第6位,1产生跳跃jz returncall excutedirectionreturn: retexcuteodd endpexcutemode proc ;设置显示模式push word ptr ldstatetest swstate,10h ;测试第5位,1代表同时亮两盏灯jz simplemodepush axpush bxmov al,ldstatemov bl,alrol bl,1and al,blmov ldstate,alpop bxpop axsimplemode: call writeldexitexcutemode: pop word ptr ldstateretexcutemode endpcode endsend main四、实验总结在这次试验中,我主要学会使用debug环境下的I/O命令,利用该命令点亮了LED灯,并且读取了拨码开关的状态,并知道了如何利用键盘检测返回DOS,在跑马灯实验中,我学会了写延时子程序,在一开始只用了一层循环,导致速度过快而无法观察到跑马灯的效果,在同学的帮助下我编写了二层循环才达到了应有的效果。
实验一:双边带抑制载波调幅(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—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个。
信息与通信工程学院微原硬件实验报告姓名:班级: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进行调试。
微原软件实验报告班级:序号:学号:姓名:实验二分支,循环程序设计一.实验目的: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的指令运行,内存的数据存储与读取,整个程序运行的本质过程有了更加透彻的了解和认识。
在本次实验中,主要对顺序结构,分支结构以及循环结构有了初步的运用,程序编写的关键是流程图,当对题目有了分析并且设计出了条理清晰,步骤较为详细的流程图之后,只要对照图写就很快:顺序执行下来的地方用顺序结构,有判断的地方用分支结构,有循环执行的地方用循环结构,整个程序的框架就构建完成,剩下的就是变量、寄存器以及内存空间的读写了。
微原硬件实验报告班级: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。
北京邮电大学实验报告题目:微机原理软件实验三班级: 2010211127专业:信息工程姓名:付莹学号:10210759实验五:中断实验1. 实验类设计型实验:编程实现时钟的显示。
2. 实验目的掌握计数器/定时器8253的工作原理和编程方法;掌握中断控制器8259的工作原理;掌握中断处理程序的编写。
3. 实验条件硬件条件:PC机一台。
软件条件:DOS操作系统;任意一种编辑程序,如EDIT;宏汇编程序MASM;连接程序LINK;调试程序DEBUG。
可借用该程序中的中断服务程序以及8253的初始化程序段(口地址为40H、41H、42H、43H,控制字为36H=00110110B,时间常数TC=11932:1.1932MHz/11932=100Hz,输出方波频率为100Hz,其周期为1000/100=10ms)。
4. 实验内容及步骤编一程序,在显示器上显示时、分、秒。
借用计数器8253的Timer0作为中断源,通过8259A向CPU发中断,每10ms产生一次中断。
在中断服务程序中管理刷新时、分、秒Current time is: xx:xx:xx (时分秒键盘输入)回车后时、分、秒开始计时,时钟不停的刷新。
当键入CTRL+C时,停止计时,返回系统,且系统正常运行不死机。
5. 实验报告(1)画出程序流程图。
开始等待回车键按下(08H 中断调用)取原8H 中断的中断矢量并压栈保护建立数据段的可寻址性 装载现在的中断服务程序8253初始化产生10ms 方波,10ms 中断一次重写IMR ,只开放时钟和键盘中断开中断监测键盘(06H 中断调用)是Ctrl+C ? 关中断 恢复IMR重置8253,,55ms 中断一次恢复原中断开中断返回DOS ,结束Yes有键按下?显示时间值(09H 中断调用)取消秒Yes 计数达到100次(1秒)?NoYesNoNo实现等待计时功能实现循环,秒值变化则返回继续执行程序显示“Current time is :” 读入键盘输入(2)提交调试好的汇编语言源程序(.asm)。
北京邮电大学微机原理硬件实验报告实验1:熟悉实验环境及IO的使用实验2:8255A并行接口应用实验3:8253计数器/定时器的应用目录实验一熟悉实验环境及IO的使用 (2)一、实验目的 (2)二、实验内容及要求 (2)三、实验结果 (2)1、程序说明 (2)2、流程图 (4)3、源代码 (6)四、实验总结 (9)实验二8255A并行接口应用 (9)一、实验目的 (9)二、实验任务及内容 (9)1、6 位数码管静态显示 (10)2、6 位数码管动态显示 (10)3、扩展部分 (10)三、实验结果1(6位数码管静态显示) (10)1、程序说明 (10)2、流程图 (11)3、源代码 (11)四、实验结果2(6位数码管动态显示) (13)1、程序说明 (13)2、流程图 (14)3、源代码 (15)五、实验结果(扩展部分) (17)1、程序说明 (17)2、流程图 (18)3、源代码 (18)六、实验总结 (22)实验三8253计数器/定时器的应用 (22)一、实验目的 (22)二、实验任务及内容 (22)1.音乐发生器 (22)2.扩展部分 (23)三、实验结果1(音乐发生器) (23)1、程序说明 (23)2、流程图 (23)3、源代码 (24)四、实验结果2(扩展部分) (29)1、程序说明 (29)2、流程图 (29)3、源代码 (30)五、实验总结 (34)实验一熟悉实验环境及IO的使用一、实验目的1 .通过实验了解和熟悉实验台的结构,功能及使用方法。
2 .通过实验掌握直接使用Debug 的I、O 命令来读写IO端口。
3 .学会Debug 的使用及编写汇编程序二、实验内容及要求1 .学习使用Debug 命令,并用I、O 命令直接对端口进行读写操作,2 .用汇编语言编写跑马灯程序。
(使用EDIT编辑工具)实现功能A.通过读入端口状态(ON为低电平),选择工作模式(灯的闪烁方式、速度等)。
B.通过输出端口控制灯的工作状态(低电平灯亮三、实验结果1、程序说明跑马灯程序共实现:16种灯型、4种速度、暂停、退出等功能。
信息与通信工程学院微原硬件实验报告姓名:班级:学号:班内序号:【一.基本的I/O实验】实验一 I/O地址译码一、实验目的掌握I/O地址译码电路的工作原理。
二、实验原理和内容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输出一个负脉冲。
图1-1利用这个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
2、接线: Y4/IO地址接 CLK/D触发器Y5/IO地址接 CD/D触发器D/D触发器接 SD/D角发器接 +5VQ/D触发器接 L7(LED灯)或逻辑笔三、硬件接线图及软件程序流程图1.硬件接线图2.软件程序流程图四、源程序DATA SEGMENTDATA ENDSSTACK SEGMENT STACK 'STACK'DB 100H DUP(?)STACK ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:STACK ;基本框架;延时子程序DELAY1 PROC NEARMOV BX,500HPUSH CXLOOP2: MOV CX,0FFFHWAIT1: LOOP WAIT1DEC BXJNZ LOOP2POP CXRETDELAY1 ENDPSTART: MOV CX,0FFFFH ;L7闪烁控制LOOP1: MOV DX,2A0H ;灯亮OUT DX,ALCALL DELAY1MOV DX,2A8H ;灯灭OUT DX,ALCALL DELAY1LOOP LOOP1 ;循环闪烁CODE ENDSEND START五、实验结果灯L7闪烁实验二简单并行接口一、实验目的掌握简单并行接口的工作原理及使用方法。
微机原理硬件实验报告2015-2016学年第一学期微机原理硬件实验报告学院:班级:学号:姓名:序号:目录实验一熟悉实验环境及IO的使用 (2)一实验目的 (2)二实验内容 (2)三实验过程 (2)1 实验原理 (2)2 流程图 (3)3 源代码 (3)4 子程序清单 (5)5 代码分析 (5)四实验总结 (5)实验二 8255A并行接口应用 (6)一实验目的 (6)二实验内容 (6)三实验过程 (6)1 八位数码管位选规律 (6)2 六位数码管静态显示 (6)3 六位数码管动态显示 (9)4 扩展:显示键盘输入学号 (13)四实验总结 (19)实验三 8253计数器/定时器的应用 (19)一实验目的 (19)二实验内容 (19)微机原理硬件实验报告三实验过程 (19)1 蜂鸣器发音规律 (19)2 音乐发生器 (20)3 扩展:小键盘弹琴功能 (29)四实验总结 (34)实验一熟悉实验环境及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读取开关状态,得出的结果为左低右高,即是低位,是高位。
2)实验命令:O 0EEE0H测试LED,改变输入的值可依次测试各个数码管是否正常。
LED左边为高位,右边为低位。
2 分析以下程序段的作用MOV AH,0BH微机原理硬件实验报告INT21HOR AL,ALJZ0100INT20H该段程序实现了检测键盘状态,在键盘有任意键输入时退出程序返回DOS的功能。
北邮微机原理实验报告北邮微机原理实验报告引言:微机原理是计算机科学与技术专业的一门重要课程,通过学习和实践,我们可以深入了解计算机的组成结构和工作原理。
本次实验旨在通过对北邮微机原理实验的探索,加深对计算机硬件和软件的理解,并提升我们的实践能力。
一、实验目的本次实验的目的是熟悉计算机的硬件组成和工作原理,并通过实践操作加深对微机原理的理解。
具体包括以下几个方面:1. 熟悉计算机的硬件组成,包括中央处理器(CPU)、内存、硬盘等;2. 掌握计算机的启动过程和操作系统的加载;3. 理解计算机的指令集和指令执行过程;4. 学习计算机的输入输出设备和外部接口。
二、实验过程1. 实验一:计算机硬件的组装与连接在本实验中,我们需要将计算机的各个硬件组件进行正确的连接和组装。
首先,我们需要将主板与CPU、内存、显卡等硬件设备进行连接。
其次,我们需要将硬盘、光驱等存储设备与主板进行连接。
最后,我们需要将键盘、鼠标、显示器等外部设备与计算机进行连接。
通过这一步骤,我们可以了解计算机硬件的组成结构,并掌握正确的连接方式。
2. 实验二:计算机的启动过程和操作系统的加载在本实验中,我们需要了解计算机的启动过程和操作系统的加载过程。
首先,我们需要按下电源按钮,启动计算机。
然后,计算机会进行自检和硬件初始化,并加载操作系统。
在这个过程中,我们可以观察到计算机的启动画面和加载过程。
通过这一步骤,我们可以深入了解计算机的启动过程和操作系统的加载机制。
3. 实验三:计算机的指令集和指令执行过程在本实验中,我们需要学习计算机的指令集和指令执行过程。
首先,我们需要了解不同类型的指令,包括算术指令、逻辑指令、数据传输指令等。
然后,我们需要通过编写简单的汇编语言程序,来实现对数据的处理和操作。
在这个过程中,我们可以观察到指令的执行过程和结果。
通过这一步骤,我们可以深入理解计算机的指令集和指令执行过程。
4. 实验四:计算机的输入输出设备和外部接口在本实验中,我们需要学习计算机的输入输出设备和外部接口。
北邮-微原硬件实验报告实验简介本次实验是北邮电子工程学院微型原子核物理实验课程的一部分。
本次实验主要分为两个部分:微原硬件实验和样品制备。
微原硬件实验主要是为了让学生了解硬件实验的基本原理,掌握硬件实验的基本方法。
硬件实验实验目的通过控制硬件实验,观察不同磁场下的原子核的运动状态,进而了解原子核的物理性质。
实验器材•微原硬件实验仪•托盘•荧光屏•操作盘实验步骤1.将托盘放置在荧光屏上,打开微原硬件实验仪的电源2.打开荧光屏开关,将光电倍增管插在荧光屏上的孔中3.打开操作盘,选择相应的磁场模式,如顶置模式,圆柱模式或平面模式4.将操作盘连接到电磁铁上,并按照实验要求进行调节5.打开微原硬件实验仪的数据采集系统,并进行数据采集6.根据数据采集结果进行数据处理和分析实验结果通过微原硬件实验,我们得到了不同磁场下原子核的运动状态。
我们可以通过观察数据采集结果和数据处理结果来了解原子核的物理性质。
例如,我们可以通过分析数据来计算原子核大小、电荷等参数。
样品制备实验目的通过样品制备,让学生了解样品制备过程中的化学和物理原理,掌握样品制备的基本方法。
实验器材•称量器•毛细管•乙酸钠•氯化钠•离心机•离心管实验步骤1.称取适量的乙酸钠和氯化钠2.将乙酸钠和氯化钠加入样品瓶中3.加入适量的水,使溶液中的浓度达到一定的比例4.将样品瓶放入离心机中进行离心分离5.取出离心管中的上层溶液,放入样品瓶中实验结果通过样品制备,我们制备出了一种可以用于微原硬件实验的样品。
我们可以对样品进行计算、分析和测试,以便我们更好地了解原子核的物理性质,并探索原子核在各种磁场下的运动状态。
2014—2015学年第一学期《微机原理硬件》实验报告专业电子信息工程班级 2012211103姓名申宇飞学号 2012210064班内序号 03报告日期 2015年1月目录实验一I/O地址译码 (3)一、实验目的 (3)二、实验内容及原理,实验硬件接线图 (3)三、程序流程图及源代码 (6)1、程序流程图: (6)2、源代码: (6)四、实验结果 (8)五、实验收获与心得体会 (8)实验二简单并行接口 (9)一、实验目的 (9)二、实验内容及原理,实验硬件接线图 (9)三、程序流程图及源代码 (11)1、程序流程图: (11)2、源代码: (11)四、实验结果 (12)五、实验收获与心得体会 (12)实验四七段数码管 (13)一、实验目的 (13)二、实验内容及原理,实验硬件接线图 (13)三、程序流程图及源代码 (16)1、程序流程图: (16)2、源代码: (17)四、实验结果 (20)五、实验收获与心得体会 (20)实验八可编程定时器/计数器(8253/8254) (21)一、实验目的 (21)二、实验内容及原理,实验硬件接线图 (21)三、程序流程图及源代码 (24)四、实验结果 (36)五、实验收获与心得体会 (36)实验十六串行口8251A实验 (37)一、实验目的 (37)二、实验内容及原理,实验硬件接线图 (38)三、程序流程图及源代码 (49)1、程序流程图 (49)2、源程序: (49)四、实验结果 (54)五、实验收获与心得体会 (54)实验一I/O地址译码一、实验目的1.通过实验了解和熟悉实验台的结构,功能及使用方法。
2.掌握I/O地址译码电路的工作原理。
二、实验内容及原理,实验硬件接线图图1-1 实验硬件接线图1、硬件接线提示:Y4/IO地址接CLK/D触发器Y5/IO地址接CD/D触发器D/D触发器接SD/D角发器接+5VQ/D触发器接L7(LED灯)或逻辑笔2、实验内容及原理:实验电路如图1-1所示,其中74LS74为D触发器,可直接使用实验台上数字电路实验区的D触发器,74LS138为地址译码器。
译码输出端Y0~Y7在实验台上“I/O地址“输出端引出,每个输出端包含8个地址,Y0:280H~287H,Y1:288H~28FH,……当CPU执行I/O指令且地址在280H~2BFH范围内,译码器选中,必有一根译码线输出负脉冲。
根据图1-1,我们可以确定A9~A3,AEN,IOW,IOR的值。
要使译码电路正常工作,必须使处于低电平有效。
因而可以确定A6=A8=0,A7=A9=1,AEN=0,IOW与IOR不可同时为1(即不能同时读写)。
当要从Y4输出低脉冲时,A5A4A3=100;从Y5输出时,A5A4A3=101。
综上所述,Y4输出时,应设置值2A0H(A9~A0=1010100000B);Y5输出时,应设置值2A8H(A9~A0=1010101000B)。
执行下面两条指令MOV DX,2A0HOUT DX,AL(或IN AL,DX)Y4输出一个负脉冲到D触发器的CLK上,因为D=1(接了高电平+5V),所以Q被赋值为1.延时一段时间(delay);执行下面两条指令;MOV DX,2A8HOUT DX,AL(或IN AL,DX)Y5输出一个负脉冲到CD,D触发器被复位,Q=0。
再延时一段时间,然后循环上述步骤。
利用这两个个负脉冲控制L7闪烁发光(亮、灭、亮、灭、……),时间间隔通过软件延时实现。
三、程序流程图及源代码1、程序流程图: 开始在Y4端口输出一个负脉冲延时在Y5端口输出一个负脉冲延时是否有键盘输入?结束YN图 1-2 程序流程图2、源代码:outport1 equ 2a0h ;预置,方便修改outport2 equ 2a8hcode segmentassume cs:codestart:mov dx,outport1 ;根据原理图设定A9~A0的值(Y4)out dx,al ;让译码器Y4口输出一个负脉冲call delay ;延时mov dx,outport2 ;根据原理图设定A9~A0的值(Y5)out dx,al ;让译码器Y5口输出一个负脉冲call delay ;延时mov ah,1 ;调用1号DOS功能,等待键盘输入int 16hje start ;若有键盘输入则退出程序,否则继续循环mov ah,4chint 21hdelay proc near ;延时子程序mov bx,200 ;时延长度(200)a: mov cx,0b: loop bdec bxjne aretdelay endpcode endsend start四、实验结果LED 灯处于闪烁状态,键盘有输入后,成功退出。
五、实验收获与心得体会遇到的问题:需要合理设置时延值。
本次是第一次进入微原硬件实验室,熟悉了将要使用的实验仪器、系统,学习了最基本I/O地址译码的方法,学会了在实验的环境下进行单步调试,对接口的地址、LED灯的控制有了初步的了解。
为后续实验做了准备。
实验二简单并行接口一、实验目的掌握简单并行接口的工作原理及使用方法。
二、实验内容及原理,实验硬件接线图1、按下面图2-1简单并行输出接口电路图连接线路(74LS273插通用插座,74LS32用实验台上的“或门”)。
74LS273为八D触发器,8个D输入端分别接数据总线D0~D7,8个Q输出端接LED显示电路L0~L7。
2、编程从键盘输入一个字符或数字,将其ASCⅡ码通过这个输出接口输出,根据8个发光二极管发光情况验证正确性。
图2-1 实验电路图三、程序流程图及源代码1、程序流程图:图2-2 流程图2、源代码:CODE SEGMENTASSUME CS:CODESTART:MOV AH,1 ;调用一号DOS命令,等待键盘输入INT 21HCMP AL,1BH ;是否键入“ESC”JZ FINNAL ;当键入“ESC”则退出程序MOV DX,288H ;288H为端口地址OUT DX,AL ;向该端口输出对应的ASCII码JMP START ;循环FINNAL:MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START四、实验结果键盘输入一个字符,LED 灯显示相应的ASCII 码。
键入ESC 后成功退出。
五、实验收获与心得体会本次实验让我对实验有了更深的了解,硬件实验需要经常读取硬件的状态,根据其状态采取相应的控制方案,同时需要向接口输出数据和控制信息,驱动硬件正常工作。
通过键盘的输入还记下了一些字符的ASCII 码。
实验四七段数码管一、实验目的1、通过实验,掌握8255工作方式0以及设置A口为输出口,C口为输入口的方法。
2、掌握数码管显示数字的原理二、实验内容及原理,实验硬件接线图1、8255芯片工作原理:1)8255的工作方式:一片8255内部有3个端口,A口可以工作在方式0、方式1或方式2,B口可以工作在方式0、方式1,C口可以工作在方式0。
方式0是基本型输入/输出。
这种方式和外设交换数据时,8255端口与外设之间不使用联络线。
方式1为选通型输入/输出。
用这种方式和外界交换数据时,端口和外设之间要有联络信号。
方式2是双向数据传送,仅A口有这项功能。
当A口工作在方式2时,B口仍可以工作在方式0或方式1,但此时B口方式1只能用查询方式与CPU交换信息。
2 )工作方式选择字8255工作方式选择字共8位(如图3-1),存放在8255控制寄存器中。
最高位D7为标志位,D7=1表示控制寄存器中存放的是工作方式选择字,D7=0表示控制寄存器中存放的是C口置位/复位控制字。
根据上图,方式控制字应为:10000000B,即80H。
8255控制寄存器端口地址--28BH, A口的地址--288H, B口的地址--289H,C口的地址--28AH。
2、七段数码管及接线图:1)静态显示:按3-2连接好电路,将8255的A口PA0~PA7分别与七段数码管的段码驱动输入端a~dp相连,位码驱动输入端S0、S1 、S2、S3接PC0、PC1、PC2、PC3,编程在数码管显示自己的学号的后四位。
(或编程在数码管上循环显示“00-99”,位码驱动输入端S0、S1 接PC0、PC1;S2、S3接地。
)图3-2 接线图接线:PA7~PA0/8255 接dp~a/LED数码管PC3~PC0/8255 接S3~S0/LED数码管CS/8255 接Y1/IO地址2)实验台上的七段数码管为共阴型,段码采用同相驱动,输入端加高电平,选中的数码管亮,位码加反相驱动器,位码输入端高电平选中。
七段数码管的字型代码表如下表:图3-1 8255方式控制字(向8255控制寄存器写入“方式选择控制字”,从而预置端口的工作方式。
)图3-3 数码管字型代码三、程序流程图及源代码1、程序流程图:开始初始化8255数码管清零送0的段码到数码管送位码到数码管(第1位)数码管清零送3的段码到数码管送位码到数码管(第2位)数码管清零送0的段码到数码管送位码到数码管(第3位)数码管清零送5的段码到数码管送位码到数码管(第4位)是否有按键按下?结束YN图3-4 程序框图2、源代码:CODE SEGMENTASSUME CS:CODESTART:MOV AL,80HMOV DX,28BHOUT DX,ALLOOP1:MOV DX,28AH ;数码管清零MOV AL,00HOUT DX,ALMOV DX,288H ;送出段码MOV AL,3FH ;0的段码OUT DX,ALMOV DX,28AH ;送出位码MOV AL,08H ;最高位显示OUT DX,ALMOV DX,28AH ;数码管清零MOV AL,00HOUT DX,ALMOV DX,288H ;送出段码MOV AL,4FH ;3的段码OUT DX,ALMOV DX,28AH ;送出位码MOV AL,04H ;次高位显示OUT DX,ALMOV DX,28AH ;数码管清零MOV AL,00HOUT DX,ALMOV DX,288H ;送出段码MOV AL,5BH ;1的段码OUT DX,ALMOV DX,28AH ;送出位码MOV AL,02H ;第3位显示OUT DX,ALMOV DX,28AH ;数码管清零MOV AL,00HOUT DX,ALMOV DX,288H ;送出段码MOV AL,6FH ;1的段码OUT DX,ALMOV DX,28AH ;送出位码MOV AL,01H ;第4位显示OUT DX,ALMOV AH,1 ;调用DOS功能,监视键盘是否有输入INT 16HJZ LOOP1 ;键盘有输入跳出循环,否则继续显示MOV AH,4CH ;返回DOSINT 21HCODE ENDSEND START四、实验结果数码管上静态显示我的学号后四位0064 。