《微型计算机原理及接口技术》课件第7章-2_第1页
《微型计算机原理及接口技术》课件第7章-2_第2页
《微型计算机原理及接口技术》课件第7章-2_第3页
《微型计算机原理及接口技术》课件第7章-2_第4页
《微型计算机原理及接口技术》课件第7章-2_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

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

文档简介

17.2可编程定时器8253

一、外部引线及功能功能:①计数②产生定时信号③外部可控图7.20可编程定时器8253内部结构框图16bit16bit16bit27.2可编程定时器8253

一、外部引线及功能写读高阻内部寄存器寻址:31.

方式0:计数结束产生中断

方式0可用于事件计数7.2可编程定时器8253

二、工作方式4计数结束禁止计数允许计数允许计数52.

方式1:可编程单稳7.2可编程定时器8253

二、工作方式6计数结束启动计数73.

方式2:频率发生器7.2可编程定时器8253

二、工作方式不影响当前计数初始化计数禁止计数并置OUT为高允许计数N=TOUT/TCLK=fCLK/fOUTOUT输出周期负脉冲信号分频84.

方式3:方波发生器GATE为低电平:禁止计数,强迫OUT输出高电平;GATE为上升沿:初始化计数;GATE为高电平:允许计数(OUT输出对称方波)。7.2可编程定时器8253

二、工作方式N=TOUT/TCLK=fCLK/fOUTOUT输出周期方波信号95.

方式4:软件触发选通用于生成定时选通信号7.2可编程定时器8253

二、工作方式10禁止计数允许计数允许计数116.

方式5:硬件触发选通7.2可编程定时器8253

二、工作方式计数结束启动计数用于产生GATE信号周期若干倍的延迟的6种工作方式时序图82531213二进制计数:0000H~FFFFH

BCD计数:0000~9999计数初值为0000时,对应最大计数值计数值寄存器

减1计数器

计数锁存器7.2可编程定时器8253

三、8253的控制字CPU发锁存命令×减114图7.228253的控制字格式15写计数值:根据控制字中RL1和RL0的编码。读计数值:在计数器停止计数(可利用GATE信号控制)时读计数值。在计数过程中读计数值:写入控制字(锁存命令):SC1SC0

00xxxx读计数器:两条输入指令。7.2可编程定时器8253

四、8253的寻址及连接1.

寻址162.

连接7.2可编程定时器8253

四、8253的寻址及连接17图7.238253与8088系统总线的连接01000011……FF04H~FF07H18图7.24PC机中8253的连接简图A9A8A7A6A5A4A3A2A1A000010XXX040H~043H19初始化顺序:【方法1】

逐个对计数器进行初始化。【方法2】

先写所有计数器的方式字,再装入各计数器的计数值。7.2可编程定时器8253

五、8253的初始化及应用20图7.26另一种初始化编程顺序图7.25一个计数器的初始化顺序21在IBM公布的软件BIOS中,对8253初始化的程序:MOV AL,36H ;计数器0,双字节,方式3,二进制计数OUT 43H,AL ;写入控制寄存器,00

11

011

0MOV AL,0OUT 40H,AL ;写低字节OUT 40H,AL ;写高字节

;计数值:65536 ;输出对称方波7.2可编程定时器8253

五、8253的初始化及应用控制寄存器电路图22在IBM公布的软件BIOS中,对8253初始化的程序:MOV AL,54H ;计数器1,只写低字节,

;方式2,二进制计数OUT 43H,AL ;写入控制寄存器,01

01

010

0MOV AL,18OUT 41H,AL ;写低字节

;计数值:18

;频率发生器PCLK经二分频后,频率为1.19318MHz,则负脉冲间隔时间:18×(1/1.19318)μs=15μs →DRAM刷新7.2可编程定时器8253

五、8253的初始化及应用控制寄存器电路图23在IBM公布的软件BIOS中,对8253初始化的程序:MOV AL,0B6H ;计数器2,写双字节,方式3,二进制计数OUT 43H,AL ;写入控制寄存器,10

11

011

0MOV AX,533HOUT 42H,AL ;写低字节MOV AL,AHOUT 42H,AL ;写高字节

;计数值:533H

;方波发生器

;OUT2经驱动和滤波,接扬声器7.2可编程定时器8253

五、8253的初始化及应用控制寄存器电路图MOV DX,0FF07HMOV AL,36H ;控制字00110110OUT DX,AL ;Timer0,双字节,方式3,二进制计数MOV AL,71H ;控制字01110001OUT DX,AL ;Timer1,双字节,方式0,BCD计数MOV AL,0B5H ;控制字10110101OUT DX,AL ;Timer2,双字节,方式2,BCD计数MOV DX,0FF04HMOV AL,0A8HOUT DX,ALMOV AL,61HOUT DX,AL ;Timer0,61A8HMOV DX,0FF05HMOV AL,00HOUT DX,ALMOV AL,02HOUT DX,AL ;Timer1,0200HMOV DX,0FF06HMOV AX,0050HOUT DX,ALMOV AL,AHOUT DX,AL ;Timer2,0050HSET8253:图7.26控制寄存器2425【例】电源掉电检测。我们目前使用的220V电源为50Hz交流电(国外通常使用110V、60Hz交流电),它通常作为微机系统的系统电源。当系统电源因各种原因出现故障时,为了保护系统的工作状态,需要在备用电源的支持下对重要信息进行保护等处理,以便系统恢复正常供电后能够继续原来的工作,这就需要进行电源掉电检测。7.2可编程定时器8253

五、8253的初始化及应用26【例】电源掉电检测。利用8253实现电源掉电检测的设计思想:利用电源信号经检波、整流生成8253的GATE,这样GATE信号每20ms/16.67ms(对应50Hz/60Hz)产生一次脉冲。使计数值N取得足够大,在方式1下,使得计数器在20ms

(16.67ms)内始终不能减到0,这样,不断出现的GATE脉冲上升沿就会使8253计数器不断被重启计数,使OUT输出一直维持为0,从而不能对8086CPU产生NMI。当电源出现故障时,GATE信号不再产生,计数器最终会计数到0,从而使OUT输出为1,产生对8086CPU的掉电中断NMI。7.2可编程定时器8253

五、8253的初始化及应用27【例】电源掉电检测7.2可编程定时器8253

五、8253的初始化及应用电源掉电检测电路

28【例】电源掉电检测若CLK为2.4576MHz,GATE在20ms内产生一个触发信号,即GATE信号周期为49152个时钟周期(0.02s×2457600Hz),则应取计数值N>49152(C000H)。8253初始化程序:

(设8253的I/O地址为200H~207H中的偶地址)7.2可编程定时器8253

五、8253的初始化及应用29【例】电源掉电检测8253初始化程序:

(设8253的I/O地址为200H~207H中的偶地址)7.2可编程定时器8253

五、8253的初始化及应用MOVDX,0206HMOVAL,00110010B;选计数器0,16位计数长度,

;方式1,二进制计数OUTDX,ALMOVDX,0200HMOVAL,02H;取计数值N=C002HOUTDX,ALMOVAL,C0HOUTDX,AL【例】音调产生器。设计:选工作方式3。在CLK=2.4576MHz时,设置计数值N=558510,则OUT端输出440Hz的音频信号(方波)。R8253CLK1GATE1OUT12.4576MHzPCLKVCC2.2K100ΩVCC7.2可编程定时器8253

五、8253的初始化及应用308253内部有3个独立的计数器,每个计数器可实现最大216计数值和216×TCLK定时时间。如果想要实现更大的计数与定时,就必须将多个计数器串联。串联之后,前级计数器起分频作用,应选择方式2/3,后级计数器选择的方式应由期望定时器最终输出的信号形式确定;总计数值为所有相串联计数器计数值的乘积。7.2可编程定时器8253

六、8253内部计数器的串联318253计数器串联示意图8253CLK2GATE2OUT2CLK0GATE0OUT0CLK1GATE1OUT1时钟VCCRVCCR相关电路所需定时或计数信号计数器0:方式2/3计数值N0计数器1:方式2/3计数值N1计数器2:方式由实际定计数值N2计数器0、1串联:总计数值=N0×N1总定时值=N0×N1×TCLK0计数器0、1、2串联:总计数值=N0×N1×

N2总定时值=N0×N1×N2×TCLK03233计数器2初始化为频率发生器,其输出作为计数器1的时钟输入构建32位计数器:【例】产生A/D定时启动信号设计:计数器0—方式1,L(<256)为计数值,存于LCNT单元计数器1—方式2,M(BCD)为计数值,存于MCNT单元计数器2—方式3,N(<256)为计数值,存于NCNT单元时钟频率为F;8253地址—70H~73H。初始化程序:MOVAL,12H;计数器0,方式1,OUT73H,AL;二进制,低8位MOVAL,LCNTOUT70H,AL;置计数器0计数值LMOVAL,75H;计数器1,方式2,OUT73H,AL;BCD,16位计数MOVAX,MCNTOUT71H,AL;置计数器1计数值MMOVAL,AHOUT71H,ALMOVAL,96H;计数器2,方式3,OUT73H,AL;二进制,低8位计数MOVAL,NCNTOUT72H,AL;置计数器2计数值N34计数器间频率关系:CLK2=F→OUT2=F/N=CLK1→OUT1=F/(MN)=GATE0∴OUT0为周期信号,频率=F/(MN),脉冲宽度=L/F8253CLK0GATE0OUT0CLK1GATE1OUT1CLK2GATE2OUT2方式3N方式2M方式1L+5V时钟至A/DSTARTOUT2N/FOUT1MN/FN/FL/FSTARTMN/F35微机原理及接口技术第7章经典接口及定时器件经典接口芯片7.18255:可编程并行接口7.28253:可编程定时器7.38250/16550:可编程串行通信接口37串行通信的特点:使用的传输线数少传送距离远传送速率低串行通信的方式:同步通信异步通信7.3可编程串行通信接口8250/16550

一、异步串行通信及数据格式381)同步通信:在约定波特率下,发送端和接收端频率保持一致(同步)。7.3可编程串行通信接口8250/16550

一、异步串行通信及数据格式通常一次通信传送几十到几百个字节。发送器、接收器复杂,成本高。39常见的几种同步通信格式(a)单同步格式;(b)双同步格式;(c)SDLC格式;(d)外同步格式;(e)HDLC格式402)异步通信:在约定波特率下,发送端和接收端不需要严格的同步。→两边的频率差别在1/10以内7.3可编程串行通信接口8250/16550

一、异步串行通信及数据格式每传送一个字符,要增加约20%的附加信息位→降低了传送速率可靠,易实现。图7.28异步串行通信数据格式4116550是8250的改进型,与8250的结构基本相同。16550内部具有的接收和发送FIFO:16450:1字节FIFO,与8250结构相同,仅传输速率更高16550:16字节FIFO16650:32字节FIFO16750:64字节FIFO16950:128字节FIFO速度8250:最大9600b/s16550:最大1.5Mb/s7.3可编程串行通信接口8250/16550

二、串行通信接口8250/1655016550与8250之比较:功能描述427.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550(一)引线及功能82501655043fsig_in×16串行in(RxD)串行out(TxD)锁存fsig_out×16外部时钟输入或

外接晶体振荡器IOWIOR中断产生条件:1.8250/16550中断允许2.接收错误或接收数据寄存器满或发送数据寄存器空或

MODEM状态或DB驱动器方向控制通用输出

端口,

由用户

编程指定复位数据载波检测振铃指示请求发送清除发送DTE就绪DCE就绪片选输出RXRDYTXRDY(16550)(16550)RDRDWRWRXINXOUTFIFO错44发送数据接收数据7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (二)工作过程45可编程串行通信接口8250的内部结构框图发送数据46可编程串行通信接口8250的内部结构框图接收数据477.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器线路控制寄存器:LineControlRegister,LCR波特率产生器:BaudRateGenerator,BRG线路状态寄存器:LineStatusRegister,LSRFIFO控制寄存器:FIFOControlRegister,FCR中断控制(允许)寄存器:InterruptControlRegister/InterruptEnableRegister,ICR/IER中断标识(状态)寄存器:InterruptIdentificationRegister/InterruptStatusRegister,IIR/ISR调制解调器控制寄存器:ModemControlRegister,MCR调制解调器状态寄存器:ModemStatusRegister,MSR发送保持寄存器:TransmitHoldingregister,THR接收缓冲寄存器:ReceiveBufferRegister,RBR高速暂存寄存器:ScratchPadRegister,SPR4816550/8250内部寄存器相同?备注1.线路控制寄存器√功能完全相同2.波特率产生器/除数锁存器√功能完全相同3.线路状态寄存器√×16550多了FIFO状态位4.FIFO控制寄存器×8250没有5.中断控制(允许)寄存器√功能完全相同6.中断标识(状态)寄存器√×16550多了有关FIFO状态7.调制解调器控制寄存器√功能完全相同8.调制解调器状态寄存器√功能完全相同9.发送保持寄存器√功能完全相同10.接收缓冲寄存器√功能完全相同11.高速暂存寄存器√8250:不可外部访问高速暂存寄存器又称便笺式寄存器,用作一个便笺本,即一个临时存储寄存器,可以让主机存储一个8位数据字节。7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器49FIFO控制寄存器

501.

线路控制寄存器

LineControlRegister7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器P327,图7.30512.

线路状态寄存器

LineStatusRegister7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器P329,图7.318250/16550发线路状态错中断ERFIFO无错FIFO有错ERFIFO错(16550专用)523.

发送数据寄存器

TransmitterHoldingRegister4.

接收数据寄存器

ReceiverBufferRegister5.

除数锁存器(16位)

DivisorLatchRegister7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器外部时钟频率8250要求的波特率写入顺序:在通信控制字中将D7置1;先写低8位,后写高8位。输入时钟频率1.8432MHz,要使用1200波特率传送数据,则除数=1843200÷(1200×16)=96

=60H,因此DLL =01100000DLM =00000000(波特率产生器)536.

中断控制寄存器

InterruptEnableRegister7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器图7.33中断控制寄存器547.

中断标识寄存器

InterruptIdentificationRegister7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器图7.34中断标识寄存器825016550557.

中断标识寄存器

InterruptIdentificationRegister7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器中断标志中断置位与复位bit2bit1bit0优先级中断原因中断源中断复位XX1无无1101最高接收线路

状态OE,PE,FE或BI读通信状态寄存器(LSR)1002接收数据寄存器满接收数据寄存器满读接收数据寄存器(RBR)0103发送数据寄存器空发送数据寄存器空写发送数据寄存器(THR)或

读中断标志寄存器(IIR)0004最低MODEM状态CTS,DSR,RI,DCD读MODEM状态寄存器(MSR)8250567.

中断标识寄存器

InterruptIdentificationRegister7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器中断标志中断置位与复位bit3bit2bit1bit0优先级中断原因中断源中断复位0XX1无无01101最高接收线路

状态OE,PE,FE或BI读线路存器01002接收数据寄存器满接收数据寄存器满读数据11002字符暂停,至少在4个字符时间内未从接收器FIFO取数据读数据00103发送数据寄存器空发送数据寄存器空写发送数据寄存器00004最低MODEM状态CTS,DSR,RI,DCD读MODEM状态16550578.

MODEM控制寄存器

MODEMControlRegister7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器图7.35MODEM控制寄存器SOUT SINRTS CTSDTR DSROUT1 DCDOUT2 RI589.

MODEM状态寄存器

MODEMStatusRegister7.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (三)内部寄存器图7.36MODEM状态字变化变化变化597.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (四)寻址及连接CS0CS1CS2DLABA2A1A0RDWR所选寄存器1100000只读接收缓冲寄存器1100000只写发送保持寄存器1100001可读/写中断允许寄存器110x010只读中断标识寄存器110x010只写FIFO控制寄存器110x011可读/写线路控制寄存器110x100可读/写MODEM控制寄存器110x101只读线路状态寄存器110x110只读MODEM状态寄存器1101000可读/写除数(低8位)锁存器1101001可读/写除数(高8位)锁存器110x111可读/写高速暂存寄存器0123456017通信控制字D7,除数锁存位60图7.37

8250与8088系统的连接3F8F~(DCD)61图7.37

16550与8088系统的连接3F8F~627.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550 (四)寻址及连接CS0CS1CS2DLABA2A1A0RDWR所选寄存器1100000R接收缓冲寄存器1100000W发送保持寄存器1100001RW中断允许寄存器110x010R中断标识寄存器110x010WFIFO控制寄存器110x011RW线路控制寄存器110x100RWMODEM控制寄存器110x101R线路状态寄存器110x110RMODEM状态寄存器1101000RW除数(低8位)锁存器1101001RW除数(高8位)锁存器110x111RW高速暂存寄存器0123456017通信控制字D7,除数锁存位3F83F83F93FA3FB3FC3FD3FE3F83F93FF3FA637.3可编程串行通信接口8250/16550

二、串行通信接口8250/16550

(五)初始化及应用图7.38初始化顺序82501655064INT50: MOV DX,3FBH MOV AL,80H OUT DX,AL ;将线路控制寄存器

;D7=1即DLAB=1 MOV DX,3F8H MOV AL,60H OUT DX,AL ;锁存除数低8位

INC DX MOV AL,0

OUT DX,AL ;锁存除数高8位,除数:0060H,即96

MOV DX,3FBH MOV AL,0AH ;00001

0

10 OUT DX,AL ;初始化线路控制寄存器

MOV DX,3FCH MOV AL,03H ;00000011 OUT DX,AL ;初始化MODEM控制寄存器

MOV DX,3F9H MOV AL,0 ;不允许中断 OUT DX,AL ;写中断允许寄存器

寄存器寻址奇校验1位停止位7位数据线路控制寄存器RTS低电平DTR低电平Modem

控制

寄存器引脚中断允许寄存器1843200/(16×96)=1200OUT2高电平,禁止中断图7.37初始化FIFO65初始化程序:MOV DX,3FAHMOV AL,07HOUT DX,AL;初始化FIFO控制寄存器16550在初始化时,与8250比较,需增加初始化FIFO控制器部分:…………寄存器寻址FIFO控制寄存器图7.3766采用查询方式发送数据,且要发送数据的字节数放在BX中,要发送的数据顺序存放在以SEDATA为首地址的内存区中。 MOV DX,3FDH ;通信状态寄存器 LEA SI,SEDATA IN AL,DX TEST AL,20H ;发送数据寄存器空? JZ WAITSE PUSH DX MOV DX,3F8H ;发送数据寄存器(写) MOV AL,[SI] OUT DX,AL POP DX ;通信状态寄存器地址 INC SI DEC BX JNZ WAITSESEDPG:WAITSE:线路状态寄存器寄存器寻址67采用查询方式接收数据:REVPG: MOV

DX,3FDH ;线路状态寄存器WAITRE: IN

AL,DX

TEST

AL,1EH ;00011110

JNZ

ERROR ;有错?→ERROR

TEST

AL,01H ;接收数据寄存器满?

JZ

WAITRE

MOV

DX,3F8H ;接收数据寄存器(读)

IN

AL,DX

AND

AL,7FH ;去奇偶校验位线路状态寄存器寄存器寻址采用查询方式发送数据,采用中断方式接收数据,初始化:INISIR: MOV DX,3FBH ;通信控制寄存器 MOV AL,80H OUT DX,AL

温馨提示

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

评论

0/150

提交评论