《常用可编程接口芯片定时器PPT讲稿.ppt》由会员分享,可在线阅读,更多相关《常用可编程接口芯片定时器PPT讲稿.ppt(54页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、常用可编程接口芯片定时器常用可编程接口芯片定时器第1页,共54页,编辑于2022年,星期六8.1 8.1 定时控制接口定时控制接口定时控制具有极为重要的作用定时控制具有极为重要的作用微机控制系统中常需要定时中断、定时检测、微机控制系统中常需要定时中断、定时检测、定时扫描等定时扫描等实时操作系统和多任务操作系统中要定时进行实时操作系统和多任务操作系统中要定时进行进程调度进程调度PCPC机的日时钟计时、机的日时钟计时、DRAMDRAM刷新定时和扬声器音刷新定时和扬声器音调控制都采用了定时控制技术调控制都采用了定时控制技术可编程定时器芯片可编程定时器芯片软硬件相结合、方便灵活的定时电路软硬件相结合、
2、方便灵活的定时电路软件延时方法软件延时方法处理器执行延时子程序处理器执行延时子程序第2页,共54页,编辑于2022年,星期六8.1.1 8.1.1 定时器定时器8253/82548253/8254定定时时器器(计计数数器器):由由数数字字电电路路中中的的计计数数电电路路构构成成,记记录录输输入脉冲的个数入脉冲的个数脉冲信号具有一定随机性,往往脉冲信号具有一定随机性,往往通过脉冲的个通过脉冲的个数可以获知外设的状态变化次数(计数)数可以获知外设的状态变化次数(计数)脉冲信号的周期固定脉冲信号的周期固定(使用高精度晶振产生脉冲使用高精度晶振产生脉冲信号信号),个数乘以周期就是时间间隔(定时)个数乘
3、以周期就是时间间隔(定时)Intel 8253/8254Intel 8253/8254可编程间隔定时器可编程间隔定时器3 3个独立的个独立的1616位计数器通道位计数器通道每个计数器有每个计数器有6 6种工作方式种工作方式第3页,共54页,编辑于2022年,星期六1.1.内部结构和引脚内部结构和引脚与计算机系统总线的接口与计算机系统总线的接口3 3个相互独立的计数器通道个相互独立的计数器通道,结构完全相同结构完全相同计数器计数器0 0计数器计数器1 1计数器计数器2 2第4页,共54页,编辑于2022年,星期六第5页,共54页,编辑于2022年,星期六每个计数器通道每个计数器通道1616位减法
4、计数器位减法计数器1616位预置寄存器位预置寄存器输出锁存器输出锁存器预置寄存器预置寄存器GATECLKOUT减减1计数器计数器输出锁存器输出锁存器第6页,共54页,编辑于2022年,星期六定时器外设引脚定时器外设引脚CLKCLK时钟输入信号时钟输入信号在计数过程中,此引脚上每输入一个时钟信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减(下降沿),计数器的计数值减1 1GATEGATE门控输入信号门控输入信号控制计数器工作,可分成电平控制和上升沿控控制计数器工作,可分成电平控制和上升沿控制两种类型制两种类型OUTOUT计数器输出信号计数器输出信号当一次计数过程结束(计数
5、值减为当一次计数过程结束(计数值减为0 0),),OUTOUT引引脚上将产生一个输出信号脚上将产生一个输出信号第7页,共54页,编辑于2022年,星期六连接处理器引脚连接处理器引脚lD7D7D0D0数据线数据线lA1A1A0A0地地址址线线注注意意,当当在在80868086,IA-32IA-32构构架架上上使使用用,一一般般通通过过系系统统数数据据总总线线D7D0D7D0传传送送数数据据,这这时时应应该该使使用用偶偶数地址(数地址(A0=0A0=0)lRD*RD*读信号读信号lWR*WR*写信号写信号lCS*CS*片选信号,假设片选信号,假设A15A3A15A3为为0000 0000 0100
6、 0*00000 0000 0100 0*0计算机 A2 A1CS*A1 A0I/O地址 读操作RD*写操作WR*0 0 00 0 10 1 00 1 140H42H(41H)44H(42H)46H(43H)读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字奇数地址有误第8页,共54页,编辑于2022年,星期六可编程计数器可编程计数器/定时器功能定时器功能功能体现在两个方面:功能体现在两个方面:一是一是:作为计数器。:作为计数器。即在设置好计数初值后,便开始减即在设置好计数初值后,便开始减1计数,减到计数,减到0时,输时,输出一个信号出一个信号二是二是:作为定时器。:作
7、为定时器。即在设置好定时时间常数后,便开始减一计数,并按定时即在设置好定时时间常数后,便开始减一计数,并按定时时间常数不断地输出时钟周期整数倍的定时信号。时间常数不断地输出时钟周期整数倍的定时信号。两者之间的差别:两者之间的差别:计数器只输出一个信号,除非冲服触发计数器只输出一个信号,除非冲服触发定时器输出连续信号(减到定时器输出连续信号(减到0后,自动回复时间常数初值并重新后,自动回复时间常数初值并重新开始计数)。开始计数)。第9页,共54页,编辑于2022年,星期六典型用处典型用处在多任务的分时系统中作为中断信号实现程序的切换。可往I/O设备输出精确的定时信号。作为一个可编程的波特率发生器
8、。实现时间延迟。第10页,共54页,编辑于2022年,星期六基本结构原理基本结构原理原理就是可预置初值的减法计数器。原理就是可预置初值的减法计数器。主要组成包括:主要组成包括:(1)初值寄存器)初值寄存器接收并保存接收并保存CPU送来的初值送来的初值(2)计数寄存器)计数寄存器从初值寄存器接收计数初值从初值寄存器接收计数初值,减法计数器。减法计数器。计数脉冲就是时钟输入信号,在门控信号有效时开始计数。(3)控制寄存器)控制寄存器接收接收CPU的控制信号,选择不同的工作模的控制信号,选择不同的工作模式等式等(4)状态寄存器)状态寄存器保存计数器的状态保存计数器的状态基本原理图如下图基本原理图如下
9、图第11页,共54页,编辑于2022年,星期六第12页,共54页,编辑于2022年,星期六2.2.工作方式工作方式82538253有有6 6种工作方式,由方式控制字确定种工作方式,由方式控制字确定每种工作方式的过程类似:每种工作方式的过程类似:设定工作方式设定工作方式 设定计数初值设定计数初值 硬件启动硬件启动 计数初值进入减计数初值进入减1 1计数器计数器 每输入一个时钟计数器减每输入一个时钟计数器减1 1的计数过程的计数过程 计数过程结束计数过程结束第13页,共54页,编辑于2022年,星期六(1)(1)定时器方式定时器方式0 0:计数结束中断:计数结束中断GATEOUTCLK 03124
10、4方式方式0WR设设定定工工作作方方式式设设定定计计数数初初值值计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束第14页,共54页,编辑于2022年,星期六方式方式0 0的波形如图所示的波形如图所示.当当控控制制字字写写入入控控制制字字寄寄存存器器后后,输输出出OUTOUT就就变变低低,当当计计数数值值写写入入计计数数器器后后开开始始计计数数,在在整整个个计计数数过过程程中中,OUTOUT保保持持为为低低,当当计计数数到到0 0后后,OUTOUT变变高高;GATEGATE的高低电平控制计数过程是否进行。的高低电平控制计数过程是否进行。写控制字写控制字写计数初值写计数初值GATE
11、=1计数计数第15页,共54页,编辑于2022年,星期六工作方式工作方式0 0有如下特点:有如下特点:计计数数器器只只计计一一遍遍,当当计计数数到到0 0时时,不不重重新新开开始始计计数数保保持持为为高,直到输入一新的计数值,高,直到输入一新的计数值,OUTOUT才变低,开始新的计数;才变低,开始新的计数;计计数数值值是是在在写写计计数数值值命命令令后后经经过过一一个个输输入入脉脉冲冲,才才装装入入计计数数器器的的,下下一一个个 脉脉冲冲开开始始计计数数,因因此此,如如果果设设置置计计数数器器初值为初值为N N,则输出,则输出OUTOUT在在N N1 1个个 脉冲后才能变高;脉冲后才能变高;在
12、计数过程中,可由在计数过程中,可由GATEGATE信号控制暂停。信号控制暂停。当当GATEGATE0 0时,暂停计数;时,暂停计数;当当GATEGATE1 1时,继续计数;时,继续计数;第16页,共54页,编辑于2022年,星期六 在在计计数数过过程程中中可可以以改改变变计计数数值值,且且这这种种改改变变是是立立即即有有效效的的,分成两种情况:分成两种情况:若是若是8 8位计数,则写入新值后的下一个脉冲按新值计数;位计数,则写入新值后的下一个脉冲按新值计数;若若是是1616位位计计数数,则则 在在写写入入第第一一个个字字节节后后,停停止止计计数数,写写入入第二个字节后的下一个脉冲按新值计数。第
13、二个字节后的下一个脉冲按新值计数。第17页,共54页,编辑于2022年,星期六(2 2)定时器方式)定时器方式1 1:可编程单稳脉冲:可编程单稳脉冲设设定定工工作作方方式式设设定定计计数数初初值值硬硬件件启启动动计计数数值值送送入入计计数数器器计计数数过过程程计计数数结结束束GATEOUTCLK 031244方式方式1WR第18页,共54页,编辑于2022年,星期六方方式式1 1的的波波形形如如图图所所示示,CPUCPU向向82538253写写入入控控制制字字后后OUTOUT变变高高,并并保保持持,写写入入计计数数值值后后并并不不立立即即计计数数,只只有有当当外外界界GATEGATE信信号号启
14、启动动后后(一一个个正正脉脉冲冲)的的下下一一个个脉脉冲冲才才开开始始计计数数,OUTOUT变变低低,计计数数到到0 0后后,OUTOUT才才变变高高,此此时时再再来来一一个个GATEGATE正正脉脉冲冲,计计数数器器又又开开始始重重新新计计数数,输输出出OUTOUT再再次次变变低,低,.因此输出为一负脉冲,脉冲宽度受计数初值控制,由因此输出为一负脉冲,脉冲宽度受计数初值控制,由GATE信信号触发。号触发。第19页,共54页,编辑于2022年,星期六特点特点输出输出OUTOUT宽度为计数初值的单脉冲;宽度为计数初值的单脉冲;输出受门控信号输出受门控信号GATEGATE的控制,分三种情况:的控制
15、,分三种情况:计数到计数到0 0后,再来后,再来GATEGATE脉冲,则重新开始计数,脉冲,则重新开始计数,OUTOUT变低;变低;在计数过程中来在计数过程中来GATEGATE脉冲,则从下一脉冲,则从下一CLKCLK脉冲开始重新计数,脉冲开始重新计数,OUTOUT保持为低;保持为低;改变计数值后,只有当改变计数值后,只有当GATEGATE脉冲启动后,才按新值计数,否脉冲启动后,才按新值计数,否则原计数过程不受影响,仍继续进行,即新值的改变是从下一个则原计数过程不受影响,仍继续进行,即新值的改变是从下一个GATEGATE开始的。开始的。计计数数值值是是多多次次有有效效的的,每每来来一一个个GAT
16、EGATE脉脉冲冲,就就自自动动装装入入计计数数值值开开始始从从头头计计数数,因因此此在在初初始始化化时时,计计数数值值写写入入一一次次即可。即可。第20页,共54页,编辑于2022年,星期六(3 3)方式)方式2 2 分频器分频器方方式式2 2的的波波形形如如图图所所示示。在在这这种种方方式式下下,CPUCPU输输出出控控制制字字后后,输输出出OUTOUT就就变变高高,写写入入计计数数值值后后的的下下一一个个CLKCLK脉脉冲冲开开始始计计数数,计计数数到到1 1后后,输输出出OUTOUT变变低低,经经过过一一个个CLKCLK以以后后,OUTOUT恢恢复复为为高高,计计数数器器重重新新开开始
17、始计计数数。因因此此在在这这种种方方式式下下,只只需需写写入入一一次次计计数数值值,就就能能连连续续工工作作,输输出出连连续续相相同同间间隔隔的的负负脉脉冲冲(前前提提:GATEGATE保保持持为为高高),即即周周期期性性地地输出,输出,第21页,共54页,编辑于2022年,星期六特点特点通道可以连续工作;通道可以连续工作;GATEGATE可可以以控控制制计计数数过过程程,当当GATEGATE为为低低时时暂暂停停计计数数,恢恢复复为为高高后后重重新新从从初初值值;(注注意意:该该方方式式与与方方式式0 0不不同同,方方式式0 0是继续计数)是继续计数)重重新新设设置置新新的的计计数数值值即即在
18、在计计数数过过程程中中改改变变计计数数值值,则则新新的的计数值是下次有效的,同方式计数值是下次有效的,同方式1 1。第22页,共54页,编辑于2022年,星期六(4 4)定时器方式)定时器方式3 3:方波发生器:方波发生器03124GATEOUTCLK 4方式方式3031240312403124WR第23页,共54页,编辑于2022年,星期六方方式式3 3的的波波形形如如图图所所示示,这这种种方方式式下下的的输输出出与与方方式式2 2都都是是周周期期性性的的,不同的是:输出的是方波。不同的是:输出的是方波。当计数值当计数值N N是偶数,输出正负脉冲宽度是偶数,输出正负脉冲宽度 N/2 N/2的
19、方波的方波当计数值当计数值N N是奇数,正脉冲宽度是奇数,正脉冲宽度 (N+1)/2N+1)/2,负脉冲宽度(负脉冲宽度(N-1)/2N-1)/2。第24页,共54页,编辑于2022年,星期六特点特点 通道可以连续工作;通道可以连续工作;关关于于计计数数值值的的奇奇偶偶,若若为为偶偶数数,则则输输出出标标准准方方波波,高高低低电电平平各各为为N/2N/2个个;若若为为奇奇数数,则则正正脉脉冲冲宽宽度度(N N1 1)/2/2个个CLKCLK周期,负脉冲宽度(周期,负脉冲宽度(N N1 1)/2/2个个CLKCLK周期;周期;GATEGATE信信号号能能使使计计数数过过程程重重新新开开始始,当当
20、GATEGATE0 0时时,停停止止计计数数,当当GATEGATE变变高高后后,计计数数器器重重新新装装入入初初值值开开始始计计数数,尤尤其其是是当当GATEGATE0 0时时,若若OUTOUT此此时时为为低低,则则立立即即变变高高,其它动作同上;其它动作同上;在在计计数数期期间间改改变变计计数数值值不不影影响响现现行行的的计计数数过过程程,一一般般情情况况下下,新新的的计计数数值值是是在在现现行行半半周周结结束束后后才才装装入入计计数数器器。但但若若中中间间遇遇到到有有GATEGATE脉脉冲冲,则则在在此此脉脉冲冲后后即即装装入入新新值值开开始始计计数。数。第25页,共54页,编辑于2022
21、年,星期六(5 5)定时器方式)定时器方式4 4:软件触发选通信号:软件触发选通信号GATEOUTCLK031244方式方式4223331 0WR第26页,共54页,编辑于2022年,星期六方方式式4 4的的波波形形如如图图所所示示。CPUCPU写写入入控控制制字字后后,OUTOUT立立即即变变高高,写写入入计计数数值值开开始始计计数数,当当计计数数到到0 0后后,OUTOUT变变低低,经经过过一一个个CLKCLK脉脉冲冲后后,OUTOUT变变高高,这这种种计计数数是是一一次次性性的的(与与方方式式0 0有有相相似似之之处处),只只有有当当写写入入新新的的计计数数值值后后才开始下一次计数。才开
22、始下一次计数。第27页,共54页,编辑于2022年,星期六当当计计数数值值为为N N时时,则则间间隔隔N N1 1个个CLKCLK脉脉冲冲输输出出一一个个负负脉脉冲冲(计数一次有效);(计数一次有效);GATEGATE0 0时,禁止计数,时,禁止计数,GATEGATE1 1时,恢复继续计数;时,恢复继续计数;在在计计数数过过程程中中重重新新装装入入新新的的计计数数值值,则则该该值值是是立立即即有有效效的的(若若为为1616位位计计数数值值,则则装装入入第第一一个个字字节节时时停停止止计计数数,装装入入第二个字节后开始按新值计数)。第二个字节后开始按新值计数)。第28页,共54页,编辑于2022
23、年,星期六(6 6)定时器方式)定时器方式5 5:硬件触发选通信号:硬件触发选通信号GATEOUTCLK031244方式方式52233311 0WR第29页,共54页,编辑于2022年,星期六当当控控制制字字写写入入后后,OUTOUT立立刻刻变变高高,写写入入计计数数值值后后并并不不立立即即开开始始计计数数,而而是是由由GATEGATE的的上上升升沿沿触触发发启启动动计计数数的的,当当计计数数到到0 0时时,输输出出变变低低,经经过过一一个个CLKCLK之之后后,输输出出恢恢复复为为高高,计计数数停停止止,若若再再有有GATEGATE脉脉冲冲来来,则则重新装入计数值开始计数,上述过程重复。重新
24、装入计数值开始计数,上述过程重复。第30页,共54页,编辑于2022年,星期六特点特点在在这这种种方方式式下下,若若设设置置的的计计数数值值是是N N,则则在在GATEGATE脉脉冲冲后后,经过(经过(N N1 1)个)个CLKCLK才一个负脉冲;才一个负脉冲;若若在在计计数数过过程程中中又又来来一一个个GATEGATE脉脉冲冲,则则重重新新装装入入初初值值开开始计数,输出不变,即计数值多次有效;始计数,输出不变,即计数值多次有效;若若在在计计数数过过程程中中修修改改计计数数值值,则则该该计计数数值值在在下下一一个个GATEGATE脉冲后装入开始按此值计数。脉冲后装入开始按此值计数。第31页,
25、共54页,编辑于2022年,星期六3.8253/82543.8253/8254的编程的编程82538253是可编程接口芯片是可编程接口芯片8253/82548253/8254需要处理器对他进行初始化编程,才能正确工作。需要处理器对他进行初始化编程,才能正确工作。编程指的是编程指的是设置控制字设置控制字设置时间常数设置时间常数等等第32页,共54页,编辑于2022年,星期六(1 1)控制寄存器与控制字)控制寄存器与控制字有两个有两个模式设置寄存器和读出控制寄存器模式设置寄存器和读出控制寄存器 模式设置控制字模式设置控制字(a a)BCDBCD计数初值格式,计数初值格式,=0=0,二进制,二进制
26、=1=1,BCDBCD码码地址:最高端口地址:最高端口控制端口控制端口第33页,共54页,编辑于2022年,星期六(b b)M2M2,M1M1,M0M0模式选择模式选择000 000 模式模式0 0001001模式模式1 1X10X10模式模式2 2X11X11模式模式3 3100100模式模式4 4101101模式模式5 5(c c)WR1WR1,WR0WR0读读/写指示位。写指示位。0000对计数器进行锁存,以便读出对计数器进行锁存,以便读出0101只读只读/写低写低8 8位位1010只读只读/写高写高8 8位位1111先读先读/写低写低8 8位,后读位,后读/写高写高8 8位位第34页,
27、共54页,编辑于2022年,星期六(d d)SC1SC1,SC0 SC0 计数器选择计数器选择0000选择计数器选择计数器0 00101选择计数器选择计数器1 11010选择计数器选择计数器2 21111读读出出控控制制字字的的标标识识码码,只只要要该该2 2位位=0=0,写写入入的的是是读出模式控制字读出模式控制字第35页,共54页,编辑于2022年,星期六控制字写入控制字控制字写入控制字I/OI/O地址:地址:A1A0A1A01111计数器读写格式工作方式数制D7D6D5D4D3D2D1D000 计数器计数器001 计数器计数器110 计数器计数器211 非法非法 (8253)11 读回命
28、令读回命令 (8254)00 计数器锁存命令计数器锁存命令 01 只读写低字节只读写低字节10 只读写高字节只读写高字节11 先读写低字节先读写低字节 后读写高字节后读写高字节000 方式方式0001 方式方式1*10 方式方式2*11 方式方式3100 方式方式4101 方式方式50 二进制二进制1 十进制十进制第36页,共54页,编辑于2022年,星期六设置模式设置控制字举例设置模式设置控制字举例假设假设8253端口:端口:80H,82H,84H,86H,通道,通道0使用二进制计数,工作使用二进制计数,工作在模式在模式0,通道,通道1使用使用BCD计数,模计数,模式式1,通道,通道2使用二
29、进制计数,模式使用二进制计数,模式2,全部通道,全部通道16位计数器,先写低位计数器,先写低8位,位,后写高后写高8位。位。通道通道0模式控制字:模式控制字:00110000B通道通道1模式控制字:模式控制字:01110011B通道通道2模式控制字:模式控制字:10110110BMOVDX,86H;MOVAL,30H;控制字;控制字OUTDX,ALMOVAL,73H;OUTDX,ALMOVAL,0B6HOUTDX,AL第37页,共54页,编辑于2022年,星期六.读出控制字读出控制字D7,D6,=11,为读出模式控制字,这时,为读出模式控制字,这时D0=0D5:=0,将所选定的计数器当前计数值
30、锁存,以便后面读取,将所选定的计数器当前计数值锁存,以便后面读取D4:=0,将所选定的计数器的状态进行锁存,将所选定的计数器的状态进行锁存,D3,D2,D1:分别对应:分别对应3个计数通道,个计数通道,=1,选中通道被锁存,选中通道被锁存可以同时锁存多个通道的计数器的计数值可以同时锁存多个通道的计数器的计数值但不能同时锁存多个计数器的状态但不能同时锁存多个计数器的状态地址:最高端口地址:最高端口控制端口控制端口 写写第38页,共54页,编辑于2022年,星期六(2)状态寄存器状态寄存器只有只有8254有状态端口,有状态端口,8253无该端口。无该端口。D7:输出端输出端OUT的状态的状态D6:
31、表示初值是否已装入计数器,表示初值是否已装入计数器,=0:已装入,:已装入,=1未装入未装入D5D0:与模式寄存器含义相同:与模式寄存器含义相同第39页,共54页,编辑于2022年,星期六(3)编程命令与初始化编程编程命令与初始化编程编程原则:编程原则:设置初值前必须先写模式控制字设置初值前必须先写模式控制字 初值设置要符合控制字中的格式规定初值设置要符合控制字中的格式规定 要读取计数器的当前值(或读取状态字),必须用控制字先要读取计数器的当前值(或读取状态字),必须用控制字先锁定,再读取。锁定,再读取。编程命令有两类:编程命令有两类:写入命令写入命令 读出命令读出命令第40页,共54页,编辑
32、于2022年,星期六 写入命令写入命令3个个有三个有三个(1)设置模式控制字命令)设置模式控制字命令 设置工作模式等。(2)设置初始值命令)设置初始值命令 (3)锁存命令)锁存命令 与读出命令配合,在读出前,要先锁存第41页,共54页,编辑于2022年,星期六 读出命令读出命令2个个(1)读取计数器当前的值。要先锁定,然后再读出。(2)对8254,还可读取状态字 要先锁定,然后再读出。例如要读出通道2的计数值,先向读出控制寄存器写锁定命令端口地址:70H,72H,74H,76H例如要读出通道2的 11 0 1 1 0 0 0 第42页,共54页,编辑于2022年,星期六读出控制字读出控制字D7
33、,D6,=11,为读出模式控制字,这时,为读出模式控制字,这时D0=0D5:=0,将所选定的计数器当前计数值锁存,以便后面读取,将所选定的计数器当前计数值锁存,以便后面读取D4:=0,将所选定的计数器的状态进行锁存,将所选定的计数器的状态进行锁存,D3,D2,D1:分别对应:分别对应3个计数通道,个计数通道,=1,选中通道被锁存,选中通道被锁存可以同时锁存多个通道的计数器的计数值可以同时锁存多个通道的计数器的计数值但不能同时锁存多个计数器的状态但不能同时锁存多个计数器的状态地址:最高端口地址:最高端口控制端口控制端口 写写第43页,共54页,编辑于2022年,星期六方式控制字编程示例方式控制字
34、编程示例;8253;8253的计数器的计数器0 0、1 1、2 2端口和控制端口地址:端口和控制端口地址:40H40H43H43H;设置其中计数器设置其中计数器0 0为方式为方式0 0;采用二进制计数,先低后高写入计数值采用二进制计数,先低后高写入计数值mov al,mov al,30h30h;方式控制字:方式控制字:30H30H0000 11 11 000000 0B 0Boutout 43h43h,al,al;写入控制端口:写入控制端口:43H43H第44页,共54页,编辑于2022年,星期六3.3.编程:写入计数值编程:写入计数值选择二进制时选择二进制时计数值范围:计数值范围:0000H
35、0000HFFFFHFFFFH0000H0000H是最大值,代表是最大值,代表6553665536选择十进制(选择十进制(BCDBCD码)码)计数值范围:计数值范围:000000009999999900000000代表最大值代表最大值1000010000计数值写入计数器各自的计数值写入计数器各自的I/OI/O地址地址按方式控制字规定的读写格式进行按方式控制字规定的读写格式进行第45页,共54页,编辑于2022年,星期六计数值编程示例计数值编程示例;8253;8253的计数器的计数器0 0、1 1、2 2端口和控制端口地址:端口和控制端口地址:40H40H43H43H;设置计数器设置计数器0 0
36、采用二进制计数采用二进制计数;写入计数初值:写入计数初值:10241024(400H400H)mov ax,1024mov ax,1024;计数初值:计数初值:10241024(400H400H);写入计数器写入计数器0 0地址:地址:40H40Hout out 40h40h,al,al;写入低字节计数初值写入低字节计数初值mov al,ahmov al,ahoutout 40h40h,al,al;写入高字节计数初值写入高字节计数初值第46页,共54页,编辑于2022年,星期六8.1.2 8.1.2 定时器的应用定时器的应用(1 1)方波脉冲)方波脉冲要求利用要求利用8253在在OUT2输出输
37、出2KHZ方波方波编写相应的程序编写相应的程序第47页,共54页,编辑于2022年,星期六地址:地址:1000 000*XX01000 000*XX0(没有使用的地址信号,没有使用的地址信号,0 0和和1 1都可以,这里使用都可以,这里使用0 0比较方便比较方便)通道通道0 0数据寄存器:数据寄存器:8000H8000H通道通道1 1数据寄存器:数据寄存器:8002H8002H通道通道2 2数据寄存器:数据寄存器:8004H8004H控制寄存器控制寄存器 :8006H8006H方方波波:通通道道3 3选选择择方方式式3 3,2MHz-2KHz2MHz-2KHz分分频频系系数数10001000,
38、使使用二进制,控制字:用二进制,控制字:10 10 11 11 011 011 0 0其它通道不用其它通道不用 时间常数:时间常数:100003E8H100003E8H如如果果要要求求输输出出脉脉冲冲宽宽度度为为1 1个个时时钟钟周周期期的的分分频频脉脉冲冲而而不不是是方方波波脉冲,就选用方式脉冲,就选用方式2 2第48页,共54页,编辑于2022年,星期六CODE SEGMENTCODE SEGMENT ASSUME CS:CODE,DS:DATAASSUME CS:CODE,DS:DATASTART:START:MOVMOV DX,8006HDX,8006H;控制字端口;控制字端口MOVM
39、OV AL,0B6HAL,0B6H;控制字;控制字OUTOUT DX,ALDX,ALMOVMOV DX,8004HDX,8004H;通道;通道2 2时间常数端口时间常数端口MOVMOV AL,0E8HAL,0E8H;低;低8 8位时间常数位时间常数OUTOUT DX,ALDX,ALMOVMOV AL,03HAL,03H;高;高8 8 位时间常数位时间常数OUTOUT DX,ALDX,ALJMP$JMP$;没有其他工作,只产生脉冲,故没有其他工作,只产生脉冲,故;完成设置后,在此死循环;完成设置后,在此死循环CODE ENDSCODE ENDSEND STARTEND START第49页,共54
40、页,编辑于2022年,星期六(2 2)定时中断定时中断mov al,36hmov al,36h;计数器计数器0 0为方式为方式3 3,二进制计数,二进制计数;先低后高写入计数值先低后高写入计数值out 43h,alout 43h,al;写入方式控制字写入方式控制字mov al,0mov al,0;计数值为计数值为0 0out 40h,alout 40h,al;写入低字节计数值写入低字节计数值out 40h,alout 40h,al;写入高字节计数值写入高字节计数值计数器计数器0 0:方式方式3 3,计数值:计数值:6553665536,输出方波,输出方波频率:频率:1.19318MHz1.19
41、318MHz655366553618.206Hz18.206Hz,不断产生,不断产生OUTOUT0端端接接8259A8259A的的IRQIRQ0,每每秒秒产产生生18.20618.206次次中中断断请请求求,或说每隔或说每隔55ms55ms(54.925493ms54.925493ms)申请一次中断)申请一次中断DOSDOS系系统统利利用用计计数数器器0 0的的这这个个特特点点,通通过过0808号号中中断断服服务务程程序序实现了日时钟计时功能实现了日时钟计时功能第50页,共54页,编辑于2022年,星期六(3 3)定时刷新定时刷新需要重复不断提出刷新请求需要重复不断提出刷新请求 门控总为高,选
42、择方式门控总为高,选择方式2 2或或3 32ms2ms内刷新内刷新128128次,即次,即15.615.6 s s刷新一次刷新一次 计数初值为计数初值为1818mov al,54hmov al,54h;计数器计数器1 1为方式为方式2 2;采用二进制计数,只写低采用二进制计数,只写低8 8位计数值位计数值out 43h,alout 43h,al;写入方式控制字写入方式控制字mov al,18mov al,18;计数初值为计数初值为1818out 41h,alout 41h,al;写入计数值写入计数值第51页,共54页,编辑于2022年,星期六(4 4)扬声器控制扬声器控制;发音频率设置子程序发
43、音频率设置子程序;入口参数:入口参数:AXAX1.19318101.19318106 6发音频率发音频率speakerspeakerprocproc push axpush ax ;暂存入口参数暂存入口参数 mov al,0b6hmov al,0b6h ;定时器定时器2 2为方式为方式3 3,先低后高,先低后高 out 43h,alout 43h,al ;写入方式控制字写入方式控制字 pop axpop ax ;恢复入口参数恢复入口参数 out 42h,alout 42h,al ;写入低写入低8 8位计数值位计数值 mov al,ahmov al,ah out 42h,alout 42h,al
44、 ;写入高写入高8 8位计数值位计数值 retret speakerspeaker endpendp第52页,共54页,编辑于2022年,星期六扬声器发音控制扬声器发音控制speakonspeakon procproc;扬声器开扬声器开子程序子程序push axpush axin al,61hin al,61h;读取读取61H61H端口的原控制信息端口的原控制信息or al,03hor al,03h;D1D0;D1D0PB1PB0PB1PB01111,其其他他不不变变out 61h,alout 61h,al;直接控制发声直接控制发声pop axpop axretretspeakonspeako
45、n endpendp;扬声器关扬声器关子程序子程序and al,0fchand al,0fch;D1D0;D1D0PB1PB0PB1PB00000,其他不变,其他不变第53页,共54页,编辑于2022年,星期六例例8-18-1控制扬声器程序控制扬声器程序;数据段数据段freqfreqdw 1193180/600dw 1193180/600;给一个给一个600Hz600Hz的频率的频率;代码段代码段mov ax,freqmov ax,freqcall speakercall speaker;设置扬声器的音调设置扬声器的音调call speakoncall speakon;打开扬声器声音打开扬声器声音call readccall readc;等待按键等待按键call speakoffcall speakoff;关闭扬声器声音关闭扬声器声音;子程序子程序输出:输出:明确向哪个明确向哪个端口端口输出什么输出什么数据数据输入:输入:清楚从哪个清楚从哪个端口端口输入什么输入什么数据数据第54页,共54页,编辑于2022年,星期六