可编程定时计数器与中断控制实验报告.docx
- 文档编号:1656939
- 上传时间:2022-10-23
- 格式:DOCX
- 页数:6
- 大小:20.07KB
可编程定时计数器与中断控制实验报告.docx
《可编程定时计数器与中断控制实验报告.docx》由会员分享,可在线阅读,更多相关《可编程定时计数器与中断控制实验报告.docx(6页珍藏版)》请在冰豆网上搜索。
可编程定时计数器与中断控制实验报告
可编程定时计数器与中断控制实验报告
可编程定时/计数器与中断控制实验报告
一、实验目的
1、2、
掌握微机中断处理系统的基本原理、学习中断服务程序的编写方法掌握8253/8254定时/计数器的基本原理和编程方法。
二、实验条件
1、2、
DOS操作系统平台
定时/计数器8253芯片、8259A芯片
三、实验原理
1、
可编程定时/计数器8253功能:
8253含有三个独立的16位计数器,每个计数器连接外设的信号分别是:
CLK:
输入的脉冲信号或外部事件,计数器对此脉冲进行减1计数;GATE:
启动/禁止计数的控制信号;OUT:
输出信号。
每个计数器可有六种工作方式,均可程序设置和改变,若一个计数器被
设定为方式0,计数初值n,在控制信号GATE为高时即可对输入的脉冲作减1计数,OUT维持低电平;计数到0时,则OUT端输出一个高电平信号。
若一个计数器被设定为方式2,输入为周期性脉冲信号,且计数初值可自动重新装入并连续计数,输出信号就成为周期信号,周期为TOUT=n×TIN,即可作为分频器应用。
2、8253编程:
8253的每个计数器必须在写入控制字和计数初值后才启动工作,一般的初始化编程分为两步:
先写入控制字、再写入计数初值。
若要用到2个以上的
计数器,则要对每个计数器分别进行初始化。
所有计数器的方式字都写入同一控制口地址,而各计数器的初值则写入各自口地址。
3、8259A的操作命令字:
8259A的操作命令字共有3个,OCW1OCW3。
OCW1为写入中断屏蔽寄存器IMR的中断屏蔽字,当OCW1某位(Mi)为1时相应的中断申请被屏蔽、为0时所对应的中断申请被允许。
操作命令字OCW2用于设置中断优先级方式和中断结束方式。
操作命令字OCW3用于设置或清除特殊屏蔽方式和读取寄存器的状态。
四、实验内容
1、
8253通道0工作在方式0,按键产生单脉冲接入CLK0、令计数初值为0FH,手动逐个输入单脉冲,编程在计算机屏幕上显示计数值,并用逻辑笔观察OUT0的状态,键盘有键按下时返回DOS。
实验代码如下:
CODESEGMENTASSUMECS:
CODESTART:
MOVAL,10H;设置8253通道0为工作方式0,二进制计数MOVDX,E483H;写8253控制寄存器OUTDX,AL
MOVDX,E480H;送计数初值为0FH
MOVAL,0FHOUTDX,AL
NNN:
INAL,DX;读计数初值CALLDISP;调显示子程序MOVAH,1INT16HJZNNN
MOVAH,4CH;退出(返回DOS)INT21H
DISPPROCNEAR;显示子程序PUSHDX
ANDAL,0FH;首先取低四位MOVDL,AL
CMPDL,9;判断是否<=9
JLENUM;若是则为'0'-'9',ASCII码加30HADDDL,7;否则为'A'-'F',ASCII码加37HNUM:
ADDDL,30HMOVAH,02H;显示INT21H
MOVDL,0DH;加回车符INT21H
MOVDL,0AH;加换行符
INT21HPOPDX
RET;子程序返回DISPENDPCODEENDSENDSTART2、
令8253作为分频器,CLK0输入2MHz、OUT1输出1Hz,计算计数初值、设计实验箱的连线和编写程序,用逻辑笔观察OUT1的状态。
实验代码如下:
DATASEGMENTDATAENDS
STACKSEGMENTPARASTACK DW128HDUP(0)STACKENDSCODESEGMENT
ASSUMECS:
CODE,SS:
STACKSTART:
MOVAL,037H MOVDX,0E483H OUTDX,AL
MOVAL,077H MOVDX,0E483H OUTDX,AL MOVDX,0E480H MOVAX,01000H OUTDX,AL MOVAL,AH OUTDX,AL MOVAX,20XXH MOVDX,0E481H OUTDX,AL MOVAL,AH OUTDX,ALLOOP1:
MOVAH,1 INT16H JZLOOP1 MOVAH,4CH INT21HCODEENDSENDSTART
3、实验台上单脉冲输出端连接总线的IRQ,以手动产生单个中断请求信号,每次中断在屏幕上显示一次“THISISANIRQ7INTERRUPT!
”、中断10次后返回到DOS。
实验代码如下:
DATASEGMENT
MESSDB'THISISANIRQINTERRUPT!
',0AH,0DH,'$'OLDOFFDWOLDSEGDWINTFLAGDBDATAENDSCODESEGMENT
ASSUMECS:
CODE,DS:
DATASTART:
MOVAX,DATAMOVDS,AX
MOVAX,350EH;AH=35H读取中断向量INT21H
MOVOLDSEG,ES;保存旧向量段地址MOVOLDOFF,BX;保存旧向量偏移地址MOVAX,CODE
MOVDS,AX;DS中断服务程序段地址
MOVDX,OFFSETIRQ;DX中断服务程序偏移地址MOVAX,250EH;AH=25H置中断向量
INT21HCLI
MOVDX,0EC4CH;PCI9052中断状态、控制寄存器地址低位MOVAL,43H;最低为1,开中断OUTDX,AL
INCDX;PCI9052中断状态、控制寄存器地址高位MOVAL,1DH;清除可能的中断标志OUTDX,ALINAL,21H
ANDAL,10111111B;D6=0、开放IRQ6中断OUT21H,ALMOVAX,DATAMOVDS,AX
MOVCX,10;设置中断循环次数STI
NEXT:
MOVINTFLAG,1
LL:
CMPINTFLAG,0;进入中断服务程序的标志JNELL
CALLDISPMSGLOOPNEXTCLIINAL,21H
ORAL,40H;关闭IRQ6中断OUT21H,ALMOVDX,0EC4CHMOVAL,42H
OUTDX,AL;关闭PCI9052中断MOVDX,OLDOFFMOVDS,OLDSEG
MOVAX,250EH;AH=25H恢复原中断向量INT21HSTI
MOVAH,4CHINT21H
DISPMSGPROCMOVDX,OFFSETMESSMOVAH,09INT21HRET
DISPMSGENDP
4、用实验台上的8253作为定时器时钟源,使其每秒产生一个脉冲连至总线的IRQ作为中断请求信号。
于微机内部也配备了一片8253,其GATE2微机内部所配备的8255A芯片的PB0控制、CLK2的输入时钟频率为、
OUT2输出和8255A芯片的PB1相“与”后经过驱动连接到了微机的扬声器上,试利用这一资源,编程设置微机8253使其通道2输出1KHz的音频信号,在中断发生时驱动扬声器发声。
实验代码如下:
DATASEGMENTDATAENDS
STACKSEGMENTPARASTACK DW128HDUP(0)STACKENDSCODESEGMENT
ASSUMECS:
CODE,DS:
DATASTART:
MOVAX,CSMOVDS,AX
MOVDX,OFFSETIRQMOVAX,250EHINT21HCLI
MOVDX,0EC4CHMOVAL,43HOUTDX,ALINCDX
MOVAL,1DHOUTDX,ALINAL,21H
ANDAL,10111111BOUT21H,ALMOVAX,DATAMOVDS,AX//不变
MOVAL,037H //写控制字和初值MOVDX,0E483HOUTDX,ALMOVAX,077HMOVDX,0E483HOUTDX,AL
MOVDX,0E480H计数器1的初值MOVAX,01000H//频率1KHzOUTDX,ALMOVAL,AHOUTDX,ALMOVAX,020XXHMOVDX,0E481H//OUTDX,ALMOVAL,AH
OUTDX,ALSTI
NEXT:
MOVBH,1LL:
CMPBH,0JNELLCALLBEEPMOVAH,1INT16HJZNEXTINAL,21HORAL,40HOUT21H,ALMOVDX,0EC4CHMOVAL,42HOUTDX,ALSTI
MOVAH,4CHINT21HIRQPROCFARPUSHAXPUSHDX
MOVBH,0MOVAL,20HOUT20H,ALMOVDX,0EC4DHMOVAL,1DHOUTDX,ALPOPDXPOPAXIRETIRQENDP
BEEPPROCNEARPUSHAXPUSHBXPUSHCXPUSHDXMOVBL,0FFHMOVAL,10110110BOUT43H,ALMOVAX,1190OUT42H,ALMOVAL,AHOUT42H,AL
INAL,61HMOVAL,AHORAL,03HOUT61H,ALMOVCX,0L0:
LOOPL0DECBLJNZL0MOVAL,AHOUT61H,ALPOPDXPOPCXPOPBXPOPAXRETBEEPENDPCODEENDSENDSTART
5、将上述内容扩展,编程在微机显示屏上显示一个具有时、分、秒的程序,并使程序能够在每分钟鸣响一次、按任意键程序返回DOS。
与上一题类似,实验
代码如下:
STACKSEGMENTPARASTACK DW128HDUP(0)STACKENDSDATASEGMENT HDB35 MDB89 SDB80DATAENDSCODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACKSTART:
MOVAL,00110111B MOVDX,0E483H OUTDX,AL MOVAX,1000H MOVDX,0E480H OUTDX,AL MOVAL,AH
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 可编程 定时 计数器 中断 控制 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)