实验6_8254定时器计数器应用实验

上传人:痛*** 文档编号:83447635 上传时间:2022-05-01 格式:DOC 页数:9 大小:534.50KB
返回 下载 相关 举报
实验6_8254定时器计数器应用实验_第1页
第1页 / 共9页
实验6_8254定时器计数器应用实验_第2页
第2页 / 共9页
实验6_8254定时器计数器应用实验_第3页
第3页 / 共9页
点击查看更多>>
资源描述
word实验六 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-1 8254计数应用实验参考接线图9 / 9; 计数应用实验; -PCI卡分配的第3个I/O空间 MY8254_COUNT0 EQU 0E440HMY8254_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 ?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 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- / 实际接线kk1-MOV AL,17H ; 00 01,011 1b :计数器0,读/写低8位;方式3,十进制数 OUT DX,AL MOV DX,MY8254_COUNT0MOV AL,5; 写入计数初值 3个高电平,2个低电平 OUT DX,ALA1: 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 0A0H,AL MOV AL,62H OUT 20H,ALMOV AX,0E4DH ; 显示字母 M加一空格 INT 10H MOV AX,0E20H INT 10HPOP DXPOP AX POP DS IRETBREAK 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 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定时应用实验 ; PCI卡分配的第3个I/O空间 MY8254_COUNT0 EQU 0E440HMY8254_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 ?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,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,ALMOV AX,0E30H ; 显示00回车,注意没有换行,同在一行显示 INT 10H MOV AX,0E30H INT 10H MOV AX,0E0DH INT 10HMOV DX,MY8254_MODE ;CLK=10KMOV AL, 35H ; 0011, 0101B 计数器0,读写低/高位 方式2 ;十进制计数方式 OUT DX,ALMOV 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,INTCSR_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 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,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定时应用实验参考接线图; 用实验系统扬声器做发声实验MY8254_COUNT0 EQU 0E440HMY8254_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, 33H, 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, 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,DATAMOV DS,AX MOV BX,OFFSET DTABLEMOV AL,BXMOV AH,00HA1: MOV DL,0AH ;CLK=1MHz MUL DLPUSH 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 DTABLEMOV AL,BXMOV AH,00HJMP A1 DALLY: MOV CX,0F7FFH ; 根据不同机器配置修改此值D1: MOV AX,0D00HD2: DEC AX JNZ D2 LOOP D1BREAK 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的控制,只有都为“1时扬声器才可以发声。我们可以将61H的D1、D0两位置1,然后改变计数器2的初值,使OUT2输出不同的频率,从而改变扬声器发声的音调。PC机中定时器结构框图如图6-X所示。具体实验步骤如下:(1) 编写程序,通过设置PC机计数/定时器2,实现PC机扬声器的发声(2) 注意退出时要恢复端口61H原来的值(3) 运行程序,观察发声是否正常(4) 假如音乐节拍发声时间较长或较短,可以修改延时子程序中的计数值,调整发声时间到最优。图6-4 PC机中定时器结构框图;用pc扬声器作发声实验PC8254_COUNT0 EQU 40HPC8254_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, 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 AX,DATAMOV DS,AX MOV BX,OFFSET DTABLEMOV AL,BXMOV AH,00HA1: MOV DL,20HMUL DL;将值*20h=32 al*dl-axPUSH AX MOV DX,PC8254_MODE MOV AL,0B6H; 1011,0110B 定;时器2,读写上下字节,方式3,二进制 OUT DX,ALPOP AX MOV DX,PC8254_COUNT2 OUT DX,AL MOV AL,AH OUT DX,ALMOV AL,BAK OR AL,03H; 端口61H的D1,D0置1 OUT 61H,ALINC BXMOV AH,00HMOV AL,BXTEST AL,0FFH ;是否完毕,到00h JZ A2 PUSH AX CALL DALLY CALL BREAK POP AX JMP A1A2: MOV BX,OFFSET DTABLEMOV AL,BXMOV AH,00HJMP A1; 重新开始DALLY: MOV CX,0F7FFH ; 延时,改变延时时间看效果D1: MOV AX,0D00HD2: DEC AX JNZ D2 LOOP D1BREAK PROC NEAR MOV AH,06H; 是否有键按下? MOV DL,0FFH INT 21H JE RETURN AND AL,0FDH ; 61H D1位置0,使扬声器不发声OUT 61H,AL ; d0 gate2, d1在与门位置MOV AL,AH ; 这是一个无效语句,被下句冲掉? MOV AL,BAK ;恢复原值。 OUT 61H,AL MOV AX,4C00H INT 21HRETURN:RETBREAK ENDPCODE ENDS END START
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!