1 / 14

§8.2 8253 应用举例

§8.2 8253 应用举例. 一、定时功能的应用 用 8253 产生各种定时波形. 例 8-1 已知: 8253 基地址为 310H , 3 通道所用时钟脉冲频率为 1MHz(=0.001ms) 。 要求: ( 1 )通道 0 输出频率为 2KHz 的方波; (2) 通道 1 产生宽度为 1ms 的负脉冲; ( 3 )通道 2 以硬件方式触发,输出单脉冲时间常数为 26 。. 分析 :通道 0 工作于方式 3 ,控制端 GATE 0 接 +5V , 时间常数 N0=1MHz/2KHz=500 ;

haruki
Download Presentation

§8.2 8253 应用举例

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. §8.2 8253应用举例 • 一、定时功能的应用 • 用8253产生各种定时波形 • 例8-1已知:8253基地址为310H,3通道所用时钟脉冲频率为1MHz(=0.001ms)。 • 要求: • (1)通道0输出频率为2KHz的方波; • (2)通道1产生宽度为1ms的负脉冲; • (3)通道2以硬件方式触发,输出单脉冲时间常数为26。 分析:通道0工作于方式3,控制端GATE0接+5V, 时间常数N0=1MHz/2KHz=500; 通道1工作于方式1,由控制端GATE1的正跳变触发,OUT1的宽 度为初值,单次触发,时间常数N1=1ms/0.001ms=1000; 通道2工作于方式5,由控制端GATE2的正跳变触发,可连续触发,时间常数N2=26。

  2. 00 11 011 1 码制 ;通道0初始化程序 MOV DX,316H ;置方式 MOV AL, 00110111B OUT DX,AL MOV DX,310H ;置初值 MOV AL,00H OUT DX,AL MOV AL,05H OUT DX,AL 通道 工作方式 数据读写方式 ;通道2初始化程序 MOV DX,316H ;置方式 MOV AL, 10011011B OUT DX,AL MOV DX,314H ;置初值 MOV AL,26H OUT DX,AL ;通道1初始化程序 MOV DX,316H ;置方式 MOV AL, 01110011B OUT DX,AL MOV DX,312H ;置初值 MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL

  3. 例8-2要求用8253产生一如图所示的信号波形。已知8253的地址为216H~219H,外部时钟脉冲频率为1MHz。请编写8253初始化程序和使其工作的程序。例8-2要求用8253产生一如图所示的信号波形。已知8253的地址为216H~219H,外部时钟脉冲频率为1MHz。请编写8253初始化程序和使其工作的程序。 1)确定通道工作方式 2)确定时间常数 通道0: 2ms / 1μs=2000=07D0H 通道0时间常数写入216H端口 通道0:方波发生器,方式3 通道1:速率发生器,方式2 二个通道的工作方式控制字分别写至控制端口219H。 通道1: 102ms / 2ms=51=33H 通道1时间常数写入217H端口

  4. MOV DX,219H MOV AL,36H ;通道0控制字0011,0110 OUT DX,AL ;向控制口写通道0工作方式控制字 MOV DX,216H MOV AL,0D0H OUT DX,AL ;向通道0口写时间常数低8位二进制数 MOV AL,07H OUT DX,AL ;向通道0口写时间常数高8位二进制数 MOV DX,219H MOV AL,54H ;通道1控制字0101,0100 OUT DX,AL ;向控制口写通道1工作方式控制字 MOV DX,217H MOV AL,33H OUT DX,AL ;向通道1口写时间常数8位二进制数

  5. 控制LED的点亮或熄灭 例8-3 假设在一个8086的系统中,使用8253控制一个LED的点亮或熄灭。8253各端口地址分别为81H,83H,85H,87H,CLK端输入的时钟信号频率为2MHz,LED点亮和熄灭的时间均为10s。 要求设计硬件电路和驱动程序。 • 分析: • 可以用周期为20s的方波信号驱动LED • 20s需要n=20/ 0.5μs=4*107个时钟周期 • 单一通道的计数初值最大为216=65536,因此需要多个定时器通道进行级连。 • 计数器0与计数器1级连: • 计数器0的初值=5000,f0=2×106Hz/5000=400Hz; 工作于方式2 • 计数器1的初值=8000, f0=400Hz/8000=1/20Hz ; 工作于方式3

  6. +5V 译 码 器 M/IO 8253 A3~A15 CS GATA0 GATA1 A0 CLK0 2MHz A1 A2 A0 A1 OUT0 CLK1 D8~D15 WR RD WR RD OUT1 LED 用8253控制LED的点亮或熄灭

  7. ;初始化程序 MOV AL,00110101B ;通道0采用方式2 OUT 87H,AL ;向控制口写通道0工作方式控制字 MOV AL,00H OUT 81H,AL ;向通道0口写计数初值低字节 MOV AL,50H OUT 81H,AL ;向通道0口写计数初值高字节 MOV AL,01110111B ;通道1采用方式3 OUT 87H,AL ;向控制口写通道1工作方式控制字 MOV AL,00H ;向通道1口写计数初值低字节 OUT 83H,AL MOV AL,80H ;向通道1口写计数初值高字节 OUT 83H,AL

  8. 8253端口地址: F0H, F2H, F4H, F6H, 8253工作方式:计数器1工作于方式0,按BCD计数,先读写低字节,后读写高字节。 +5V +5V +5V D7-D0 OUT1 WR RD A1 A0 CS INTR WR RD A2 A1 GATE1 CLK1 M/ IO 译码 AB 二、计数功能的应用 例8-3:用8253设计一个自动计数系统(计数500向CPU提出中断申请)。

  9. 01 00 000 0 ;通道1初始化程序 MOV AL, 01110001B OUT 0F6H, AL MOV AL, 99H OUT 0F2H, AL MOV AL, 04H OUT 0F2H, AL 数据锁存命令 ;读通道1计数值程序 MOV AL, 01000000B OUT 0F6H, AL IN AL, 0F2H MOV AH, AL IN AL, 0F2H XCHG AH, AL 当前计数值的读取 (1)利用GATE控制信号,使计数器停止计数。故干扰了计数过程,需要硬件电路配合。 (2)利用计数器锁存命令锁存现行计数值,就可从相应的计数器通道中读取计数值。

  10. 三、8253在PC/XT中的应用 • 8253-5 • 引脚和功能与8253完全一致,性能略强。 • 端口地址:40H,41H,42H,43H • CLK0~2端输入的时钟信号相同f=1.19318MHz=1234DEH Hz • 计数器0——实时时钟 • 采用方式3 • GATE0=1,初始化后,一直处于计数工作状态 • 初值n=0, 即相当于216=65536。f0= f/65536=18.2Hz • 采用内部16位计数器,每中断1次加1,则计数器计满时所经历的时间=65536×1/18.2=3600秒=1小时 • 计数器1——动态RAM刷新定时器 • 采用方式2 • GATE1=1,初始化后,一直处于计数工作状态 • 初值n=18, f1= f/18=66.2878KHz, T1=15.09μs • OUT1的上升沿使D触发器输出置1,作为DMA请求信号,实现对DRAM的动态刷新。

  11. 计数器2——扬声器音调控制 • 采用方式3 • 初值n=533H, f2= f/533H=896Hz • GATE2受8255-3的PB0的控制,PB0=1时允许计数。 • OUT2输出的方波信号与PB1信号相与后送扬声器的驱动电路。 • 两种控制扬声器发声的方法 • PB0=1。扬声器的发声频率由n确定,发声时间长短由PB1信号确定。 • n=f/f2=1193180/f2=1234DE/ f2 • PB0=0,OUT2=1。扬声器的发声频率由PB1的状态变化的频率决定。

  12. ;发声频率由定时器2的初值n决定 MOV AL,10110110B ;通道2采用方式2 OUT 43H,AL MOV DX, 0012H ;被除数高16位,1193180=1234DEH MOV AX, 34DEH ;被除数低16位 DIV DI ;DI中存放频率值 OUT 42H,AL ;向通道2送低8位 MOV AL,AH OUT 42H,AL ;向通道2送高8位 IN AL,61H ;读入PB口 MOV AH,AL OR AL,03H ;使PB0,PB1置1 OUT 61H,AL ;接通扬声器,使之发声 …

  13. 发声长度→DX 设置BX0=0,BX1 =0 BX1 取反 1/2周期长度→CX CX-1=0? DX-1=0? ;发声频率由PB1的状态变化的频率决定 MOV DX,100 ;发声长度 IN AL,61H AND AL,0FCH ;使PB0,PB1置0 SOUND: XOR AL,02H ;PB1状态取反 OUT 61H,AL ; MOV CX,140H ;1/2周期长度 WAIT: LOOP WAIT ;延时 DEC DX JNZ SOUND …

More Related