1微机原理及接口技术主讲人蔡文霞2第1章概述12并行通信与串行通信3第七章常用数字接口电路并行接口芯片5255A8253定时/计数器3并行通信并行传输以计算机的字长为传输单位(通常是8位、16位或32位),一次传送1个字长的数据并行传输微机系统中最基本的信息交换方法–例如:系统板上各部件之间,接口电路板上各部件之间适合于外部设备与微机之间进行近距离、大量和快速的信息交换–例如:微机与并行接口打印机、磁盘驱动器4串行通信串行通信:用一根信号线将数据逐位顺序传送串行通信的优势:通信线路少,在远距离通信时可以极大地降低成本;适合于远距离数据传送,也常用于速度要求不高的近距离数据传送PC系列机上有两个串行异步通信接口,键盘/鼠标器/显示器与主机间亦采用串行数据传送。57.28253定时/计数器定时器和计数器定时控制在微机系统中极为重要定时器由数字电路中的计数电路构成,通过记录高精度晶振脉冲信号的个数,输出准确的时间间隔计数电路如果记录外设提供的具有一定随机性的脉冲信号时,它主要反映脉冲的个数(进而获知外设的某种状态),常又称为计数器67.28253定时/计数器7.2.18253的功能与引脚7.2.28253的控制字与工作方式7.2.38253的初始化编程77.2.18253的功能与引脚一、8253的基本功能1、计数-对外部输入脉冲进行计数2、定时-若输入脉冲是连续而均匀的,则利用脉冲个数×脉冲周期可以计算出时间。87.2.18253的功能与引脚1、数据总线缓冲器8253与系统数据总线相连的接口电路。通过数据总线缓冲器,CPU用指令对8253进行读/写。二、8253的内部结构97.2.18253的功能与引脚2.读/写逻辑电路接收来自CPU的控制信号:读信号RD*写信号WR*片选信号CS*芯片内部寄存器寻址信号A1A0二、8253的内部结构107.2.18253的功能与引脚3.控制寄存器8253是可编程接口芯片,可以通过软件编程写入控制字的方法,控制其工作方式。二、8253的内部结构控制寄存器就是用来存放控制字的117.2.18253的功能与引脚4.计数器0~28253有3个结构完全相同的定时器/计数器通道:0,1,2计数器结构示意图每个通道包含:16位的初值寄存器、减1计数器和结果输出锁存器。CLK:计数/定时脉冲输入端,每输入一个脉冲,减1操作OUT:计数值减到零时,由输出端OUT输出结束信号GATE:门控信号,允许或停止计数每个通道有3根专用的信号线:二、8253的内部结构12计数器结构示意图初值寄存器GATECLKOUT减1计数器输出锁存器初值寄存器——存放计数初值;在计数过程中,减1计数器——值不断递减,而初置寄存器中的预置值不变。输出锁存器——写入锁存命令时,锁定当前计数值137.2.18253的功能与引脚三、8253的引脚1、与CPU的接口引脚CLKGATEOUTD0~D7WRRDA1A0CSDBIOWIORA1A0译码器高位地址外设8253147.2.28253的控制字与工作方式1、8253的控制字0二进制1BCDBCDSC1SC2RL1RL0M2M1M0读/写格式00:数据锁存命令01:只读/写低字节10:只读/写高字节11:先读/写低字节,后读/写高字节方式选择000:方式0001:方式1X10:方式2X11:方式3100:方式4101:方式5计数器选择00:选择计数器001:选择计数器110:选择计数器211:无效D7D6D5D4D3D2D1D0157.2.28253的控制字与工作方式计数启动方式软件启动硬件启动GATE端为高电平,CPU用输出指令向计数器写入初值后就启动计数GATE端有一个上升沿由GATE端信号的形式决定2、8253的工作方式167.2.28253的控制字与工作方式(1)方式0——计数结束产生中断(2)方式1——可编程单稳态(3)方式2——分频器(4)方式3——方波发生器(5)方式4——软件触发选通脉冲(6)方式5——硬件触发选通脉冲17方式0——计数结束产生中断此种方式计数器在减到0时使输出端OUT变为高电平,可作为中断申请信号(1)写入控制字后,OUT变为低电平。(2)写入计数初值后,下一个脉冲下降沿开始计数。(3)计数值到0时计数结束,OUT变为高电平,一直保持到重新装入初值或复位时为止。(4)GATE=1允许对CLK计数,GATE=0计数停止。WRCWN=4CLKGATEOUT43210WRCWN=3CLKGATEOUT32221018方式1——可编程单稳态输出一个宽度可控的负脉冲1、写入控制字后,OUT变为高电平。2、写入计数初值后,不开始计数。3、GATE上升沿后,在CLK下降沿开始对CLK计数,OUT变为低。4、计数值到0时计数结束,OUT变为高电平。5、写入一个新的计数值,不影响原计数过程。当GATE出现新的上升沿后,才使用新的计数值重新计数。210210WRGATECLKOUTCWN=221210GATEOUT提前触发,则输出脉冲加宽197.2.38253的初始化编程8253使用前,必须首先对其初始化,初始化包括写入控制字和各计数的初值,顺序为:写入控制字写入计数值低字节写入计数值高字节20例:某系统中8253的端口地址为2F80H~2F83H,要求通道1工作在方式3,经BCD方式计数,计数初值为1000H,试写出初始化程序。分析:则控制字格式为:MOVAL,77HMOVDX,2F83HOUTDX,ALMOVDX,2F81HMOVAL,0OUTDX,ALMOVAL,10HOUTDX,AL;控制字送AL;设置控制字的端口地址;写入控制字;设置通道1的端口地址;送初值的低字节;送初值的高字节01110111B=77H21例7-2某系统中8253的端口地址为40H---43H,要利用其通道2对CLK2上的外部输入脉冲进行计数,计满100个后向CPU发中断请求,试写出相应初始化程序。分析:本例中采用二进制计数,则初值100为64H,写入时只写低8位即可。由于要向CPU发中断申请,故设置通道2工作在方式0,这样计数结束时的正跳变信号可作为中断请求信号。控制字的格式应为:MOVAL,90HOUT43H,ALMOVAL,64HOUT42H,AL10010000B=90H