实验68254定时器计数器应用实验.docx
- 文档编号:28076755
- 上传时间:2023-07-08
- 格式:DOCX
- 页数:21
- 大小:87.56KB
实验68254定时器计数器应用实验.docx
《实验68254定时器计数器应用实验.docx》由会员分享,可在线阅读,更多相关《实验68254定时器计数器应用实验.docx(21页珍藏版)》请在冰豆网上搜索。
实验68254定时器计数器应用实验
实验六8253/4定时器/计数器应用实验
6.1实验目的
(1)掌握8254的工作方式及应用编程(参考教材)
(2)掌握8254的典型应用电路的接法
(3)学习8254在PC系统中的典型应用方法
6.2实验设备PC机一台,TD-PIT-B实验装置一套。
6.3实验内容及说明
1)计数应用实验。
2)定时应用实验。
3)电子发声实验
注意:
在断电情况,连接好实验线路,检查无误后,通电进行实验。
实验完毕,先断电,再拆线,并将导线整理好。
1.计数应用实验:
编写程序,将8254的计数器0设置为方式3,计数值为十进制5,用微动开关KK1-作为CLK0时钟,OUT0连接IRQ,每当KK1-按动5次后产生中断请求,在屏幕上显示字符“M”。
8254计数应用参考连接线图如图6-1。
图6-18254计数应用实验参考接线图
;;计数应用实验
;;filename:
8254-1.asm
;;----PCI卡分配的第3个I/O空间
MY8254_COUNT0EQU0E440H
MY8254_COUNT1EQU0E441H
MY8254_COUNT2EQU0E442H
MY8254_MODEEQU0E443H
;;--PCI卡分配的第1个I/O空间
INTCSR_BYTE0EQU0DC38H
INTCSR_BYTE1EQU0DC39H
INTCSR_BYTE2EQU0DC3AH
INTCSR_BYTE3EQU0DC3BH
IMB4_BYTE3EQU0DC1FH
DATASEGMENT
CSBAKDW?
IPBAKDW?
MKBAKDB?
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
CLI
MOVAX,DATA
MOVDS,AX
MOVDX,INTCSR_BYTE0
;;设置pci卡
MOVAL,00H
OUTDX,AL
MOVDX,INTCSR_BYTE1
MOVAL,1FH
OUTDX,AL
MOVDX,INTCSR_BYTE2
MOVAL,3FH
OUTDX,AL
MOVDX,INTCSR_BYTE3
MOVAL,00H
OUTDX,AL
MOVAX,0000H
MOVES,AX
;---------------------------------------------------
MOVDI,01C4H
;irq9,INT71h,01c4=71h*4
;---------------------------------------------------
MOVAX,ES:
[DI]
MOVIPBAK,AX;IP
MOVAX,OFFSETMYINT
CLD
STOSW
MOVAX,ES:
[DI];CS
MOVCSBAK,AX
MOVAX,SEGMYINT
STOSW
INAL,0A1H
MOVMKBAK,AL
;---------------------------------------------------
ANDAL,0fdh;irq9
;---------------------------------------------------
OUT0A1H,AL
STI
MOVDX,MY8254_MODE
;CLK=KK1-//实际接线kk1-
MOVAL,17H
;0001,0111b:
计数器0,读/写低8位;方式3,十进制数
OUTDX,AL
MOVDX,MY8254_COUNT0
MOVAL,5
;;写入计数初值3个高电平,2个低电平
OUTDX,AL
A1:
NOP
CALLBREAK
JMPA1
;;;----------------------------------
MYINT:
PUSHDS
PUSHAX
PUSHDX
MOVDX,IMB4_BYTE3
;清PCI卡中断标志
INAL,DX
MOVDX,INTCSR_BYTE2
MOVAL,3FH
OUTDX,AL
;---------------------------------------------------
MOVAL,61H
;irq9从片D1,主片D2
;---------------------------------------------------
OUT0A0H,AL
MOVAL,62H
OUT20H,AL
MOVAX,0E4DH
;显示字母M加一空格
INT10H
MOVAX,0E20H
INT10H
POPDX
POPAX
POPDS
IRET
BREAKPROCNEAR
PUSHDS
MOVAH,06H
MOVDL,0FFH
INT21H
JERETURN
POPDS
CLI
MOVAL,MKBAK
OUT0A1H,AL
MOVAX,0000H
MOVES,AX
;----------------------------------------------------
MOVDI,01C4H
;irq9INT71H,01C4H=71H*4
;----------------------------------------------------
MOVAX,IPBAK
CLD
STOSW
MOVAX,CSBAK
STOSW
MOVDX,INTCSR_BYTE1
;pci卡设置
MOVAL,00H
OUTDX,AL
STI
MOVAX,4C00H
INT21H
RETURN:
POPDS
RET
BREAKENDP
CODEENDS
ENDSTART
2.定时应用实验
编写程序,将8254的计数器0设置为方式2,用信号源10kHz作为CLK0时钟,计数值为十进制0(即最大计数值10000),OUT0连接IRQ,这样每计时1s后产生中断请求,制作一个秒表显示,每计时60秒自动归零。
8254定时应用实验参考连线图:
图6-28254定时应用实验参考接线图
;8254定时应用实验
;filename:
8254-2.asm
;;PCI卡分配的第3个I/O空间
MY8254_COUNT0EQU0E440H
MY8254_COUNT1EQU0E441H
MY8254_COUNT2EQU0E442H
MY8254_MODEEQU0E443H
;;PCI卡分配的第1个I/O空间
INTCSR_BYTE0EQU0DC38H
INTCSR_BYTE1EQU0DC39H
INTCSR_BYTE2EQU0DC3AH
INTCSR_BYTE3EQU0DC3BH
IMB4_BYTE3EQU0DC1FH
DATASEGMENT
CSBAKDW?
IPBAKDW?
MKBAKDB?
SEC1DB30H;显示秒的个位
SEC0DB31H;显示秒的十位
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
CLI
MOVAX,DATA
MOVDS,AX
MOVDX,INTCSR_BYTE0
MOVAL,00H
OUTDX,AL
MOVDX,INTCSR_BYTE1
MOVAL,1FH
OUTDX,AL
MOVDX,INTCSR_BYTE2
MOVAL,3FH
OUTDX,AL
MOVDX,INTCSR_BYTE3
MOVAL,00H
OUTDX,AL
MOVAX,0000H
MOVES,AX
;---------------------------------------------------
MOVDI,01C4H
;irq9,INT71h,01c4=71h*4
;---------------------------------------------------
MOVAX,ES:
[DI]
MOVIPBAK,AX;IP
MOVAX,OFFSETMYINT
CLD
STOSW
MOVAX,ES:
[DI];CS
MOVCSBAK,AX
MOVAX,SEGMYINT
STOSW
INAL,0A1H
MOVMKBAK,AL
;---------------------------------------------------
ANDAL,0fdh;irq9
;---------------------------------------------------
OUT0A1H,AL
MOVAX,0E30H
;显示00回车,注意没有换行,同在一行显示
INT10H
MOVAX,0E30H
INT10H
MOVAX,0E0DH
INT10H
MOVDX,MY8254_MODE
;CLK=10K
MOVAL,35H
;0011,0101B计数器0,读写低/高位方式2
;十进制计数方式
OUTDX,AL
MOVDX,MY8254_COUNT0
;写入计数值10000
MOVAL,0
OUTDX,AL
OUTDX,AL
STI
A1:
NOP
CALLBREAK
JMPA1
MYINT:
PUSHDS
PUSHAX
PUSHDX
MOVAX,DATA
MOVDS,AX
MOVDX,IMB4_BYTE3
;;清PCI卡中断标志
INAL,DX
MOVDX,INTCSR_BYTE2
MOVAL,3FH
OUTDX,AL
;---------------------------------------------------
MOVAL,61H
;;irq9从片D1,主片D2
;---------------------------------------------------
OUT0A0H,AL
MOVAL,62H
OUT20H,AL
MOVAH,0EH
MOVAL,SEC1
INT10H
MOVAH,0EH
MOVAL,SEC0
INT10H
MOVAX,0E0DH
;只回车,不换行,还在原处
INT10H
INCSEC0
;秒的个位+1
CMPSEC0,3AH
;个位计数到10
JZB3
JMPB1
B3:
INCSEC1
MOVSEC0,30H
CMPSEC1,36H;十位计数到6
JZB4
JMPB1
B4:
MOVSEC1,30H;计到60,重新到零
B1:
POPDX
POPAX
POPDS
IRET
;;--------------------------------
BREAKPROCNEAR
PUSHDS
MOVAH,06H
MOVDL,0FFH
INT21H
JERETURN
POPDS
CLI
MOVAL,MKBAK
OUT0A1H,AL
MOVAX,0000H
MOVES,AX
MOVDI,01C4H
;irq9INT71H,01C4H=71H*4
MOVAX,IPBAK
CLD
STOSW
MOVAX,CSBAK
STOSW
MOVDX,INTCSR_BYTE1
MOVAL,00H
OUTDX,AL
STI
MOVAX,4C00H
INT21H
RETURN:
POPDS
RET
BREAKENDP
CODEENDS
ENDSTART
3.电子发声实验:
1)用实验系统扬声器做发声实验
用信号源1MHz作为扬声器发声基准时钟,计数器0设置为工作方式3,由表格查出每个音符对应的时间常数送给计数器0,以确定音调,驱动扬声器产生音乐。
8254电子发声实验参考图如图6-3所示。
(发声频率已设定,但发声时间是通过软件延时控制的,因此发声时间随不同档次PC机而变化,可以通过调节延时子程序参数来调节发声时间)
图6-38254定时应用实验参考接线图
;用实验系统扬声器做发声实验
MY8254_COUNT0EQU0E440H
MY8254_COUNT1EQU0E441H
MY8254_COUNT2EQU0E442H
MY8254_MODEEQU0E443H
DATASEGMENT
DTABLEDB33H,33H,3DH,33H,26H,26H,26H,26H,2DH,2DH,26H,2DH,33H
DB33H,33H,33H,33H,33H,4DH,45H,3DH,3DH,3DH,45H,4DH,45H
DB45H,45H,45H,45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H
DB26H,28H,2DH,2DH,26H,26H,33H,33H,33H,33H,45H,3DH,39H
DB39H,39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,2DH,2DH
DB26H,26H,26H,26H,26H,26H,28H,28H,2DH,28H,26H,26H,26H
DB26H,2DH,28H,26H,2DH,2DH,33H,3DH,4DH,45H,45H,45H,45H
DB45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H,26H,28H,2DH
DB2DH,26H,2DH,33H,33H,33H,33H,33H,33H,45H,3DH,39H,39H
DB39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,00H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE
START:
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETDTABLE
MOVAL,[BX]
MOVAH,00H
A1:
MOVDL,0AH;CLK=1MHz
MULDL
PUSHAX
MOVDX,MY8254_MODE
MOVAL,36H
;;0011,0110B计数器0,读写低高字节,
;;方式3,二进制
OUTDX,AL
POPAX
MOVDX,MY8254_COUNT0
OUTDX,AL
MOVAL,AH
OUTDX,AL
INCBX
MOVAH,00H
MOVAL,[BX]
TESTAL,0FFH
JZA2
PUSHAX
CALLDALLY
CALLBREAK
POPAX
JMPA1
A2:
MOVBX,OFFSETDTABLE
MOVAL,[BX]
MOVAH,00H
JMPA1
DALLY:
MOVCX,0F7FFH;根据不同机器配置修改此值
D1:
MOVAX,0D00H
D2:
DECAX
JNZD2
LOOPD1
BREAKPROCNEAR;检测是否有键按下
MOVAH,06H
MOVDL,0FFH
INT21H
JERETURN
MOVAX,4C00H
INT21H
RETURN:
RET
BREAKENDP
CODEENDS
ENDSTART
2)用PC机扬声器做发声实验
有三个计数器在PC机中集成,它们的功能、操作完全与8254兼容。
三个计数器的端口地址分别是40H,41H,42H。
控制寄存器地址为43H。
PC扬声器发声需要计数器2输出OUT2和端口61H(8255PB口)的D1、D0的控制,只有都为“1”时扬声器才可以发声。
我们可以将61H的D1、D0两位置1,然后改变计数器2的初值,使OUT2输出不同的频率,从而改变扬声器发声的音调。
PC机中定时器结构框图如图6-X所示。
具体实验步骤如下:
(1)编写程序,通过设置PC机内计数/定时器2,实现PC机内扬声器的发声
(2)注意退出时要恢复端口61H原来的值
(3)运行程序,观察发声是否正常
(4)若音乐节拍发声时间较长或较短,可以修改延时子程序中的计数值,调整发声时间到最佳。
图6-4PC机中定时器结构框图
;filename:
8254-3.asm
;用pc扬声器作发声实验
PC8254_COUNT0EQU40H
PC8254_COUNT1EQU41H
PC8254_COUNT2EQU42H
PC8254_MODEEQU43H
DATASEGMENT
BAKDB?
DTABLEDB33H,33H,3DH,33H,26H,26H,26H,26H,2DH,2DH,26H,2DH,33H
DB33H,33H,33H,33H,33H,4DH,45H,3DH,3DH,3DH,45H,4DH,45H
DB45H,45H,45H,45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H
DB26H,28H,2DH,2DH,26H,26H,33H,33H,33H,33H,45H,3DH,39H
DB39H,39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,2DH,2DH
DB26H,26H,26H,26H,26H,26H,28H,28H,2DH,28H,26H,26H,26H
DB26H,2DH,28H,26H,2DH,2DH,33H,3DH,4DH,45H,45H,45H,45H
DB45H,45H,45H,45H,33H,33H,3DH,33H,26H,26H,26H,28H,2DH
DB2DH,26H,2DH,33H,33H,33H,33H,33H,33H,45H,3DH,39H,39H
DB39H,52H,4DH,4DH,4DH,4DH,4DH,4DH,4DH,4DH,00H
DATAENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA
START:
INAL,61H
MOVBAK,AL
MOVAX,DATA
MOVDS,AX
MOVBX,OFFSETDTABLE
MOVAL,[BX]
MOVAH,00H
A1:
MOVDL,20H
MULDL;将值*20h=32al*dl->ax
PUSHAX
MOVDX,PC8254_MODE
MOVAL,0B6H;1011,0110B定
;;时器2,读写高低字节,方式3,二进制
OUTDX,AL
POPAX
MOVDX,PC8254_COUNT2
OUTDX,AL
MOVAL,AH
OUTDX,AL
MOVAL,BAK
ORAL,03H;端口61H的D1,D0置1
OUT61H,AL
INCBX
MOVAH,00H
MOVAL,[BX]
TESTAL,0FFH;是否结束,到00h
JZA2
PUSHAX
CALLDALLY
CALLBREAK
POPAX
JMPA1
A2:
MOVBX,OFFSETDTABLE
MOVAL,[BX]
MOVAH,00H
JMPA1;重新开始
DALLY:
MOVCX,0F7FFH
;延时,改变延时时间看效果
D1:
MOVAX,0D00H
D2:
DECAX
JNZD2
LOOPD1
BREAKPROCNEAR
MOVAH,06H;是否有键按下?
MOVDL,0FFH
INT21H
JERETURN
ANDAL,0FDH
;61HD1位置0,使扬声器不发声
OUT61H,AL
;d0gate2,d1在与门位置
MOVAL,AH
;这是一个无效语句,被下句冲掉?
MOVAL,BAK;恢复原值。
OUT61H,AL
MOVAX,4C00H
INT21H
RETURN:
RET
BREAKENDP
CODEENDS
ENDSTART
如有侵权请联系告知删除,感谢你们的配合!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验 68254 定时器 计数器 应用