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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理及其接口技术重要实验详解.docx

1、微机原理及其接口技术重要实验详解实验三 可编程定时器计数器(8253) 一、实验目的 掌握8253的基本工作原理和编程方法。 二、实验容 、按图3-1虚线连接电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。 三、编程提示 1、8253控制寄存器地址 283H 计数器0地址 280H 计数器1地址 281H CLK0连接时钟 1MHZ ;*; ;* 8253方式0计数器实验 *; ;*; io8253a equ 283h io8253b equ 280h code

2、 segment assume cs:code start: mov al,14h ;设置8253通道0为工作方式2,二进制计数 mov dx,io8253a out dx,al mov dx,io8253b ;送计数初值为0FH mov al,0fh out dx,al lll: in al,dx ;读计数初值 call disp ;调显示子程序 push dx mov ah,06h mov dl,0ffh int 21h pop dx jz lll mov ah,4ch ;退出 int 21h disp proc near ;显示子程序 push dx and al,0fh ;首先取低四位

3、 资料Word mov dl,al cmp dl,9 ;判断是否=9 jle num ;若是则为0-9,ASCII码加30H add dl,7 ;否则为A-F,ASCII码加37H num: add dl,30h mov ah,02h ;显示 int 21h mov dl,0dh ;加回车符 int 21h mov dl,0ah ;加换行符 int 21h pop dx ret ;子程序返回 disp endp code ends end start 实验三 可编程定时器计数器(8253) 一、实验目的 掌握8253的基本工作原理和编程方法。 二、实验容 1、按图3-2连接电路,将计数器0、计

4、数器1分别设置为方式3,计数初值设为1000,用逻辑笔观察OUT1输出电平的变化(频率1HZ)。 三、编程提示 1、8253控制寄存器地址 283H 计数器0地址 280H 计数器1地址 281H CLK0连接时钟 1MHZ ;* ;* 8253分频 * ;* io8253a equ 280h io8253b equ 281h io8253c equ 283h code segment /声明代码段 assume cs:code start:mov dx,io8253c ;向8253写控制字 mov dx,283h; mov al,36h ;使0通道为工作方式3 资料Word D7D6D5D4

5、D3D2D1D0=00110110,D7D6=00表示计数器0;D5D4=11先读写低8为再读写高8位;D3D2D1=011表示计数器工作方式3;D0=0表示计数器的初值为二进制数 out dx,al /向283h写控制字 mov ax,1000 ;写入循环计数初值1000 mov dx,io8253a out dx,al ;先写入低字节到计数器0地址280H mov al,ah out dx,al ;后写入高字节到计数器0地址280H mov dx,io8253c mov al,76h ;设8253通道1工作方式3 .D7D6D5D4D3D2D1D0=01110110,D7D6=01表示计数

6、器1;D5D4=11 先读写低8为再读写高8位;D3D2D1=011表示计数器工作方式3;D0=0表示计数器的初值为二进制; out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253b out dx,al ;先写低字节到计数器1地址281H mov al,ah out dx,al ;后写高字节到计数器1地址281H mov ah,4ch ;程序退出 int 21h code ends end start 实验四 可编程并行接口(一)(8255方式0) 一、实验目的 掌握8255方式0的工作原理及使用方法。 二、实验容 、实验电路如图4-1,8255C口

7、接逻辑电平开关K0K7,A口接LED显示电路L0L7。 、编程从8255C口输入数据,再从A口输出。 三、编程提示 1、8255控制寄存器端口地址 28BH A口的地址 288H C口的地址 28AH ;*; ;* 8255方式0的C口输入,A口输出 *; ;*; io8255a equ 288h io8255b equ 28bh io8255c equ 28ah 资料Word code segment /定义代码段 assume cs:code start:mov dx,io8255b ;设8255为C口输入,A口输出 mov dx,28bh/D7=1,D6D5=00(工作方式为 0),D4

8、=0(A出),D2=0,D3=1(C入),D0=1(C入)。 mov al,8bh /D7D6D5D4D3D2D1D0=10001011,D7=1,D6D5=00,D4=0,D3.D0=0,D2=0,D1=1 out dx,al /设8255为C口输入,A口输出 inout: mov dx,io8255c ;c口的地址28AH从C口输入一数据 in al,dx /将al的数给dx mov dx,io8255a ;A口的地址288H从A口输出刚才自C口 out dx,al ;所输入的数据 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则

9、继续自C口输入,A口输出 mov ah,4ch ;否则返回 int 21h code ends end start 实验七 竞赛抢答器 一、实验目的 1、了解微机化竞赛抢答器的基本原理。 2、进一步学习使用并行接口。 二、实验容 图7-1为竞赛抢答器(模拟)的原理图,逻辑开关K0K7代表竞赛抢答按钮07号,当某个逻辑电平开关置“”时,相当某组抢答按钮按下。在七段数码管上将其组号(07)显示出来,并使微机扬声器响一下。 三、编程提示 设置8255为C口输入、A口输出,读取C口数据,若为0表示无人抢答,若不为0则有人抢答。根据读取数据可判断其组号。从键盘上按空格键开始下一轮抢答,按其它键程序退出。

10、 ;* ;* 本程序为模拟抢答器 * ;* data segment ;定义数据段 io8255a equ 28ah ;端口初始化 io8255b equ 28bh io8255c equ 288h 资料Word led db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h ;数码表 data ends code segment ;定义代码段 assume cs:code,ds:data ;有了这一句代码 ,程序就知道从ds:data中找到data所定义 的存地址,然后传送给ds start:mov ax,data ;把data段的段地址送入es中,以便计算物理地址的时候得 到

11、正确的段地址。 mov ds,ax mov dx,io8255b ;设8255为A口输出,C口输入 mov ax,89h out dx,al mov bx,offset led ;使BX指向段码管首址 sss: mov dx,io8255a ;从8255的C口输入数据 in al,dx or al,al ;比较是否为0 je sss ;若为0,则表明无键按下,转sss mov cl,0ffh ;cl作计数器,初值为-1 rr: shr al,1 ;al逻辑 右移一位 inc cl ;cl减一 jnc rr ;如果进位则跳转 mov al,cl ; xlat ;交换。22行到27行应该循环计数

12、mov dx,io8255c ;从8255的 C 端输出 “个人觉得是初始化” out dx,al mov dl,7 ;响铃 ASCII码为07 mov ah,2 ;输出指令(三条指令一起读) int 21h wai: mov ah,1 ;键盘输入一个数 int 21h cmp al,20h ;是否为空格 jne eee ;不是,转eee ,等于零跳转,不等于零继续执行 mov al,0 ;是,关灭灯 mov dx,io8255c ;从8255的 C 端输出 “个人觉得是初始化” out dx,al jmp sss ;跳转到sss eee: mov ah,4ch ;功能调用,该功能为关闭窗,即

13、抢答结束 int 21h code ends ;代码段结束 end start ;程序结束 资料Word 实验九 中断 一、实验目的 1、掌握PC机中断处理系统的基本原理。 2、学会编写中断服务程序。 二、实验原理与容 1、实验原理 PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、PC/XT机有一片8259中断控制器对外可以提供8个中断源: 中断源 中断类型号 中断功能 IRQ0 08H 时钟 IRQ1 09H 键盘 IRQ2 0AH 保留 IRQ3 OBH 串行口2 IRQ

14、4 0CH 串行口1 IRQ5 0DH 硬盘 IRQ6 0EH 软盘 IRQ7 0FH 并行打印机 8个中断源的中断请求信号线IRQ0IRQ7在主机的62线ISA总线插座中可以引出,系统已设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机又扩展了一片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供16个中断源: 中断源 中断类型号 中断功能 IRQ8 070H 实时时钟 IRQ9 071H 用户中断 IRQ10 072H 保留 IRQ11 O73H 保留 IRQ12 074H 保留 IRQ13 075H 协处理器 IRQ14 076H 硬盘 IRQ15

15、 077H 保留 TPC-USB实验板上,固定的接到了3号中断IRQ3上,即进行中断实验时,所用中断类型号为0BH。 2、实验容 实验电路如图9-1,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。要求每按一次开关产生一次中断,在屏幕上显示一次“TPCA Interrupt!”,中断10次后程序退出。 ;*; ;* 中断实验 *; ;*; 资料Word data segment ;定义数据段 mess db TPCA interrupt!,0dh,0ah,$; 显示TCPA interrupt! 0dh:回车 0ah:换行 data ends; 数据段结束 code segment;定

16、义代码段 assume cs:code,ds:data ; 假定code位于代码段,data位于数据段 start: mov ax,cs; cs容送ax中 mov ds,ax; ds:dx容为中断服务程序的入口地址,位于数据段,偏移量送到dx中 mov dx,offset int3 ;取中断服务程序的偏移地址送dx中 mov ax,250bh; dos调用的功能号为25h,中断矢量是0bh int 21h; 设置IRQ3的中断矢量 in al,21h; 读中断屏蔽寄存器 and al,0f7h; 开放IRQ3中断(与上11110111H,3位为0) out 21h,al;写进去允许 mov c

17、x,10; 记中断循环次数为10次 Sti; 置中断标志位,IF=1 ll: jmp ll; cx是否为0,等待循环 int3: 中断服务程序 mov ax,data 取数据的地址 mov ds,ax 把数据的地址送到ds mov dx,offset mess 把字符串的偏移地址取出 mov ah,09 显示每次中断的提示信息(ds:dx=字符缓冲首址) int 21h 执行调用 mov al,20h 20H送al,OCW2=00100000B out 20h,al 发出EOI结束中断 loop next CF=1,不为0,跳到next in al,21h 设中断屏蔽器 or al,08h 关

18、闭IRQ3中断 out 21h,al 写入 sti 显中断标志位,IF=1 mov ah,4ch int 21h 返回DOS next: iret 中断返回 code ends end start 实验十 可编程并行接口(二)(8255方式) 资料Word 一、实验目的 工作方式时的使用及编程。 1、掌握8255 2、进一步掌握中断处理程序的编写。 二、实验容 10-1,8255方式1的输出电路连好线路。1、按图进行一次中:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU2、编程依次发光,中断L7使L0,04H08H,10H,20H,40H,80H断服务:依次输出01H、0

19、2H, 次结束。 ;*; *; 8255方式1实验1 ;* ;*; code segment1:code cs2 assume start: 3 cs mov ax,4 mov ds,ax 5 dxint_proc地址送给 int_proc ;将, 6 mov dxoffset类; 设置外部中断 int_proc 250bh , 7 movax系统设置中断向量程型号为0bh,25H可知由6DX=序:AH=25H,DS:中断服务入口(中断类型),AL=中放的是dxint_proc的地址号 资料Word 0bH功能0bh这个中断( ;调用 21h 8 int 描述:检查标准输入设备上是否有字符可读

20、。0bH,) 该输入操作可被重定向入口参数:AH dx将21h送给 ; 9 mov dx,21h ;将21h号端口的容给 al 10 in al,dx )中断 ;开放IRQ3(串口设备 and al,0f7h 11 dx,al 12 out 口方式为A1输入 设 ; 13 mov dx,28bh 8255 mov14 al,0a0h ,dxal15 out ; 将PC6 置位 0dh mov 16 al, 17 dx,al out bl mov ,1 18 ;循环等待 ll 19 ll: jmp int_proc: 20 almov ,bl 21 , 22 movdx288h 口输出A的825

21、5从AL将; out,dx al23 24 ,almov 20h 25 20h out al, 资料Word 26 shl bl,1 27 jnc next ;中断次数小于8,返回主程序 28 in al,21h 29 or al,08h ;关闭IRQ7中断 30 out 21h,al 31 sti ;开中断,将IF置1 32 mov ah,4ch ;返回DOS 33 int 21h 34 next: iret ;中断返回指令 35 code ends 36 end start 接口程序 10.2可编程并行接口(8255方式一实验二) 一、实验目的 1、掌握8255工作方式时的使用及编程。 2

22、、进一步掌握中断处理程序的编写。 二、实验容 1、按图10-2,8255方式1输入电路,连好线路。 2、编程:每按一次单脉冲按钮产生一个正脉冲使8255产生一次中断请求,让CPU进行一次中断服务:读取逻辑电平开关预置的ASCII码,在屏幕上显示其对应的字符,中断次结束。 三、实验原理图 四:实验流程图 五:实验代码及注释 ;*; ;* 8255方式1实验2 *; ;*; code segment ;定义代码段 assume cs:code ;假定code位于代码段 资料Word start: ;程序开始 mov ax,cs ;将cs容送到ax中 mov ds,ax ;将ax容送到ds中,因为不

23、能段与段之间直接传送,所以借助ax mov dx,offset int_proc ;将中断子程序的偏移地址送入dx,设置IRQ3中断矢量 mov ax,250bh ;dos调用25号功能号设置中断向量号,设外部中断int_proc类型号为0bh int 21h mov dx,21h in al,dx ;读中断屏蔽寄存器 and al,0f7h ;开放IRQ3中断,将第4位置0 out dx,al mov dx,28bh ;将控制寄存器端口地址(28bh)送到dx中 mov al,0b8h ;0b8h=10111000 D7是标志位,D6,D5是A组方式的选择(方式0,1,2), D4是A口的输

24、入输出选择(0为输出),D3是C口高四位的输入输出选择, D2是B组方式的选择(方式0,1),D1是B口的输入输出选择,D0是C口低 四位的输入输出选择。这里设置8255A口工作于方式1作输入,B口工作于 方式0作输出,C口上半部输入,下半部输出 out dx,al ;out的意思是cpu通过执行out指令使WR#有效,即写信息,将命令字或数 据写入8255,这里是命令字 mov al,09h ;将8255的PC4置位,09h=00001001b,D3,2,1是C口的为选择,这里是PC4, D0位为1表示置位,表示允许中断,当输入的数据缓冲区满的时候,8255 向cpu发出INTR中断请求,c

25、pu相映中断,发出RD#信号把数据读入cpu。 out dx,al mov bl,8 ;bl为中断次数计数器 ll: jmp ll ;循环等待 int_proc: mov dx,288h ;8255A口地址为288h,这句代码含义为自8255A口输入数据 in al,dx ;in的意思是cpu通过执行IN指令使RD#有效,即发读信号,将数据或 状态信息从8255中读入CPU mov dl,al ;将输入的数据保存到dl中 mov ah,02h ;显示ASCII码为DL的字符 int 21h mov dl,0dh ;回车 int 21h mov dl,0ah ;换行 int 21h mov dx,20h mov al,20h ;发出中断结束命令 out dx,al dec bl ;中断次数计数器减一 jnz next ;判断计数器数值,若不为0,则跳到NEXT 资料Word in al,21h or al,08h ;C口的D3,2,1为100表示PC4,D0位为0,表示复位,使INTE复位以 禁止中断,PC4是在输入的时候通过置位控制INTEA使A口允许中断, 这里是PC4复位,即禁止中断 out 21h,al sti ; 开中断 mov ah,4ch ;返回DOS int 21h next: iret ;返回中断 code ends end start 资料Word

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1