接口技术定时器计数器_第1页
接口技术定时器计数器_第2页
接口技术定时器计数器_第3页
接口技术定时器计数器_第4页
接口技术定时器计数器_第5页
已阅读5页,还剩68页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

接口技术定时器计数器第1页,课件共73页,创作于2023年2月第6章Intel8253定时器/计数器第2页,课件共73页,创作于2023年2月定时举例:

①一天24小时的计时,称为日时钟。②在监测系统中,对被测点的定时取样。③在读键盘时,为去抖,一般延迟一段时间,再读。④在微机控制系统中,控制某工序定时启动。第3页,课件共73页,创作于2023年2月计数器:在时钟信号作用下,进行减“1”计数,计数次数到(减“1”计数回零),从输出端输出一个脉冲信号。

计数举例:①对零件和产品的计数;②对大桥和高速公路上车流量的统计,等等。Intel8253在微机系统中可用作定时器和计数器。定时时间与计数次数是由用户事先设定。第4页,课件共73页,创作于2023年2月

2、8253定时与计数器与CPU的关系

8253定时与计数操作过程与CPU相互独立,并行操作。

3、8253定时与计数结束时产生的脉冲信号可用于对某一事件进行控制,也可作用为一外部终端请求信号。第5页,课件共73页,创作于2023年2月二、Intel8253定时器/计数器的基本性能参数

1、一片8253内部有3个16位的计数器(相互独立)

2、每个计数器的内部结构相同,可通过编程手段设置为6种不同的工作方式来进行定时/计数

3、每个计数器再开始工作前必须预制时间常数(时间初始)

4、每个计数器在工作过程中的当前计数值可被CPU读出.

(注:时间常数也可在计数过程中更改)第6页,课件共73页,创作于2023年2月三、8253定时器/计数器的内部结构、

1、内部结构第7页,课件共73页,创作于2023年2月

8253定时器/计数器的内部结构框图CLK1GATE1OUT1CLK2GATE2OUT2CLK0GATE0OUT0数据总线缓冲器读/写逻辑A0A1RDWRCS8CPU控制字寄存器内部总线计数器0计数器1计数器2第8页,课件共73页,创作于2023年2月①数据总线缓冲器。它是一个三态、双向8位寄存器,用于将8253与系统数据总线D0~D7相连。②读/写逻辑。③控制命令寄存器。它接受CPU送来的控制字。④计数器。8253有3个独立的计数器(计数通道),其内部结构完全相同,定时器/计数器的内部结构:第9页,课件共73页,创作于2023年2月GATE16位当前计数值锁存器16位减一计数器16位计数初值寄存器&CLKOUTMSBLSBLSBMSB(减1至0时)装入/读出初值锁存后读出当前值8253的内部的各计数器的结构

第10页,课件共73页,创作于2023年2月四.8253的端口寻址及基本操作

CSRDA1WRA0传送方式00000001111000000011100110010101010写入计数器0的初始值写入计数器1的初始值写入计数器2的初始值写入控制寄存器控制字读自计数器0的OL读自计数器1的OL读自计数器2的OL第11页,课件共73页,创作于2023年2月五、8253的控制字格式:

数制选择SC1SC0M2RW1RW0BCDM0M1D7D6D5D4D3D2D1D0工作方式000方式0…101方式500计数器锁存命令10只读/写高八位01只读/写低八位11先读/写低八位再读/写高八位00选择计数器001选择计数器110选择计数器2读/写指示计数器选择第12页,课件共73页,创作于2023年2月

关于的控制字说明:

1、8253只有一个工作方式控制字,但是对每个计数器而言,它们的工作方式控制字内容一定各不相同(前两位不同),所用各计数器的控制字需要分别设置,先后不计。

2、8253的工作方式控制字的特殊形式可用于对计数器的当前计数值进行锁存。

3、在工作方式控制字被设置之后,随后必须紧接着给计数器预设置计数初值,计数器方可开始工作。控制字第13页,课件共73页,创作于2023年2月SC1SC0M2RW1RW0BCDM0M1D7D6D5D4D3D2D1D000计数器锁存命令00选择计数器001选择计数器110选择计数器2计数器选择未用锁存计数器当前计数值控制字第14页,课件共73页,创作于2023年2月4.计数初值计数初值与输入时钟(CLK)频率及输出波形(OUT)频率之间的关系为:Ci=CLK/OUT

或Tc=CLK/OUT

5.8253初始化的工作有两个内容:(1)一是向命令寄存器写入方式命令,以选择器(3个计数器之一),确定工作方式(6种方式之一),指定计数器计数初值的长度和装入顺序以及计数值的码制(BCD或二进制码)。(2)二是向已选定的计数器按方式命令的要求写入计数初值。第15页,课件共73页,创作于2023年2月例1:选择2号计数器,工作在3方式,计数初值为533H(2个字节),采用二进制计数。其初始化程序段为

MOVDX,307H;命令口

MOVAL,10110110B;2号计数器的初始化命令字

OUTDX,AL;写入命令寄存器

MOVDX,306H;2号计数器数据口

MOVAX,533H;计数初值

OUTDX,AL;选送低字节到2号计数器

MOVAL,AH;取高字节送ALOUTDX,AL;后送高字节到2号计数器第16页,课件共73页,创作于2023年2月例2:要求读出并检查1号计数器的当前计数值是否是全“1”(假定计数值16位/8位),其程序段为L:

MOVDX,307H;命令口

MOVAL,01000000B;1号计数器的锁存命令

OUTDX,AL;写入命令寄存器

MOVDX,305H;1号计数器数据口

INAL,DX;读1号计数器的当前计数值

MOVAH,ALINAL,DXXCHGAH,ALCMPAX,0FFFFH;比较

JNEL;非全“1”,再读

HLT;是全“1”,暂停第17页,课件共73页,创作于2023年2月

1、方式0“一次有效”,计数结束产生中断

1)、计数器写完计数值时,开始计数,相应的输出信号OUT就开始变成低电平。当计数器减到零时,OUT立即输出高电平。六、8253的工作方式

8253/8254芯片的每个计数器通道都有6种

工作方式可供选用。18组11

3)、在计数器工作期间,如果重新写入新的计数值,计数器将按新写入的计数值重新工作。

2)、门控信号GATE位高电平时,计数器工作;为低电平时,计数器停止工作,计数值保持不变。18组118组2第18页,课件共73页,创作于2023年2月n=5CLKOUTWR①

543210图6.48253的0方式时序波形WROUT③

n=998n=443210n=5WRGATEOUT②

54321044第19页,课件共73页,创作于2023年2月

MOVDX,307H;命令口

MOVAL,01110000B;方式字

OUTDX,ALMOVDX,305H;T1数据口

MOVAL,BYTEL;计数值低字节

OUTDX,ALMOVAL,BYTEH;计数值高字节

OUTDX,AL例1:使计数器T1工作在0方式,进行16位二进制计数,计数初值的高低字节分别为BYTEH和BYTEL。其初始化程序段如下:第20页,课件共73页,创作于2023年2月

2.

1方式----低电平输出(GATE信号上升沿重新计数)可重复触发的单稳态触发器

1方式为可编程的单稳态工作方式。(平时gate无效)

情况一:(1)写入计数初值后,计数器并不立即开始工作;(2)门控信号GATE有效,才开始工作,使输出OUT变成低电平;(3)直到计数器值减到零后,输出才变高电平。见图6.5中①。情况二:

在计数器工作期间,当GATE又出现一个上升沿时,计数器

重新装入原计数初值并重新开始计数,见图见图6.5中②。21组17

如果工作期间对计数器写入新的计数初值,则要等到当前的计数值计满回零且门控信号再次出现上升沿后,才按新写入的计数初值开始工作,见图6.5所示③。21组121组16第21页,课件共73页,创作于2023年2月图6.58253的1方式时序波形n=3WR③n=2OUT

3210210GATEn=4CLKGATEWROUT①

43210OUT②

4321GATE40第22页,课件共73页,创作于2023年2月例2:使计数器T2

工作在1方式,进行8位二进制计数,并设计数初值的低8位为BYTEL。其初始化程序段为

MOVDX,307H;命令口

MOVAL,10010010B;方式字

OUTDX,ALMOVDX,306H;T2数据口

MOVAL,BYTEL;低8位计数值

OUTDX,AL第23页,课件共73页,创作于2023年2月

3.方式2:频率发生器

2方式是一种具有自动装入时间常数(计数初值N)的N分频器。时序波形如下特点:一次设置计数初值,计数器可自动重复进行减“1”计数操作,减“1”计数回“0”,可从输出端输出一负脉冲信号。第24页,课件共73页,创作于2023年2月OUT32151432n=3CLKWE

GATEOUT3213

2132n=5GATEOUT322

13212①②③第25页,课件共73页,创作于2023年2月例3:使计数器T0工作在2方式,进行16位二进制计数。其初始化程序段为

MOVDX,307H;命令口

MOVAL,00110100B;方式字

OUTDX,ALMOVDX,304H;T2数据口

MOVAL,BYTEL;低8位计数值

OUTDX,ALMOVAL,BYTEL;高8位计数值

OUTDX,AL第26页,课件共73页,创作于2023年2月4.3方式----周期性方波输出,方波发生器

3方式工作方式与2方式基本相同,也具有自动装入时间常数(计数初值)的功能,不同之处在于:(1)工作在3方式,引脚OUT输出的不是一个时钟周期的负脉冲,而是占空比为1:1或近似1:1的方波;当计数初值为偶数时,输出在前一半的计数过程中为高电平,在后一半的计数过程中为低电平。(2)由于3方式输出的波形是方波,并且具有自动重装计数初值的功能,因此,8253一旦计数开始,就会在输出端OUT输出连续不断的方波。第27页,课件共73页,创作于2023年2月n=5CLKWROUT①

2n=4222图6.78253的3方式时序波形OUT②

WR3232第28页,课件共73页,创作于2023年2月

5.4方式-----单次负脉冲输出(软件触发)

4方式工作方式是一种由软件启动的计数方式,即由写入计数初值来触发计数器开始工作。门控信GATE

为高电PIN平时,允许计数器工作。例4:使计数器T1工作方式4方式,进行8位二进制计数,并且只装入高8位计数值。其初始化程序段为:

MOVDX,307H;命令口

MOVAL,00110100B;方式字

OUTDX,ALMOVDX,304H;T2数据口

MOVAL,BYTEL;低8位计数值

OUTDX,AL第29页,课件共73页,创作于2023年2月CLKWROUT①

n=5543210图6.8:8253的4方式时序波形OUT②

GATE544321044第30页,课件共73页,创作于2023年2月

6.5方式------单次负脉冲输出(硬件触发)

5方式工作特点是由GATE上升沿触发计数器开始工作。①在5方式工作方式下,当写入计数初值后,计数器并不立即开始计数,而要由门控信号的上升沿启动计数。30组1

②在计数过程中(或者计数结束后),如果门控再次出现上升沿,计数器将从原装入的计数初值重新计数。30组2第31页,课件共73页,创作于2023年2月CLKWROUT①

n=5GATE543210图6.98253的5方式时序波形OUT②

GATE54543210第32页,课件共73页,创作于2023年2月使用注意最大初值0=65536CLK与OUT的周期区别在CLK的下降沿8253的各部件才产生改变模式0,4的gate是电平触发,1,5为上升沿触发(边沿触发器),2,3都可以赋初值后的下个CLK才装到执行部件,开始计数第33页,课件共73页,创作于2023年2月七.8253-/8254-2的应用举例

一、计数器------日时钟1.要求设计一个计一天时间的日计时器------日时钟。2.分析利用8253工作在3方式下,其输出为一系列方波,这种方波的周期是准确的,可以作为定时单位。比如,选用8253的计数器0,让其工作在3方式,计数初值设置为最大值-----65536。当输入时钟CLK0=1.1931816MHz,则输出方波的频率为

fouto=1.1931816MHz/65536=18.2Hz第34页,课件共73页,创作于2023年2月输出方波的周期为:

Touto=1/18.2×1000ms=54.945ms

1天24×60×60×1000ms/54.945ms=1573040(计时单位)。若以十六进制表示,则为01800B0H个计时单位(占用4个存储单元)。为存放每次中断以后加1所得到的计数值,使用4个存储字节,其对应双字变量分别为:

TIMER-LO(40H:6CH)和TIMER-HI(40H:6EH)。同理可得:1小时包含65543个计时单位,

1分钟包含1092个计时单位,

1秒钟包含18.2个计时单位。使用中断程序对计时时间单元进行加1累加,中断请求通过8259的IR0引入。第35页,课件共73页,创作于2023年2月

3.设计(1)硬件设计日时钟的硬件主要由定时/计数器8254和中断控制器8259A构成,共工作原理框图如图6.10所示。该图还画出了在日时钟运行时对内存RAM的使用情况。第36页,课件共73页,创作于2023年2月8254OUT0GATE0CLK08259AIRQ0T=54.9msIR0INTD0~7INTA总线控制器S2S1S0DQQ状态=000CPPCLK+5VCPUINTRD0~7S2S1S0M…FEA5HF000H…TIMER-LOTIMER-HI存储器TIMER-INT(中断程序)…00:0000:20H00:23H40:6CH40:6EH向量向量指针时间值+1并保存图6.10日时钟运行原理示意图2.3863632MHZ中断号8加1第37页,课件共73页,创作于2023年2月到24小时?TIMER-OFL置1并使日时钟复位0点0TIMER-LO0TIMER-HIYN开中断有关寄存器进栈TIMER-LO加1到0?TIMER-HI加1NY图6.11日时钟中断8的中断服务程序流程图(2)软件设计AA第38页,课件共73页,创作于2023年2月调用定时报时中断ICH输出结束中断的命令EOI到8259A有关寄存器出栈中断返回关闭软驱电机计算值减1减至0?电机运行状态清零输出命令关闭电机NA第39页,课件共73页,创作于2023年2月二、稳定延时三、发声器

1.要求利用定/计数器8253发600Hz的长/短音。按任意键,开始发声;按ESC键,停止发声。8253的输入时钟CLK的频率

1.19318MHz。

2.分析

3.设计(1)硬件设计(2)软件设计发声程序由主程序和子程序组成。主程序流程图如图6.13所示。.第40页,课件共73页,创作于2023年2月发长音(BL=6)(CALLSSP)发短音(BL=1)(CALLSSP)按下Esc键?关闭扬声器返回DOS结束YYN开始8253初始化计算并装入初值关闭扬声器按下任意键?N第41页,课件共73页,创作于2023年2月发长/短音的程序为:CODESEGMENTASSUMECS:CODE,DS:CODEORG100HSTART:JMPBEGINLONG1EQU6SHORT1EQU1BEGIN:MOVAX,CODEMOVCS,AXMOVDS,AX第42页,课件共73页,创作于2023年2月

;初始化8253MOVAL,10110110B;方式命令

OUT43H,AL;命令口;装计数初值

MOVAX,1983;输出600Hz的计数初值

OUT42H,AL;先装低字节

MOVAL,AH;后装高字节

OUT42H,AL第43页,课件共73页,创作于2023年2月;关闭扬声器

INAL,61H;读入8255的PB口原输出值

ANDAL,0FCH;置PB0和PB1为零,关闭GATE2和与门

OUT61H,AL

;查任意键,启动发声器

WAIT1:MOVAH,0BH;功能调用

INT21HCMPAL,0H;无按按下,发出长音

JEWAIT;有键按下,发出长音

第44页,课件共73页,创作于2023年2月 ;发长音

LOP:MOVBL,LONG1;长音入口参数

CALLSSP;;调发声子程序;查Esc键,停止发声

MOVAH,0BH;功能调用

INT21HCMPAL,0HJECONTINUE1MOVAH,08H;有键铵下,检测是Esc键?

INT21H第45页,课件共73页,创作于2023年2月

CMPAL,1BHJEQUIT;是,停止发声,并退出

;发短音CONTINUE1:MOVBL,SHORT1;短音入口参数

CALLSSP;调用发声子程序

JMPLOP;循环第46页,课件共73页,创作于2023年2月;关闭扬声器,并退出

QUIT:INAL,61H;停止发声

MOVAH,ALANDAL,0FCHOUT61H,ALMOVAL,AHMOVAX,4C00H;退出,返回

DOSINT21HSUBCX,CX;设CX的值为216

第47页,课件共73页,创作于2023年2月

;发声子程序SSPPROCNEARINAL,61H;读取PB口的原值

ORAL,03H;置PB0和PB1为高,打开GATE2与门

OUT61H,AL;开始发声;延时

L:LOOPLDECBL;BL为子程序的入口件

JNZLRETSSPENDPCODEENDSENDSTART第48页,课件共73页,创作于2023年2月四、波特率时钟发生器

1.要求设计一个波特率时钟发生器,其输入时钟CLK=1.19318Mz,波特率因子factor=16,输出的波特率为8档,它们分别是110b/s、150b/s、300b/s、600b/s、1200b/s、2400b/s、4800b/s、9600b/s。要求利用人-机对话方式选择波特率。按Esc键,退出。

2.分析发送时钟TxC=Baud×FactorTc=CLK/Baud×Factor=CLK/B·F(6.2)第49页,课件共73页,创作于2023年2月3.设计(1)硬件设计波特率时钟发生器的硬件包括定时/计数器8253、并行接口芯片8255A及I/O端口地址译码电路等。(2)软件编程计算出题目中要求的8档波特率的定时常数,分别为678H、497H、249H、124H、62H、31H、16H、8H。其次,设计查表法的波特率时钟发生器程序流程图,如图6.15所示。第50页,课件共73页,创作于2023年2月

DATASEGNENTTC-TABLEDW678;0=110b/s,定时常数表

DW497;1=150b/sDW249;2=300b/sDW124;3=600b/sDW62;4=1200b/sDW31;5=2400b/sDW16;6=4800b/sDW8;7=9600b/sDATAENDS第51页,课件共73页,创作于2023年2月

TEMPDB(?)

MESDB‘NOWBEGINTOGENERATEBAUD-RATE’SCLK!’,0DH,0AHDB‘HTPESCTOQUIT!’,0DH,OAH,‘$’INPUR-MESDB‘0:1101:1502:3003:6004:1200’,0DH,0AH,‘$’DB‘5:24006:48007:9600’,0DH,0AH,‘$’ERROR-MESDB‘INPUTERROR!TRYAGAINPLEASE!’,0DH,0AH,‘$’第52页,课件共73页,创作于2023年2月CODESEGMENTASSUMECS:CODE,DS:DATAOK:MOVAX,CODEMOVCS,AXMOVDX,307H;8253命令口

MOVAL,0B6H;8253方式命令

OUTDX,ALMOVAL,0CH;使PC6=0,关8253OUTDX,ALMOVAX,DATAMOVDS,AX第53页,课件共73页,创作于2023年2月

LEADX,INPUT-MES;提示选择波特率

MOVAH,09HINT21HINPUT:MOVAH,08HINT21HCMPAL,’0’;选择波特率是否正确?

JBERROR;不正确,则转出错处理

CMPAL,’7’

第54页,课件共73页,创作于2023年2月开始8253初始化8255初始化关闭8253提示选择波特率选择波特率选择有错?YN波特率代号→temp查表获取计数初值,并装入8253(CALLLoad)有ESC键按下?关8253返回DOS结束图6.15波特率时钟发生器程序流程图NY第55页,课件共73页,创作于2023年2月

JAERRORSUBAL,30H;正确

MOVTEMP,AL;则保存波特率代号

CALLLOAD;装入计数初值

JMPBEGIN;启动8253波特率时钟发生器ERROR:MOVAH,9H;出错处理

LEADX,ERROR-MESINT21HJMPINPUT;重新选择波特率BEGIN:LEADX,MES;显示提示信息

MOVAH,09HINT21HSTART:MOVDX,303H;8255命令口

MOVAL,0DH;使PC6=1,启动8253,产生波特率时钟

OUTDX,ALNOPLOP:MOVAH,0BH;检测有键按下?

INT21H第56页,课件共73页,创作于2023年2月

CMPAL,00JELOP ;无,等待

MOVAH,08H ;有,检测是否是Esc键

INT21HCMPAL,1BHJEQUIT ;是,则退出

JMPLOP ;不是,循环查Esc键QUIT:MOVDX,303HMOVAL,0CH ;关闭8253OUTDX,ALMOVAX,4C00H ;退出,返回DOSINT21HLOADPROCNEARPUSHAXPUSHDXPUSHSIMOVDL,TEMP第57页,课件共73页,创作于2023年2月

SHLDL,1 ;波形代号乘2,存放在DX中

ANDDX,0FH ;只取DX的低4位

MOVSI,OFFSETTC-TABLE;取定时常数表的首址→SIADDSI,DX;SI为定时常数表指针(首址+偏移量)

MOVDX,306H;计数器2的数据口

MOVAL,[SI];装入数初值低字节

OUTDX,ALMOVAL,[SI]+1;装入计数初值高字节

OUTDX,ALPOPSIPOPDXRETLOADENDPCODEENDSENDOK第58页,课件共73页,创作于2023年2月八、8253-5在PC的应用8253-5在PC中的作用C0---实时时钟信号C1---RAM刷新的定时信号C2---产生声音。也可编程用于其它工作基地址:40H8253-5在PC中的连接:时钟,初值,门控,工作方式C0:1.19318MHZ/0/+5V/3双字节C1:1.19318MHZ/18/+5V/2单字节C2:1.19318MHZ/533H/PB0/3双字节第59页,课件共73页,创作于2023年2月BIOS对8253-5的初始化C0的初始化MOVAL,36HOUT43H,ALMOVAL,0OUT40H,ALOUT40H,ALC1的初始化MOVAL,54HOUT43H,ALMOVAL,18OUT41H,AL第60页,课件共73页,创作于2023年2月C2的初始化MOVAL,0B6HOUT43H,ALMOVAX,533HOUT42H,ALMOVAL,AHOUT42H,ALINAL,61HMOVAH,ALORAL,3OUT61H,AL第61页,课件共73页,创作于2023年2月C0应用C0的应用:精确计时观看40:6C---6F,全写0再看C2应用使喇叭发出1-7的音符:声音就是20-20KHZ频率的喇叭震动.1-7的对应频率:523,494,440,392,347,330,294注意喇叭的开和关的控

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论