ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:105.24KB ,
资源ID:6748107      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-6748107.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(微机原理与接口实验报告Word格式.docx)为本站会员(b****4)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

微机原理与接口实验报告Word格式.docx

1、INT 21HRetBegin endpCode endsEnd begin5. 实验结果:屏幕上显示Hello World !6. 上机试题1)从键盘输入一个2位无符号的16进制数(00HFFH),然后在显示器上同时以二 进制和十进制形式显示出来。例如: Please input N(00H-FFH): 9B N = 9Bh = B = 155 实验代码:stack segment stack dw 32 dup(0)stack endsdata segmentENDL DB 0DH,0AH,$ ;回车换行IBUF_HEX DB 3,0,3 DUP(0)OBUF_BIN DB 10 DUP(

2、OBUF_BCD DB 4 DUP(STR_IN_HEX DB Please input N (00HFFH):STR_OUT1 DB N = $STR_OUT2 DB = $data endscode segmentbegin proc far assume ss:stack, cs:code, ds:data push ds sub ax,ax push ax ;保存psp地址 mov ax,data mov ds,ax MOV DX,OFFSET STR_IN_HEX ;提示用户输入十六进制数,如9B MOV AH,9 INT 21H MOV DX,OFFSET IBUF_HEX ;接收

3、输入的十六进制数 MOV AH,10 INT 21H MOV DX,OFFSET ENDL ; INT 21H MOV DX,OFFSET STR_OUT1 ;输出N = INT 21H MOV SI,OFFSET IBUF_HEX+2 MOV CL,IBUF_HEX+1 MOV CH,0 PUSH SI ;保存字符串的首地址 ADD SI,CX MOV BYTE PTR SI, ;在输入的字符串末尾加上结束符 POP SI MOV DX,SI ;输出输入的十六进制数,如9BH MOV DL,H MOV AH,2 MOV DX,OFFSET STR_OUT2 ; = CALL ; 调用子函数,

4、将输入的十六进制数转为二进制值 PUSH AX ;AL压栈,留给指令CALL bcdout使用 CALL binout ;把AL二进制值按二进制格式输出 MOV DX,OFFSET STR_OUT2 ; POP AX CALL bcdout ;把AL二进制值按十进制格式输出 MOV DX,OFFSET ENDL INT 21H ; retbegin endp;十六进制数-二进制数 如: 输入:FF 处理:AL=FFH proc MOV CL,IBUF_HEX+1 ;保存输入字符个数 MOV AX,0_AGAIN: MOV DL,16 ;乘数为16 MUL DL 乘积保存在AX中 MOV BL,

5、SI CMP BL,A JB _SMALLER SUB BL,07H_SMALLER: SUB BL,30H ADD AL,BL INC SI LOOP _AGAIN ret endp binout proc ;二进制数 -二进制格式输出 MOV BYTE PTR OBUF_BIN+8,B MOV DI,OFFSET OBUF_BIN MOV AH,0 MOV CX,8 ;设置LOOP循环次数binout_NEXT: MOV DL,0 SHL AL,1 ADC DL,30H ;将每一位转为ASCII码 MOV DI,DL ;保存转换后的ASCII码 INC DI LOOP binout_NEX

6、T ;cx值为8,循环8次 MOV DX,OFFSET OBUF_BIN ;输出处理结果 ret ;返回调用binout endp bcdout proc ;十进制数输出 MOV DI,OFFSET OBUF_BCD+2 MOV CX,10bcdout_AGAIN: MOV DX,0 ;无符号数16位扩展为32位 DIV CX ;余数DX,商AX ADD DL,30H MOV DI,DL DEC DI OR AX,AX JNE bcdout_AGAIN MOV DX,DI INT 21Hbcdout endpcode endsend begin 2) 输入一个十进制的个位数,求出这个数的平方值

7、,显示其十进制结果,要求有如下 提示信息。Please input a number :The result is :例如 please input a number: 8 the result is: 64实验代码:stack segment stack ;定义堆栈段 dw 32 dup(0) ;分配64字节栈空间data segment ;定义数据段ENDL DB 0DH,0AH, ;IBUF DB 2,0,2 DUP(0) ;定义输入缓冲区STR_IN DB Please input a number (0-9): $STR_OUT DB The result is:SQUARE_TAB

8、LE DB 0$ 1$ 4$ 9$16$25$36$49$64$81$定义平方表data ends code segment ;定义代码段begin proc far assume ss:stck,cs:code,ds: push ds sub ax,ax push ax ; mov ax,data mov ds,ax RUNTEST: MOV DX,OFFSET STR_IN ;提示用户输入 MOV AH,9 INT 21H MOV DX,OFFSET IBUF ;接收用户输入 MOV AH,10 MOV DX,OFFSET ENDL ; MOV AL,IBUF+2 SUB AL,30H ;

9、得到实际数值 MOV CL,3 MUL CL MOV DI,OFFSET SQUARE_TABLE ;指向自定义的平方表 ADD DI,AX PUSH AX MOV DX,OFFSET STR_OUT POP AX CMP AX,12 JB NEXT MOV DL,20H MOV AH,2NEXT: MOV DX,DI JMP RUNTEST ;不限次数测试 ret ;begin endpend begin ;程序主函数入口7. Hello.exe实验运行过程中的内存映像图如下:PSP(100HB)堆栈段(40HB)数据段(10HB)代码段(20HB) DS 0b540h SS 0b640h

10、SP 0b680h CS:IP 0B690h 堆栈段 SS = DS + 100H10H 数据段 DS = SS + 堆栈段长度10H 代码段 CS = 用户DS + 数据段长度10H 使用debug可以进行调试 Debug proc far assume ss: push ds sub ax,ax push ax Ag: mov dx,0e008h送端口地址 In al,dx Mov al,0fh Out dx,al Mov ah,0bh Int 21h Cmp al,0 Jz ag Retcode ends end begin1. 注意事项: 每台机器所分配的端口地址有所不同,要根据实际情

11、况选通端口, 所以需要查看各自的IO地址,查看IO地址方法: D:CHECK 当时做这个实验时,查看本机得到: IOYO:E000-E03F I0Y1:E040-E07F IOY2:E080-E0BF I0Y3:E0C0-E0FF 当我们检查IOYO、I0Y1、IOY2、I0Y3是否能够正常工作时,秩序 选通其中的一个端口,例如在上面的源程序中我选通的端口是0e008h, 就是在检测IOYO的输出是不是正常的。还需要检测IOW 、IOR 、 XD0-XD7主要检测在示波器中是否有负脉冲输出实验四 基本输入输出混合接口1)掌握基本输入接口的设计方法。 2)掌握基本输出接口的设计方法。 3)掌握I

12、O地址译码的方法2. 实验原理:当用74LS244、74LS273组成一个IO接口电路时,输入端口地址和输出 端口地址可以为同一个地址。为了区别数据时输入还是输出,可以用 IOR 、IOW和IOY3信号共同控制。由IOY3和IOR产生读选通信号, 有IOY3和IOW产生写选通信号。3. 实验内容:要求编制一个循环程序,用74LS244和74LS273设计一个输入输出接口, 将从74LS244的输入数据从74LS273的输出发光二极管上对应显示出来。 改变输入,输出立即跟着改变,按下键盘上的任一键,立即停止输入和 输出。4. 实验电路图:5. 实验代码:stack segment stack s

13、tack dw 32 dup (0)stack endsstack,cs: push axAGAIN: MOV DX,0d800H IN AL,DX Mov dx,0d801h Out dx,al Mov ah,0bh Int 21h Cmp al,0 Jz AGAIN Ret Begin endp6. 实验结果和总结: 改变开关状态,发光二极管会作出相应的亮灭,实验正确。实验过程中,若Y0-Y7所有端口均无选通信号,一般可能是74LS138译码器电源未接好,或不符合译码器使能条件,或是74LS138损坏。若选通信号与Y0、Y1端口不对应,则是C、B、A端输入地址线错接或开路、或短路。C、B、

14、A三端输入地址线应有脉冲信号输出,若全为0或全为1,则不正常。实验五 模数转换器ADC0809掌握模数转换的原理及接口设计 掌握8为AD转换芯片ADC08080809的使用方法。 掌握延时、查询和中断数据传送方式。 各种型号的ADC芯片都具有数据输出信号,启动AD转换信号和转换结束信 号。首先,计算机启动AD转换;待转换结束后,ADC送出转换结束信号通知计算 机;计算机用输出指令从ADC的数据输出引线读取转换数据。 由于ADC08080809芯片内部集成了数据锁存三态缓冲器,其数据输出线D7D0 可以直接和计算机的数据总线相连,所以ADC08080809与微机的接口的设计主要是 对模拟通道的选

15、择、转换启动的控制和读转换结果的控制等方面的设计。 ADC08080809于微机的接口可分为三种方式:延时方式、中断方式、查询方式。 本次实验只用到延时方式:启动转换后等待100us(ADC08080809转换时间), 再读取转换结果。用延时的方式分别采集+5V、0V各点的电压数据,并将采集的数据(FFH、 00H)送显示器显示。5. 6. 实验代码:stack segment stack dw 32 dup(0)OBUF DB 2 DUP(0),code segment sub ax,ax push ax mov ds,axLOP : MOV DX,0e060H送端口号地址 OUT DX,A

16、L MOV BX,1000H 调整BX的赋值可调整延时时间长短 MOV CX,0 Call ag IN al,dx Mov ah,0bh ;1号功能调用,检测键盘上有无输入,如果 ;有输入,就中断程序 Jz LOP RETAG proc LOOP $ DEC BX JNZ AG MOV BX,OFFSET OBUF MOV CL,4 MOV AH,0 SHL AX,CL SHR AL,CL CMP AH,0AH JB SD ADD AH,7SD : ADD AH,30H MOV BX,AH INC BX CMP AL,0AH JB LNADD7 ADD AL,7LNADD7: ADD AL,3

17、0H MOV BX,AL MOV DX,OFFSET OBUF MOV AH,97. 实验结果和总结:实验现象:当IN0接高电平时,运行程序,CRT显示FFH,当IN0接低电平时,运行程序,CRT显示00H,实验正确。连ADC0809芯片引脚接线时一定要注意REF-与GND接地,REF+与ACC接电源。Start和ALE引脚要接到一起,实验书上给的图有错误。我们没有发74LS02或非门,可以用74LS32或门加非门代替,实验效果一样。实验中注意等待时间的选取,书中给出CLK时钟输入的最高频率为640KHz,且ADC0809启动转换后延时时间为100us。故等待时间需选择大于100us,可以选择

18、500us左右。实验六 数模转换器DAC0832掌握AD转换原理。 熟悉AD芯片接口设计方法。 掌握DAC0832芯片的使用方法。DAC0832是具有20条引线的双列直插式CMOS器件,内部具有两级数据寄存 器,可完成8为DA转换,电流输出。其结构和引脚入下图所示。由于DAC0832内部有输入寄存器和DAC寄存器,所以它不需要外加其他电路 便可以与微机的数据总线直接相连。根据DAC0832的5个控制信号的不同连接方式, 可知它有三种工作方式:直通工作方式、单缓冲工作方式、双缓冲工作方式。本次实验只用到单缓冲工作方式:令其中一个寄存器工作在直通方式,另一个处于受控锁存状态。用DAC0832设计一

19、个DA转换接口电路,采用单缓冲工作方式,产生锯 齿波(方波和三角波类似故未写出)。4. 实验原理图: MOV DX,0D860H INC AL PUSH AX MOV AH,0BH CMP AL,0 JZ AGAINbegin endp end begin 实验现象:从示波器上观察,可看到相应的波形。 程序每循环一次DAC0832的输入数字量增1.,因此实际上锯齿波的上升是由 256个小阶梯构成的,但由于小阶梯很小,所以宏观上看就是线性增长的锯齿波。 可通过循环程序段的机器周期计算出锯齿波的周期。并可根据需要,通过延时 的办法来改变锯齿波的周期。当延时时间较短时,可用指令LOOP $来实现:当

20、延时 较长时,可以使用一个延时子程序,也可以使用定时器来定时。 程序中的数字量的变化范围是从0-255,因此得到的锯齿波是满幅的。如果要 得到非满幅的锯齿波,可通过计算求得的数字量的初值和终值,然后在程序中通过 置初值潘终值的办法即可实现。实验七 PCI 中断实验掌握PCI中断的设计方法。 掌握可编程中断控制器8259A的使用方法。本实验使用TD-PIT实验装置提供的中断请求信号IRQ(下降沿有效),用KK1的负脉冲作为中断源,在进入中断前、中断过程中和完成中断后分别在屏幕上显示不同的提示字符串。使用实验装置提供的IRQ信号,除了要操作PC的可编程中断控制器8259A外,还需要操作实验装置PC

21、I扩展卡上的与PCI中断有关的寄存器。通过操作上述寄存器,才可以实现中断的初始化和中断清楚等。用KK1的负脉冲作为中断源,经过十次中断后结束程序,每次中断都应 在显示器上显示。Satck segment stack stack ;注意单引号在DOS环境下可能会是乱码。Dw 32 dup(?Satck endsHh db 0dh,0ah,$Ic db interrupt count=,$S db 2 dup($)Obuf db wait int,0dh,0ah,$Data endsCode segment Assume ss:stck,ds: Cli Push ds Sub ax,ax Push

22、 ax Mov es,ax Mov ax, data Mov ds,ax Mov dx,0e438h Mov al,00h Out dx,al Mov dx,0e439h Mov al,1fh Mov dx,0e43ah Mov al,3fh Mov dx,0e43bh Mov ax,offset adc_int Mov es:02ch,ax Mov ax,seg adc_int02eh,ax In al,021h And al,0f7h Out 021h,al Mov dx,offset obuf Mov ah,9 Int 21h Sti Mov cx,0Again: cmp cx,10 Jne again Or al,8 Ret Begin endpAdc_int proc near Mov dx,offset Add cx,07hAgn: add cx,30h Mov s0,cl Pop cx

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2