




已阅读5页,还剩11页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
微机原理实验微机原理实验报告专业:电子信息工程班级:电信08082011年1月2日目录1.软件实验2实验目的2实验内容2实验步骤2实验分析3实验程序3实验总结52.硬件实验52.1.I/O实验5实验目的5实验原理5实验内容5实验程序6实验结果及总结62.2.ADC08O9实验7实验目的7实验原理7实验内容7实验程序8实验结果及总结92.3.DAC0832实验9实验目的9实验原理9实验内容10实验程序10实验结果及总结102.4.PCI 中断实验11实验目的11实验原理11实验内容11实验程序11实验结果及总结132.5.8255实验13实验目的13实验原理13实验内容14实验程序14实验结果及总结153.实验心得151. 软件实验实验目的熟悉软件环境,能够在Dos系统下编写汇编语言程序和汇编的全过程。实验内容题目:从键盘输入一至多四位无符号的16进制数(0000HFFFFH),然后在显示器上以二进十进制形式显示出来。以上题为例,编写、调试、运行汇编的整个过程。实验步骤步骤1 进入工作目录 步骤2 运行EDIT文本编辑器,编辑test.asm源文件。键入源文件,保存后退出。步骤3 汇编test.asm生成目标文件test .obj。步骤4 链接test.obj生成可执行文件。步骤5 用debug进行调试。键入u,反汇编字节并显示相应的助记符。键入r,可查看寄存器内容。键入g 【地址】,可以设置断点。可以根据需要选择命令调试程序,调试成功后,准备运行。步骤6 运行程序。实验分析当程序执行到79行时,各寄存器的取值如下。则实验运行过程中的内存映像图如下:PSP(100HB)堆栈段(40HB)数据段(10HB)代码段(20HB) DS 0BE2 SS 0BDE SP 003C CS:IP 0BE5+0079堆栈段 SS = DS + 100H/10H数据段 DS = SS + 堆栈段长度/10H代码段 CS = 用户DS + 数据段长度/10H (有以上表格可以验证其正确性)实验程序 16 / 16stack segment stack dw 32 dup(0)stack endsdata segmentOBUF DB PLEASE INPUT(0-FFFF):$IBUF DB 5,0,5 DUP (0)NB DW 0DAT DB 6 DUP (0)data endscode segmentbegin proc far assume ss:stack,ds:data,cs:code push ds sub ax,ax push ax mov ax,data mov ds,ax MOV DX,OFFSET OBUF MOV AH,9 INT 21H MOV DX,OFFSET IBUF MOV AH,10 INT 21H MOV DL,0AH MOV AH,2 INT 21H MOV DL,0DH INT 21H LEA SI,IBUF+2 MOV BL,SI-1 MOV CX,16 CMP BL,1 JZ L1AGAIN:MOV AH,0 MOV AL,SI SUB AL,30H CMP AL,0AH JC AG SUB AL,07HAG: ADD AX,NB MUL CX MOV NB,AX INC SI DEC BL CMP BL,1 JNZ AGAINL1: MOV AL,SI SUB AL,30H CMP AL,0AH JC L2 SUB AL,07HL2: MOV AH,0 ADD NB,AX MOV CX,10 MOV AX,NB LEA DI,DAT+5 MOV BYTE PTR DI,$BCD: MOV DX,0 DIV CX ADD DL,30H DEC DI MOV DI,DL OR AX,AX JNZ BCD MOV DX,DI MOV AH,9 INT 21H retbegin endpcode ends end begin实验总结汇编语言与C语言有着很大区别,汇编语言用助记符表示所执行的操作,代码写起来较C语言复杂很多。而且汇编语言的调试也比较麻烦,没有C语言那样强大的编译软件。学习汇编语言得不断上机实践,只有通过不断的练习,才能熟悉这门语言。在不断的练习中也能够发现各种问题,培养解决问题的能力。特别是汇编语言得调试,的一步一步来,调试不过关对汇编语言得学习会造成很大障碍。汇编语言的学习对于我理解程序在内存中的执行过程以及一个源文件怎么变成计算可以执行的文件有了很大帮助。我对程序的分段,物理地址以及虚地址也有了更好的理解。2. 硬件实验1.2.2.1. I/O实验实验目的掌握基本输入接口的设计方法。掌握基本输出接口的设计方法。掌握I/O地址译码的方法实验原理当用74LS244、74LS273组成一个I/O接口电路时,输入端口地址和输出端口地址可以为同一个地址。为了区别数据时输入还是输出,可以用IOR 、IOW和IOY3信号共同控制。由IOY3和IOR产生读选通信号,有IOY3和IOW产生写选通信号。实验内容题目要求编制一个循环程序,用74LS244和74LS273设计一个输入输出接口,将从74LS244的输入数据从74LS273的输出发光二极管上对应显示出来。改变输入,输出立即跟着改变,按下键盘上的任一键,立即停止输入和输出。实验电路图实验程序stack segment stack stack dw 32 dup (0)stack endscode segmentbegin proc far assume ss:stack,cs:code push ds sub ax,ax push axAGAIN: MOV DX,0D870H IN AL,DX MOV DX,0D871H OUT DX,AL MOV AH,11 INT 21H CMP AL,0 JZ AGAIN retbegin endpcode ends end begin实验结果及总结实验现象:改变开关状态,发光二极管会作出相应的亮灭,实验正确。实验过程中,若Y0-Y7所有端口均无选通信号,一般可能是74LS138译码器电源未接好,或不符合译码器使能条件,或是74LS138损坏。若选通信号与Y0、Y1端口不对应,则是C、B、A端输入地址线错接或开路、或短路。C、B、A三端输入地址线应有脉冲信号输出,若全为0或全为1,则不正常。2.2. ADC08O9实验 实验目的掌握模/数转换的原理及接口设计掌握8为A/D转换芯片ADC0808/0809的使用方法。掌握延时、查询和中断数据传送方式。实验原理各种型号的ADC芯片都具有数据输出信号,启动A/D转换信号和转换结束信号。首先,计算机启动A/D转换;待转换结束后,ADC送出转换结束信号通知计算机;计算机用输出指令从ADC的数据输出引线读取转换数据。由于ADC0808/0809芯片内部集成了数据锁存三态缓冲器,其数据输出线D7D0可以直接和计算机的数据总线相连,所以ADC0808/0809与微机的接口的设计主要是对模拟通道的选择、转换启动的控制和读转换结果的控制等方面的设计。ADC0808/0809于微机的接口可分为三种方式:延时方式、中断方式、查询方式。本次实验只用到延时方式:启动转换后等待100us(ADC0808/0809转换时间),再读取转换结果。实验内容题目用延时的方式分别采集+5V、0V各点的电压数据,并将采集的数据(FFH、00H)送显示器显示。实验电路图实验程序stack segment stack stack dw 32 dup(0)stack endsdata segmentOBUF DB 2 DUP(0),H,$data endscode segmentbegin proc far assume ss:stack,cs:code,ds:data push ds sub ax,ax push ax mov ax,data mov ds,axMOV DX,0D860H OUT DX,AL MOV BX,1000H MOV CX,0AG: LOOP $ DEC BX JNZ AG IN AL,DX MOV BX,OFFSET OBUF MOV CL,4 MOV AH,0 SHL AX,CL SHR AL,CL CMP AH,0AH JB HNADD7 ADD AH,7HNADD7:ADD AH,30H MOV BX,AH INC BX CMP AL,0AH JB LNADD7 ADD AL,7LNADD7:ADD AL,30H MOV BX,AL MOV DX,OFFSET OBUF MOV AH,9 INT 21H retbegin endpcode ends end begin实验结果及总结实验现象:当IN0接高电平时,运行程序,CRT显示FFH,当IN0接低电平时,运行程序,CRT显示00H,实验正确。连ADC0809芯片引脚接线时一定要注意REF-与GND接地,REF+与ACC接电源。Start和ALE引脚要接到一起,实验书上给的图有错误。我们没有发74LS02或非门,可以用74LS32或门加非门代替,实验效果一样。实验中注意等待时间的选取,书中给出CLK时钟输入的最高频率为640KHz,且ADC0809启动转换后延时时间为100us。故等待时间需选择大于100us,可以选择500us左右。2.3. DAC0832实验 实验目的掌握A/D转换原理。熟悉A/D芯片接口设计方法。掌握DAC0832芯片的使用方法。实验原理DAC0832是具有20条引线的双列直插式CMOS器件,内部具有两级数据寄存器,可完成8为D/A转换,电流输出。其结构和引脚入下图所示。由于DAC0832内部有输入寄存器和DAC寄存器,所以它不需要外加其他电路便可以与微机的数据总线直接相连。根据DAC0832的5个控制信号的不同连接方式,可知它有三种工作方式:直通工作方式、单缓冲工作方式、双缓冲工作方式。本次实验只用到单缓冲工作方式:令其中一个寄存器工作在直通方式,另一个处于受控锁存状态。实验内容题目用DAC0832设计一个D/A转换接口电路,采用单缓冲工作方式,产生锯齿波(方波和三角波类似故未写出)。实验电路图实验程序stack segment stack stack dw 32 dup(0)stack endscode segmentbegin proc far assume ss:stack,cs:code push ds sub ax,ax push ax MOV DX,0D860HAGAIN: OUT DX,AL INC AL PUSH AX MOV AH,0BH INT 21H CMP AL,0 POP AX JZ AGAIN retbegin endpcode ends end begin实验结果及总结实验现象:从示波器上观察,可看到相应的波形。程序每循环一次DAC0832的输入数字量增1.,因此实际上锯齿波的上升是由256个小阶梯构成的,但由于小阶梯很小,所以宏观上看就是线性增长的锯齿波。可通过循环程序段的机器周期计算出锯齿波的周期。并可根据需要,通过延时的办法来改变锯齿波的周期。当延时时间较短时,可用指令LOOP $来实现:当延时较长时,可以使用一个延时子程序,也可以使用定时器来定时。程序中的数字量的变化范围是从0-255,因此得到的锯齿波是满幅的。如果要得到非满幅的锯齿波,可通过计算求得的数字量的初值和终值,然后在程序中通过置初值潘终值的办法即可实现。2.4. PCI 中断实验实验目的掌握PCI中断的设计方法。掌握可编程中断控制器8259A的使用方法。实验原理本实验使用TD-PIT实验装置提供的中断请求信号IRQ(下降沿有效),用KK1的负脉冲作为中断源,在进入中断前、中断过程中和完成中断后分别在屏幕上显示不同的提示字符串。使用实验装置提供的IRQ信号,除了要操作PC的可编程中断控制器8259A外,还需要操作实验装置PCI扩展卡上的与PCI中断有关的寄存器。通过操作上述寄存器,才可以实现中断的初始化和中断清楚等。实验内容题目用KK1的负脉冲作为中断源,经过十次中断后结束程序,每次中断都应在显示器上显示。实验电路图KK1的0端接IRQ。实验程序Stack segment stack stackDw 32 dup(?)Stack endsData segmentHh db 0dh,0ah,$Ic db interrupt count=,$S db 2 dup($)Obuf db wait int,0dh,0ah,$Data endsCode segmentBegin proc farAssume ss:stack,ds:data,cs:codePush dsSub ax,axPush axMov es,axMov ax, dataMov ds,axMov dx,0e438hMov al,00hOut dx,alMov dx,0e439hMov al,1fhOut dx,alMov dx,0e43ahMov al,3fhOut dx,alMov dx,0e43bhMov al,00hOut dx,alMov ax,offset adc_intMov es:02ch,axMov ax,seg adc_intMov es:02eh,axIn al,021hAnd al,0f7hOut 021h,alMov dx,offset obufMov ah,9Int 21hStiMov cx,0Again:cmp cx,10Jne againIn al,021hOr al,8Out 021h,alRetBegin endpAdc_int proc nearMov dx,offset hhMov ah,9Int 21hMov dx,offset icMov ah,9Int 21hInc cxPush cxCmp cx,10Jb agnAdd cx,07hAgn: add cx,30hMov s0,clPop cxMov dx,offset sMov ah,9Int 21hmov dx,0d01fhin al,dxmov dx,0e43ahmov al,3fhout dx,almov al,62hout 0a0h,almov al,20hout 20h,aliretAdc_int endpcode endsend begin实验结果及总结实验现象:按下开关KK1十次后程序结束,退出中断。并且每次按下开关时显示屏上均有显示。PCI的中断初始化的过程包括初始化PCI办卡中断控制寄存器和8259A的中断初始化,前者需要向4个不同端口写入不同的数值。初始化过程一步也不能少,否则得不到正确的实验结果。此实验较为复杂,老师直接将有些小错误的程序给了我们,通过改正程序中的小错误,我对PCI中断有了更深入的理解。2.5. 8255实验 实验目的熟悉并行接口芯片8255的引脚及其功能。了解8255的三种工作方式。掌握8255方式0、方式1的工作原理与编程方法。实验原理8255芯片的结构a) 端口A、B、C(为8位)都可以被选择作为输入输出,一般将A、B作为输入输出的数据端口,C分为两组,配合A、B使用,作为控制信号或者状态信号。b) A组和B组控制电路分别控制C的上半部分(PC7-PC4)和下半部分(PC3-PC0)c) 数据总线缓冲器,与系统数据总线(D7-D0)相连d) 读写控制逻辑,包括A0A1(端口选择)、CS(片选信号)、RD(读信号)、WR(写信号)、RESET(复位信号)8255的控制字方式选择控制字和按位复位/置位控制字8255的工作方式a) 方式0:三个端口都可以作为输入输出,输出锁存,输入不能锁存b) 方式1:选通I/O工作方式,PC5-PC3和A一组,PC2-PC0和B一组,PC6和PC7作为输入和输出使用。由D3来决定C的某些位作为控制状态信号。c) 方式2:为方式1的输入和输出的叠加。硬件电路 由于本次实验是基本I/O方式(即方式0),则可以设定A、B为输入,C为输出,片选地址采用IOY3得到,地址选为0D860H-0D87FH(不唯一),使用C的按位置位/复位功能(8位二极管轮流亮灭)实验内容题目设定端口C为输入,端口B为输出,端口C读入开关的状态,向端口B输出,是端口B的发光二极管的状态与端口C的开关状态向呼应。实验电路图实验程序Stacksegment stack stackDw 32 dup(?)Stack endsCode segmentBeginproc farAssume ss:stack,cs:codePush dsSub ax,axPush axMov dx,0d803hMov al,90hOut dx
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 梦想中的城市想象作文7篇
- 读红楼梦后的思考与感慨作文12篇
- 员工慰问活动方案
- 《自选现代诗朗读与解析:五年级语文课外教案》
- 《空间几何与测量技能训练》
- 公交公司开展讲堂活动方案
- 铺装合同协议书铺装合同协议书
- 初中英语语法知识与练习设计
- 公会拉人活动方案
- 公共扫地活动方案
- 数字智慧方案5299丨华为业务变革框架及战略级项目管理
- 云南省云南大学附属中学2025届七年级生物第二学期期末考试试题含解析
- 医院会计财务试题及答案
- 2025年入党积极分子试题
- 《人生的智慧》课件
- 深度学习基础与实践 课件 10.1 ResNet网络
- 2025至2030中国隧道掘进机(TBM)行业发展状况与应用趋势研究报告
- 基于针灸理论下阳朔旧县村景观更新设计研究
- 直播间设计装修合同协议
- 生产过程危险和有害因素之3:“环境因素”辨识应用示例清单(雷泽佳-2025A0)
- 2025年中考生物:环境保护|疾病预防|生物技术|食品安全 4个热点考点练习题汇编(含答案解析)
评论
0/150
提交评论