009第9章常用可编程接口技术及应用

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

第九章常用可编程接口技术及应用本章内容可编程计数器/定时器8253可编程并行接口芯片8255A9.1可编程计数器/定时器8253定时控制在微机系统中具有极为重要的作用,计数是许多过程控制领域常用的功能。它们都是由数字电路中的计数电路构成。定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔。计数电路记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器。定时器和计数器8253定时计数器概述3个独立的16位计数器通道每个计数器有6种工作方式按二进制或十进制(BCD码)计数8253的内部结构D7~D0计数器0控制字寄存器计数器1计数器2内部数据总线数据总线缓冲器读写控制逻辑RDWRA0A1CSCLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT28253的引脚1.计数器预置寄存器GATECLKOUT减1计数器输出锁存器计数初值存于预置寄存器;在计数过程中,减法计数器的值不断递减,而预置寄存器中的预置不变。输出锁存器用于写入锁存命令时,锁定当前计数值计数器的3个引脚CLK时钟输入信号在计数过程中,此引脚上每输入一个时钟信号(下降沿),计数器的计数值减1。计数器计数的对象。GATE门控输入信号控制计数器工作,可分成电平控制和上升沿控制两种类型。高电平时允许计数器工作。OUT计数器输出信号当一次计数过程结束(计数值减为0),OUT引脚上将产生一个输出信号2.与处理器接口D0~D7数据线A0~A1地址线CS*片选信号RD*读信号WR*写信号端口选择CS*A1A0I/O地址读操作RD*写操作WR*00000101001140H41H42H43H读计数器0读计数器1读计数器2无操作写计数器0写计数器1写计数器2写控制字9.28253控制字计数器读写格式工作方式数制D7D6D5D4D3D2D1D000计数器001计数器110计数器211非法00计数器锁存命令01只读写低字节10只读写高字节11先读写低字节后读写高字节000方式0001方式1X10方式2X11方式3100方式4101方式50二进制1十进制示例9.38253的工作方式8253有6种工作方式,由方式控制字确定熟悉每种工作方式的特点才能根据实际应用问题,选择正确的工作方式每种工作方式的过程类似:⑴设定工作方式⑵设定计数初值〔⑶硬件启动〕⑷计数初值进入减1计数器⑸每输入一个时钟计数器减1的计数过程⑹计数过程结束方式0:计数结束中断1,结果特点:计数器减为0时,OUT升高,向CPU发中断申请。2,过程特点:(1)控制字写入:OUT变为0且保持,直到计数为0(2)计数值写入:OUT不变,仍为0(3)启动方式:写入计数值,写入后,再下一个CLK计数脉冲到来时,计数初值由初值寄存器进入计数器。(4)计数期间:OUT不变,仍为0(5)计数为0时:OUT升高,OUT=1,直到写入新的控制字或计数值才能使OUT=0(6)计数期间写入新的计数值:如果计数值为一个字节,则在写入后的下一个时钟脉冲,新的计数值送入计数器,开始新的计数。如果计数值为两个字节,则在写入第一个字节时终止计数,写入第二个字节后的下一个时钟脉冲,新的计数值送入计数器,开始新的计数(7)GATE作用:GATE=0,禁止计数;GATE=1,允许计数,从刚才断开的地方开始(8)计数值有效期限:计数值一次有效。方式0:计数结束中断方式0:计数结束中断①②④③⑤GATEOUTCLK031244方式0WR①设定工作方式②设定计数初值③计数值送入计数器④计数过程⑤计数结束方式0时GATE信号的作用方式0在计数过程中改变计数值方式1:可编程单稳脉冲1,结果特点:输出单拍负脉冲,脉冲宽度可编程设定2,过程特点:(1)控制字写入:OUT=1(2)计数值写入:OUT=1不变(3)启动方式:GATE上升沿,启动后的下一个CLK脉冲使OUT变低电平(延迟一个时钟周期)。(4)计数期间:OUT不变,仍为0(5)计数为0时:OUT升高,OUT=1。(6)计数期间写入新的计数值:不影响原计数,只有当下一个GATE上升沿到来时才使用新的计数值。(7)GATE作用:GATE=0或GATE=1不影响计数,但若出现上升沿则重新启动计数器,按最新计数值开始计数。若在计数尚未结束时就出现了上升沿,则重新计数,故使输出负脉冲的宽度延长。(8)计数值有效期限:计数值多次有效,在没有新的计数值写入之前,原计数值保持不变,以后每触发一次,初值寄存器中保存的计数值就重新装入计数器一次方式1:可编程单稳脉冲方式1:可编程单稳脉冲①②⑤④⑥①设定工作方式②设定计数初值③③硬件启动④计数值送入计数器⑤计数过程⑥计数结束GATEOUTCLK031244方式1WR方式1时GATE信号的作用方式1在计数过程中改变计数值方式2:脉冲频率发生器(分频器)1,结果特点:产生连续的负脉冲信号,负脉冲宽度等于一个CLK周期;脉冲周期=计数值×CLK周期。2,过程特点:(1)控制字写入:OUT=1(2)计数值写入:OUT=1不变(3)启动方式:两种:硬件启动:GATE上升沿,软件启动:写入计数值启动(此时GATE=1)(4)计数期间:OUT=1,但在计数器由1到0的过程中,OUT输出一个宽度为CLK的负脉冲。(5)计数为0时:OUT=1,开始下一周期的计数。(6)计数期间写入新的计数值:影响随后的脉冲周期。(7)GATE作用:GATE=0,OUT=1,停止计数;GATE上升沿启动计数器重新计数;GATE=1,不影响计数器工作。(8)计数值有效期限:计数值重复有效。当计数值减到0时,初值寄存器的计数值自动重新装入计数器,实现循环计数。方式2:脉冲频率发生器(分频器)方式2:脉冲频率发生器(分频器)03124GATEOUTCLK4方式2031240312403124WR方式2时GATE信号的作用方式2在计数过程中改变计数值方式3:方波发生器1,结果特点:产生连续的方波,方波的重复周期=计数值×CLK脉冲周期2,过程特点:(1)控制字写入:OUT=1(2)计数值写入:OUT=1不变(3)启动方式:两种:硬件启动:GATE上升沿,软件启动:写入计数值启动(此时GATE=1)(4)计数期间:若计数值为偶数,则在前N/2计数期间,OUT=1,后N/2计数期间,OUT=0;若计数值为奇数,则在前(N+1)/2计数期间,OUT=1,后(N-1)/2计数期间,OUT=0。(5)计数为0时:OUT=1,从而完成一个周期,然后,计数初值由初值寄存器装入计数器,开始下一周期的计数。(6)计数期间写入新的计数值:不影响当前输出周期,等计数值到0时,或GATE有上跳沿后,计数初值由初值寄存器装入计数器,开始以新的周期输出方波。(7)GATE作用:GATE=0,停止计数,OUT=1;GATE上升沿,下一个时钟启动计数器重新计数;GATE=1,不影响计数器工作。(8)计数值有效期限:计数值重复有效。当计数值减到0时,初值寄存器的计数值自动重新装入计数器,实现循环计数。方式3:方波发生器方式3:方波发生器02244GATEOUTCLK4方式3022440224402244WR方式3时计数值为奇数方式3时GATE信号的作用方式4:软件触发选通1,结果特点:计数器减为0时,输出一个时钟周期的负脉冲。2,过程特点:(1)控制字写入:OUT=1(2)计数值写入:OUT=1不变(3)启动方式:软件启动:写入计数值启动(此时GATE=1)(4)计数期间:OUT=1。(5)计数为0时:输出一个宽度为一个CLK周期的负脉冲,然后又自动变为高电平,并一直维持高电平,通常将此脉冲作为选通信号。(6)计数期间写入新的计数值:立即有效,在下一个时钟脉冲以新值计数(计数值一个字节),若计数值为两个字节,则在写入第一个字节时计数不受影响。(7)GATE作用:GATE=0,停止计数;GATE=1,允许计数,此时计数器从暂停的地方开始连续计数,GATE信号不影响OUT的状态。(8)计数值有效期限:计数值一次有效。只有在输入新的计数值后才能开始新的计数。方式4:软件触发选通方式4:软件触发选通信号GATEOUTCLK031244方式4WR方式4时GATE信号的作用方式4在计数过程中改变计数值方式5:硬件触发选通1,结果特点:计数器减为0时,输出一个时钟周期的负脉冲。2,过程特点:(1)控制字写入:OUT=1(2)计数值写入:OUT=1不变(3)启动方式:GATE上升沿,启动后的下一个CLK脉冲开始计数。(4)计数期间:OUT=1。(5)计数为0时:输出一个宽度为一个CLK周期的负脉冲,然后又自动变为高电平。(6)计数期间写入新的计数值:不影响本次计数,但下次硬件启动后按照新的计数值计数。(7)GATE作用:无论GATE=0或GATE=1均不影响计数,只有GATE信号上升沿才重新开始计数。(8)计数值有效期限:计数值多次有效。当计数值减到0后,将自动重新装入计数值,但并不开始计数,而是在GATE信号上升沿才开始计数。方式5:硬件触发选通方式5:硬件触发选通信号GATEOUTCLK031244方式522333110WR方式5时GATE信号的作用方式5在计数过程中改变计数值各种工作方式的输出波形方式0方式1方式2方式3方式4方式50N0N0N0/N110NN/2N/20/N0N01N01N01讨论:计数开始的时刻9.48253的编程8253加电后的工作方式不确定8253必须初始化编程,才能正常工作写入控制字写入计数初值读取计数值D7D6D5D4D3D2D1D0写入控制字和计数值选择二进制时计数值范围:0000H~FFFFH0000H是最大值,代表65536选择十进制(BCD码)计数值范围:0000~99990000代表最大值10000计数值写入计数器各自的I/O地址示例控制字写入控制字I/O地址(A1A0=11)示例读取计数值对8位数据线,读取16位计数值需分两次计数在不断进行,应该将当前计数值先行锁存,然后读取:向控制字I/O地址:给8253写入锁存命令从计数器I/O地址:读取锁存的计数值读取计数值,要注意读写格式和计数数制计数器0:初始化程序moval,36h;36H=00110110B;计数器0为方式3,采用二进制计数;先低后高写入计数值out43h,al;写入方式控制字moval,05;计数值低字节为5out40h,al;写入低字节计数值moval,08;计数值高字节为8out40h,al;写入高字节计数值9.58253应用【例1】8253在IBMPC机中的应用。IBMPC机系统板上8253的接口电路如图9.9所示,3个计数器的时钟输入频率为1.1932MHZ。系统分配给8253的端口地址为40H~43H。CSWRRDD7~D0A0CLK0GATE0OUT0A1CLK1GATE1OUT1GATE2OUT2CLK2地址译码QDCPQ+5V(8255)PB0(8284)PCLKDBIORIOW(8259)IR0DCPQ+5V(8237)DREQ0&8255PB1放大器扬声器ABIBM-PC机系统板上8253接口电路F=1.1932MHZ计数器0为方式3,先写低字节,后写高字节,二进制计数,计数初值为0。输出端OUT0接至中断控制器8259A的IR0,OUT0输出的脉冲周期约为55ms(65536÷1193200),即计数器0每隔55ms产生一次中断请求。计数器1为方式2,只写低字节,二进制计数,计数初值为18。输出端OUT1接至DMA控制器8237A通道0的DMA请求DREQ0,作为定时(15.08µs)刷新动态存储器的启动信号。IBM-PC机BIOS对CNT0的初始化程序:MOVAL,00110110BOUT43H,ALMOVAL,0OUT40H,ALOUT40H,ALIBM-PC机BIOS对CNT1的初始化程序:MOVAL,0

1 / 108
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功