微机原理可能的四次实验讲义

上传人:方*** 文档编号:210087648 上传时间:2023-05-16 格式:DOC 页数:16 大小:602KB
收藏 版权申诉 举报 下载
微机原理可能的四次实验讲义_第1页
第1页 / 共16页
微机原理可能的四次实验讲义_第2页
第2页 / 共16页
微机原理可能的四次实验讲义_第3页
第3页 / 共16页
资源描述:

《微机原理可能的四次实验讲义》由会员分享,可在线阅读,更多相关《微机原理可能的四次实验讲义(16页珍藏版)》请在装配图网上搜索。

1、一、 概述 八十年代以来,国内大中专院校很多专业都相继开设了“微机原理及应用”方面的课程,讲授内容主要是8位机(Z80),实验设备多采用TP801单板机。随着计算机技术的发展,讲授内容开始逐步转向16位或32位的PC系列微机,实验设备亦需更新,“TPC-2005通用32位微机接口(PCI)实验系统”是我公司继“TPC-2003通用32位微机接口实验系统”的基础上,综合了各学校讲课及实验老师的意见之后推出的微机硬件实验教学设备的新产品。该仪器增加了实验系统的开放能力和灵活性。它不仅使一些典型的微机接口实验方便,而且对一些计算机硬件要求较高的专业提供了锻炼学生动手能力,发挥创造才能的平台。该系统主

2、要有以下特点: 实验电路连接采用了国家专利、获奖产品“自锁紧”插座及导线,消除了连线接触不良的现象。 电路设计中增加了多项保护措施,可有效的避免由于学生实验时错接、错编程损坏主机或接口集成电路的现象。 接口实验增加了实用性、趣味性的项目,使用C语言进行实验的程序。 实验台上增加了逻辑笔、通用IC插座等电路。可作为数字电路实验仪器使用,也可以用于学生毕业设计、实验数据的采集及科研开发。仪器硬件包括接口卡、实验台(箱)两部分组成,两者之间通过50线扁平电缆相连。接口卡可以插入PC系列微机中任意一个PCI扩展插槽,它的主要功能是将与实验有关的总线信号加以驱动后引到实验台上,同时引出信号还有与“中断”

3、和“DMA”实验操作有关的信号及+5V、+12V、-12V电源。实验台上设有I/O地址译码电路、总线插孔、接口实验常用集成电路、外围电路及通用IC插座等部分组成。外围电路包括逻辑电平开关电路、LED显示电路、时钟电路、单脉冲电路、逻辑笔、复位电路、七段数码管显示电路、基本门电路、继电器及步进电机、小直流电机的驱动电路。使用说明书中介绍了四十多个微机接口实验。覆盖了大中专院校微机接口实验教学大纲中的内容。教师可以根据课时计划安排选作,也可以在此基础上重新设计新的实验项目。实验三 可编程定时器计数器(8253)一、 实验目的 掌握8253的基本工作原理和编程方法。 二、实验内容 1 按图1虚线连接

4、电路,将计数器0设置为方式0,计数器初值为N(N0FH),用手动逐个输入单脉冲,编程使计数值在屏幕上显示,并同时用逻辑笔观察OUT0电平变化(当输入N+1个脉冲后OUT0变高电平)。图12 按图2连接电路,将计数器0、计数器1分别设置为方式3,计数初值设为1000,用逻 辑笔观察OUT1输出电平的变化(频率1HZ)。图2三、 编程提示 1、 8253控制寄存器地址 283H 计数器0地址 280H 计数器1地址 281H CLK0连接时钟 1MHZ2、 参考流程图(见图3、4):图3 图43、 参考程序1: (程序名:E8253_1.ASM)ioport equ 0d400h-0280hio8

5、253a equ ioport+283h io8253b equ ioport+280h code 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

6、 disp proc near ;显示子程序 push dx and al,0fh ;首先取低四位 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 endpcode endsend start4、 参考程序2:(程序名:E8253_2.ASM)Ioport

7、equ 0d400h-0280h io8253a equ ioport+280h io8253b equ ioport+281h io8253c equ ioport+283h code segment assume cs:code start:mov dx,io8253c ;向8253写控制字 mov al,36h ;使0通道为工作方式3 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253a out dx,al ;先写入低字节 mov al,ah out dx,al ;后写入高字节 mov dx,io8253c mov al,76h ;设825

8、3通道1工作方式2 out dx,al mov ax,1000 ;写入循环计数初值1000 mov dx,io8253b out dx,al ;先写低字节mov al,ah out dx,al ;后写高字节 mov ah,4ch ;程序退出 int 21hcode ends end start实验四 可编程并行接口(一)(8255方式0)一、 实验目的 掌握8255方式0的工作原理及使用方法。二、 实验内容 1 实验电路如图5,8255C口接逻辑电平开关K0K7,A口接LED显示电路L0L7。 2. 编程从8255C口输入数据,再从A口输出图5 图6三、 编程提示 1、 8255控制寄存器端口

9、地址 28BH A口的地址 288H C口的地址 28AH 2、参考流程图(见图6): 3、 参考程序: E8255.ASMioport equ 0d400h-0280h io8255a equ ioport+288h io8255b equ ioport+28bh io8255c equ ioport+28ah code segment assume cs:code start: mov dx,io8255b ;设8255为C口输入,A口输出 mov al,8bh out dx,al inout: mov dx,io8255c ;从C口输入一数据 in al,dx mov dx,io8255

10、a ;从A口输出刚才自C口 out dx,al ;所输入的数据 mov dl,0ffh ;判断是否有按键 mov ah,06h int 21h jz inout ;若无,则继续自C口输入,A口输出 mov ah,4ch ;否则返回DOS int 21h code ends end start实验九 中断一、 实验目的 、 掌握PC机中断处理系统的基本原理。、学会编写中断服务程序。二、实验原理与内容 1、实验原理 PC机用户可使用的硬件中断只有可屏蔽中断,由8259中断控制器管理。中断控制器用于 接收外部的中断请求信号,经过优先级判别等处理后向CPU发出可屏蔽中断请求。IBMPC、 PC/XT机

11、内有一片8259中断控制器对外可以提供8个中断源: 中断源 中断类型号 中断功能IRQ0 08H 时钟 IRQ109H 键盘 IRQ2 0AH 保留 IRQ3 0BH 串行口2 IRQ4 0CH 串行口1 IRQ5 0DH 硬盘 IRQ6 0EH 软盘 IRQ7 0FH 并行打印机 8个中断源的中断请求信号线IRQ0IRQ7在主机的62线ISA总线插座中可以引出,系统已 设定中断请求信号为“边沿触发”,普通结束方式。对于PC/AT及286以上微机内又扩展了一 片8259中断控制,IRQ2用于两片8259之间级连,对外可以提供16个中断源:中断源 中断类型号 中断功能IRQ8 070H 实时时钟

12、 IRQ9 071H 用户中断 IRQ10 072H 保留 IRQ11 073H 保留 IRQ12 074H 保留 IRQ13 075H 协处理器 IRQ14 076H 硬盘 IRQ15 077H 保留 PCI总线中的中断线只有四根,INTA#、INTB#、INTC#、INTD#,它们需要通过P&P的设置 来和某一根中断相连接才能进行中断申请。图7 中断电路2、 实验内容 实验电路如图7,直接用手动产单脉冲作为中断请求信号(只需连接一根导线)。要求每按一次开关产生一次中断,在屏幕上显示一次“TPCpcicardInterrupt”,中断10次后程序退出。三、 编程提示 1. 由于9054的驱动

13、程序影响直写9054芯片的控制寄存器,中断实验需要在纯DOS的环境 中才能正常运行。这里指的纯DOS环境是指微机启动时按F8键进入的DOS环境。 WINDOWS重启进入MSDOS方式由于系统资源被重新规划过,所以也不能正常实验。2. 由于TPC卡使用PCI总线,所以分配的中断号每台微机可能都不同,编程时需要了解 当前的微机使用那个中断号并进行设置,获取方法请参看汇编程序使用方法的介 绍。(也可使用自动获取资源分配的程序取得中断号)3. 在纯DOS环境下,有些微机的BIOS设置中有将资源保留给ISA总线使用的选项,致使 在纯DOS环境(WINDOWS环境下不会出现此问题)下PCI总线无法获得系统

14、资源,也就无法做实验,这时需要将此选项修改为使用即插即用。4. 在纯DOS环境下,有些微机的BIOS设置中有使用即插即用操作系统的选项,如果在使 用即插即用操作系统状态下,BIOS将不会给TPC卡分配系统资源,致使在纯DOS环境 (WINDOWS环境下不会出现此问题)下PCI总线无法获得系统资源,也就无法做实验,这时需要将此选项修改为不使用即插即用操作系统。5. 由于TPC卡使用9054芯片连接微机,所以在编程使用微机中断前需要使能9054的中断 功能,代码如下: mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,使能中断 in ax,dx or ax,09

15、00h out dx,ax 其中IOPORT_CENT是9054芯片寄存器组的I/O起始地址,每台微机可能都不同,编程 时需要了解当前的微机使用哪段并进行设置,获取方法请参看本书结尾部分的介绍。 (也可使用自动获取资源分配的程序取得),+68H的偏移是关于中断使能的寄存器地 址,设置含义如下: 设置INTCSR(68H)寄存器,中断模式设置 程序退出前还要关闭9054的中断,代码如下:mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,关闭中断 in ax,dx and ax,0f7ffh outdx,ax6. PC机中断控制器8259 的地址为20H、21H

16、,编程时要根据中断类型号设置中断矢量, 8259中断屏蔽寄存器IMR对应位要清零(允许中断),中断服务结束返回前要使用中 断结束命令: MOV AL,20H OUT 20H,AL 中断结束返回DOS时应将IMR对应位置1,以关闭中断 。四、参考流程图图8 中断五、参考程序 程序名:INT.AS;386以上微机适用 ;纯dos下才能使用 ;tasm4.1或以上编译 data segment int_vect EQU 071H ;中断0-7的向量为:08h-0fh,中断8-15的向量为:70h-77hirq_mask_2_7 equ 011111011b ;中断掩码,中断0-7时从低至高相应位为零

17、,中断8-15时 第2位为零 irq_mask_9_15 equ 011111101b ;中断0-7时全一,中断8-15时从低至高相应位为零ioport_cent equ 0d800h ;tpc 卡中9054芯片的io地址 Csreg dw ?ipreg dw ? ;旧中断向量保存空间 irq_times dw 00h ;中断计数 msg1 db 0dh,0ah,TPC pci card Interrupt,0dh,0ah,$ msg2 db 0dh,0ah,Press any key to exit!,0dh,0ah,$ msg3 db 0dh,0ah,Press DMC to interr

18、upt 10 times and exit!,0dh,0ah,$ data ends stacks segment db 100 dup (?) stacks ends code segment assume cs:code,ds:data,ss:stacks,es:data start: ;Enable Local Interrupt Input .386 cli mov ax,data mov ds,ax mov es,ax mov ax,stacks mov ss,axmov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,使能中断 in ax,dx or

19、ax,0900h out dx,axmov al,int_vect ;保存原中断向量 mov ah,35h int 21h mov ax,es mov csreg,ax mov ipreg,bx mov ax,cs ;设置新中断向量 mov ds,ax mov dx,offset int_proc mov al,int_vect mov ah,25h int 21h in al, 21h ;设置中断掩码 and al, irq_mask_2_7 out 21h, al in al, 0a1h and al, irq_mask_9_15 out 0a1h, almov ax,data movds

20、,ax mov dx,offset msg2 mov ah,09h int 21h mov dx,offset msg3 mov ah,09h int 21h mov irq_times,0ah Stiloop1:cmp irq_times,0 ;等待中断并判断中断10次后退出 jz exit mov ah,1 int 16h jnz exit ;按任意键退出 jmp loop1 exit: cli mov bl, irq_mask_2_7 ;恢复中断掩码 not bl in al, 21h or al, bl out 21h, al mov bl, irq_mask_9_15 not bl

21、in al, 0a1hor al, bl out 0a1h, al mov dx,ipreg ;恢复原中断向量 mov ax,csreg mov ds,ax mov ah,25h mov al,int_vect int 21h mov dx,ioport_cent+68h ;设置 tpc 卡中9054芯片io口,关闭中断 in ax,dx and ax,0f7ffh out dx,axmov ax,4c00h int 21hint_proc proc far ;中断处理程序 cli push ax push dx push ds dec irq_times mov ax,data ;Inter

22、rupt to do mov ds,ax mov dx,offset msg1 mov ah,09h int 21h mov al,20h ;Send EOI out 0a0h,al out 20h,al pop ds pop dx pop ax sti iret int_proc endp code ends end star实验十四 串行通讯一、 实验目的 、 了解串行通讯的基本原理。 、掌握串行接口芯片8251的工作原理和编程方法。二、实验内容 、按图9连接好电路,(8251插通用插座)其中8253计数器用于产生8251的发送和接收 时钟.TXD和RXD连在一起。、编程:从键盘输入一个字

23、符,将其ASCII码加 1 后发送出去,再接收回来在屏幕上显 示。实现自发自收。图 9 串行通讯电路三、 实验提示 、 图示电路8251的控制口地址为2B9H,数据口地址为2B8H。 、8253计数器的计数初值=时钟频率 /(波特率波特率因子),这里的时钟频率接 1MHz,波特率若选1200,波特率因子若选16,则计数器初值为52。 、收发采用查询方式。四、参考流程图(见图10)图10五、 参考程序:E8251.ASMdata segment ioport equ 0d400h-0280h io8253a equ ioport+280h io8253b equ ioport+283h io82

24、51a equ ioport+2b8h io8251b equ ioport+2b9h mes1 db you can play a key on the keybord!,0dh,0ah,24h mes2 dd mes1 data ends code segment assume cs:code,ds:datastart: mov ax,data mov ds,ax mov dx,io8253b ;设置8253计数器0工作方式 mov al,16h out dx,al mov dx,io8253a mov al,52 ;给8253计数器0送初值 out dx,al mov dx,io8251

25、b ;初始化8251 xor al,al mov cx,03 ;向8251控制端口送3个0 delay: call out1 loop delay mov al,40h ;向8251控制端口送40H,使其复位 call out1 mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1 mov al,27h ;向8251送控制字允许其发送和接收 call out1 lds dx,mes2 ;显示提示信息 mov ah,09 int 21h waiti: mov dx,io8251b in al,dx test al,01 ;发送是否准备好 jz waiti m

26、ov ah,01 ;是,从键盘上读一字符 int 21h cmp al,27 ;若为ESC,结束 jz exit mov dx,io8251a inc al out dx,al ;发送 mov cx,0F00h s51: loop s51 ;延时 next: mov dx,io8251b in al,dx test al,02 ;检查接收是否准备好 jz next ;没有,等待 mov dx,io8251a in al,dx ;准备好,接收 mov dl,al mov ah,02 ;将接收到的字符显示在屏幕上 int 21h jmp waiti exit: mov ah,4ch ;退出 int 21hout1 proc near ;向外发送一字节的子程序 out dx,al push cx mov cx,0F00h gg: loop gg ;延时 pop cx ret out1 endp code ends end start

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!