实验6_8254定时器计数器应用实验_第1页
实验6_8254定时器计数器应用实验_第2页
实验6_8254定时器计数器应用实验_第3页
实验6_8254定时器计数器应用实验_第4页
实验6_8254定时器计数器应用实验_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、实验六 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次后产生中断

2、请求,在屏幕上显示字符“M”。8254计数应用参考连接线图如图6-1。图6-1 8254计数应用实验参考接线图; 计数应用实验;filename : 8254-1.asm; -PCI卡分配的第3个I/O空间 MY8254_COUNT0 EQU 0E440H MY8254_COUNT1 EQU 0E441HMY8254_COUNT2 EQU 0E442HMY8254_MODE EQU 0E443H;-PCI卡分配的第1个I/O空间 INTCSR_BYTE0 EQU 0DC38HINTCSR_BYTE1 EQU 0DC39HINTCSR_BYTE2 EQU 0DC3AHINTCSR_BYTE3 E

3、QU 0DC3BHIMB4_BYTE3 EQU 0DC1FHDATA SEGMENTCSBAK DW ? IPBAK DW ?MKBAK DB ?DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: CLI MOV AX,DATA MOV DS,AX MOV DX,INTCSR_BYTE0; 设置pci卡 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV DX,INTCSR_BYTE3

4、 MOV AL,00H OUT DX,AL MOV AX,0000H MOV ES,AX;-MOV DI, 01C4H ; irq 9 , INT 71h, 01c4= 71h*4 ;- MOV AX,ES:DI MOV IPBAK,AX ;IP MOV AX,OFFSET MYINT CLD STOSW MOV AX,ES:DI ;CS MOV CSBAK,AX MOV AX,SEG MYINT STOSW IN AL,0A1H MOV MKBAK,AL;- AND AL,0fdh ; irq9;- OUT 0A1H,AL STIMOV DX,MY8254_MODE ;CLK=KK1- /

5、实际接线kk1-MOV AL,17H ; 00 01,011 1b :计数器0,读/写低8位;方式3,十进制数 OUT DX,AL MOV DX,MY8254_COUNT0MOV AL,5 ; 写入计数初值 3个高电平,2个低电平 OUT DX,AL A1: NOP CALL BREAK JMP A1;-MYINT: PUSH DS PUSH AX PUSH DXMOV DX,IMB4_BYTE3 ; 清PCI卡中断标志 IN AL,DX MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL;- MOV AL,61H ; irq9 从片 D1,主片 D2;- OUT

6、 0A0H,AL MOV AL,62H OUT 20H,AL MOV AX,0E4DH ; 显示字母 M加一空格 INT 10H MOV AX,0E20H INT 10HPOP DXPOP AX POP DS IRET BREAK PROC NEAR PUSH DS MOV AH,06H MOV DL,0FFH INT 21H JE RETURN POP DS CLI MOV AL,MKBAK OUT 0A1H,AL MOV AX,0000H MOV ES,AX;-MOV DI,01C4H ;irq 9 INT 71H,01C4H=71H*4;- MOV AX,IPBAK CLD STOSW

7、MOV AX,CSBAK STOSWMOV DX,INTCSR_BYTE1; pci卡设置 MOV AL,00H OUT DX,AL STI MOV AX,4C00H INT 21HRETURN:POP DS RETBREAK ENDPCODE ENDSEND START2. 定时应用实验编写程序,将8254的计数器0设置为方式2,用信号源10kHz作为CLK0时钟,计数值为十进制0(即最大计数值10000),OUT0连接IRQ,这样每计时1s后产生中断请求,制作一个秒表显示,每计时60秒自动归零。8254定时应用实验参考连线图:图6-2 8254定时应用实验参考接线图; 8254定时应用实验

8、 ;filename : 8254-2.asm; PCI卡分配的第3个I/O空间 MY8254_COUNT0 EQU 0E440H MY8254_COUNT1 EQU 0E441HMY8254_COUNT2 EQU 0E442HMY8254_MODE EQU 0E443H; PCI卡分配的第1个I/O空间 INTCSR_BYTE0 EQU 0DC38HINTCSR_BYTE1 EQU 0DC39HINTCSR_BYTE2 EQU 0DC3AHINTCSR_BYTE3 EQU 0DC3BHIMB4_BYTE3 EQU 0DC1FHDATA SEGMENTCSBAK DW ? IPBAK DW ?

9、MKBAK DB ?SEC1 DB 30H ; 显示秒的个位SEC0 DB 31H ; 显示秒的十位DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: CLI MOV AX,DATA MOV DS,AX MOV DX,INTCSR_BYTE0 MOV AL,00H OUT DX,AL MOV DX,INTCSR_BYTE1 MOV AL,1FH OUT DX,AL MOV DX,INTCSR_BYTE2 MOV AL,3FH OUT DX,AL MOV DX,INTCSR_BYTE3 MOV AL,00H OUT DX,AL MOV AX,00

10、00H MOV ES,AX;-MOV DI, 01C4H ; irq 9 , INT 71h, 01c4= 71h*4 ;- MOV AX,ES:DI MOV IPBAK,AX ;IP MOV AX,OFFSET MYINT CLD STOSW MOV AX,ES:DI ;CS MOV CSBAK,AX MOV AX,SEG MYINT STOSW IN AL,0A1H MOV MKBAK,AL;- AND AL,0fdh ; irq9;- OUT 0A1H,ALMOV AX,0E30H ; 显示00回车,注意没有换行,同在一行显示 INT 10H MOV AX,0E30H INT 10H M

11、OV AX,0E0DH INT 10HMOV DX,MY8254_MODE ; CLK=10KMOV AL, 35H ; 0011, 0101B 计数器0,读写低/高位 方式2 ;十进制计数方式 OUT DX, AL MOV DX,MY8254_COUNT0 ; 写入计数值10000 MOV AL,0 OUT DX,AL OUT DX,AL STIA1: NOP CALL BREAK JMP A1MYINT: PUSH DS PUSH AX PUSH DX MOV AX,DATA MOV DS,AXMOV DX,IMB4_BYTE3 ; 清PCI卡中断标志 IN AL,DX MOV DX,IN

12、TCSR_BYTE2 MOV AL,3FH OUT DX,AL;- MOV AL,61H ; irq9 从片 D1,主片 D2;- OUT 0A0H,AL MOV AL,62H OUT 20H,AL MOV AH,0EH MOV AL,SEC1 INT 10H MOV AH,0EH MOV AL,SEC0 INT 10HMOV AX,0E0DH ; 只回车,不换行,还在原处 INT 10HINC SEC0 ; 秒的个位+1CMP SEC0,3AH ; 个位计数到10 JZ B3 JMP B1B3: INC SEC1 MOV SEC0,30H CMP SEC1,36H ; 十位计数到 6 JZ

13、B4 JMP B1B4: MOV SEC1,30H ; 计到60,重新到零 B1: POP DXPOP AXPOP DS IRET;-BREAK PROC NEAR PUSH DS MOV AH,06H MOV DL,0FFH INT 21H JE RETURN POP DS CLI MOV AL,MKBAK OUT 0A1H,AL MOV AX,0000H MOV ES,AXMOV DI,01C4H ; irq 9 INT 71H,01C4H=71H*4 MOV AX,IPBAK CLD STOSW MOV AX,CSBAK STOSW MOV DX,INTCSR_BYTE1 MOV AL,

14、00H OUT DX,AL STI MOV AX,4C00H INT 21HRETURN:POP DS RETBREAK ENDPCODE ENDSEND START3. 电子发声实验:1)用实验系统扬声器做发声实验用信号源1MHz作为扬声器发声基准时钟,计数器0设置为工作方式3,由表格查出每个音符对应的时间常数送给计数器0,以确定音调,驱动扬声器产生音乐。8254电子发声实验参考图如图6-3所示。(发声频率已设定,但发声时间是通过软件延时控制的,因此发声时间随不同档次PC机而变化,可以通过调节延时子程序参数来调节发声时间)图6-3 8254定时应用实验参考接线图; 用实验系统扬声器做发声实验

15、MY8254_COUNT0 EQU 0E440H MY8254_COUNT1 EQU 0E441HMY8254_COUNT2 EQU 0E442HMY8254_MODE EQU 0E443HDATA SEGMENTDTABLE DB 33H, 33H, 3DH, 33H, 26H, 26H, 26H, 26H, 2DH, 2DH, 26H, 2DH, 33HDB 33H, 33H, 33H, 33H, 33H, 4DH, 45H, 3DH, 3DH, 3DH, 45H, 4DH, 45HDB 45H, 45H, 45H, 45H, 45H, 45H, 45H, 33H, 33H, 3DH, 3

16、3H, 26H, 26HDB 26H, 28H, 2DH, 2DH, 26H, 26H, 33H, 33H, 33H, 33H, 45H, 3DH, 39H DB 39H, 39H, 52H, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 2DH, 2DHDB 26H, 26H, 26H, 26H, 26H, 26H, 28H, 28H, 2DH, 28H, 26H, 26H, 26HDB 26H, 2DH, 28H, 26H, 2DH, 2DH, 33H, 3DH, 4DH, 45H, 45H, 45H, 45HDB 45H, 45H, 45H, 45H,

17、33H, 33H, 3DH, 33H, 26H, 26H, 26H, 28H, 2DHDB 2DH, 26H, 2DH, 33H, 33H, 33H, 33H, 33H, 33H, 45H, 3DH, 39H, 39HDB 39H, 52H, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 00HDATA ENDSCODE SEGMENTASSUME CS:CODESTART: MOV AX,DATA MOV DS,AX MOV BX,OFFSET DTABLEMOV AL,BXMOV AH,00HA1: MOV DL,0AH ;CLK=1MHz MUL DLP

18、USH AX MOV DX,MY8254_MODE MOV AL,36H ;0011,0110B计数器0,读写低高字节,;方式3,二进制 OUT DX,ALPOP AX MOV DX,MY8254_COUNT0 OUT DX,AL MOV AL,AH OUT DX,ALINC BXMOV AH,00HMOV AL,BXTEST AL,0FFH JZ A2 PUSH AX CALL DALLY CALL BREAK POP AX JMP A1A2: MOV BX,OFFSET DTABLE MOV AL,BXMOV AH,00HJMP A1 DALLY: MOV CX,0F7FFH ; 根据不同

19、机器配置修改此值D1: MOV AX,0D00HD2: DEC AX JNZ D2 LOOP D1 BREAK PROC NEAR ;检测是否有键按下 MOV AH,06H MOV DL,0FFH INT 21H JE RETURN MOV AX,4C00H INT 21HRETURN:RETBREAK ENDPCODE ENDS END START2) 用PC机扬声器做发声实验有三个计数器在PC机中集成,它们的功能、操作完全与8254兼容。三个计数器的端口地址分别是40H,41H,42H。控制寄存器地址为43H。PC扬声器发声需要计数器2输出OUT2和端口61H(8255PB口)的D1、D0

20、的控制,只有都为“1”时扬声器才可以发声。我们可以将61H的D1、D0两位置1,然后改变计数器2的初值,使OUT2输出不同的频率,从而改变扬声器发声的音调。PC机中定时器结构框图如图6-X所示。具体实验步骤如下:(1) 编写程序,通过设置PC机内计数/定时器2,实现PC机内扬声器的发声(2) 注意退出时要恢复端口61H原来的值(3) 运行程序,观察发声是否正常(4) 若音乐节拍发声时间较长或较短,可以修改延时子程序中的计数值,调整发声时间到最佳。图6-4 PC机中定时器结构框图; filename: 8254-3.asm;用pc扬声器作发声实验PC8254_COUNT0 EQU 40HPC82

21、54_COUNT1 EQU 41HPC8254_COUNT2 EQU 42HPC8254_MODE EQU 43HDATA SEGMENTBAK DB ?DTABLE DB 33H, 33H, 3DH, 33H, 26H, 26H, 26H, 26H, 2DH, 2DH, 26H, 2DH, 33HDB 33H, 33H, 33H, 33H, 33H, 4DH, 45H, 3DH, 3DH, 3DH, 45H, 4DH, 45HDB 45H, 45H, 45H, 45H, 45H, 45H, 45H, 33H, 33H, 3DH, 33H, 26H, 26HDB 26H, 28H, 2DH,

22、2DH, 26H, 26H, 33H, 33H, 33H, 33H, 45H, 3DH, 39H DB 39H, 39H, 52H, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 2DH, 2DHDB 26H, 26H, 26H, 26H, 26H, 26H, 28H, 28H, 2DH, 28H, 26H, 26H, 26HDB 26H, 2DH, 28H, 26H, 2DH, 2DH, 33H, 3DH, 4DH, 45H, 45H, 45H, 45HDB 45H, 45H, 45H, 45H, 33H, 33H, 3DH, 33H, 26H, 26H, 26H, 28H, 2DHDB 2DH, 26H, 2DH, 33H, 33H, 33H, 33H, 33H, 33H, 45H, 3DH, 39H, 39HDB 39H, 52H, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 4DH, 00HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART:IN AL,61H MOV BAK,AL MOV A

温馨提示

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

评论

0/150

提交评论