版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、可编程接口技术c h a p t e r8本 章 内 容概 述可编程定时器/计数器intel 8253可编程并行接口芯片intel 8255a可编程串行输入/输出接口ins 8250第一节 概 述 可编程数字接口电路根据其可编程数字接口电路根据其在系统中所起的作在系统中所起的作用用可分为两大类:可分为两大类:专用接口芯片专用接口芯片专为某类外设的某种功能而设计的专用接口芯片,不需要进行任何设置;可编程接口芯片可编程接口芯片(如图8-1所示) 在多种场合使用,通过对芯片的设置来确定工作模式、工作状态和功能。第一节 概 述(续)从它们的结构上看,可以把一个接口分为两部分:从它们的结构上看,可以把一
2、个接口分为两部分:总线收发器读写控制逻辑状态寄存器控制寄存器数据输入/输出锁存器和缓冲器db0db7abrdwrcsreset状态信号线控制线号线数据线左半部分接口与左半部分接口与系统总线相连,系统总线相连,包括总线收发器包括总线收发器及读写控制逻辑及读写控制逻辑右半部分接口与右半部分接口与各种各种i/o设备相设备相连,包括状态寄连,包括状态寄存器、控制寄存存器、控制寄存器、数据输入器、数据输入/ /输出锁存器和缓输出锁存器和缓冲器。冲器。图8-1通用接口芯片第二节 可编程定时器/计数器intel8253基本概念:定时定时:产生符合时间要求的信号的过程;产生符合时间要求的信号的过程;计数计数:
3、对一些脉冲信号或外部事件的数量进对一些脉冲信号或外部事件的数量进 行统计的过程;行统计的过程;第二节第二节 可编程定时器可编程定时器/ /计数器计数器 intel 8253intel 8253定时器和计数器在工作方式上有许多相似之处:作为计数器,输入的计数信号是随机的,作为计数器,输入的计数信号是随机的, 计数的是外部脉冲信号;计数的是外部脉冲信号;作为定时器,输入的脉冲信号具有周期性,作为定时器,输入的脉冲信号具有周期性,计数的是内部基准时钟产生的脉冲。计数的是内部基准时钟产生的脉冲。一个定时电路可一个定时电路可完成计数功能。完成计数功能。第二节第二节 可编程定时器可编程定时器/ /计数器计
4、数器 intel 8253intel 8253计算机系统中的定时方法包括:软件定时软件定时:通过通过cpucpu执行一个循环程序获得;执行一个循环程序获得;优点:节省硬件资源;优点:节省硬件资源;缺点:降低了缺点:降低了cpucpu的效率。的效率。 不可编程:不可编程:硬件定时硬件定时 可编程:可编程:由计数器等元器件组建由计数器等元器件组建的一个专用的计时电路。的一个专用的计时电路。由大规模集成电路芯片构由大规模集成电路芯片构成,定时时间及定时方式成,定时时间及定时方式可通过软件编程灵活设置。可通过软件编程灵活设置。intel 8253 intel 8253 的内部结构及外部引脚的内部结构及
5、外部引脚intel 8253的特点:具有具有3 3个独立的个独立的1616位定时位定时/ /计数通道(计数器计数通道(计数器0 0,计数,计数器器1 1和计数器和计数器2 2););每个通道有每个通道有6 6种工作方式,可实现精确定时及对外部种工作方式,可实现精确定时及对外部脉冲计数,由程序进行设置选择;脉冲计数,由程序进行设置选择;每个通道的计数器均可以按照二进制或每个通道的计数器均可以按照二进制或bcdbcd码计数;码计数;每个计数器的计数速率可达每个计数器的计数速率可达2mhz2mhz(intel 8254intel 8254最高最高计数速率达计数速率达10mhz10mhz););可由软
6、件设置延时时间的长短;可由软件设置延时时间的长短;所有输入输出都与所有输入输出都与ttlttl兼容。兼容。intel 8253的内部结构intel 8253的内部结构如图8-2a所示。计数器计数器0 02 2是三是三个定时器个定时器/ /计数器计数器通道,内部结构通道,内部结构相同,如相同,如图图8-2b8-2b所示。所示。数据总线缓冲器是数据总线缓冲器是intel 8253intel 8253与系统与系统数据总线连接的数据总线连接的8 8位位双向三态缓冲器。双向三态缓冲器。读读/ /写逻辑电路写逻辑电路接收来自系统总接收来自系统总线的信号。线的信号。控制字寄控制字寄存器存器intel 825
7、3的外部引脚intel 8253intel 8253的外部引脚如图的外部引脚如图7-2c7-2c所示。所示。d d7 7d d0 0:八八位双向三位双向三态数据线;态数据线;a a1 1、a a0 0:用于:用于寻址三个计数寻址三个计数器和控制字寄器和控制字寄存器。存器。这三个信号分这三个信号分别是写、读和别是写、读和片选信号。片选信号。clkclk0 0clkclk2 2:计数脉冲信计数脉冲信号输入。号输入。gategate0 0gategate2 2:门:门控信号输入引脚。控信号输入引脚。outout0 0outout2 2:计数器计数器0 02 2的的计数结束输出计数结束输出引脚。引脚。
8、intel 8253intel 8253的工作方式的工作方式每个通道都具有六种工作方式,需注意以下几点:当控制字写入当控制字写入intel 8253intel 8253时,其内部所有的控制逻时,其内部所有的控制逻辑电路立即复位,输出端辑电路立即复位,输出端outout进入初始状态;进入初始状态; 软启动:软启动:计数器的启动计数器的启动 硬启动:硬启动:多数情况下,计数器启动一次只工作一个周期,但多数情况下,计数器启动一次只工作一个周期,但有两种方式可供选择,若选择则自动重复计数。有两种方式可供选择,若选择则自动重复计数。用输出指令向计数器赋初值启用输出指令向计数器赋初值启动计数;动计数;写入
9、计数初值后计数器并未启写入计数初值后计数器并未启动,需门控信号动,需门控信号gategate变成高电变成高电平时才能启动;平时才能启动;intel 8253intel 8253的初始化编程的初始化编程 通过初始化编程可确定intel 8253各通道的工作方式及计数初值。工作方式的确定通过向intel 8253控制寄存器中写入控制字来完成。 1.82531.8253控制字格式(如控制字格式(如图图8-48-4所示)所示)2.2.初始化编程初始化编程u 对计数器设置初值前,必须先写控制字以确定工作方式。u 初值设置时,要符合控制字中的格式规定。在对8253编程的过程中,有两种情况:对8253执行写
10、操作,即写入控制字和计数初值,规定和启动计数器工作,为初始化编程;对8253执行读操作,读出的是指定通道的当前计数值。intel 8253intel 8253的初始化编程的初始化编程intel 8253intel 8253的初始化编程的初始化编程【例8-1】设计8253初始化程序。要求满足使计数通道0工作在方式1,二进制计数,计数值为805ah。设:口地址为4a0h4a3h,cpu为8088。控制字控制字:00110010b00110010b初始化编程:初始化编程:mov dxmov dx,4a3h4a3hmov almov al,32h32hout dxout dx,alalmov dxmo
11、v dx,4a0h4a0hmov almov al,5ah5ahout dxout dx,alalmov almov al,80h80hout dxout dx,alalintel 8253intel 8253的工作方式的工作方式1. 方式0 -计数结束时中断方式cw n=443210wrclkgateoutcw n=332210wrclkgateoutcw n=332120wrclkgateout1n=22.方式1 可编程单脉冲方式cw n=221210wrclkgateout0cw n=221432wrclkgateout0n=43.方式2 速率发生器方式cw n=332132wrclkg
12、ateout134.方式3 方波发生器方式cw n=442424wrclkgateout245.方式4 -软件触发选通方式cw n=443210wrclkgateout6.方式5 硬件触发选通方式cw n=443210wrclkgateoutgategate信号功能表信号功能表gate低电平或变为低电平上升沿高电平方式0禁止计数不影响允许计数不影响不影响不影响不影响不影响方式1方式2方式3方式4方式5禁止计数允许计数允许计数启动计数禁止计数并置out为高初始化计数,计数器重新装入同方式2同方式2同方式2启动计数表表8-28-2gategate信号功能表信号功能表intel 8253intel
13、8253的工作方式(续)的工作方式(续)表表8-38-382538253工作方式一览表工作方式一览表启动计数中止计数自动重复更新初值out波形方式0方式1方式2方式3方式4方式5软启动硬启动软/硬启动软/硬启动软启动硬启动gate=0gate=0gate=0gate=0/无无无无有有立即有效下一轮有效下一轮有效下半轮有效下一轮有效下一轮有效n0nnn1n/2 n/2n 1n 100【例例8-18-1】用用8253(8253(地址地址40h40h43h)43h)将将5mhz5mhz的方波信的方波信号变为号变为1hz1hz的脉冲。的脉冲。图图8-58-5系统连接图系统连接图初值初值=f=fclkc
14、lk/f/foutout=5mhz/1hz =5mhz/1hz =5=51061066553665536,怎么办?,怎么办?方法:方法:将将2 2个个t/ct/c(定时器(定时器/ /计计数器通道)级联,数器通道)级联,t/c0t/c0采用方采用方式式3 3产生连续分频方波,做产生连续分频方波,做t/c1t/c1的的clkclk,t/c1t/c1采用方式采用方式2 2产产生生1hz1hz脉冲。两个脉冲。两个t/ct/c的的gategate统统一控制。一控制。程序如下:程序如下:mov al,00110111b;t/c0控制字 out 43h,almov ax, 5000h;t/c0 初值out
15、 40h,almov al, ahout 40h,almov al,01110101b ;t/c1 控制字 out 43h,al mov ax, 1000h ;t/c1初值out 41h,almov al, ahout 41h,al图图8-6 8-6 系统连接图系统连接图d7d0wrrda0a1a3a4a5a6a7csclk0gate0out0clk1gate1out1clk2gate2out28253abc74ls138y2g1g2ag2bd7d0iowiora1a2a0a8a9【例8-2】系统如图所示,clk0的时钟频率是8khz,编程使其产生周期为9s,占空比为5:9的方波,并计算t/c
16、0最大定时时间。tclk0=1/fclk0=1/8000=0.125ms最大定时时间:最大定时时间:655360.25ms 8.192smov al,00110111b ;t/c0 控制字 out 96h,almov ax, 8000h ;t/c0 初值out 90h,almov al, ahout 90h,almov al,01110111b ;t/c1 控制字out 96h,almov ax, 9h ;t/c1初值out 92h,almov al, ahout 92h,al初始化程序如下:初始化程序如下:第三节第三节 可编程并行接口芯片可编程并行接口芯片intel 8255aintel 8
17、255a从数据传输的形式上区分,通信有两种方式:并从数据传输的形式上区分,通信有两种方式:并行通信与串行通信。行通信与串行通信。并行通信并行通信:n:n位二进制数通过位二进制数通过n n条数据线同时传输。条数据线同时传输。 优点:传输速度快、效率高。常用于数据传输速度优点:传输速度快、效率高。常用于数据传输速度要求高而传输距离较短的场合。要求高而传输距离较短的场合。intel 8255aintel 8255a即即intelintel公司生产的公司生产的8 8位可编程并行接位可编程并行接口芯片。口芯片。intel 8255a 的内部结构图8-78255a内部结构框图三个三个8 8位并行输入输出端
18、位并行输入输出端口:口:8255a(8255a(端口端口a a、端口、端口b b、端口端口c) c) 有有a a、b b、cc三个三个8 8位并行输入输出端口。位并行输入输出端口。a a口、口、b b口通常作为独立的口通常作为独立的8 8位位i/oi/o端口使用,端口使用,cc口也可口也可以作为一般的以作为一般的8 8位位i/oi/o端口使端口使用,也可以做为用,也可以做为2 2个个4 4位的位的i/oi/o端口使用端口使用 。各端口的功能见各端口的功能见表表7-47-4。数据总线缓数据总线缓冲器是一个冲器是一个双向三态的双向三态的8 8位缓冲器位缓冲器a a组和组和b b组控制电路接受读组控
19、制电路接受读/ /写控写控制逻辑的信号并根据制逻辑的信号并根据cpucpu送入的送入的控制字,决定各端口的工作方式。控制字,决定各端口的工作方式。a a组控制电路控制组控制电路控制a a口和口和cc口的高口的高4 4位位(pc(pc7 7pcpc4 4) );b b组控制电路控组控制电路控制制b b口和口和cc口的低口的低4 4位位(pc(pc3 3pcpc0 0) )。 读读/ /写控制逻辑用于管写控制逻辑用于管理数据、控制字或状态理数据、控制字或状态字通过相应端口在字通过相应端口在cpucpu与外设之间的传送。与外设之间的传送。intel 8255a的外部引脚intel 8255ainte
20、l 8255a芯片采用芯片采用4040脚双列直插式封装,单一脚双列直插式封装,单一5v5v电源,全部输入电源,全部输入/ /输出均与输出均与ttlttl电平兼容。电平兼容。1.1.与外设相连的数据线与外设相连的数据线2.2.读写控制线读写控制线3.3.与系统相连的数据总线与系统相连的数据总线cscs:片选信号:片选信号rdrd:读信号:读信号wrwr:写信号:写信号resetreset:复位信号:复位信号a1a1、a0a0:地址线,与系统总线的低两位相:地址线,与系统总线的低两位相接,实现对接,实现对intel 8255aintel 8255a片内端口的寻址;片内端口的寻址;intel 825
21、5aintel 8255a控制字及工作方式控制字及工作方式intel 8255aintel 8255a的控制端口可以接收两个控制字:工作的控制端口可以接收两个控制字:工作方式控制字和对端口方式控制字和对端口cc的置位的置位/ /复位控制字。复位控制字。1.1.工作方式控制字(如工作方式控制字(如图图8-88-8所示)所示)2.2.置位置位/ /复位控制字(如复位控制字(如图图8-98-9所示)所示) intel 8255aintel 8255a具有三种工作方式:具有三种工作方式:方式方式0 0基本输入输出方式;基本输入输出方式;方式方式1 1选通输入输出方式;选通输入输出方式;方式方式2 2双
22、向传送方式。双向传送方式。特点: 单向并行传输方式,可以为输出口或输入口; 8位a口、8位b口、c口高4位和c口低4为可独立设置成输入或输出方式; 各端口输出时具有锁存功能,输入时一般无锁存。intel 8255aintel 8255a的工作方式的工作方式0 0 基本输入或输出方式基本输入或输出方式intel 8255aintel 8255a的工作方式的工作方式1 1 选通输入或输出方式选通输入或输出方式工作特点;工作特点;u a a口工作于方式口工作于方式1 1输入时(如输入时(如图图8-108-10所示)所示)u a a口工作于方式口工作于方式1 1输出时(如输出时(如图图8-118-11
23、所示)所示)方式方式1 1使用方法:使用方法:u 中断方式中断方式u 查询方式查询方式图图8-12 8-12 方式方式2 2工作时的信号定义工作时的信号定义inte1(pc6)inte2(pc4)pc4pc5pc6pc7pc3pa0pa7&1obfa(输出缓冲器)acka(应答)stba(请求输入数据)ibfa(输入缓冲器满)intraintel 8255aintel 8255a的工作方式的工作方式2 2 双向输入输出方式双向输入输出方式各端口工作方式为:各端口工作方式为:a a口为输出,方式口为输出,方式0 0;b b口未用;口未用;cc口低位输入,高位输出。口低位输入,高位输出。地
24、址分配:地址分配:a口:口:00d0hb口:口:00d2hc口:口:00d4h控制口:控制口:00d6h【例【例8-48-4】intel 8255aintel 8255a作为连接打印机的接口,作为连接打印机的接口,工作于方式工作于方式0 0。系统连接如图。系统连接如图8-138-13所示。所示。程序如下:程序如下:pp:mov al, 81hout0d6h, al ;设置;设置8255工作方式工作方式lpst:inal, 0d4h;读;读pc2即即busyandal, 04h;判断;判断pc2=0?否,则循环等待?否,则循环等待jnzlpstmov al, cl;将被打印字符送;将被打印字符送
25、alout0d0h, al;将;将al从从a口输出口输出【例【例8-58-5】用】用8255a8255a作为打印机接口,编制程序实现作为打印机接口,编制程序实现打印打印6 6个字符个字符“hello”hello”。(。(cpucpu为为80888088最小工作最小工作模式,口地址为模式,口地址为0c0h0c7h)0c0h0c7h)。图图8-148-14intel 8255aintel 8255a作为打印机接口作为打印机接口d7d0ioriowa1a2resetirqa3a4a5a6a7d7d0wrrda0a1resetpc3csabcg2ag2bg1&y0pa7pa0d0d7pc0pc
26、7pc6stbackbusy8255a打印机0c0h0c7h准备工作: 1)设置中断向量表; 2)允许8255a中断; 3)允许cpu响应中断。参考程序:da segmentdata db hello!da endscode segment assume cs:code, ds:da;主程序;8255初始化:ma: mov al,10100000b out 0c6h,al mov al,00000001b out 0c6h,al;设置中断向量表,并开;设置中断向量表,并开8255a8255a中断中断xor ax , axmov ds , axmov ax , offset intprgmov
27、word ptr2ch , axmov ax , seg intprgmov word ptr2eh , axmov al , 00001101bout 0c6h , al;设置数据缓冲区指针及计数器;设置数据缓冲区指针及计数器mov ax , seg datamov ds , axmov di , offset datamov cx , 6intel 8255a的工作方式方式1应用举例;对中断控制器初始化对中断控制器初始化 .;如果数据没打印完,开如果数据没打印完,开cpu中中断,并等待中断到来,否则转断,并等待中断到来,否则转入入stop0hh: cmp cx,0 jz stop0 sti
28、 jmp hh;禁止;禁止8255a发出中断请求,并发出中断请求,并退出系统退出系统stop0: mov al , 00001100b out 0c6h,al mov ah,4ch int 21h;中断服务程序:;中断服务程序: intprg proc mov al,di out 0c0h,al mov al,00000000b out 0c6h,al inc al out 0c6h,al inc di dec cx iretintprg endpcode ends end ma1.1.串行通信的两种通信方式串行通信的两种通信方式(1 1)异步通信方式)异步通信方式在进行异步传送时,收、发双方
29、约定,以一个起始位表示在进行异步传送时,收、发双方约定,以一个起始位表示传输字符的开始,用停止位表示传输字符的结束,其格式传输字符的开始,用停止位表示传输字符的结束,其格式如如图图8-158-15所示。所示。(2 2)同步通信方式)同步通信方式同步方式通信时,要求发送方和接收方以同一频率的时钟同步方式通信时,要求发送方和接收方以同一频率的时钟信号采样通信线上的数据信号,所以要求发送方一方面要信号采样通信线上的数据信号,所以要求发送方一方面要发送数据信号,同时还要发送一个用于同步的时钟信号。发送数据信号,同时还要发送一个用于同步的时钟信号。图图8-168-16显示了同步传输的数据格式。显示了同步
30、传输的数据格式。第四节可编程串行输入输出接口8250串行通信基本概念2.2.串行通信中的数据传送方式,如串行通信中的数据传送方式,如图图8-178-17所示。所示。3.3.串行通信的通信速率串行通信的通信速率1) 1) 传输率传输率定义:每秒钟传送二进制数的位数,以位秒定义:每秒钟传送二进制数的位数,以位秒(bps)(bps)为单位。为单位。 2) 2) 波特率波特率定义:信号每秒改变的次数。定义:信号每秒改变的次数。 波特率表示通信线路状态的变化率,是衡量传输通道频宽的波特率表示通信线路状态的变化率,是衡量传输通道频宽的指标。指标。 串行通信接口图8-25可编程串行接口的典型结构数据总线收发
31、器控制信号逻辑控制寄存器状态寄存器接收时钟数据输入寄存器输入移位寄存器输出移位寄存器输出数据寄存器发送时钟串入串出d0d7rdwrintrcs数据总线数据总线收发器收发器控制信控制信号逻辑号逻辑控制寄存器控制寄存器状态寄状态寄存器存器输入、输输入、输出移位寄出移位寄存器存器数据输数据输入寄存入寄存器器数据输出寄数据输出寄存器存器可编程串行通信接口可编程串行通信接口ins 8250ins 82502.ins 82502.ins 8250的外部引脚的外部引脚与系统总与系统总线连接的线连接的引脚引脚一般接系统复位信号一般接系统复位信号resetreset,用以复位芯,用以复位芯片内部寄存器及有关片内
32、部寄存器及有关信号,见信号,见表表8-68-6。与外部通信设备相连的引脚与外设调制解调器相连的引脚可编程串行通信接口可编程串行通信接口ins 8250ins 82501.82501.8250的内部结构的内部结构: :u 数据总线缓冲器数据总线缓冲器u 寻址及控制逻辑寻址及控制逻辑u 发送器发送器u 接收器接收器u 调制调制/解调器控制电路解调器控制电路u 通信线控制寄存器和通信线状态寄存器通信线控制寄存器和通信线状态寄存器u 波特率发生控制电路波特率发生控制电路u 中断控制逻辑中断控制逻辑8250的内部寄存器82508250内部共有内部共有1010个可寻址的个可寻址的8 8位寄存器,在片选有效
33、位寄存器,在片选有效时,由地址线时,由地址线a a0 0a a2 2和读和读/ /写控制信号选择要访问的寄写控制信号选择要访问的寄存器。存器。特征位处于线路控制寄存器的最高位即特征位处于线路控制寄存器的最高位即dlabdlab位,当位,当dlab=1dlab=1时,寻址两个除数寄存器。当时,寻址两个除数寄存器。当dlab=0dlab=0时,寻时,寻址发送寄存器(写操作时)址发送寄存器(写操作时)/ /接收寄存器(读操作时)接收寄存器(读操作时)和中断允许寄存器。和中断允许寄存器。第一组第一组 实现数据传输实现数据传输1.发送保持寄存器发送保持寄存器2.接收缓冲寄存器接收缓冲寄存器第二组第二组
34、用于工作方式、通信参数设置用于工作方式、通信参数设置1.通信线控制寄存器通信线控制寄存器2.除数寄存器除数寄存器3.modem控制寄存器控制寄存器4.中断允许寄存器中断允许寄存器第三组第三组 状态寄存器状态寄存器1.通信线状态寄存器通信线状态寄存器2.modem状态寄存器状态寄存器3.中断识别寄存器中断识别寄存器8250的内部寄存器8250的初始化编程在利用在利用82508250进行数据通信前,要对进行数据通信前,要对82508250进行进行初始化编程。具体步骤如下:初始化编程。具体步骤如下:1.1.对线路控制寄存器编程,使对线路控制寄存器编程,使dlab=1dlab=1。2.2.通过设置除数
35、寄存器,确定通信速率。通过设置除数寄存器,确定通信速率。3.3.设置通信线控制寄存器,使设置通信线控制寄存器,使dlab=0dlab=0,确定,确定通信的数据格式。通信的数据格式。4.4.若使用中断通信方式设置中断允许寄存器。若使用中断通信方式设置中断允许寄存器。5.5.根据实际需要,确定根据实际需要,确定modemmodem控制寄存器。控制寄存器。 8250的初始化编程【例【例8-58-5】82508250端口地址为端口地址为3f8h3f8h3ffh3ffh,若要求,若要求82508250以以19200bit/s19200bit/s进行异步通信,每字符为一位,二个停止位,进行异步通信,每字符
36、为一位,二个停止位,采用奇校验,允许所有中断,则初始化程序为:采用奇校验,允许所有中断,则初始化程序为:;初始化编程;初始化编程;设置波特率为;设置波特率为19200movdx,03fbh;8250控制寄存器地址送控制寄存器地址送dxmoval,80h;置;置dlab=1,设置除数寄存器,设置除数寄存器outdx,almovax,0006h;波特率为;波特率为19200bpsmovdx,03f8h;除数寄存器地址送;除数寄存器地址送dxoutdx,al;送除数低;送除数低8位位moval,ahinc dxoutdx,al;送除数高;送除数高8位位8250的初始化编程;设置通信的数据格式;设置通
37、信的数据格式moval,0eh;7位数据位,奇校验,位数据位,奇校验,2位停止位位停止位movdx,03fbh;8250控制寄存器地址送控制寄存器地址送dxoutdx,al;设置中断允许控制字,;设置中断允许控制字,moval,0fhmovdx,03f9h;中断允许寄存器地址送;中断允许寄存器地址送dxoutdx,al;设置;设置modem控制字控制字moval,0bh;out2引脚为低电平,工作于中断方式,引脚为低电平,工作于中断方式,;dtr和和rts引脚有效引脚有效movdx,03fchoutdx,al8250的应用在利用在利用82508250进行串行通信时,可以采用查询和中断两种数据进
38、行串行通信时,可以采用查询和中断两种数据传送方式。传送方式。【例【例8-68-6】编制接收键盘字符并回显的程序。要求用户没有】编制接收键盘字符并回显的程序。要求用户没有输入字符就不发送,若有字符输入则发送数据,接收后就输入字符就不发送,若有字符输入则发送数据,接收后就显示字符。要求程序循环读取显示字符。要求程序循环读取82508250的通信状态寄存器,数的通信状态寄存器,数据传输错误就显示一个问号据传输错误就显示一个问号“?”。如果按下。如果按下escesc键返回键返回dosdos,程序如下:,程序如下:8250的应用;查询通信线状态;查询通信线状态statue:mov dx,2fdh ;读通
39、信线路状态寄存器;读通信线路状态寄存器inal,dxtestal,1eh ;接收有错误否;接收有错误否?jnzerror;有错,则转错误处理;有错,则转错误处理testal,01h ;接收到数据吗;接收到数据吗?jnzreceive ;是,转接收处理;是,转接收处理testal,20h ;保持寄存器空吗;保持寄存器空吗?jz statue;不空,循环查询;不空,循环查询;检测键盘输入;检测键盘输入movah,0bh;检测键盘有无输入字符;检测键盘有无输入字符int21hcmpal,0jz statue;无输入字符,循环等待;无输入字符,循环等待movah,01h;有输入字符,读取字符;有输入字
40、符,读取字符int16h;采用;采用01号号dos功能调用,则有回显功能调用,则有回显cmpal,1bhjzdone;是;是esc键,程序返回键,程序返回dos8250的应用;发送数据;发送数据movdx,2f8h;将字符输出给发送保持寄存器;将字符输出给发送保持寄存器outdx,al;串行发送数据;串行发送数据jmpstatue;继续查询;继续查询;接收数据;接收数据receive: mov dx,2f8h;从输入缓冲寄存器读取字符;从输入缓冲寄存器读取字符inal,dxandal,7fh;传送标准;传送标准ascii码(码(7个数据位),个数据位),;所以仅取低;所以仅取低7位位pusha
41、x;保存数据;保存数据;显示数据;显示数据movdl,al;屏幕显示该数据;屏幕显示该数据movah,2int21hpopax;恢复数据;恢复数据cmpal,0dh;数据是回车符吗;数据是回车符吗?jnzstatue ;不是,则循;不是,则循环环movdl,0ah;是,再进行换行;是,再进行换行movah,2int21hjmpstatue;继续查询;继续查询8250的应用;接收错误处理;接收错误处理error:movdx,2f8h;读出接收有误的数据,丢掉;读出接收有误的数据,丢掉inal,dxmovdl,?;显示问号;显示问号movah,2int21hjmpstatue;继续查询;继续查询d
42、one:end;查询式通信;查询式通信;发送字符在;发送字符在cl中。若收到字中。若收到字符,暂存于符,暂存于alkeep_try:mov dx,3fdh in al,dx test al,1eh;检查出错误否;检查出错误否 jne error_routine;转出错处理;转出错处理 test al,1;检查收到新数否;检查收到新数否jnz receive;转接收;转接收test al,20h;检测可否发送字节;检测可否发送字节jzkeep_try;重新检查;重新检查movdx,3f8hmoval,clout dx,aljmp short keep_try8253各计数器的内部结构图图8-2b
43、8-2b返回82538253控制字格式控制字格式图8-48253控制字格式返回8255a8255a端口功能端口功能表8-48255a端口功能工作方式a口b口c口0基本输入/输出端口输入不锁存、输出锁存同a口同a口1选通输入/输出端口输入/输出均可锁存同a口c口中有3位分配给a口,3位分配给b口作为它们i/o的联络信号线。其余2位用作i/o2应答式双向输入/输出端口,均可锁存不可以c口5位用作a口的i/o联络信号线返回intel 8255aintel 8255a工作方式控制字工作方式控制字图图8-88-8intel 8255aintel 8255a工作方式控制字格式工作方式控制字格式返回inte
44、l 8255aintel 8255a置位置位/ /复位控制字复位控制字图8-9置位/复位控制字格式返回intel 8255a intel 8255a 方式方式1 1输入的信号输入的信号图8-10方式1输入的信号a口b口inteapc4pc5pc3pc7,6pa7-0(pc4)intebpc2pc1pc0pb7-0(pc2)rdrdstbastbbibfaibfbintraintrbi/o返回intel 8255a intel 8255a 方式方式1 1输出的信号输出的信号图8-11方式1输出的信号inteapc7pc6pc3pc4,5pa7-0(pc6)wrintrai/ointebpc1pc
45、2pc0pb7-0(pc2)intrbobfaobfbackaackbwr返回主8255a pa0 pa7 obf ibf stb ackintr从8255apa0pa7stbackobfibf intr主pc机系统 irq从pc机系统irq d d0 0 - d - d7 7 d d0 0 - d - d7 7ababababcbcbcbcb intel 8255aintel 8255a双机通信连接图双机通信连接图图8-16双机通信连接图返回 intel 8255a主发、从收时序图图8-17主发、从收时序图返回主8255a主8255a m m - - w wr rm m - -o o b b
46、 f fm m - -i in n t t r rm m - -a a c c k k 从8255a从8255as s- -s st t b bs s- -i ib b f fs s- -i in n t t r rs s- -r r d d主机定时中断子程序流程图主机定时中断子程序流程图图8-18主机定时中断子程序流程图开始开始设置发送数据起始地址指针设置发送数据起始地址指针初始化发送数据字节计数器初始化发送数据字节计数器inte2=0 禁止接收中断inte2=0 禁止接收中断inte1=1 开放发送中断inte1=1 开放发送中断中断返回中断返回返回图8-19主机接收、发送子程序流程图主机
47、中断程序主机中断程序保护现场保护现场读c口读c口inte1=1?inte1=1?取数据地址指针取数据地址指针输出数据送a口输出数据送a口修改数据地址指针修改数据地址指针发送完成?发送完成?inte1=0 、inte2=1inte1=0 、inte2=1设置输入数据地址指针设置输入数据地址指针恢复现场恢复现场中断返回中断返回inte2=1?inte2=1?取输入数据地址指针取输入数据地址指针读a口并送存储器读a口并送存储器修改数据地址指针修改数据地址指针接收完成?接收完成?inte2=0?inte2=0? yesyes yesyesnono yesyesnono yesyesnono no no返回并行通信和串行通信图8-20并行通信和串行通信计计算算机机计计算算机机或或外外设设计计算算机机计计算算机机或或外外设设信号地信号地状态线状态线控制线控制线d0d1d2d3.d7返回异步通信数据帧格式图8-15异步通信数据帧格式返回起始位起始位数据位奇偶校验位奇偶校验位停止位同步传送的数据格式图8-16同步传送的数据格式返回串行通信的四种方式图8-17串行通信的4 种方式信 号 地发收信 号 地发收(a)单 工信 号 地发收收发(c) 全 双 工发收(b)半 双 工复用器复用器设 备 n设 备 1设
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024-2025学年新教材高中政治第二单元人民当家作主第五课第1课时人民代表大会:我国的国家权力机关练习含解析部编版必修3
- 卖房后写合同范例
- 低价销售协议合同范例
- 家政定金合同模板
- 工程租房合同范例
- 房屋出售解除出租合同范例
- 一楼装修合同模板
- 单位车辆团购合同模板
- 打公司牌子合同范例
- 配电柜并柜停电方案
- 植物学课件:第二章 种子和幼苗
- 概率论(华南农业大学)智慧树知到课后章节答案2023年下华南农业大学
- 一日生活中幼儿自主探究行为的表现及支持策略研究
- 第8课 用制度体系保证人民当家做主
- 软件测试规范模板
- 足皮肤感染的护理课件
- 我们的出行方式 (教学设计)2022-2023学年综合实践活动四年级上册 全国通用
- 新苏教版六年级上册科学全册知识点(精编)
- 采购部环境因素和危险源识别
- 应用PDCA提高责任护士病情知晓率
- 提高急性脑梗死的再灌注率PDCA
评论
0/150
提交评论