=4000
(3)通道2输出单脉冲,宽度为400μs,应工作在方式0 , 通道2的定时初值=400μs/(1/ 2MHz)-1=799。 硬件连结图如下图所示。
8253的初始化程序: ;通道0初始化程序
MOV DX,306H
MOV AL,00110111B ;通道0控制字,读写两字节,方式3,BCD码计数 OUT DX, AL MOV DX,300H
MOV AL, 00H
OUT DX, AL ;写人低字节 MOV AL, 20H
OUT DX, AL ;写人高字节 ;通道1初始化程序
MOV DX,306H
MOV AL,01110101B ;通道1控制字,读写两字节,方式2,BCD码计数 OUT DX, AL ;写人方式字 MOV DX,302H
MOV AL, 00H ;低字节
OUT DX,AL ;写人低字节 MOV AL, 40H
OUT DX, AL ;写人高字节 ;通道2初始化程序
MOV DX,306H
MOV AL, 10110001B ;通道2方式字,读写两字节,方式0,BCD码计数 OUT DX,AL MOV DX,304H
MOV AL,99H ;计数初值字节 OUTDX,AL ;写人低字节
MOV AL, 07H
OUT DX, AL ;写人高字节 HLT
5. 设8254的端口地址为40----43H,时钟频率f=5MHz,通道2接1个LED指示灯。要求LED指示灯点亮4秒钟后,再熄灭4秒钟后。并不断重复该过程。试编写8254初始化程序。 解:
LED指示灯点亮4秒钟后,再熄灭4秒钟后。并不断重复该过程。利用通道2输出接LED指示灯,需要产生周期为8秒的方波。
将5MHz时钟加到CLK2端,OUT2输出的方波脉冲周期最大为0.2μs×65536=13107.2μs=13.1072ms,
达不到8秒。此时可以使用2个8254通道级连方式来实现。若级连1、2通道,设其初值分别为N1和N2,8s/(1/5MHz) =40000000,则级连后作为一个整体的计数值为N=20000000=N1×N2=5000×8000。
通道1,可选方式2或3,
通道2,选方式3,连续波形,实现不断重复。 N1=5000 N2=8000 ;通道1初始化程序
MOV AL, 01110101B ;通道1方式字,读写两字节,方式2,BCD码计数 OUT 43H,AL
MOV AX, 5000H
OUT41H,AL ;写人低字节
MOV AL, AH
OUT 41H, AL ;写人高字节
HLT
;通道2初始化程序
MOV AL,10110111B ;通道2控制字,读写两字节,方式3,BCD码计数 OUT 43H, AL
MOV AX, 8000H OUT 42H, AL ;写人低字节 MOV AL, AH
OUT 42H, AL ;写人高字节
14. 设8253的通道0----2和控制口的地址分别为300H、302H、304H、306H,定义通道0工作在方式3,CLK0=2MHz,使编写初始化程序,并画出硬件连接图。要求通道0输出1.5KHz的方波,通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲。通道2每秒钟向CPU发50次中断请求。 解:
8253的口的地址分别为300H、302H、304H、306H,连续的偶地址,说明CPU为8086.
(1)通道0输出1.5KHz的方波,应工作在方式3,2MHz/1.5K Hz=1334,则可得通道0的定时初值为1334=536H。
(2)通道1用通道0的输出作计数脉冲,输出频率为300Hz的序列负脉冲,应工作在方式2, 1.5K Hz /300Hz =5。通道1的定时初值为5。
(3)通道2每秒钟向CPU发50次中断请求,可工作在方式2(或方式3),以2MHz信号作计数脉冲,2MHz /50Hz=40000=9C40H。通道2的定时初值9C40H(也可用通道1的输出作计数脉冲) 硬件连结图如下图所示。
8253的初始化程序: ;通道0初始化程序
MOV DX,306H
MOV AL,00110110B ;通道0控制字,读写两字节,方式3,二进制计数 OUT DX, AL MOV DX,300H
MOV AX, 536H
OUT DX, AL ;写人低字节 MOV AL, AH
OUT DX, AL ;写人高字节 ;通道1初始化程序
MOV DX,306H
MOV AL,01010100B ;通道1控制字,只读写低宇节,方式2,二进制计数 OUT DX, AL ;写人方式字 MOV DX,302H
MOV AL,05H ;低字节
OUT DX,AL ;写人低字节 ;通道2初始化程序
MOV DX,306H
MOV AL, 10110100B ;通道2方式字,读写两字节,方式2,二进制码计数 OUT DX,AL MOV DX,304H
MOV AX,9C40H ;计数初值字节 OUTDX,AL ;写人低字节
MOV AL, AH
OUT DX, AL ;写人高字节 HLT
15. 某微机系统中,8253的端口地址为40----43H,时钟频率为5MHz,要求通道0输出方波,使计算机每秒钟产生18.2次中断;通道1每隔15μs向8237提出一次DMA1请求;通道2输出频率为2000Hz的方波。试编写8253的初始化程序,并画出有关的硬件连线图。 解:
8253的口地址为40H、41H、42H、43H。
(1)通道0输出方波,应工作在方式3,5MHz/18.2Hz=274725.3>16位定时器的最大定时初值65536。因
此,需要两个计数器的级连。若以通道2的输出作为通道0的时钟输入,则可得通道0的定时初值=2000Hz/18.2Hz-1=110=6EH
(2)通道1每隔15μs向8237提出一次DMA1请求,可工作在方式2(或方式3),通道1的定时初值=15μs /(1/5MHz)=75=4BH。
(3)通道2输出频率为2000Hz的方波,应工作在方式3,通道2的定时初值=5MHz /2000Hz-1=2500-1=9C4H 硬件连结图如下图所示。
8253的初始化程序: ;通道2初始化程序
MOV AL,10110110B ;通道2控制字,读写两字节,方式3,二进制计数 OUT 43H, AL
MOV AX, 9C4H OUT 42H, AL ;写人低字节 MOV AL, AH
OUT 42H, AL ;写人高字节 ;通道0初始化程序
MOV AL,00010110B ;通道0控制字,只读写低宇节,方式3,二进制计数 OUT43H,AL ;写人方式字 MOV AL, 6EH ;低字节
OUT 40H,AL ;写人低字节
;通道1初始化程序
MOV AL, 01010100B ;通道1方式字,只读写低字节,方式2,二进制码计数 OUT 43H,AL
MOV AL, 4BH ;低字节 OUT41H,AL ;写人低字节 HLT
第9章 作业
P231
9. 8255A的方式选择字和置位复位字都写入什么端口?用什么方式区分它们? 答:
8255A的方式选择字和C口置位复位字都写入控制端口(写入控制字寄存器中)。用特征位D7区分, D7=1,为方式选择控制字, D7=0,为C口的按位置位/复位
12. 8255A的端口地址同第11题(80H, 82H, 84H, 86H),要求PC4输出高电平,PC5输出低电平,PC6输出一个正脉冲,试写出完成这些功能的指令序列。 解:
MOV AL,10000010B