杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx

上传人:b****1 文档编号:4083192 上传时间:2023-05-02 格式:DOCX 页数:17 大小:44.59KB
下载 相关 举报
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第1页
第1页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第2页
第2页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第3页
第3页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第4页
第4页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第5页
第5页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第6页
第6页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第7页
第7页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第8页
第8页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第9页
第9页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第10页
第10页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第11页
第11页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第12页
第12页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第13页
第13页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第14页
第14页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第15页
第15页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第16页
第16页 / 共17页
杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx

《杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx(17页珍藏版)》请在冰点文库上搜索。

杭电微机原理定时器计数器实验报告记录Word格式文档下载.docx

⑹ 数字单稳态输出

⑺ 复杂的电机控制器

2.8253的六种工作方式:

⑴ 方式0:

计数结束中断

⑵ 方式l:

可编程频率发生

⑶ 方式2:

频率发生器

⑷ 方式3:

方波频率发生器

⑸ 方式4:

软件触发的选通信号

⑹ 方式5:

硬件触发的选通信号

五、实验程序框图

图6-2

六、实验步骤

1.断电连接导线,按图6-1连好实验线路:

⑴ 8253的GATE0接+5V;

⑵ 8253的CLK0插孔接分频器74LS393(左下方)的T2插孔,分频

器的频率源为8.0MHZ,T→8.0MHZ。

2.在PC机和实验系统联机状态下,新建实验程序,编辑完成后进行保存

(保存后缀为.asm文件);

3.编译下载;

4.全速运行,运行程序。

七、实验程序

CODESEGMENT

ASSUMECS:

CODE

TIMEPROCFAR

START:

MOVDX,43H

MOVAL,37H

OUTDX,AL

MOVDX,40H

;

控制口地址

设置通道0,先读写低字节后读写高

字节,方式3,BCD计数

通道0口地址

MOVAL,00H

OUTDX,AL

MOVAL,90H

JMP$

TIMEENDP

CODEENDS

ENDSTART

先读写低字节

后读写高字节

结束程序

八、实验结果

将OUT0接二极管,相应的发光二极管会以一定周期闪烁。

九、实验中遇到的问题及解决方式

问题:

编程完成后,运行发现没有任何现象。

解决:

反复检查程序后,确认不是程序错误,猜测可能是CLK0输入时钟频率过高(查阅实验指导书,分频电路当脉冲输入为8.0MHZ时,T0-T7输出脉冲频率依次为4.0MHZ,2.0MHZ,1.0MHZ,500KHZ,250KHZ,125KHZ,62500HZ,31250HZ),于是再不该程序的情况下,直接将CLK0接T7,发光二极管开始以一定周期闪烁。

实验七 8259单级中断控制器实验

1.掌握8259中断控制器的接口方法;

2.掌握8259中断控制器的应用编程。

利用8259实现对外部中断的响应和处理,要求程序对每次中断进行计数,并将计数结果送数码显示。

图7-1

1.8259芯片介绍:

中断控制器8259A是专为控制优先级中断而设计的芯片。

它将中断源

优先级排队、辨别中断源以及提供中断矢量的电路集于一片中。

因此无需

附加任何电路,只需对8259A进行编程,就可以管理8级中断,并选择优

先模式和中断请求方式。

即中断结构可以由用户编程来设定。

同时,在不

需要增加其它电路的情况下,通过多片8259A的级联,能构成多达64级

的矢量中断系统;

中断序号

1

2

3

4

5

6

7

变量地址

20H

23H

24H

27H

28H

2BH

2CH

2FH

30H

22H

34H

37H

38H

3BH

3CH

3FH

表7-1

2.本实验中使用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孔。

DATASEGMENT

BUFDB6DUP(?

CONTDB?

DATA1:

DB0c0h,0f9h,0a4h,0b0h,99h,

DB92h,82h,0f8h,80h,90h,

DB88h,83h,0c6h,0a1h,86h,

DB8eh,0ffh,0ch,89h,0deh,

DB0c7h,8ch,0f3h,0bfh,8fh

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

INT_1EQU0FF80H

INT_2EQU0FF81H

INT_IR3EQUADD1_IR3

INT_IR7EQUERR_IR7

MAINPROCFAR

MOVAX,DATA

MOVDS,AX

MOVES,AX

CLD

CALLBUF1

CALLINIT_8259

CALLWRI_INTE

MOVCONT,1

STI

WATING:

CALLDISP

JMPWATING

MAINENDP

INIT_8259PROCNEAR

MOVDX,INT_1

MOVAL,13H

MOVDX,INT_2

MOVAL,08H

MOVAL,09H

MOVAL,F7H

RET

BUF用于存需显示数据

存放中断次数

存放数码管显示码

设置数据段与附加段段基址

清方向标志

初始化8259

写入中断向量表

开中断

循环扫描显示并等待中断到来

设置ICW1,边沿触发,单级使用

设置ICW2,表示中断类型码是08H

设置ICW4,缓冲方式,8086/88配置

设置OCW1,开IR3中断

INIT_8259ENDP

WRI_INTEPROCNEAR

MOVAX,0

MOVES,AX

MOVDI,002CH

LEAAX,INT_IR3

STOSW

STOSW

MOVDI,003CH

LEAAX,INT_IR7

MOVAX,0

WRI_INTEENDP

ADD1_IR3PROCNEAR

CTI

PUSHAX

PUSHBX

PUSHCX

PUSHDX

MOVAL,CONT

ANDAL,0FH

MOVBX,OFFSETBUF

MOV[BUF+5],AL

MOVAL,10H

MOVCX,5

R_DIS:

MOV[BX],AL

INCBX

LOOPR_DIS

MOVAL,20H

MOVDX,INT_1

OUTDX,AL

ADDCONT,1

CMPCONT,7

JNZR_CON

CALLBUF2

INT_R:

POPDX

POPCX

POPBX

ES指向中断向量表段地址0000H

DI=IR3的偏移地址

取中断服务子程序偏移地址

放入中断向量表

写中断服务子程序段地址

DI=IR7的偏移地址

IR3中断服务子程序

关中断,不允许中断嵌套

保护现场

取中断次数

截取低四位

取BUF偏移地址

将AL的值放入BUF[5]

清除显示

六位数码管只显示CONT一位

OCW2的EOI命令

发EOI命令,结束中断

记录本次中断

判断中断次数是否达到5次

达到,CONT置1

显示“555555”

POPAX

STI

IRET

ADD1_IR3ENDP

ERR_IR7PROCNEAR

CLI

CALLBUF3

ERR_IR7ENDP

DISPPROCNEAR

MOVAL,0FFH

MOVDX,PA

MOVCL,0DFH

MOVBX,OFFSETBUF

DIS1:

MOVAL,[BX]

MOVAH,00H

PUSHBX

MOVBX,OFFSETDATA1

ADDBX,AX

POPBX

MOVDX,PB

MOVAL,CL

PUSHCX

DIS2:

MOVCX,00A0H

LOOP$

POPCX

CMPCL,0FEH

JZLX1

INCBX

RORCL,1

JMPDIS1

LX1:

MOVAL,0FFH

MOVDX,PB

恢复现场

中断返回

IR7中断服务子程序

显示子程序

RET

DISPENDP

BUF1PROCNEAR

MOVBUF,08H

MOVBUF+1,02H

MOVBUF+2,05H

MOVBUF+3,09H

MOVBUF+4,17H

MOVBUF+5,01H

RET

BUF1ENDP

BUF2PROCNEAR

MOVBUF,05H

MOVBUF+1,05H

MOVBUF+2,05H

MOVBUF+3,05H

MOVBUF+4,05H

MOVBUF+5,05H

BUF2ENDP

BUF3PROCNEAR

MOVBUF,0eH

MOVBUF+1,18H

MOVBUF+2,18H

MOVBUF+3,10H

MOVBUF+4,10H

MOVBUF+5,10H

BUF3ENDP

CODEENDS

ENDSTART

在BUF中存放显示“8259-1”的数据

在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-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2