微机原理与接口技术实验报告_第1页
微机原理与接口技术实验报告_第2页
微机原理与接口技术实验报告_第3页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 PAGE PAGE 34一实验内容实验一、认识 Tddebug 集成操作软件(一) 实验题目:数据传送实验幕上。修改此程序,采用字符串传送指令完成。(二) 实验目的:通过对该程序进行调试,查看程序段、数据段、附加段装入内存后的分配情况。单步执行数据传送指令后,观察各个寄存器及数据区的内容。(三) 实验步骤:运行Tddebug软件,选择Edit 菜单编写实验程序Compile Compile Link 件。使用Rmrun菜单中的Run 运行程序,观察运行结果。Rmrun Debug 调试程序,查看程序段、数据段、附加段装入内存后按 F7 的执行一定会使目标寄存器和状态寄存器发生变化,从相关窗口

2、看结果。检查内存数据区的内容,关键是找出用户程序的数据段和附加段:1:在CPU 窗口按Tab 键使内存数据显示区成为活动区,按Ctrl+G DS或ES寄存器的值:偏移地址2:选择菜单View| 查看执行结果:按Alt+F5,切换到用户窗口。更改数据区中的数据,考察、调试程序的正确性。二分析设计思想,绘制实验原理图、流程图。1.1 成。三程序清单及相关注释。DDATASEGMENTMSR DB HELLO,WORLD!$ LEN EQU $- MSRDDATAENDSEXDAMSDDBLEN DUP(?);定义源数据段;定义附加数据段EXDAENDS MYSTACKSTACKDW 20 DUP(

3、?) MYSTACK ENDS;定义堆栈段CODESEGMENT;定义代码段ASSUME CS:CODE,DS:DDATA,ES:EXDA START:MOV AX,DDATAMOVDS,AX;装载数据段寄存器MOVAX,EXDAMOV MOV MOV MOV MOVES,AX;装载附加数据段寄存器SI,OFFSET MSR DI,OFFSET MSD CX,LENBX,0NEXT:MOVAL,MSRBX;开始传输数据MOVINCBXLOOPNEXTPUSHESPOPDS;将附加段寄存器指向的段值赋给数据段寄存器MOVDX,OFFSET MSD MOVAH,9INT21HMOVINT21HCO

4、DEENDSENDSTART四实验结果并分析。;显示字符串;返回 DOS 状态五收获体会及实验中遇到的问题和解决方法。tddebug 的开发环境,了解汇编语言的基本程序。由于刚ASM 格式之后就可以直接编译方便了很多灵活了很多。今后还需在理论课堂上多下功夫,进一步对汇编深入学习。实验二、I/O 程序设计一实验内容:I/O 程序设计(一)实验内容:编程由键盘输入任意一个字符,将该字符的ASCII码值显示在屏幕上。1 位十进制数,计算二者之和,并将结果显示在屏幕上。编程由键盘输入任意一位数,将该数以二进制数形式显示在屏幕上,例:5=00000101B(二) 实验步骤:画出实验流程图。运行Tddeb

5、ug软件,选择Edit 菜单编写实验程序Compile Compile Link 件。使用Rmrun菜单中的Run 运行程序,观察运行结果。Rmrun Debug 内容。更改数据区中的数据,考察程序的正确性。二 分析设计思想。设计思路:首先将该数以十六进制数形式分解,然后将每一位分别转换为ASCII 码送屏幕显示。其中0H9H 30H,即可得0H9H ASCII 码,而AHFH ASCII 码,则7H5-12-1 所示。示例程序参见参考程序清单。三 程序清单及流程DATASEGMENTMES DBShow a as hex:,0AH,0DH,$ SDDBaDATAENDSCODESEGMENT

6、ASSUMESTART:MOV AX,DATAMOVDS,AXMOVDX,OFFSET MES ;显示提示信息MOVINT21HMOVSI,OFFSET SDMOVAL,DS:SIANDAL,0F0H;取高 4 位MOVCL,4SHRAL,CLCMPAL,0AH;是否是A 以上的数JBC2ADDAL,07HC2:ADD AL,30H MOVDL,AL;显示字符MOVAH,02HINT21HMOVAL,DS:SIANDAL,0FH4 位CMPAL,0AHJBC3ADDAL,07HC3:ADD AL,30HMOVDL,AL;显示字符MOVAH,02HINT21HMOVAH,4CH;返回 DOSIN

7、T21HCODEENDSEND START四 实验结果。五 收获体会。在实验中,加强了对理论知识的掌握,由于堂上的知识太多平时不能很好的理解,在具 C 习中打好一定的基础。一 实验内容实验三、循环程序设计求某数据区内负数的个数试编程统计数据区中正数、零和负数的个数。编程求无符号数字节序列中最大值和最小值。若有请输出其在串中的位置。二分析设计思想.试编程统计数据区中正数、零和负数的个数。编程求无符号数字节序列中最大值和最小值BH BL BH BL 存于H 中)和最小值(存于L 中送屏幕显示。三 程序清单及相关注解;确定数据区 NUMB 中负数的个数(存放于 BL 中)DDATASEGMENTNU

8、MB DB 12H,88H,82H,89H,33H,90H,01H,10H,0BDH,01HMESDB The number of negativeis:$ CODE SEGMENTASSUMECS:CODE,DS:DDATA START:MOVAX,DDATAXOR DS,AXDI,OFFSET NUMB BL,BLCX,10A1:MOVAL,DITESTAL,80HJEA2INCBLA2:INCDILOOPA1;统计负数个数MOV MOV INT MOV用的方法的区别DX,OFFSET MES AH,09H21HAL,BL;显示负数个数,注意与实验二所使MOVCX,2A3:PUSHCX M

9、OVROLAL,CLPOPCXMOVBL,ALANDAL,0FHCMPJBA4ADDA4:ADDAL,30HMOVDL,ALMOVINT21HMOVAL,BLLOOPA3MOVINT21HCODE ENDS END START四 实验结果并分析。六收获体会。个数为统计数据区内负数的个数,需逐个判别区内的每一个数1 BH BL 程的思想还需进一步加强。实验四、代码转换程序设计一实验内容5 位十进制数的数字串转换为一个字的二进制数编写程序将内存中一个字的数转换为十进制数的数字串显示。编程将十进制的数字串转换为BCD 码BCD 码转换为二进制数二分析设计思想计算机输入设备输入的信息一般是由ASCII

10、 BCD 一般均用二进制数进行计算或用其他信息进行处理,处理的结果又必须依照外设的要求变为ASCII 码、或 BCD 转换是必不可少的。计算机与外设间的数码转换关系如图6-1 所示。十进制数可以表示为:D 10 n D10n1 D 10 0 D 10 inn10i其中 D 代表十进制数 1、2、3、9、0。i上式可以转换为:D 10ii (Dn10 Dn1) 10 n2)10 D1) 10 D0由上式可归纳出十进制数转换为二进制数的方法:从十进制数的最高位Dn 开始做乘 10 加次位的操作,依次类推,则可求出二进制数结果。5 00012 ASCII 码转换成二进制数,并将转换结果以十六进制数形

11、式 000C 13-2 所示。修改该示例程序,从键盘任意输入 5 个数,实现转换并显示。将内存中一个字的数转换为十进制数的数字串。十六位二进制数(一个字)的值域为065535,最大可转换为5 位十进制数。五位十进制数可表示为:N D 10 4 D 10 3 D 10 2 D 101 DD43210因此,将十六位二进制数转换为5 位 ASCII 码表示的十进制数数字串,即采用除10 取余方法,分别求DD ,并将它们转换为ASCII码。以字符串方式显示在屏幕上。转换部分04的参考流程参见图 6-4。假设缓冲区中存放的数是000CH 0001将十进制数的数字串转换为BCD 码5 ”的ASCII BC

12、D 。若输入的不是十进制数的ASCII F4 位即变为BCD 码。6-3。修改程序,实现从键盘输入5 54321,转换BCD 04 03 02 01BCD 码转换为二进制数本实验要求将 4 BCD 6-5。假设 4 个十进制数是:17,34,51,68用 BCD 码表示为:01H,07H,03H,04H,05H,01H,06H,08H显示为:0011,0022,0033,0044三程序清单及相关注解;将十进制数的数字串转换为数DDATASEGMENTMES DBThe ascii code of decimal code are:$BUF DB30H,30H,30H,31H,32H;十进制00

13、012 的ASCII 码DB10H DUP(0)DDATAENDSCODE SEGMENTASSUME CS:CODE,DS:DDATA START:MOVAX,DDATAMOVDS,AX MOVSI,OFFSET BUFMOVBL,0AH;送被乘数MOVCX,0004H;送转换位数MOVAH,00HMOVAL,SI;取第一位ASCII SUBAL,30HA1:INCSIIMULBL10ADDAL,SISUBAL,30HLOOPA1MOVBX,AXMOVDX,OFFSET MESMOVINT21HMOVAX,BXMOVCX,4 A3:PUSHMOVCL,4ROLAX,CLPOPCXMOVBX,

14、AXANDAL,0FHCMPJBA2ADDAL,07HA2:ADDAL,30HMOVDL,ALMOVINT21HMOVAX,BXLOOPA3MOVINT21HCODEENDS END四实验结果并分析。;显示提示信息;显示结果五收获体会。debug 的反复入理解。实验五、子程序及软中断程序设计一 实验内容PC 统未使用的中断向量,我们可利用它们开发用户自己软中断程序。47H 16 数码,并在屏幕上显示出来。参见参考程序清单。编程求出一系列数据中的最大值、最小值,并送屏幕46H 46H 将送屏幕显示用子程序实现。二分析设计思想用户可将常用的具有特定功能的程序段编写成子程序使用。一般过程定义伪操作的

15、格式为:过程名PROCAttribute过程名ENDPAttribute NEAR NEAR子程序段内调用与返回调用格式:CALL过程名CPU CALL 指令有效地址IP,从而转入子程序。返回指令:RET在具有 NEAR 属性的子程序中,RET 指令从栈顶弹出 2 个字节IP,然后 SP+2SP。从而回到断点。软中断程序设计中断:中断就是当系统运行或者程序运行期间在遇到某些特殊情况时, CPU CPU 中断(像除法错等件中断(INT n 指令而引发的中断)和硬件中断(CPU 器件发出的中断请求信号而引发的中断。中断向量中断向量就是中断子程序的入口地址(CS 和有效地址IP 组成,占4 个字节)

16、256 80 x86 系统工作在实模式时,内存000H3FFH 256 个中断入口,参见表1】且在系统启动时由S S 负责初始化。软中断程序设计用户可自己开发中断服务程序,用它取代系统原有的服务程序, 过程如下:编写中断服务子程序,用 IRET 指令返回n4n4n+3 单元的对应中断服务程序入口INT n CPU F、CS、IP 寄存4n4n+3 单元取出n 型中断向量IP,CS 中,CPU CS:IP 的值转向服务子程序。IRET 6 IPCS、F 寄存器,回到断点继续执行。程序结束返回 DOS 之前,要恢复系统的中断向量设置。三 程序清单及相关注解;数码转换及显示:实验利用 47H 号中断

17、将一组字符转换成16 进制数码,并在屏幕上显示出来DDATASEGMENTCSBAK DW ? IPBAK DW ? MKBAK DB ? SW DW ?MESDBThe data in buf1are:,0AH,0DH,$ BUF1DB11H,22H,33H,44H,55H,66H,77H,88H,99HDBCODE SEGMENTASSUME CS:CODE,DS:DDATASTART:MOVAX,DDATAMOVDS,AX中断矢量MOVAX,047H 号中断的MOVES,AXMOVDI,4*47HMOVAX,ES:DIMOVIPBAK,AX;保存原有 IPMOVAX,OFFSETMYIN

18、T定义中断入口CLDMOV MOVCSBAK,AX;保存原有 CSMOV MOVAX,SEG MYINTDX,OFFSETMES;显示提示信息MOVINT21H;显示 BUF1 中的内容SI,OFFSET BUF1CX,10HINT47H;调用中断服务程序MOVAX,0MOVES,AXMOVDI,4*47HMOVCLDSTOSWMOVSTOSWMOVAH,4CH;恢复系统中断矢量;返回 dosINT21HMYINTPROCFARSI,CXPUSHPUSH DXC1:MOVAL,SIANDAL,0F0HPUSHCXMOVCL,4;取高 4 位SHRAL,CLPOPCXCMPAL,0AHJBC2A

19、DDAL,07H C2:ADDMOVDL,ALMOVINT21HMOVAL,SIANDAL,0FHCMPJBC3ADDAL,07H C3:ADDMOVDL,ALMOVINT21HINCSI LOOPPOPDXPOPAX;是否是A 以上的数;显示字符4 位;显示字符IRET MYINT ENDP CODE ENDSEND START五 实验结果并分析。;中断返回六收获体会。了理论的进一步学习。开始设计子程序及中断方面的设计实验。处理随机事件的程序,就称为中断服务子程序。二进制转换为16 进制,从最低4 1 组,高位不足4 0,没组换算61(1()16 31BH 031BH 16 进160 为止,

20、将每次除的余数倒排,就是了。在程序中有较为抽象的地方不好理解,今后在这方面还需多多加强。实验六、PC 机内部 8259 中断及应用一实验内容编写一键盘中断处理程序:8 (16 次)后,显示中断次数并结束应用。参见参考程序清单。键盘中断处理的说明当从键盘上键入一个键时,键盘上的处理器首先向微机产生硬件中断请求,然PC IRQ1 09H 序从键盘接口电路(60H)ASCII 码,存入键盘缓冲区。本实验置换系统的 09H 型中断服务程序,完成对键盘中断次数的统计。在该中断服务(口地址 61H 并将最高位置 1,再写入该端口。此外,按键按下和抬起均会引起中断,所以实际中断次数。修改上述程序,将按键的扫

21、描码输出到屏幕上,并统计中断次数。利用系统的H 型中断(又称外扩的日时钟中断,编写程序,实现每隔S TIME TO!,按任意键停止。二 分析设计思想硬件中断是由 CPU 80 x86CPU 个引脚INTR 和NM)INTER 8259A 中断控制器8259A 中断控制器简介8259A 中断控制器将中断源优先级排队、辨别中断源以及提供中断向量的电路于一片8259A 8 8259A 的级连,能构成多达64 8259A 的内部结构和管11-1 所示。11-18259A 的中断过程,即微机系统响应可屏蔽中断的过程将加到引脚IR0IR7上的中断请求寄存到中断请求寄存器中。在中断屏蔽寄存器的管理下,没有被

22、屏蔽的中断请求被送到优先权电路判优。选中当前级别最高的中断源,然后从引脚INT CPU 发出中断请求信号。CPU满足一定的条件后,向8259A发出两个中断响应信号(负脉冲:1)8259A INTA 1 1,同时把中断请求寄存器中的相应位清0。2)INTA 2 把选中的中断源类型码n 数据线送往CPU。 从 4n4n+3 执行该中断源的中断服务程序。3.8259A编程初始化编程4 个初始化命令字,写入命令寄存器组后,就建立了8259A 的8259A BIOS 其初始化,更改它的初始化设置。BIOS 对系统 8259A 初始化为:中断触发方式采用边沿触发。中断屏蔽方式采用常规屏蔽方式。IR0 级别

23、最低。中断结束,采用常规结束方式。操作方式编程将操作命令字OCW1OCW3 写入操作命令寄存器组,对中断处理过程实现动态控制。OCW1 OCW3 各命令格式如图 11-2 所示。OCW1写中断屏蔽字(对奇地址操作)Mi 1,表示对应的中断源IRQi 0,IRQi 被开放。OCW2写中断方式命令字(对偶地址操作)设置优先级是否进行循环,循环的方式及中断结束的方式。OCW3(对偶地址操作)用来设置特殊屏蔽方式、查询方式用来读8259A的中断请求寄存器IRR,中断服务寄存器ISR、中断屏蔽寄存器IMR的当前状态。PC8259A的应用11-2机系统中包含了两片 8259A 中断控制器,经级连可以管理

24、15 级硬件中断,但其中部分中断源已经被系统硬件占用,具体使用情况如表 11-1 所示。中断向量表的占用情况见表 10-1。8259A 020H 021H 0A0H0BFH 0A0H 0A1H 两个端口。11-11-8259A 11-3 开发用户中断时,做到以下几点:硬件方面:将外扩中断源的中断请求(由低电平到高电平的跃变)IRQi上。软件方面:置换相应的中断向量,即把用户中断子程序的入口地址写入4n4n3 单元。8259A IMR D2 IMR 的Di 0即填写OCW1)每一次中断服务结束,即执行IRET 8259A 送中断结束命令。(即填写OCW2)返回DOS 之前,写中断屏蔽字OCW1,

25、使主片IMR D2 1;使从片IMR Di 1,屏蔽用户中断。恢复系统中断屏蔽字、恢复系统中断向量。三程序清单及相关注解;按键8 次,计算键盘中断次DATASEGMENTCSBAKDW ?IPBAKDW ?MKBAKDB ?DATACODESEGMENTASSUME CS:CODE,DS:DATA STARTPROC FARMOVAX,DATAMOVINAL,21HMOVMKBAK,AL;保留 8259 初始屏蔽字的状态CLI;关中断ANDAL,11111101B;打开键盘屏OUT21h,ALMOVAX,0;修改键盘中断的中断矢MOVES,AXMOVDI,24H;IRQ1,09H,24H=09

26、H*4MOVAX,ES:DIMOVIPBAK,AX;IPMOVAX,OFFSET MYINTCLDSTOSWMOVAX,ES:DI;写入 CSMOVCSBAK,AXMOVAX,SEG MYINTSTOSWXORDX,DX;清计数器A1:STI;开中断CMPDX,10H;是否按了 8 次键JZA2;是,结束程序运行A2:JMP PUSHA1;否则继续等待键盘中断DX;保存计数值CLI;关中断MOVAX,0;恢复系统中断矢量MOVES,AXMOVDI,24H;IRQ1,09HMOVAX,IPBAKCLDSTOSWMOVAX,CSBAKSTOSWMOVAL,MKBAK;8259 屏蔽字OUT21h,

27、ALSTI;开中断POPDX;显示计数值CALLSHWORDMOVAX,4C00HINT21HRETSTARTENDPMYINTPROCFAR;自定义键盘中断处理程序STIINC;开中断DX;计数加一INAL,60H;读入扫描码(用户可对此键值进行处理)INAL,61H;读入控制字节MOVAH,ALORAL,80HOUT61H,AL;复位键盘CLI;关中断MOVAL,61H;中断结束命令送中断控制器OUT20H,ALIRET;中断返回MYINTENDPSHWORDPROCNEAR;216 进制显示MOVCX,4AGA:ROLDX,4MOVAL,DLANDAL,0FHCMPAL,10JCNEXT

28、2ADDAL,7NEXT2:ADDAL,30HMOVAH,0EHINT10HLOOPAGARET SHWORDENDP CODE ENDSEND START六收获体会。本次试验中,对这次实验对中断特性和 8259 中断控制器的工作原理有了一定的理解, 在实践操作中修改程序的时候没有把读入的扫描码AL 传递到 DL 中,最计还有待强化。希望可以加强对理论知识的认识逐步增强在这方面的实践能力。一实验内容实验七、PCI 总线中断应用【示例】编写一实验程序,利用实验装置提供的中断源,完成每按动一次脉冲开关, 7修改示例程序,控制中断响应次数为10 11 7二分析设计思想TD-PIT-B实验系统编程信息

29、简要说明(1本实验的接口电路是在PD-PIT-B 实验装置上搭接完成,而PC 该实验装置。二者之间通过PCI 总线扩展卡及转接逻辑在PD-PIT-B 仿真 ISA TD-PIT-B 实验系统的硬件环境,参见附录。(2要利用仿真 ISA的系统配置资源,即PCI 总线资源配置的有关内容。执行PCI_BIOS.EXE,获取实验用 PCI 总线扩展卡分配的地址空间及中断请求线。假设执行PCI_BIOS.EXE 后屏幕显示:从以上获取的信息可知道,本实验用的PCI 总线扩展卡申请了:4 个I/O(最后一位为1 来表示0B8000BC000C000,0C400H。一个存储器空间(最后一位为0来表示5000

30、000。一个中断请求IRQ9(3确定TD-PIT-B实验装置中各接口电路所使用的端口地址本系统中PCI 配置空间的首地址是PCI 总线扩展卡申请的第一个I/O (即BASE 。所以PCI 各控制寄存器的地址定义为:BASE 0 的首地址 0B800H + 各控制寄存器的偏移地址而I/O 部分实验使用的是PCI总线扩展卡申请的第三个I/O 空间(即BASE。各I/O接口芯片的端口地址定义为:BASE 2 的首地址 0C000H + 各端口的偏移地址实验说明及处理流程本实验使用实验装置提供的中断请求信号IRQ,利用KK1 的负脉冲作为中断源,每按一次KK1,在中断处理中完成字符“7”的显示。使用实

31、验装置提供的 IRQ 信号,除了要操作 PC 机的 8259 寄存器,还需要操作TD-PIT-PCI INTCSIMB清除等。PCI_BIOS.EXE实验装置获取的系统配置资源INTCS(偏移38H3BH)和IMB4 寄存器(1FH)的端口地址:BASE 0 的首地址 0B800H + 各控制寄存器的偏移地址及中断号IRQ9。初始化PCI中断初始化INTCSINTCSR的端口写入003F1F000B838H写000B839H写 1FH,0B83AH 写 3FH,0B83BH 写 00H。7-1 IRQ9 址保存,替换为用户自己的中断服务程序入口地址。PC 8259 021H 07 号 815

32、IRQ9 A1H1 。清除实验用中断的中断源清PCI 板卡的中断标志:对IMB4 3 字节0B81FH,然后向INTCSR 2 字节(0B83AH)3FH。PC 8259 8259 OCW2(IRQ9 中断向A0H 61H20H 62H)退出程序返回DOS 然后返回DOS。参考实验流程如图 12-1 所示。三程序清单及相关注解;先执行PCI_BIOS.EXE,获得PCI 板卡申请的第一个I/O 空间的首地址及;中断号,修改下面CPU 访问 PCI 操作寄存器的端口地址。;由中断号确定相应中断向量及OCW1、OCW2 命令字。INTCSR_BYTE0EQU9438HINTCSR_BYTE1INT

33、CSR_BYTE0EQU9438HINTCSR_BYTE1EQU9439HINTCSR_BYTE2EQU943AHINTCSR_BYTE3EQU943BHIMB4_BYTE3EQU941FHDATA SEGMENTCSBAKDW? IPBAKDW? MKBAKDBDATA ENDS CODE SEGMENTASSUME CS:CODE,DS:DATA START: CLIMOVAX,DATAMOVDS,AXPCI 寄存器MOVMOVAL,00HOUTDX,ALMOVMOVAL,1FHOUTDX,ALMOV MOV OUT MOV MOVAL,3FHDX,AL AL,00HOUTDX,AL;保存

34、和替换中断入口地址MOVMOVES,AXMOVDI,01CCH;INT 73H,01CCH=73H*4,根据中断号修改MOVAX,ES:DIMOVIPBAK,AXMOVAX,OFFSET MYINTCLD STOSWMOVAX,ES:DIMOVCSBAK,AXMOVAX,SEG MYINTSTOSW;保存中断屏蔽字寄存器内容INAL,0A1H MOVANDAL,0F7H;打开中断屏蔽位,根据中断号修改OUT0A1H,ALSTI;等待A1:NOPCALLBREAKJMPA1中断服务程= MYINT: PUSHDSPUSHAXPUSHDXPCI 板中断标志MOVINAL,DXMOVMOVAL,3F

35、HOUTDX,AL8259 中断标志OUT0A0H,ALMOVOUT0A0H,ALMOVAL,62HOUT20H,ALMOVAH,0EHMOVAL,37HINT10HPOPDXPOPAX;显示字符7POPDSIRET;检测是否有键按下程序BREAK PROC NEARPUSHDSMOVAH,06HMOVDL,0FFHINT21HJERETURNPOPDSCLI;恢复中断屏蔽命令字MOVAL,MKBAKOUT0A1H,AL;恢复中断入口地MOVAX,0000HMOVES,AXMOVDI,01CCH;INT 73H,01CCH=73H*4,根据中断号修改MOVAX,IPBAKCLD STOSWMO

36、VSTOSWMOVDX,INTCSR_BYTE1MOVAL,00HOUTSTIMOV AX,4C00H INT 21HRETURN:POP DSRET BREAK ENDP CODE ENDSEND START四收获体会。实验中开始使用机箱并行接口操作,在 DOS 界面下操作。在老师已给的程序代码的基实验八、8254 定时计数器应用一实验内容计数应用实验:编写程序,应用8254 的计数功能,用开关模拟计数。使每当按动开关1 定时应用:自己编写程序,应用8254 的定时功能,将屏幕设计为一个秒表。电子发声:自己编写程序让实验装置上的扬声器和PC 二分析设计思想(一)实验原理8254 Intel

37、8253 8253 8254 具有以下基本功能:316 位计数通道;每个计数器可按二进制或十进制计数;6种不同工作方式;每个计数器允许的最高计数频率为10MN(8253为2MH;有读回命令8253没有,可以读出当前计数单元的内容和状态寄存器内容;13-13-13-1 8254 的内部结构框图和管脚图。它是由与CPU 数器组成。三个独立的计数器,每个计数器的结构完全相同,如图13-2。数据总线3 个引角门控信号输入CLKi计数脉冲输入端值寄存器16 1 计数器CLKi输出锁存器图 13-2 计数器结构示意图1、工作过程:16 1 数初值CLKiOUTi 时,每一个CLKi 1 1,锁存器随之变化

38、。端产生输出信号。2、8254 的工作方式:方式 0计数结束输出正跃变信号(可作为中断请求信号)方式 1单脉冲发生器(形成负脉冲,宽度=NCLK 脉冲周期) 方式 2分频器(输出固定频率的脉冲)图13-3方式2 波形图 13-4方式3 计数值为奇数时的波形方式 3方波发生器方式 软件触发的单脉冲发生器(输出负脉冲,宽度为一个CLK 周期方式 硬件触发的单脉冲发生器(输出负脉冲,宽度为一个CLK 周期3、8254 端口地址:当C0 时,地址总线的A1 A0 组合01,确定选择012计数器及控制寄存器A1A000,选中 0# 计数器对应端口的偏移地址是: 40H A1A001,选中 1# 计数器

39、41HA1A010,选中2# 计数器42H选中控制寄存器4、8254 的控制字:控制字有两个:方式控制字共用一个地址,由标识位来区分。读回控制字方式控制字用来设置计数器的工作方式,其命令格式如表13-1 所示。读回控制字格式如表 13-2 所示。当读回控制字的D4 位为 0 时,由该读回控制字D1D2 位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。状态字格式如表13-3 所示。5、8254 初始化编程步骤一步:向控制寄存器写入控制字,确定使用的计数器及工作方式。二步:向使用的计数器写入计数初值。13-113-113-13-001 = 选中计数器0010 = 选中计数器13-313-3(二)实验说明及步骤1、确定 8254 端口地址执行PCI_BIOS.EXE,获取实验用 PCI 总线扩展卡分配的地址空间及中断请求线。确定8254 芯片所使用的端口地址:I/O 部分实验使用的是PCI 总线扩展卡申请的第三个I/O 空间(BASE 假设为0C000。各I/O 接口芯片的端口地址定义为:BASE 2 的首地址+ 各端口

温馨提示

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

评论

0/150

提交评论