《定时计数控制接口培训课件.pptx》由会员分享,可在线阅读,更多相关《定时计数控制接口培训课件.pptx(56页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第 9 9 章章第第9 9章章 定时计数操作接口定时计数操作接口教学重点 8253的引脚和的引脚和6种工作方式种工作方式 8253的编程的编程 8253在在IBM PC系列机上的应用系列机上的应用定时器和计数器定时操作在微机系统中极为重要定时操作在微机系统中极为重要n定定时时器器由由数数字字电电路路中中的的计计数数电电路路构构成成,通通过过记记录录高高精精度度晶晶振振脉脉冲冲信信号号的的个个数数,输出准确的时间间隔输出准确的时间间隔n计计数数电电路路如如果果记记录录外外设设提提供供的的具具有有一一定定随随机机性性的的脉脉冲冲信信号号时时,它它主主要要反反映映脉脉冲冲的的个个数数(进进而而获获
2、知知外外设设的的某某种种状状态态),常又称为计数器常又称为计数器定时功能的实现方法n软软件件延延时时利利用用微微处处理理器器执执行行一一个个延延时程序段实现时程序段实现n不不可可编编程程的的硬硬件件定定时时采采用用分分频频器器、单稳电路或简易定时电路操作定时时间单稳电路或简易定时电路操作定时时间n可可编编程程的的硬硬件件定定时时软软件件硬硬件件相相结结合合、用用可可编编程程定定时时器器芯芯片片构构成成一一个个方方便便灵灵活活的定时电路的定时电路9.1 8253/8254定时计数器n3个独立的个独立的16位计数器通道位计数器通道n每个计数器有每个计数器有6种工作方式种工作方式n按二进制或十进制(
3、按二进制或十进制(BCD码)计数码)计数8254是是8253的改进型的改进型9.1.1 8253/8254的内部结构和引脚D7D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2计数器结构示意图预置寄存器预置寄存器GATECLKOUT减减1计数器计数器输出锁存器输出锁存器计数初值存于预置存放器;计数初值存于预置存放器;在计数过程中,在计数过程中,减法计数器的值不断递减,减法计数器的值不断递减,而预置存放器中的预置不变。而预置存放器中的预置不变。输出锁存器用于写入锁存命令时
4、,输出锁存器用于写入锁存命令时,锁定当前计数值锁定当前计数值计数器的3个引脚nCLK时时钟钟输输入入信信号号在在计计数数过过程程中中,此此引引脚脚上上每每输输入入一一个个时时钟钟信信号号(下下降降沿沿),计数器的计数值减,计数器的计数值减1nGATE门门控控输输入入信信号号操操作作计计数数器器工工作作,可可分分成成电电平平操操作作和和上上升升沿沿操操作作两两种种类型类型nOUT计计数数器器输输出出信信号号当当一一次次计计数数过过程程结结束束(计计数数值值减减为为0),OUT引引脚脚上上将产生一个输出信号将产生一个输出信号2.与处理器接口nD0 D7数据线数据线A0 A1地址线地址线nRD*读信
5、号读信号WR*写信号写信号nCS*片选信号片选信号CS*A1 A0I/O地址地址读操作读操作RD*写操作写操作WR*0 0 00 0 10 1 00 1 140H41H42H43H读计数器读计数器0读计数器读计数器1读计数器读计数器2无操作无操作写计数器写计数器0写计数器写计数器1写计数器写计数器2写操作字写操作字计数器计数器读写格式读写格式工作方式工作方式数制数制D7D6D5D4D3D2D1D000 计数器001 计数器110 计数器211 非法00 计数器锁存命令 01 只读写低字节10 只读写高字节11 先读写低字节 后读写高字节000 方式0001 方式1010 方式2011 方式31
6、00 方式4101 方式50 二进制1 十进制例如9.1.2 8253/8254的工作方式n8253有有6种工作方式,由方式操作字确定种工作方式,由方式操作字确定n熟熟悉悉每每种种工工作作方方式式的的特特点点才才能能根根据据实实际际应应用用问问题题,选择正确的工作方式选择正确的工作方式n每种工作方式的过程类似:每种工作方式的过程类似:设定工作方式设定工作方式 设定计数初值设定计数初值 硬件启动硬件启动 计数初值进入减计数初值进入减1计数器计数器 每输入一个时钟计数器减每输入一个时钟计数器减1的计数过程的计数过程 计数过程结束计数过程结束121.方式0:计数结束中断GATEOUTCLK03124
7、4方式0WR设定工作方式设定计数初值计数值送入计数器计数过程计数结束输出OUT信号随即变为低电平 其输出OUT信号变为高电平 门控信号为高时允许计数,为低暂停计数,重新为高时,接着当前计数值继续计数计数期间给计数器重装新值,在写入新值后重新开始计数132.方式1:可编程单稳脉冲(N时钟周期的单稳负脉冲)设定工作方式设定计数初值硬件启动计数值送入计数器计数过程计数结束GATEOUTCLK031244方式1WR计数过程中写入新的计数值,不影响当前计数;假设再次由GATE触发启动,则按照新值开始计数。计数过程结束前,GATE再次触发,则计数器重新装入计数值,从头开始计数 输出OUT信号变为高 143
8、.方式2:频率发生器(分频器)03124GATEOUTCLK4方式2031240312403124WR计数器减为1时,OUT变为低,经过一个CLK,回复为高,且计数器重新开始计数计数过程中装入新值,将不影响现行计数;但从下个周期开始按新的计数值计数GATE为低电平将停止计数,并使输出为高。GATE为高电平,计数器将重新装入预置计数值,开始计数。这样。GATE能用硬件对计数器进行同步 154.方式3:方波发生器03124GATEOUTCLK4方式3031240312403124WR计数值为偶数时,前一半输出为高电平,后一半输出为低电平。如果计数值为奇数,前一半比后一半多一个时钟脉冲的高电平,随后
9、输出为低 165.方式4:软件触发选通信号GATEOUTCLK031244方式4223331 0WR这种计数是一次性的 计数过程中重新装入新值,将不影响当前计数。GATE为低禁止计数,变为高则计数器重新装入计数初值,开始计数 176.方式5:硬件触发选通信号GATEOUTCLK031244方式52233311 0WR计数过程中重新装入新值,不影响当前计数。GATE又有触发信号,则计数器重新装入计数初值,从头开始计数 各种工作方式的输出波形方式方式 0方式方式 1方式方式 2方式方式 3方式方式 4方式方式 50N0N0N0/N110NN/2 N/2 0/N0N0 1N0 1N0 1讨论:讨论:
10、计数开始的时刻计数开始的时刻计数开始的时刻n需要注意:需要注意:n处处理理器器写写入入8253的的计计数数初初值值只只是是写写入入了了预预置置存存放放器器,之之后后到到来来的的第第一一个个CLK输输入入脉脉冲冲(需需先先由由低低电电平平变变高高,再再由由高高变变低低)才才将将预预置存放器的初值送到减置存放器的初值送到减1计数器。计数器。n从从第第二二个个CLK信信号号的的下下降降沿沿,计计数数器器才才真真正正开始减开始减1计数。计数。出处:教材第出处:教材第217页第页第15行行实验:实验:计数开始的时刻计数开始的时刻9.1.3 8253/8254的编程n8253加电后的工作方式不确定加电后的
11、工作方式不确定n8253必须初始化编程,才能正常工作必须初始化编程,才能正常工作n写入操作字写入操作字n写入计数初值写入计数初值n读取计数值读取计数值n8254新增读回命令新增读回命令D7D6D5D4D3D2D1D01 写入方式操作字计数器计数器读写格式读写格式工作方式工作方式数制数制D7D6D5D4D3D2D1D000 计数器计数器001 计数器计数器110 计数器计数器211 非法非法00 计数器锁存命令计数器锁存命令 01 只读写低字节只读写低字节10 只读写高字节只读写高字节11 先读写低字节先读写低字节 后读写高字节后读写高字节000 方式方式0001 方式方式1010 方式方式20
12、11 方式方式3100 方式方式4101 方式方式50 二进制二进制1 十进制十进制操作字写入操作字操作字写入操作字I/O地址(地址(A1A011)例如例如2 写入计数值n选择二进制时选择二进制时n计数值范围:计数值范围:0000HFFFFHn0000H是最大值,代表是最大值,代表65536n选择十进制(选择十进制(BCD码)码)n计数值范围:计数值范围:00009999n0000代表最大值代表最大值10000计数值写入计数器各自的计数值写入计数器各自的I/O地址地址例如例如3 读取计数值n对对8位数据线,读取位数据线,读取16位计数值需分两次位计数值需分两次n计计数数在在不不断断进进行行,应
13、应该该将将当当前前计计数数值值先先行行锁存,然后读取:锁存,然后读取:n向操作字向操作字I/O地址:给地址:给8253写入锁存命令写入锁存命令n从计数器从计数器I/O地址:读取锁存的计数值地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制读取计数值,要注意读写格式和计数数制mov al,36h;36H00 11 011 0B;计数器;计数器0为方式为方式3,采用二进制计数,采用二进制计数;先低后高写入计数值;先低后高写入计数值out 43h,al;写入方式操作字;写入方式操作字mov al,0;计数值为;计数值为0out 40h,al;写入低字节计数值;写入低字节计数值out 40h,
14、al;写入高字节计数值;写入高字节计数值294.8254的读回命令n8254比比8253多多了了读读回回命命令令,可可以以令令3个个通通道道的的计计数数值和状态锁存,向值和状态锁存,向CPU返回一个状态字返回一个状态字n读读回回命命令令写写入入操操作作端端口口,状状态态字字和和计计数数值值都都通通过过计计数数器端口读取器端口读取 9.2 8253在IBM PC系列机上的应用A0A1 A0 A1D0D7D0D7OUT1OUT2OUT0GATE0GATE1GATE2CLK0CLK1CLK2D QCLK+5V接至接至DMA控制器控制器接至扬声器驱动器接至扬声器驱动器PB0PB1IRQ0DRQ0825
15、3+5V1.19318MHzDACK0 BRDIORIOWRDWRCST/CCS9.2.1 定时中断和定时刷新n从阅读初始化程序段从阅读初始化程序段n看计数器看计数器0作为定时中断的作用作为定时中断的作用n将计数器将计数器1作为定时刷新作为定时刷新n看如何编写初始化程序段看如何编写初始化程序段定时中断mov al,36h;计数器计数器0为方式为方式3,采用二进制计数,采用二进制计数,;先低后高写入计数值先低后高写入计数值out 43h,al;写入方式操作字写入方式操作字mov al,0;计数值为计数值为0out 40h,al;写入低字节计数值写入低字节计数值out 40h,al;写入高字节计数
16、值写入高字节计数值8253初始化计数器0:定时中断n计计数数器器0:方方式式3,计计数数值值:65536,输输出出频频率率为为1.19318MHz6553618.206Hz的方波的方波n门控为常启状态,这个方波信号不断产生门控为常启状态,这个方波信号不断产生nOUT0端接端接8259A的的IRQ0,用作中断请求信号,用作中断请求信号n每每 秒秒 产产 生生 18.206次次 中中 断断 请请 求求,或或 说说 每每 隔隔55ms(54.925493ms)申请一次中断)申请一次中断nDOS系系统统利利用用计计数数器器0的的这这个个特特点点,通通过过08号号中断效劳程序实现了日时钟计时功能中断效劳
17、程序实现了日时钟计时功能计数器1:定时刷新n需要重复不断提出刷新请求需要重复不断提出刷新请求门控总为高,选择方式门控总为高,选择方式2或或3n2ms内刷新内刷新128次,即次,即15.6 s刷新一次刷新一次计数初值为计数初值为18定时刷新mov al,54h;计计数数器器1为为方方式式2,采采用用二二进进制制计计数数,只只写写低低8位计数值位计数值out 43h,al;写入方式操作字写入方式操作字mov al,18;计数初值为计数初值为18out 41h,al;写入计数值写入计数值8253初始化9.2.2 扬声器操作n计数器计数器2的输出操作扬声器的发声音调的输出操作扬声器的发声音调n计计数数
18、器器2只只能能工工作作在在方方式式3,才才能能输输出出一一定定频频率率的的方方波波,经经滤滤波波后后得得到到近近似似的的正正弦波,进而推动扬声器发声弦波,进而推动扬声器发声n扬声器还受控于并行接口(扬声器还受控于并行接口(8255芯片)芯片)n必必须须使使PB0和和PB1同同时时为为高高电电平平,扬扬声声器器才能发出预先设定频率的声音才能发出预先设定频率的声音频率设置speakerprocpush axmov al,0b6hout 43h,al;写入操作字写入操作字pop axout 42h,al;写入低写入低8位计数值位计数值mov al,ahout 42h,al;写入高写入高8位计数值位计
19、数值retspeakerendp扬声器操作扬声器开speakonprocpush axin al,61hor al,03h;D1D0PB1PB011B,其他位不变,其他位不变out 61h,alpop axretspeakonendp扬声器操作扬声器关speakoffprocpush axin al,61hand al,0fch;D1D0PB1PB000B,其他位不变,其他位不变out 61h,alpop axretspeakoffendp扬声器操作主程序;数据段数据段freqdw 1193180/600;代码段代码段mov ax,freqcall speaker;设置扬声器音调设置扬声器音调
20、call speakon;翻开扬声器声音翻开扬声器声音mov ah,1;等待按键等待按键int 21hcall speakoff;关闭扬声器声音关闭扬声器声音扬声器操作9.2.3 可编程硬件延时n利利用用日日时时钟钟每每隔隔55ms中中断断一一次次不不变变的的特特点点,可可以以编编写写一一段段不不随随系系统统时时钟钟频频率率变化的固定延时程序变化的固定延时程序n由由于于日日时时钟钟中中断断的的时时间间单单位位是是55ms,所以无法实现更短时间的延时所以无法实现更短时间的延时n这这时时只只有有利利用用实实时时时时钟钟中中断断,不不过过它它的的最短延时约是最短延时约是1ms(976 s)日时钟;延
21、时开始延时开始mov ah,0int 1ahadd dx,90;加加5秒(秒(51890)mov bx,dx;期望值送期望值送bxrepeat:int 1ah;再读日时钟再读日时钟cmp bx,dx;与期望值比较与期望值比较jne repeat;不等,则循环不等,则循环;相等,延时结束相等,延时结束可编程硬件延时实时时钟;延时开始延时开始mov cx,0mov dx,1952;延时延时1.952ms2976 smov ah,86hint 15h;功能调用返回时,定时时间到功能调用返回时,定时时间到可编程硬件延时9.3 扩充定时计数器的应用n例题例题9.29.2利用扩充定时计数器对外部事件的计数
22、利用扩充定时计数器对外部事件的计数n例题例题9.39.3为为A/D转换电路提供可编程的采样信号转换电路提供可编程的采样信号例9.2A0A1 A0 A1外部事件产生源外部事件产生源8253OUT0GATE0CLK0200207HIRQD0D7D0D7译码译码电路电路AENA3A9+5VCSIORIOWRDWR初始化程序段mov dx,203h;设置方式操作字设置方式操作字mov al,10hout dx,al mov dx,200h;设置计数初值设置计数初值mov al,64h;计数初值为计数初值为100out dx,al例9.2输出:明确向哪个端口输出什么数据输出:明确向哪个端口输出什么数据输
23、入:清楚从哪个端口输入什么数据输入:清楚从哪个端口输入什么数据例9.3为A/D转换电路提供可编程的采样信号8253OUT0GATE0CLK0OUT1GATE1CLK1OUT2GATE2CLK2启动转换启动转换时钟源时钟源频率频率 F+5V计数值计数值MNLA0A1A1A2200H207HCS初始化计数器0mov al,14hmov dx,206hout dx,almov al,cnt0mov dx,200hout dx,al例9.3初始化计数器1mov al,52hmov dx,206hout dx,almov al,cnt1mov dx,202hout dx,al例9.3初始化计数器2mov
24、 al,96hmov dx,206hout dx,almov al,cnt2mov dx,204hout dx,al例9.3第第9 9章教学要求章教学要求1.掌掌握握8253引引脚脚,尤尤其其是是CLK、OUT、GATE引脚的功能引脚的功能2.掌掌握握8253的的六六种种工工作作方方式式、编编程程和和在在IBM PC系列机上的应用系列机上的应用习题习题9(第(第 227 页)页)9.2 9.3 9.4 9.6 9.7实验实验3 3 计数器计数器/定时器实验定时器实验 不不用用实实验验台台,就就可可以以实实现现发发声声程序:参考例题程序:参考例题9.1 如如果果要要实实现现第第项项实实验验要要求求,应应该该利利用用中中断断实实验验的的中中断断效效劳劳程程序序 提示提示演讲完毕,谢谢观看!