130 likes | 265 Views
第八章 可编程接口芯片及应用. D 7. D 6. D 5. D 4. D 3. D 2. D 1. D 0. BCD 1=BCD 0= 二进制. 计数器选择 00 计数器 0 01 计数器 1 计数器 2 11 无用. 工作方式 000 方式 0 001 方式 1 010 方式 2 011 方式 3 100 方式 4 101 方式 5. 读 / 写方式 00 锁存 01 读 / 写低 8 位 10 读 / 写高 8 位 11 先读 / 写低 后读 / 写高. 8253 初始化编程 :.
E N D
第八章 可编程接口芯片及应用 D7 D6 D5 D4 D3 D2 D1 D0 BCD 1=BCD 0=二进制 • 计数器选择 • 00 计数器0 • 01 计数器1 • 计数器2 • 11 无用 工作方式 000 方式0 001 方式1 010 方式2 011 方式3 100 方式4 101 方式5 读/写方式 00 锁存 01 读/写低8位 10 读/写高8位 11 先读/写低 后读/写高 8253初始化编程: 1)写入方式字 2)写入计数初值 8253工作方式: 方式0——计数结束中断方式 方式1——硬件可重触发单稳态方式 方式2——速率波形发生器 方式3——方波速率发生器 方式4——软件触发选通 方式5——硬件触发选通
第八章 可编程接口芯片及应用 D0 D7 CLK0 外部计事 GATE0 D0 … OUT0 INTR D7 CLK1 8 2 5 3 2.5MHz FFAH CS OUT1 RD WR RD WR A0 A0 1KHz A1 A1 GATE1 CLK2 OUT2 秒 GATE2 8253的应用举例: 如图所示,8086系统中包含一片8253芯片,地址为0FFAH~0FFDH,编写初始化程序完成如下功能。 1)计数器0完成对外部事件计数功能,计满100次向CPU发出中断。 2)计数器1输入为2.5MHz方波脉冲,产生频率为1KHz的方波。。 3)计数器2输出标准秒脉冲时钟。 #0: 方式字:方式0 00010000B=10H 计数值:100D=64H #1: 方式字: 方式3 01110110B=76H 计数值:2.5M/1000=2500D #2: 方式字: 方式2 10110101B=B5H 计数值: 1000/1=1000D
8253的应用举例: 第八章 可编程接口芯片及应用 D0 D7 CLK0 外部计事 GATE0 D0 … OUT0 INTR D7 CLK1 8 2 5 3 2.5MHz FFFAH CS OUT1 RD WR RD WR A0 A0 1KHz A1 A1 GATE1 CLK2 OUT2 秒 GATE2 MOV DX,0FFDH MOV AL,10H OUT DX,AL ;初始化通道0 MOV DX,0FFAH MOV AL,64H ;计数值100 OUT DX,AL MOV DX,0FFDH MOV AL,76H OUT DX,AL ;初始化通道1为方式3 MOV DX,0FFBH MOV AX,2500D OUT DX,AL ;计数值低位 MOV AL,AH OUT DX,AL ;计数值高位 MOV DX,0FFDH MOV AL,0B5H OUT DX,AL MOV DX,0FFCH MOV AL,00H OUT DX,AL MOV AL,10H OUT DX,AL
第八章 可编程接口芯片及应用 8253的应用举例: 如果连接中断控制器8259,对计数口0进行中断管理可用以下8259的初始化程序。 MOV DX,偶数地址端口 MOV AL,13H ;0001 0011B 边沿触发、单片8259、8086 OUT DX,AL MOV DX,奇数端口地址 MOV AL,50H ;0101 0000B中断类型码50H—57H OUT DX,AL MOV AL,03 ;0000 0011B 自动EOI,8086 OUT DX,AL MOV AL,0FAH ;1111 1010B开放中断IR0、IR2 (OCW1) OUT DX,AL STI HH:HLT JMP HH
第八章 可编程接口芯片及应用 +5V OUT0 INT CLK0 +5V GATE0 光敏 电阻 光源 工件移 动方向 2.5Mz 8255PA0 CLK1 OUT1 GATE1 驱 动 扬声器 8253的应用举例: P334 8253应用举例 例:如图P334图8-28所示,一生产线,每通过50个工件,扬声器响5秒种,频率为2000Hz。设8253地址为40H~43H,8255A口地址为80H #0: 方式2计数工件,计数值50,BCD计数, 控制字00010101B=15H #1: 方式3驱动扬声器输入2.5MHZ,产生2000HZ的频率,计数值为2500000/2000=1250, 控制字:01110111B=77H 8255: PA0高电平启动扬声器发声。
第八章 可编程接口芯片及应用 8253的应用举例: 主程序: MOV AL,015H ;#0方式字 OUT 43H,AL MOV AL,50H ;#0计数值 OUT 40H,AL LOP: STI ;开中断 HLT JMP LOP ;等待中断 中断服务程序: MOV AL,01H ;启动喇叭 OUT 80H,AL MOV AL,77H ;#1方式字 OUT 43H,AL MOV AL,50H ;计数低位 OUT 41H,AL MOV AL,12H ;计数高位 OUT 41H,AL CALL DL5S ;延时 MOV AL,00 OUT 80H,AL ;关喇叭 IRET ;中断返回
第八章 可编程接口芯片及应用 8253的应用举例: 改进: 主程序:MOV AL,015H ;#0方式字 OUT 43H,AL MOV AL,50H ;#0计数值 OUT 40H,AL MOV AL,00 OUT 80H,AL ;关喇叭 MOV AL,77H ;#1方式字 OUT 43H,AL MOV AL,50H ;计数低位 OUT 41H,AL MOV AL,12H ;计数高位 OUT 41H,AL LOP: STI ;开中断 HLT JMP LOP ;等待中断 中断服务程序: MOV AL,01H ;启动喇叭 OUT 80H,AL CALL DL5S ;延时 MOV AL,00 OUT 80H,AL ;关喇叭 IRET ;中断返回
2.5 Mz OUT CLK 0 GATE 0 OUT 0 CLK CLK 1 GATE 1 OUT OUT 1 CLK +5 V +5 +5 V V 2 GATE 2 OUT 2 P339 8253应用举例 8253的应用电路如图所示,三个通道分别设置为:通道0为方式2,计数初值为1000;通道1为方式1,计数初值为500;通道2为方式3计数初值为2000。外接时钟为2.5Mz。在开关打到+5V后,计算OUT脉冲的重复周期和波形的持续时间。设端口地址为80H~83H,写出初始化程序。 OUT2的输出频率: =CLK2/2000=2500000/2000=1250(Hz) OUT1的输出频率: =CLK1/500=1250/500=2.5(Hz) OUT的持续时间: 是OUT1的输出周期=1/OUT1=1/2.5=0.4(秒) OUT的输出频率: =CLK0/1000=2500000/1000=2500(Hz) OUT的重复周期: =1/OUT0=1/2500=0.4(毫秒)
2.5 Mz OUT CLK 0 GATE 0 OUT 0 CLK CLK 1 GATE 1 OUT OUT 1 CLK +5 V +5 +5 V V 2 GATE 2 OUT 2 P339 8253应用举例 8253的应用电路如图所示,三个通道分别设置为:通道0为方式2,计数初值为1000;通道1为方式1,计数初值为500;通道2为方式3计数初值为2000。外接时钟为2.5Mz。在开关打到+5V后,计算OUT脉冲的重复周期和波形的持续时间。设端口地址为80H~83H,写出初始化程序。 通道0为方式2 0011 0100B=34H 通道1为方式1 0111 0010B=72H 通道2为方式3 1011 0110B=B6H MOV AL,34H OUT 83H,AL MOV AX,1000 OUT 80H,AL MOV AL,AH OUT 80H,AL MOV AL,72H OUT 83H,AL MOV AX,500 OUT 81H,AL MOV AL,AH OUT 81H,AL MOV AL,B6H OUT 83H,AL MOV AX,2000 OUT 82H,AL MOV AL,AH OUT 82H,AL
第八章 可编程接口芯片及应用 PCLK 1.193186Mz CLK2 40H~43H 8253 GATE2 8255(60H~63H)PBA0 OUT2 驱 动 CS DEBUG PC8253 8253的应用举例: 变频发声: 音频范围50Hz~20000Hz,对应计数值1.2M/50=24000~1.2M/20000=60 MOV BX, 24000D MOV AL, 0B6H ;10110110b写8253的2#控制字 OUT 43H, AL LOP0:MOV AX, BX ;取分频计数值 OUT 42H, AL ;送分频计数值低8位 MOV AL, AH OUT 42H, AL ;送分频计数值高8位 IN AL, 61H ;读8255 PB端口 OR AL, 0000 0011b ;只连接喇叭 OUT 61H, al ;喇叭发声 MOV DX, 10H LOP1: MOV CX, 0FFFFH ;延时 LOP: LOOP LOP DEC DX JNZ LOP1 SUB BX,60 JB LOP0 INT AL, 61H AND AL, 0FCH OUT 61H, AL
P376 8.22 定时计数器8253输入时钟频率为1MHZ,并设定为按BCD码计数,若定写 入的计数值为0080H,则该通道定时时间是多少? 解: 对于BCD码计数则0080H表示计数值为80 通道的输出频率为:1M/80=12500HZ 定时时间为:1/12500=8×10-5(S)=80(μS)
P376 8.23 试编程,将8253计数器0设置为模式1,计数初值为3000H,计数器1设置 为模式2,计数初值为2010H;计数器2设置为模式4,计数初值为4030H。 解: 设计数器地址为40至43H; 方式字分别为: 计数器0 00110010B=32H 计数器1 01110100B=74H 计数器2 10111000B=B8H MOV AL,32H OUT 43H,AL MOV AL,00H OUT 40H,AL MOV AL,30H OUT 40H,AL MOV AL,74H OUT 43H,AL MOV AL,10H OUT 41H,AL MOV AL,20H OUT 41H,AL MOV AL,B8H OUT 43H,AL MOV AL,30H OUT 42H,AL MOV AL,40H OUT 42H,AL
课后作业: • P376 8.24