杭电微机原理定时器计数器实验报告_第1页
杭电微机原理定时器计数器实验报告_第2页
杭电微机原理定时器计数器实验报告_第3页
杭电微机原理定时器计数器实验报告_第4页
杭电微机原理定时器计数器实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、微型计算机原理与接口技术实验报告班 级 : 学 号 : 姓 名 : 指导老师 : 朱亚萍 实验名称 : 定时器 / 计数器 8259单级中断控制器实验2015年12月23日定时器/计数器实验六 定时器/计数器一、实验目的 1. 学会8253芯片和微机接口的原理和方法;2. 掌握8253定时器/计数器的工作方式和编程原理。二、实验内容 用8253的0通道工作在方式3,产生方波。三、实验接线图 图 6-1四、编程指南 1. 8253芯片介绍:8253是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz, 用+5V单电源供电。8253的功能用途:10延时中断可编程频率发生器事件

2、计数器二进制倍频器实时时钟数字单稳态输出复杂的电机控制器2. 8253的六种工作方式:方式0:计数结束中断方式l:可编程频率发生方式2:频率发生器方式3:方波频率发生器方式4:软件触发的选通信号方式5:硬件触发的选通信号五、实验程序框图 图 6-2六、实验步骤 1. 断电连接导线, 按图6-1连好实验线路:8253的GATE0接+5V;8253的CLK0插孔接分频器74LS393(左下方)的T2插孔,分频器的频率源为8.0MHZ,T8.0MHZ。2. 在PC机和实验系统联机状态下,新建实验程序,编辑完成后进行保存(保存后缀为.asm文件);3. 编译下载;4. 全速运行,运行程序。七、实验程序

3、CODE SEGMENT ASSUME CS:CODETIME PROC FARSTART: MOV DX, 43H MOV AL, 37H OUT DX, AL MOV DX, 40H;控制口地址;设置通道0,先读写低字节后读写高;字节,方式3,BCD计数;通道0口地址MOV AL, 00H OUT DX, AL MOV AL, 90H OUT DX, AL JMP $TIME ENDPCODE ENDSEND START;先读写低字节;后读写高字节;结束程序八、实验结果将OUT0接二极管,相应的发光二极管会以一定周期闪烁。九、实验中遇到的问题及解决方式问题:编程完成后,运行发现没有任何现象

4、。解决:反复检查程序后,确认不是程序错误,猜测可能是CLK0输入时钟频率过高(查阅实验指导书,分频电路当脉冲输入为8.0MHZ时,T0-T7输出脉冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ),于是再不该程序的情况下,直接将CLK0接T7,发光二极管开始以一定周期闪烁。8259单级中断控制器实验实验七8259单级中断控制器实验一、实验目的 1. 掌握8259中断控制器的接口方法;2. 掌握8259中断控制器的应用编程。二、实验内容 利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送

5、数码显示。三、实验接线图 图 7-1四、编程指南 1. 8259芯片介绍: 中断控制器8259A是专为控制优先级中断而设计的芯片。它将中断源优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。因此无需附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优先模式和中断请求方式。即中断结构可以由用户编程来设定。同时,在不需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级的矢量中断系统;中断序号01234567变量地址20H23H24H27H28H2BH2CH2FH30H22H34H37H38H3BH3CH3FH表 7-12. 本实验中使用3号中断源IR3,“ ”

6、插孔和IR3相连,中断方式为边沿触发方式,每拨二次AN开关产生一次中断,满5次中断,显示“555555”。如果中断源电平信号不符合规定要求,则自动转到7号中断,显示“Err”。五、实验程序框图 (c) IR7中断服务程序(b) IR3中断服务程序(a) 主程序图 7-2六、实验步骤 1. 断电连接导线, 按图7-1连好实验线路: 8259的INT连8088的INTR;8259的INTA连8088的INTA;“ ”插孔和8259的3号中断IR3插孔相连,“ ”端初始为低电平;8259的CS端接FF80H孔。2. 在PC机和实验系统联机状态下,新建实验程序,编辑完成后进行保存(保存后缀为.asm文

7、件);3. 编译下载;4. 全速运行,运行程序。七、实验程序DATA SEGMENTBUF DB 6 DUP(?)CONT DB ?DATA1: DB 0c0h,0f9h,0a4h,0b0h,99h, DB 92h,82h,0f8h,80h,90h, DB 88h,83h,0c6h,0a1h,86h, DB 8eh,0ffh,0ch,89h,0deh, DB 0c7h,8ch,0f3h,0bfh,8fhDATA ENDSCODE SEGMENTASSUME CS: CODE,DS: DATA INT_1 EQU 0FF80HINT_2 EQU 0FF81HINT_IR3 EQU ADD1_IR

8、3INT_IR7 EQU ERR_IR7MAIN PROC FARSTART: MOV AX, DATA MOV DS, AX MOV ES, AX CLD CALL BUF1CALL INIT_8259CALL WRI_INTEMOV CONT, 1STIWATING: CALL DISP JMP WATINGMAIN ENDPINIT_8259 PROC NEAR MOV DX, INT_1 MOV AL, 13H OUT DX, AL MOV DX, INT_2 MOV AL, 08H OUT DX, AL MOV AL, 09H OUT DX, AL MOV AL, F7H OUT D

9、X, ALRET;BUF用于存需显示数据;存放中断次数;存放数码管显示码;设置数据段与附加段段基址;清方向标志;初始化8259;写入中断向量表;开中断;循环扫描显示并等待中断到来;设置ICW1,边沿触发,单级使用;设置ICW2,表示中断类型码是08H;设置ICW4,缓冲方式,8086/88配置;设置OCW1,开IR3中断INIT_8259 ENDPWRI_INTE PROC NEARMOV AX, 0MOV ES, AXMOV DI, 002CH LEA AX, INT_IR3 STOSW MOV AX, 0STOSWMOV DI, 003CH LEA AX, INT_IR7STOSWMOV

10、AX, 0 STOSWRETWRI_INTE ENDPADD1_IR3 PROC NEARCTIPUSH AXPUSH BXPUSH CXPUSH DXMOV AL, CONTAND AL, 0FHMOV BX, OFFSET BUFMOV BUF+5, ALMOV AL, 10HMOV CX, 5R_DIS: MOV BX, AL INC BX LOOP R_DIS MOV AL, 20H MOV DX, INT_1 OUT DX, AL ADD CONT, 1 CMP CONT, 7 JNZ R_CONMOV CONT, 1 CALL BUF2INT_R: POP DX POP CXPOP

11、 BX;ES指向中断向量表段地址0000H;DI=IR3的偏移地址;取中断服务子程序偏移地址;放入中断向量表;写中断服务子程序段地址;放入中断向量表;DI=IR7的偏移地址;取中断服务子程序偏移地址;放入中断向量表;写中断服务子程序段地址;放入中断向量表;IR3中断服务子程序;关中断,不允许中断嵌套;保护现场;取中断次数;截取低四位;取BUF偏移地址;将AL的值放入BUF5;清除显示;六位数码管只显示CONT一位;OCW2的EOI命令;发EOI命令,结束中断;记录本次中断;判断中断次数是否达到5次;达到,CONT置1;显示“555555”POP AX STI IRETADD1_IR3 ENDP

12、ERR_IR7 PROC NEAR CLI MOV AL, 20H MOV DX, INT_1 OUT DX, AL CALL BUF3 STI IRETERR_IR7 ENDPDISP PROC NEARMOV AL, 0FFH MOV DX, PA OUT DX, AL MOV CL, 0DFH MOV BX, OFFSET BUFDIS1: MOV AL, BX MOV AH, 00H PUSH BX MOV BX, OFFSET DATA1 ADD BX, AX MOV AL, BX POP BX MOV DX, PB OUT DX, AL MOV AL, CL MOV DX, PA

13、OUT DX, AL PUSH CXDIS2: MOV CX, 00A0H LOOP $ POP CX CMP CL, 0FEH JZ LX1 INC BX ROR CL, 1 JMP DIS1LX1: MOV AL, 0FFH MOV DX, PB;恢复现场;开中断;中断返回;IR7中断服务子程序;关中断,不允许中断嵌套;OCW2的EOI命令;发EOI命令,结束中断;开中断;中断返回;显示子程序 OUT DX, AL RETDISP ENDPBUF1 PROC NEARMOV BUF,08H MOV BUF+1,02H MOV BUF+2,05H MOV BUF+3,09H MOV BUF+

14、4,17H MOV BUF+5,01H RET BUF1 ENDPBUF2 PROC NEAR MOV BUF,05H MOV BUF+1,05H MOV BUF+2,05H MOV BUF+3,05H MOV BUF+4,05H MOV BUF+5,05HRETBUF2 ENDPBUF3 PROC NEAR MOV BUF,0eH MOV BUF+1,18H MOV BUF+2,18H MOV BUF+3,10H MOV BUF+4,10H MOV BUF+5,10H RETBUF3 ENDPCODE ENDSEND START;在BUF中存放显示“8259-1”的数据;在BUF中存放显示“555555”的数据;在BUF中存放显示“ERR”的数据八、实验结果不拨动AN开关,显示“8259-1”每拨二次AN开关产生一次中断,满5次中断,显示 “555555”,显示完“555555”后又从1开始计数中断次数,以此循环。如果出现中断源电平信号不符合规定要求的情况,则自动转到7号中断,显示“Err”。九、实验中遇到的问题及解决方式问题:程序编写过程中,不清楚实际情况下应该如何初始化8259及其向量表。解决:参考书中初始8259的程序以及初始向量表的程序,以及在实验过程中参考其他同学程序,终于成功。问题:下好程序后拨动开关

温馨提示

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

评论

0/150

提交评论