欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    微型计算机接口技术实验报告.pdf

    • 资源ID:76273249       资源大小:597.61KB        全文页数:29页
    • 资源格式: PDF        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    微型计算机接口技术实验报告.pdf

    微型计算机接口技术实验报告实验室:S318 学院:计算机科学与技术专业:计算机科学与技术姓名:实验时间:第 7 周星期一 7-8节第 9 周星期五 7-8节第 11 周星期四 1-2节第 13 周星期四 9-10 节实验时间(第x 周第 XX 节)、地点、学生姓名、学生学号、班级、指导教师(比如:循环程序设计)实验内容(具体实验题目)实验程序清单运行结果实验中遇到的问题及解决方案实验心得体会实验一、PCI 总线中断应用一、实验题目PCI 总线中断应用二、实验内容1【示例】编写一实验程序,利用实验装置提供的中断源,完成每按动一次脉冲开关,产生一次中断,向显示器输出字符“7”。2修改示例程序,控制中断响应次数为10 次,即当第11 次以后按动脉冲开关,屏幕上不再显示“7”。三、程序清单;先执行PCI_BIOS.EXE,获得 PCI 板卡申请的第一个I/O 空间的首地址及;中断号,修改下面CPU访问 PCI 操作寄存器的端口地址。;由中断号确定相应中断向量及OCW1、OCW2 命令字。INTCSR_BYTE0 EQU 9438H ;修改 PCI 操作寄存器的端口地址INTCSR_BYTE1 EQU 9439H INTCSR_BYTE2 EQU 943AH INTCSR_BYTE3 EQU 943BH IMB4_BYTE3 EQU 941FH DATA SEGMENT CSBAK DW?IPBAK DW?MKBAK DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:CLI MOV AX,DATA MOV DS,AX;初始化PCI 寄存器 MOV DX,INTCSR_BYTE0 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV DX,INTCSR_BYTE3 MOV AL,00H OUT DX,AL;保存和替换中断入口地址 MOV AX,0000H MOV ES,AX MOV DI,01CCH ;INT 73H,01CCH=73H*4,根据中断号修改 MOV AX,ES:DI MOV IPBAK,AX ;IP MOV AX,OFFSET MYINT CLD STOSW MOV AX,ES:DI ;CS MOV CSBAK,AX MOV AX,SEG MYINT STOSW;保存中断屏蔽字寄存器内容 IN AL,0A1H MOV MKBAK,AL AND AL,0F7H ;打开中断屏蔽位,根据中断号修改 OUT 0A1H,AL STI;等待A1:NOP CALL BREAK JMP A1;=中断服务程序=MYINT:PUSH DS PUSH AX PUSH DX;清 PCI 板中断标志 MOV DX,IMB4_BYTE3 IN AL,DX MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL;清 8259 中断标志 MOV AL,63H ;根据中断号修改 OUT 0A0H,AL MOV AL,62H OUT 20H,AL;显示字符 7 MOV AH,0EH MOV AL,37H INT 10H POP DX POP AX POP DS IRET;检测是否有键按下程序BREAK PROC NEAR PUSH DS MOV AH,06H MOV DL,0FFH INT 21H JE RETURN POP DS CLI;恢复中断屏蔽命令字 MOV AL,MKBAK OUT 0A1H,AL;恢复中断入口地址 MOV AX,0000H MOV ES,AX MOV DI,01CCH ;INT 73H,01CCH=73H*4,根据中断号修改 MOV AX,IPBAK CLD STOSW MOV AX,CSBAK STOSW MOV DX,INTCSR_BYTE1 MOV AL,00H OUT DX,AL STI MOV AX,4C00H INT 21H RETURN:POP DS RET BREAK ENDP CODE ENDS END START 四、运行结果(1)每按动一次脉冲开关,产生一次中断,向显示器输出字符“7”(2)每按动一次脉冲开关,产生一次中断,向显示器输出字符“7”,控制中断响应次数为10 次,即当第11 次以后按动脉冲开关,屏幕上不再显示“7”。五、遇到的问题及解决方案对于 DOS 环境下编译、连接、下载程序的操作不是很熟悉,还好有实验操作步骤,但是还是导致了多次重启计算机。六、心得体会掌握了使用PCI 中断的方法,进一步了解了操作PCI 设备 I/O 端口的方法。掌握了8259 中断控制器的工作原理、编程方法以及PC 机如何通过8259A 实现对外部可屏蔽硬件中断源的管理,掌握了一般中断服务程序的设计方法。实验二、8254 定时/计数器应用一、实验题目8254 定时/计数器应用二、实验内容1.计数应用实验:编写程序,应用8254 的计数功能,用开关模拟计数。使每当按动开关KK1 五次后,产生中断,并在屏幕上显示一个字符“M”。2.定时应用:自己编写程序,应用8254 的定时功能,将屏幕设计为一个秒表。3.电子发声:自己编写程序让实验装置上的扬声器和PC 机上的扬声器唱歌。三、程序清单1.MY8254_COUNT0 EQU 9C40H;修改端口地址MY8254_COUNT1 EQU 9C41H MY8254_COUNT2 EQU 9C42H MY8254_MODE EQU 9C43H INTCSR_BYTE0 EQU 9438H INTCSR_BYTE1 EQU 9439H INTCSR_BYTE2 EQU 943AH INTCSR_BYTE3 EQU 943BH IMB4_BYTE3 EQU 941FH DATA SEGMENT CSBAK DW?IPBAK DW?MKBAK DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:CLI MOV AX,DATA MOV DS,AX MOV DX,INTCSR_BYTE0 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV DX,INTCSR_BYTE3 MOV AL,00H OUT DX,AL MOV AX,0000H MOV ES,AX MOV DI,01CCH;INT 73H,01CCH=73H*4,根据中断号修改MOV AX,ES:DI MOV IPBAK,AX;IP MOV AX,OFFSET MYINT CLD STOSW MOV AX,ES:DI;CS MOV CSBAK,AX MOV AX,SEG MYINT STOSW IN AL,0A1H MOV MKBAK,AL AND AL,0F7H;打开中断屏蔽位,根据中断号修改OUT 0A1H,AL STI MOV DX,MY8254_MODE;CLK=KK1 MOV AL,17H OUT DX,AL MOV DX,MY8254_COUNT0 MOV AL,5 OUT DX,AL A1:NOP CALL BREAK JMP A1 MYINT:PUSH DS PUSH AX PUSH DX MOV DX,IMB4_BYTE3 IN AL,DX MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV AL,63H;根据中断号修改OUT 0A0H,AL MOV AL,62H OUT 20H,AL MOV AX,0E4DH INT 10H MOV AX,0E20H INT 10H POP DX POP AX POP DS IRET BREAK PROC NEAR PUSH DS MOV AH,06H MOV DL,0FFH INT 21H JE RETURN POP DS CLI MOV AL,MKBAK OUT 0A1H,AL MOV AX,0000H MOV ES,AX MOV DI,01CCH;INT 73H,01CCH=73H*4,根据中断号修改MOV AX,IPBAK CLD STOSW MOV AX,CSBAK STOSW MOV DX,INTCSR_BYTE1 MOV AL,00H OUT DX,AL STI MOV AX,4C00H INT 21H RETURN:POP DS RET BREAK ENDP CODE ENDS END START 2.PC8254_COUNT0 EQU 40H PC8254_COUNT1 EQU 41H PC8254_COUNT2 EQU 42H PC8254_MODE EQU 43H DATA SEGMENT BAK DB?DTABLE DB 33H,33H,3DH,33H,26H,26H,26H,26H,2DH,2DH,26H,2DH,33H DB 33H,33H,33H,33H,33H,4DH,45H,3DH,3DH,3DH,45H,4DH,45H DB 45H,45H,45H,45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H DB 26H,28H,2DH,2DH,26H,26H,33H,33H,33H,33H,45H,3DH,39H DB 39H,39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,2DH,2DH DB 26H,26H,26H,26H,26H,26H,28H,28H,2DH,28H,26H,26H,26H DB 26H,2DH,28H,26H,2DH,2DH,33H,3DH,4DH,45H,45H,45H,45H DB 45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H,26H,28H,2DH DB 2DH,26H,2DH,33H,33H,33H,33H,33H,33H,45H,3DH,39H,39H DB 39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,00H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:IN AL,61H MOV BAK,AL MOV AX,DATA MOV DS,AX MOV BX,OFFSET DTABLE MOV AL,BX MOV AH,00H A1:MOV DL,20H MUL DL PUSH AX MOV DX,PC8254_MODE MOV AL,0B6H OUT DX,AL POP AX MOV DX,PC8254_COUNT2 OUT DX,AL MOV AL,AH OUT DX,AL MOV AL,BAK OR AL,03H OUT 61H,AL INC BX MOV AH,00H MOV AL,BX TEST AL,0FFH JZ A2 PUSH AX CALL DALLY CALL BREAK POP AX JMP A1 A2:MOV BX,OFFSET DTABLE MOV AL,BX MOV AH,00H JMP A1 DALLY:MOV CX,77FFH D1:MOV AX,0B00H D2:DEC AX JNZ D2 LOOP D1 BREAK PROC NEAR MOV AH,06H MOV DL,0FFH INT 21H JE RETURN AND AL,0FDH OUT 61H,AL MOV AL,AH MOV AL,BAK OUT 61H,AL MOV AX,4C00H INT 21H RETURN:RET BREAK ENDP CODE ENDS END START 3.MY8254_COUNT0 EQU 9C40H MY8254_COUNT1 EQU 9C41H MY8254_COUNT2 EQU 9C42H MY8254_MODE EQU 9C43H DATA SEGMENT DTABLE DB 33H,33H,3DH,33H,26H,26H,26H,26H,2DH,2DH,26H,2DH,33H DB 33H,33H,33H,33H,33H,4DH,45H,3DH,3DH,3DH,45H,4DH,45H DB 45H,45H,45H,45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H DB 26H,28H,2DH,2DH,26H,26H,33H,33H,33H,33H,45H,3DH,39H DB 39H,39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,2DH,2DH DB 26H,26H,26H,26H,26H,26H,28H,28H,2DH,28H,26H,26H,26H DB 26H,2DH,28H,26H,2DH,2DH,33H,3DH,4DH,45H,45H,45H,45H DB 45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H,26H,28H,2DH DB 2DH,26H,2DH,33H,33H,33H,33H,33H,33H,45H,3DH,39H,39H DB 39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,00H DATA ENDS CODE SEGMENT ASSUME CS:CODE START:MOV AX,DATA MOV DS,AX MOV BX,OFFSET DTABLE MOV AL,BX MOV AH,00H A1:MOV DL,0AH;CLK=1MHz MUL DL PUSH AX MOV DX,MY8254_MODE MOV AL,36H OUT DX,AL POP AX MOV DX,MY8254_COUNT0 OUT DX,AL MOV AL,AH OUT DX,AL INC BX MOV AH,00H MOV AL,BX TEST AL,0FFH JZ A2 PUSH AX CALL DALLY CALL BREAK POP AX JMP A1 A2:MOV BX,OFFSET DTABLE MOV AL,BX MOV AH,00H JMP A1 DALLY:MOV CX,77FFH D1:MOV AX,0C00H D2:DEC AX JNZ D2 LOOP D1 BREAK PROC NEAR MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21H RETURN:RET BREAK ENDP CODE ENDS END START 四、运行结果(1)使每当按动开关KK1 五次后,产生中断,并在屏幕上显示一个字符“M”。(2)将屏幕为一个秒表,运行时开始计时。(3)实验装置上的扬声器和PC 机上的扬声器唱歌五、遇到的问题及解决方案在实验的过程中,由于在插线时不细心,导致实验总是得不到预期的实验结果,最后把电路图检查了一遍才发现,原来是把线插错了。六、心得体会通过本次实验掌握了8254 的工作方式及应用编程,掌握了8254 的典型应用电路即输入输出的的接法。学习了 8254 在 PC 系统中的典型应用方法。实验三、8255 并行接口应用一、实验题目8255 并行接口应用二、实验内容1【示例】基本输入/输出实验:本实验希望实现将一组开关信号通过8255 芯片传送到发光二极管上显示。2流水灯显示实验:编写程序,使8255 的 A 口、B 口均为输出,实现16 位数据灯的相对循环显示。3修改第一个实验,选择8255 的 A 口为基本的输出端接发光二极管,B 口为选通输入端接拨动开关。要求当 B 口数据准备就绪后,通过发STBB 信号请求CPU 读取 B 口数据,才送端口A 输出显示。采用查询方式编程,设计相应的实验电路及程序(用方式一选通输入)三、程序清单1.MY8255_A EQU 9C60H ;符号定义伪指令MY8255_B EQU 9C61H MY8255_C EQU 9C62H MY8255_MODE EQU 9C63H CODE SEGMENT ASSUME CS:CODE START:MOV DX,MY8255_MODE MOV AL,82H OUT DX,AL A1:MOV DX,MY8255_B IN AL,DX MOV DX,MY8255_A OUT DX,AL CALL BREAK JMP A1 BREAK PROC NEAR MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21H RETURN:RET BREAK ENDP CODE ENDS END START 2.MY8255_A EQU 9C60H MY8255_B EQU 9C61H MY8255_C EQU 9C62H MY8255_MODE EQU 9C63H DATA SEGMENT LA DB?LB DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE MOV AL,80H OUT DX,AL MOV DX,MY8255_A MOV AL,7FH OUT DX,AL MOV LA,AL MOV DX,MY8255_B MOV AL,0FEH OUT DX,AL MOV LB,AL CALL DALLY A1:MOV AL,LA ROR AL,1 MOV LA,AL MOV DX,MY8255_A OUT DX,AL MOV AL,LB ROL AL,1 MOV LB,AL MOV DX,MY8255_B OUT DX,AL CALL DALLY CALL BREAK JMP A1 DALLY:MOV CX,3FFH D1:MOV AX,0FFFFH D2:DEC AX JNZ D2 LOOP D1 RET BREAK PROC NEAR MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21H RETURN:RET BREAK ENDP CODE ENDS END START 3.MY8255_A EQU 9C60H MY8255_B EQU 9C61H MY8255_C EQU 9C62H MY8255_MODE EQU 9C63H DATA SEGMENT DTABLE DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:MOV AX,DATA MOV DS,AX MOV SI,3000H MOV AL,00H MOV SI,AL MOV SI+1,AL MOV SI+2,AL MOV SI+3,AL MOV DI,3003H MOV DX,MY8255_MODE MOV AL,81H OUT DX,AL BEGIN:CALL DIS CALL CLEAR CALL CCSCAN JNZ INK1 CALL BREAK JMP BEGIN INK1:CALL DIS CALL DALLY CALL DALLY CALL CLEAR CALL CCSCAN JNZ INK2 JMP BEGIN INK2:MOV CH,0FEH MOV CL,00H COLUM:MOV AL,CH MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX TEST AL,01H JNZ LONE MOV AL,00H JMP KCODE LONE:TEST AL,02H JNZ NEXT MOV AL,04H KCODE:ADD AL,CL CALL PUTBUF PUSH AX KON:CALL DIS CALL CLEAR CALL CCSCAN JNZ KON POP AX NEXT:INC CL MOV AL,CH TEST AL,08H JZ KERR ROL AL,1 MOV CH,AL JMP COLUM KERR:JMP BEGIN CCSCAN:MOV AL,00H MOV DX,MY8255_A OUT DX,AL MOV DX,MY8255_C IN AL,DX NOT AL AND AL,03H RET CLEAR:MOV DX,MY8255_B MOV AL,00H OUT DX,AL RET DIS:PUSH AX MOV SI,3000H MOV DL,0F7H MOV AL,DL AGAIN:PUSH DX MOV DX,MY8255_A OUT DX,AL MOV AL,SI MOV BX,OFFSET DTABLE AND AX,00FFH ADD BX,AX MOV AL,BX MOV DX,MY8255_B OUT DX,AL CALL DALLY INC SI POP DX MOV AL,DL TEST AL,01H JZ OUT1 ROR AL,1 MOV DL,AL JMP AGAIN OUT1:POP AX RET DALLY:PUSH CX MOV CX,00FFH T1:MOV AX,00FFH T2:DEC AX JNZ T2 LOOP T1 POP CX RET PUTBUF:MOV SI,DI MOV SI,AL DEC DI CMP DI,2FFFH JNZ GOBACK MOV DI,3003H GOBACK:RET BREAK PROC NEAR MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21H RETURN:RET BREAK ENDP CODE ENDS END START 四、运行结果(1)实现将一组开关信号通过8255 芯片传送到发光二极管上显示(2)实现 16 位数据灯的相对循环显示(3)实现将一组开关信号通过8255 芯片传送到发光二极管上显示五、遇到的问题及解决方案刚开始的时候不熟悉8255 各种工作方式的特点,不清楚各引脚的定义及功能的具体含义。感觉写程序无从下手。通过查阅相关资料得到了进一步的了解才完成了本次实验。六、心得体会通过本次实验了解了8255 的基本结构和工作原理,掌握了8255 的工作方式、应用编程和典型应用电路接法。对 8255 的各种工作方式及命令字有了更深的认识。实验四、综合实验一、实验题目8254 和 8255 流水灯实验二、实验内容使用 8254 实现 1 秒钟的中断定时,使 8255 的 A 口、B 口均为输出,实现16 位数据灯的相对循环显示的流水灯实验三、实验原理8254:8254 是 Intel公司生产的可编程间隔定时器。是8253 的改进型,比 8253具有更优良的性能。8254 具有以下基本功能:(1)有 3 个独立的 16 位计数通道;(2)每个计数器可按二进制或十进制(BCD)计数;(3)每个计数器可编程工作在6 种不同工作方式;(4)每个计数器允许的最高计数频率为10MNZ(8253 为 2MHZ);(5)有读回命令(8253没有),可以读出当前计数单元的内容和状态寄存器内容;图 13-1 是 8254 的内部结构框图和管脚图。它是由与CPU的接口、内部控制电路和三个计数器组成。三个独立的计数器,每个计数器的结构完全相同,如图13-2。数据总线 3个引角:GATEi 门控信号输入端 CLKi计数脉冲输入端 OUTi信号输出端GATEi OUTi CLKi 1、工作过程:(1)初始化时,程序员将计数初值写入计数初值寄存器,自动送入16 位减 1 计数器。计数初值CLKiOUTi(2)当 GATEi 1 时,每一个 CLKi 信号的下降沿使减 1 计数器减 1,锁存器随之变化。(3)当计数值减到规定值时,OUTi端产生输出信号。2、8254 的工作方式:方式 0计数结束输出正跃变信号(可作为中断请求信号)/只有一次方式 1单脉冲发生器(形成负脉冲,宽度=N CLK脉冲周期)/只有一次方式 2分频器(输出固定频率的脉冲)方式 3方波发生器方式 4软件触发的单脉冲发生器(输出负脉冲,宽度为一个CLK周期)方式 5硬件触发的单脉冲发生器(输出负脉冲,宽度为一个CLK周期)3、8254 端口地址:计数初值寄存器16 位减 1 计数器输出锁存器图 13-2 计数器结构示意图13-图 13-3 方式 2 波形图 13-4 方式 3 计数值为奇数时的波形当 CS 0 时,地址总线的 A1 A0组合(0011),确定选择 0#、1#、2#计数器及控制寄存器A1A0 00,选中 0#计数器对应端口的偏移地址是:40H A1A0 01,选中 1#计数器41H A1A0 10,选中 2#计数器42H A1A0 11,选中控制寄存器43H 4、8254 的控制字:控制字有两个:方式控制字共用一个地址,由标识位来区分。读回控制字方式控制字用来设置计数器的工作方式,其命令格式如表13-1 所示。读回控制字格式如表13-2 所示。当读回控制字的D4位为 0 时,由该读回控制字D1D2位指定的计数器的状态寄存器内容将被锁存到状态寄存器中。状态字格式如表13-3 所示。5、8254 初始化编程步骤一步:向控制寄存器写入控制字,确定使用的计数器及工作方式。二步:向使用的计数器写入计数初值。825513-1 13-13-3 001=选中计数器0 010=选中计数器CPU通过 8255 并行接口芯片以字节为单位并行向I/O 设备或被控制对象传递信息。8255可编程外围接口芯片是Intel公司生产的通用并行I/O 接口芯片,具有 A、B、C三个并行接口,用+5V单电源供电,8255 的内部结构及管脚,如图14-1 所示。1、8255A能在以下三种方式下工作:1)方式 0基本输入输出方式。工作特点:即为无条件输入输出方式。端口与外设之间不需要联络信号。A口、B口、C口可由控制字规定为输入输出。2)方式 1选通型输入输出方式。工作特点:端口与外设之间需要用联络线,8255A将借用 C口的某些端线来完成与外设之间的联络(参见图 14-2)。CPU与 8255A之间可以用中断方式或查询方式来交换信息(参见图14-3)。图 14-2 B 口方式 1 输入对应的联14-1 B 3)方式 2双向选通方式,工作特点:A口为输入输出双向选通PA7 PA0为双向数据线。PC4和 PC5为一对输入联络线(STBA与 IBFA)PC7和 PC6为一对输出联络线(OBFA与 ACKA)PC3为中断请求线B口可以工作在方式0 或方式 1。28255 工作方式控制字和C口按位置位/复位控制字格式如图14-4 所示。38255 应用编程流程图 14-3 方式 1 的输入时14-A 口B口方式 0查询输入:查 IBF=1 输出:查 OBF=1 方式选择方式?方式 1 或方式 2 编程方式?中断设置 C 口置位控制字置 INTE=1,允许中断CPU 用 IN 或 OUT 指令在中断服务程序中与外设交换数据CPU 用 IN 或 OUT 指令与外设交换数据四、实验连线图五、程序框图开始设置 8254时间初值允许 8254中断,启动定时器置8254计数器 0设置为方式 2,定时器设置 8255点亮一个灯设置定时循环次数死循环等待中断六、程序清单;8254 MY8254_COUNT0 EQU 9C40H MY8254_COUNT1 EQU 9C41H MY8254_COUNT2 EQU 9C42H MY8254_MODE EQU 9C43H INTCSR_BYTE0 EQU 9438H INTCSR_BYTE1 EQU 9439H INTCSR_BYTE2 EQU 943AH INTCSR_BYTE3 EQU 943BH IMB4_BYTE3 EQU 941FH 是否到 1秒?保护现场并重新设置 8254时间初值8254中断入口定时循环次数减 1 8255数据循环重新设置秒循环次数恢复现场中断返回;8255 MY8255_A EQU 9C60H MY8255_B EQU 9C61H MY8255_C EQU 9C62H MY8255_MODE EQU 9C63H DATA SEGMENT;8254 CSBAK DW?IPBAK DW?MKBAK DB?SEC1 DB 30H SEC0 DB 31H;8255 LA DB?LB DB?DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATA START:CLI MOV AX,DATA MOV DS,AX MOV DX,INTCSR_BYTE0 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV DX,INTCSR_BYTE3 MOV AL,00H OUT DX,AL MOV AX,0000H MOV ES,AX MOV DI,01CCH ;INT 73H,01CCH=73H*4 MOV AX,ES:DI MOV IPBAK,AX ;IP MOV AX,OFFSET MYINT CLD STOSW MOV AX,ES:DI ;CS MOV CSBAK,AX MOV AX,SEG MYINT STOSW IN AL,0A1H MOV MKBAK,AL AND AL,0F7H OUT 0A1H,AL MOV AX,0E30H INT 10H MOV AX,0E30H INT 10H MOV AX,0E0DH INT 10H MOV DX,MY8254_MODE ;CLK=10K MOV AL,35H OUT DX,AL MOV DX,MY8254_COUNT0 MOV AL,0 OUT DX,AL OUT DX,AL ;8255 MOV AX,DATA MOV DS,AX MOV DX,MY8255_MODE MOV AL,80H OUT DX,AL MOV DX,MY8255_A MOV AL,7FH OUT DX,AL MOV LA,AL MOV DX,MY8255_B MOV AL,0FEH OUT DX,AL MOV LB,AL ;open interrupt STI A1:CALL BREAK JMP A1 MYINT:PUSH DS PUSH AX PUSH DX MOV AX,DATA MOV DS,AX ;add MOV AL,LA ROR AL,1 MOV LA,AL MOV DX,MY8255_A OUT DX,AL MOV AL,LB ROL AL,1 MOV LB,AL MOV DX,MY8255_B OUT DX,AL POP DX POP AX POP DS IRET BREAK PROC NEAR PUSH DS MOV AH,06H MOV DL,0FFH INT 21H JE RETURN POP DS CLI MOV AL,MKBAK OUT 0A1H,AL MOV AX,0000H MOV ES,AX MOV DI,01CCH ;INT 73H,01CCH=73H*4 MOV AX,IPBAK CLD STOSW MOV AX,CSBAK STOSW MOV DX,INTCSR_BYTE1 MOV AL,00H OUT DX,AL STI MOV AX,4C00H INT 21H RETURN:POP DS RET BREAK ENDP CODE ENDS END START 七、运行结果在发光二极管区,16个发光二极管以1 秒的时间间隔循环点亮,实现了流水灯的定时循环显示。八、遇到的问题及解决方案在实验的过程中由于需要的插线特别多,而且实验室里的有些插线接触不良,导致在实验的过程中总是得不到正确结果。再多次按压插冒之后,最终得到了结果,但是由于实验代码不正确最终在实验做完的时候都没有得到正确结果。后来在自己的电脑上对程序做了进一步的修改。九、心得体会通过本次综合实验更进一步的了解了8255 和 8254 的工作方式及应用编程,对8254 和8255 的典型电路接法更加熟悉,对它们在PC机上的典型运用有了更进一步的认识。

    注意事项

    本文(微型计算机接口技术实验报告.pdf)为本站会员(索****)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开