配色: 字号:
第8章(8253)
2012-05-16 | 阅:  转:  |  分享 
  
课后作业8.35,8.36,8.45,8.46第八章可编程接口技术三峡大学陈慈发0717-6394358,139725
97617chcf0415@126.com12348255A8253/82548251ADAC08325AD
C0809内部定时:计算机本身运行的时间基准,如时钟发生器。定时器/计数器接口外部定时:CPU
与外设之间或外设与外设之间的时序配合。定时方法:软件定时。无需硬件,占用CPU,不准确。不可编程的硬件定时。不占用CPU
,不灵活。可编程的硬件定时。软、硬结合。8253的结构和功能8253计数器内部逻辑图8253端口地址及操作功能由
控制字格式中SC1SC0位决定属于哪个计数器选中控制寄存器10110读输出锁存器OL当前值01对计数器寄存器C
R送初值选中计数器2#10010读输出锁存器OL当前值01对计数器寄存器CR送初值选中计数器1#101
00读输出锁存器OL当前值01对计数器寄存器CR送初值选中计数器0#10000功能A0
A1方式0——计数结束中断方式方式1——外触发单稳脉冲方式方式2——频率发生器方式方式3——方波发生器方式方式4——软
件触发选通方式方式5——硬件触发选通方式8253的工作方式由控制字寄存器决定8253的控制字格式方式0——计数结束
中断方式CLKOUT43210N=4WRCW=10GATE=1OUTGATEN=4432
10N=4WRCW=10启动计数后GATE=0N=5WRCW=10N=3OUTN=55432
1GATE=1计数中改变计数值32一次写入计数值只有一次有效计数。计数过程中GATE=0,暂停计数,GATE
=1连续计数。计数过程中改变计数值,立刻按新的计数值计数计数值为N,计数N+1次方式1——外触发单稳脉冲方式CL
KOUT32103N=3WRCW=12GATE启动计数GATEOUTGATE32321G
ATE计数中重复触发1N=2WRCW=12OUT21321计数中改变计数值00GATEN=3
一次写入计数值多次计数。GATE=1启动计数,重复启动重复计数。计数过程中改变计数值,下次启动按新的计数值计数
计数值为N,计数N次方式2——频率发生器方式CLKOUT32132N=3WRCW=14GATE=11
3OUTGATEN=3WRCW=14启动计数后GATE=0323213N=4WRCW=14N=3
OUTGATE=1计数中改变计数值4313212写入计数值开始计数,周期性计数。计数过程中GATE
=0,暂停计数,GATE=1重新计数。计数过程中改变计数值,下一周期按新的计数值计数。方式3——方波发生器方式CLKOU
T42424N=4WRCW=16GATE=1偶计数值24N=5WRCW=16GATE=1奇计数
值OUT5314532N=4WRCW=16N=3OUTGATE=1计数中改变计数值422
3412写入计数值开始计数,周期性计数。N=偶数,正负半周=N/2;N=奇数,正半周=(N+1)/2,负半周=(N-
1)/2。计数过程中GATE=0,暂停计数;GATE=1,重新计数。计数过程中改变计数值,下一周期按新的计数值计数。方
式4——软件触发选通方式CLKOUT32100N=3WRCW=18GATE=1启动计数00GATE
=0暂停计数OUT3332031GATEN=4WRCW=16N=2OUTGATE=1计数中改
变计数值4321200一次写入计数值只有一次有效计数。计数过程中GATE=0,暂停计数;GATE=1,连
续计数。计数过程中改变计数值,立刻按新的计数值计数。计数值为N,计数N+1次。方式5——硬件触发选通方式CLK
OUT33321N=3WRCW=16GATE启动计数00GATEGATE重复启动计数OUT3
23210GATEN=4WRCW=16N=2OUT计数中改变计数值431021GATE2
一次写入计数值多次计数。GATE上升沿启动计数,重复启动重新计数。计数过程中改变计数值,下次启动按新的计数值重新计数。
计数值为N,计数N+1次。方式0与方式4性能完全相同,均为软件触发,单次计数,但OUT输出波形不同。方式0的OUT输出N+
1个负脉冲,而方式4仅1个;方式1与方式5性能完全相同,均为硬件GATE门控信号可重复触发,但OUT输出波形不同。方式1的OUT
输出N个负脉冲,而方式5仅1个;方式2与方式3性能完全相同,均为软件启动,重复周期输出,但OUT输出波形不同。方式2的OUT只输
出1个负脉冲,而方式3为方波,输出的高低电平宽度相同(初值为偶数正负半周相同,初值为奇数时正半周比负半周多一个脉冲周期);方式0
、4、5计数初值为N,实际计数N+1次;方式1、2、3计数初值为N,实际计数N次。工作方式小结——启动计数5允许计数
——禁止计数4允许计数启动计数(1)禁止计数(2)OUT立即为高电平3允许计数启动计数(1)禁止计数(2)O
UT立即为高电平2——(1)启动计数(2)下一个时钟启动,OUT为低电平——1允许计数——禁止计数0高电平
上升沿低电平或下降沿GATE信号状态及影响工作方式GATE信号对工作方式的影响8253与系统的连接与8088连接
端口地址?0FF04H~0FF07H与PC连接8253的编程和应用初始化编程①写入计数器的控制字,规定其工作方式。
②写入计数初值。当计数初值为8位,则控制字中RL1RL0应取01,初值只写入CR的低8位(高8位会自动置0);若是16位初值
,而低8位是0,则RL1RL0应取10,初值高8位只写入到CR的高8位,低8位会自动置0;若是16位初值,则RL1RL0应取11
,且分两次写入初值,先写低8位,再写高8位。由于CE计数器采用减1计数,故当初值为0000H时,是最大的计数初值。由于8253
中3个计数器是独立的,故对3个计数器的初始化编程不必一定按照计数器0、1、2的顺序进行,而是可以按照任意顺序。但对某一个计数器来说
,则必须按照先写控制字、再写计数初值的顺序进行,不得颠倒。【例】设0#计数器,工作于方式3,计数初值为2000H,采用BCD计数
方式;1#计数器,工作于方式2,计数初值为64H(单字节),采用二进制计数方式。设8253的端口地址为80H~83H。试编写其初始
化程序。MOV AL,00110111B ;对0#计数器送工作方式字OUT 83H,ALMOV AX,2000H ;送计数
初值OUT 80H,AL ;选送低8位MOV AL,AH ;再送高8位OUT 80H,ALMOV AL,0101010
0B ;对1#计数器送工作方式字OUT 83H,ALMOV AL,64H ;送计数初值OUT 81H,ALMOV AL,
00100111B ;对0#计数器送工作方式字OUT 83H,ALMOV AL,20H ;送计数初值OUT 80H,AL
;直接送高8位MOV AL,01010100B ;对1#计数器送工作方式字OUT 83H,ALMOV AL,64H ;送
计数初值OUT 81H,ALD0D78253…D0D7A0A1A0A1CSRDWR
RDWRGATE0GATE1GATE20FFAHCLK0OUT0CLK1OUT1CLK2OUT2外部计数
INTR2.5MHz1KHz秒【例】8086系统中8253芯片的地址为0FFAH~0FFDH,编写初始化程序完成如下功能。
1)?计数器0完成对外部事件计数功能,计满100次向CPU发出中断。2)?计数器1输入为2.5MHz方
波脉冲,产生频率为1KHz的方波。3)?计数器2输出标准秒脉冲时钟。#0:方式字:方式0,00010000B=1
0H计数值:100D-1=63H#1:方式字:方式3,01110110B=76H计数值:2.5M/1000=25
00D#2:方式字:方式2,10110101B=B5H计数值:1000/1=1000D MOV DX,
0FFDHMOV AL,10H OUT DX,AL ;初始化通道0MOV DX,0FFAHMOV AL
,63H ;计数值100OUT DX,ALMOV DX,0FFDHMOV AL,76H OUT DX,A
L ;初始化通道1为方式3MOV DX,0FFBHMOV AX,2500D OUT DX,AL
;计数值低位MOV AL,AHOUT DX,AL ;计数值高位MOV DX,0FFDHMOV AL,0B
5H OUT DX,AL ;初始化通道2为方式2MOV DX,0FFCHMOV AL,00HOUT
DX,AL ;计数值低位MOV AL,10HOUT DX,AL ;计数值高位【例】根据图示编写825
3的初始化程序。其中:0#计数器工作于方式0,计数初值2000H,二进制计数;1#计数器工作于方式2,计数初值
1234H,BCD计数;2#计数器工作于方式4,计数初值7FFFH,二进制计数。从图中片选信号的译码电路可知:A1
5A14……A7A6A5A4=00××××××0100B=000000000100B0#计数器的片内A1A0=00,故C
PU地址线A3A2=00,因而:0#计数器的口地址=000000001000000B=40H;1#计数器的口地址=000
000001000100B=44H;2#计数器的口地址=000000001001000B=48H;控制寄存器口地址
=000000001001100B=4CH。MOV AL,00110000B ;0#计数器,方式0,二进制计数OUT 4
CH,ALMOV AL,00H ;送0#计数器计数初值低字节OUT 40H,ALMOV AL,20H ;送0#计数器计数
初值高字节OUT 40H,ALMOV AL,01110101B ;1#计数器,方式2,BCD计数OUT 4CH,ALMOV
AL,34H ;送1#计数器计数初值低字节OUT 44H,ALMOV AL,12H ;送1#计数器计数初值高字节OUT
44H,ALMOV AL,10111000B ;送2#计数器、方式4、二进制计数OUT 4CH,ALMOV AL,0FFH
;送2#计数器初值低字节OUT 48H,ALMOV AL,7FH ;送2#计数器初值高字节OUT 48H,AL2.5
Mz8255PA0+5VINTOUT0+5V光敏电阻OUT1驱动扬声器工件移动方向CLK0GATE0
CLK1GATE1光源【例】一生产线,每通过50个工件,扬声器响5秒种,频率为2000Hz。设8253口地址为40H~43
H,8255A口地址为80H。试编程实现之。#0: 方式2,计数工件,计数值50,BCD计数, 控制字00010101B
=15H#1: 方式3,驱动扬声器输入2.5MHZ,产生2000HZ的频率,计数值为2500000/2000=1250, 控
制字:01110111B=77H8255: PA0高电平启动扬声器发声。主程序: MOV AL,15H ;#0方式字
OUT 43H,AL MOV AL,50H ;#0计数值 OUT 40H,AL MOV AL,00 OUT 80H,AL ;关喇叭 MOV AL,77H ;#1方式字 OUT 43H,AL MOV AL,50H ;计数低位 OUT 41H,AL MOV AL,12H ;计数高位 OUT 41H,AL LOP: STI ;开中断 HLT JMP LOP ;等待中断中断服务程序: ...... MOV AL,01H ;启动喇叭 OUT 80H,AL CALL DL5S ;延时 MOV AL,00 OUT 80H,AL ;关喇叭 ...... IRET ;中断返回
献花(0)
+1
(本文系依米荷阳首藏)