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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

杭电微机原理定时器计数器实验报告记录.docx

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

2、。8253的功能用途:延时中断可编程频率发生器事件计数器二进制倍频器实时时钟数字单稳态输出复杂的电机控制器 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

3、. 编译下载;4. 全速运行,运行程序。七、实验程序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单级中断控制器实验一、实验目的 1. 掌握8259中断控制器的接口方法;2. 掌握8259中断控制器的应用编程。二、实验内容 利用8259实现对外部中断的响应和处理,要求程序对每次

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

6、使用3号中断源IR3,“ ”插孔和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机和实验系统联机状态下,新建实验程序,编辑完成后进

7、行保存(保存后缀为.asm文件);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_I

8、R3 EQU ADD1_IR3INT_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

9、 AL, F7H OUT DX, 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, IN

10、T_IR7STOSWMOV 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: PO

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

12、TADD1_IR3 ENDPERR_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,

13、CL MOV DX, PA 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+

14、3,09H MOV BUF+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”

15、的数据;在BUF中存放显示“555555”的数据;在BUF中存放显示“ERR”的数据八、实验结果不拨动AN开关,显示“8259-1”每拨二次AN开关产生一次中断,满5次中断,显示 “555555”,显示完“555555”后又从1开始计数中断次数,以此循环。如果出现中断源电平信号不符合规定要求的情况,则自动转到7号中断,显示“Err”。九、实验中遇到的问题及解决方式问题:程序编写过程中,不清楚实际情况下应该如何初始化8259及其向量表。解决:参考书中初始8259的程序以及初始向量表的程序,以及在实验过程中参考其他同学程序,终于成功。问题:下好程序后拨动开关前,能够显示“8259-1”,但拨动两次后什么都不再显示了。解决:猜测是程序大概是停在了中断子程序里。检查程序后发现有一个跳转指令存在逻辑错误,导致了中断内的死循环。问题:改好这个错误后,发现拨开关中断四次后就显示“555555”。 解决:一定是比较的数据小了,应该是7。因为DATA1中的显示码是从0开始的,在AL=5时即显示为5。但由于此程序的特殊结构,当AL=5,CONT=6,因此,当再一次进入中断后CONT=7,所以比较的数据为7才能让程序按照规定的方式运行。

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

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