微机原理与接口技术 西安邮电大学计算机学院 杨锐
第八章 可编程接口芯片及应用 本节主要内容 8253的编程 1 2 8253的应用
第八章 可编程接口芯片及应用--8253的编程 8253的控制字 格式 D7 D6 D5 D4 D3 D2 D1 D0 SC1 SC0 第八章 可编程接口芯片及应用--8253的编程 D7 D6 D5 D4 D3 D2 D1 D0 8253的控制字 格式 SC1 SC0 RL1 RL0 M2 M1 M0 BCD D D D D D D D D 7 6 5 4 3 2 1 计数器选择 读写格式 工作方式 数制 0 —二进制计数 00 —选择计数器0 1— 十进制计数 01 —选择计数器1 10 —选择计数器2 11 —非法 000 —方式0 001 —方式1 00 —将减1计数器CE中的数据 ×10 —方式2 锁存到OL中(锁存功能) ×11 —方式3 01 —对计数器的低8位读或写 100 —方式4 101 —方式5 10 —对计数器的高8位读或写 11 —计数器16位操作(先低8 位,后高8位读或写)
8253的初始化编程 第八章 可编程接口芯片及应用--8253的编程 确认端口地址 第八章 可编程接口芯片及应用--8253的编程 8253的初始化编程 确认端口地址 确定工作方式与计数初值 确定控制字 写计数器的控制字与计数 器计数初值,完成初始化编 程 设8253的端口地址为0040H0043H,已知时钟端CLK2输入信号的频率为2 MHz。使用8253计数器2产生频率为40 kHz的方波,初始化8253,完成所需功能。
8253的初始化编程 第八章 可编程接口芯片及应用--8253的编程 例如: 第八章 可编程接口芯片及应用--8253的编程 8253的初始化编程 确认端口地址 地址范围40H~43H 0#计数器端口地址:40H 1#计数器端口地址:41H 2#计数器端口地址:42H 控制寄存器端口地址:43H 例如: 设8253的端口地址为0040H0043H,已知时钟端CLK2输入信号的频率为2 MHz。使用8253计数器2产生频率为40 kHz的方波,初始化8253,完成所需功能。
第八章 可编程接口芯片及应用--8253的编程 8253的初始化编程 例如: 第八章 可编程接口芯片及应用--8253的编程 例如: 设8253的端口地址为0040H0043H,已知时钟端CLK2输入信号的频率为2 MHz。使用8253计数器2产生频率为40 kHz的方波,初始化8253,完成所需功能。 8253的初始化编程 确定工作方式与计数初值 工作于方式3,输出方波 计数初值=输入频率/输出频率 =2000000Hz /40000Hz =50 =0032H
8253的初始化编程 第八章 可编程接口芯片及应用--8253的编程 第八章 可编程接口芯片及应用--8253的编程 8253的初始化编程 确定控制字 设8253的端口地址为0040H0043H,已知时钟端CLK2输入信号的频率为2 MHz。使用8253计数器2产生频率为40 kHz的方波,初始化8253,完成所需功能。 1 0 1 1 0 1 1 B6H
8253的初始化编程 第八章 可编程接口芯片及应用--8253的编程 初始化程序 MOV AL,10110110B 例如: 第八章 可编程接口芯片及应用--8253的编程 8253的初始化编程 初始化程序 MOV AL,10110110B OUT 43H,AL ;送控制字 MOV AL,32H OUT 42H,AL ;送低8位 XOR AL,AL OUT 42H,AL ;送高8位 例如: 设8253的端口地址为0040H0043H,已知时钟端CLK2输入信号的频率为2 MHz。使用8253计数器2产生频率为40 kHz的方波,初始化8253,完成所需功能。
在计数过程中读8253 的计数值 第八章 可编程接口芯片及应用--8253的编程 给控制字寄存器写入锁存 命令 OUT 43H,AL 第八章 可编程接口芯片及应用--8253的编程 在计数过程中读8253 的计数值 给控制字寄存器写入锁存 命令 从锁存器中读出计数值, 若是16位,则分别读出 不影响计数通道正常计数 在前例的基础上,读出2#计数器当前计数值的程序段: MOV AL, 10000000B OUT 43H,AL IN AL,42H ;读低8位 MOV CL,AL IN AL,42H ;读高8位 MOV CH,AL ;CX中是当前计数值
第八章 可编程接口芯片及应用 本节主要内容 8253的编程 1 2 8253的应用
8253在PC机中的应用 第八章 可编程接口芯片及应用--8253的应用 计数器 端口地址 工作方式 功能 40H 方式3 第八章 可编程接口芯片及应用--8253的应用 8253在PC机中的应用 计数器 端口地址 工作方式 功能 40H 方式3 给系统日历时钟提供定时中断 1 41H 方式2 给DMA控制器定时发送刷新请求 2 42H 输出方波控制扬声器发声 控制寄存器 43H
第八章 可编程接口芯片及应用--8253的应用 8253的应用举例2—8253在PC机中的应用
第八章 可编程接口芯片及应用--8253的应用 MOV AL,36H OUT 43H,AL MOV AL,0 OUT 40H,AL 第八章 可编程接口芯片及应用--8253的应用 1) 计数器0 该计数器向系统日历时钟提供定时中断 工作方式为方式3 计数器计数初值预置为0 OUT0输出方波的频率为1.19 MHz/65536=18.21Hz,即每隔55ms申请一次日历时钟中断。一分钟1092次,一小时65543次,24小时1573040(001800B0H)次。 中断服务程序对中断次数进行计数,形成实时时钟。 MOV AL,36H OUT 43H,AL MOV AL,0 OUT 40H,AL 一个小时为65543次,一分钟为1092次,一秒钟则为18.2次 1、每55ms申请一次中断,即1s申请18.2次,从而可以考虑1天之内包含多少个55ms。 2、利用54.945ms的计时单位去计算一天的时间。24小时=24*60*60*1000/54.945ms=1573040=0018 00B0H(次) 从而一个小时为65543次,一分钟为1092次,一秒钟则为18.2次 3、在BIOS区开辟双字变量: TIMER-LO:40H:6CH TIMER-HI:40H:6EH 4、通过向IR0申请中断,调用8号中断中断服务子程序中加1。每次申请中断后,中断服务程序中给TIMER-LO的单元中加1,直到FFFFH则让TIMER-LO清零,高字变量进1.直到: TIMER-LO中为00B0H TIMER-HI中为0018H,则又开始了第二天的计时。即可实现日时钟的计时。 8号中断还有一些功能:完成软驱电机测速以及调用报时中断1CH
第八章 可编程接口芯片及应用--8253的应用 MOV AL,54H OUT 43H,AL MOV AL,12H OUT 41H,AL 第八章 可编程接口芯片及应用--8253的应用 2) 计数器1 向DMA控制器定时发送动态存储器刷新请求 方式2工作,初值18 频率为1.19MHz/18=662878kHz。周期为15.09µs。 OUT1输出从低电平变为高电平使触发器置1,输出一个正电平信号给8237DREQ0,作为内存刷新的DMA请求信号DRQ0。 MOV AL,54H OUT 43H,AL MOV AL,12H OUT 41H,AL
第八章 可编程接口芯片及应用--8253的应用 3) 计数器2 第八章 可编程接口芯片及应用--8253的应用 3) 计数器2 在IBM PC/XT机的BIOS中有一个声响子程序BEEP,它将计数器2设置为工作方式3,作为方波发生器输出约1 KHz的方波,经滤波驱动后推动扬声器发声。 初值:533H,初值决定了发声的频率,即音调,而对门控信号的控制决定了发声的长短。 MOV AL,0B6H OUT 43H,AL MOV AX,533H OUT 42H,AL MOV AL,AH OUT 42H, AL
本次课内容就介绍完了,同学们,再见!