并行及串行接口_第1页
并行及串行接口_第2页
并行及串行接口_第3页
并行及串行接口_第4页
并行及串行接口_第5页
已阅读5页,还剩95页未读 继续免费阅读

下载本文档

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

文档简介

1、7-1第七章第七章 并行接口与串行接口并行接口与串行接口7.1 7.1 并行接口与串行接口概述并行接口与串行接口概述7.2 7.2 简单的并行接口电路简单的并行接口电路7.3 7.3 可编程并行接口芯片可编程并行接口芯片8255A8255A7.4 7.4 并行接口并行接口应用思维应用思维7.5 7.5 串行通信的基本概念串行通信的基本概念7.6 7.6 异步串行通信接口异步串行通信接口标准标准7-27.1 7.1 并行接口与串行接口概述并行接口与串行接口概述 1.1.并行与串行接口并行与串行接口MPUI/O接口接口I/O外设外设并并串或并串或并 微型计算机与微型计算机与I/OI/O设备的接口按

2、照数据传送设备的接口按照数据传送方式的不同,可分为方式的不同,可分为并行接口和串行接口并行接口和串行接口两种。两种。7-3BUSY/READYMPU译码译码器与器与逻辑逻辑控制控制串行串行端口端口并行并行设备设备串行串行设备设备DBABCB并行并行端口端口DB(8根根)STROBE地地数据输出数据输出数据输入数据输入地地7.1 7.1 并行接口与串行接口概述并行接口与串行接口概述 主要差别:串行接口需要实行并行和串行之间的主要差别:串行接口需要实行并行和串行之间的相互转化,而并行接口则无需实现这种变化。相互转化,而并行接口则无需实现这种变化。2. 2. 并行与串行接口在结构、功能上的异同并行与

3、串行接口在结构、功能上的异同7-4 简单的不可编程并行接口电路主要由简单的不可编程并行接口电路主要由数据数据锁存器和锁存器和/ /或三态门或三态门构成。构成。7.27.2简单的不可编程并行接口简单的不可编程并行接口7.2.1 7.2.1 三态门接口三态门接口7.2.2 7.2.2 锁存器接口锁存器接口7.2.3 7.2.3 带三态缓冲输出的锁存器接口带三态缓冲输出的锁存器接口7-57.2.1 7.2.1 三态门接口三态门接口以以74LS24474LS244为例,其内部结构、外部为例,其内部结构、外部引脚与引脚与真值表如下:真值表如下:使能使能G*数据输入数据输入A数据输出数据输出Y001010

4、1高阻态高阻态 三态门具有三态门具有“通断通断”控制能力,可用作各种接口电控制能力,可用作各种接口电路中的单向或双向总线缓冲器路中的单向或双向总线缓冲器/ /驱动器。驱动器。 G1G21111A12Y11A22Y21A32Y31A42Y4GND1Y12A11Y22A21Y32A31Y42A4VCC7-6用用74LS24474LS244构成的输入接口构成的输入接口1Y11Y21Y31Y42Y12Y22Y32Y41A11A21A31A42A12A22A32A4译码电路译码电路IORAEN K0 K1A9A0 +5VD0D1 D2D3D4D5D6D7K7G1 G2 200H 74LS244 7.2.

5、1 7.2.1 三态门接口三态门接口7-77.2.2 7.2.2 锁存器接口锁存器接口 以以8D8D触发器触发器74LS27374LS273为例,其外部引脚图与真为例,其外部引脚图与真值表如下:值表如下:74LS273SQ0D0D1Q1Q2D2D3Q3GNDVCCQ7D7D6Q6Q5D5D4Q4CP1510201511SCPDiQi011 01001 数据锁存器具有数据保持功能,所以常用作数据锁存器具有数据保持功能,所以常用作输出接口。输出接口。 7-8用用74LS27374LS273构成的继电器控制接口构成的继电器控制接口 译码译码电路电路IOWAENA9A0 CP200H Q0Q1Q2D0

6、D7 D0D774LS273 7.2.2 7.2.2 锁存器接口锁存器接口7-97.2.3 带三态缓冲输出的锁存器接口带三态缓冲输出的锁存器接口DCP11QiQDiCPOE 数据锁存器无数据锁存器无“通断通断”控制能力,所以不能作为控制能力,所以不能作为输入接口;而三态门没有数据输入接口;而三态门没有数据“保持保持”功能,也不能功能,也不能用作输出接口。只有带三态缓冲输出的锁存器既可用用作输出接口。只有带三态缓冲输出的锁存器既可用作输出接口,又可用作输入接口。作输出接口,又可用作输入接口。 以以74LS374为例,其单个锁存器的内部结构如下:为例,其单个锁存器的内部结构如下: 7-1074LS

7、374用作输入和输出接口的连接用作输入和输出接口的连接D0D1D7CP外外设设数数据据外设选外设选通信号通信号Q0Q7D0D7A0A9OE地地址址译译码码AENIORa) 输入接口输入接口74LS374 b) 输出接口输出接口Q0Q1Q7D0D7D0D7A0A9OE地地址址译译码码AENIOWCP74LS374 7.2.3 7.2.3 带三态缓冲输出的锁存器接口带三态缓冲输出的锁存器接口7-11 如如图是利用三态门和图是利用三态门和锁存器(锁存器(D触发器)分别构触发器)分别构成输出接口和输入接口,希望利用输出口控制发光二成输出接口和输入接口,希望利用输出口控制发光二极管极管D的亮灭;利用输入

8、接口输入开关的亮灭;利用输入接口输入开关K的状态。试指的状态。试指出图中的错误并说明错在哪里。出图中的错误并说明错在哪里。【例例 7.17.1】简单并行接口电路分析简单并行接口电路分析+5V1K11Q0LE100K10KDD0A7A6A5A4A3A2A1A0D0IOWIOR7.27.2简单的不可编程并行接口简单的不可编程并行接口7-127.3 可编程并行接口芯片可编程并行接口芯片82557.3.1 7.3.1 内部结构与外部引脚内部结构与外部引脚7.3.2 7.3.2 内部端口寻址与读内部端口寻址与读/ /写控制写控制7.3.3 7.3.3 控制字格式控制字格式7.3.4 7.3.4 三种工作

9、方式三种工作方式7-13数据数据总线总线缓冲缓冲器器读写读写控制控制逻辑逻辑A口口(8位位)C口口(高高4位位)C口口(低低4位位)B口口(8位位)A组组控制控制部件部件B组组控制控制部件部件D0D7 双向双向数据数据总线总线RDWRA1A0RESETCSI/O PA7-PA0I/O PC7-PC4I/O PC3-PC0I/O PB7-PB08255内部结构内部结构8位内总线位内总线7.3.1 7.3.1 内部结构与引脚功能内部结构与引脚功能与与外外设设接接口口部部分分与与M MP PU U接接口口部部分分内内部部控控制制部部分分由三大部分组成由三大部分组成 控制部件分为控制部件分为A A组和

10、组和B B组组, ,用于控用于控制制82558255的工作方式、输入的工作方式、输入/ /输出状态输出状态和对和对C C口的按位置位口的按位置位/ /复位操作。复位操作。 与存储器和与存储器和其他可编程其他可编程接口接口芯片大同小异。芯片大同小异。 有三种可编程有三种可编程的工作方式。的工作方式。 A A口、口、B B口只能口只能用作数据用作数据I/OI/O口;口; C C口则因工作方口则因工作方式不同,有时是式不同,有时是I/OI/O数据端口线,有时数据端口线,有时是是A A口、口、B B口数据传口数据传送的应答控制线。送的应答控制线。7-147.3.2 7.3.2 内部端口寻址与读内部端口

11、寻址与读/ /写控制写控制 0 0 1 0 0 数据总线数据总线 A口口 0 1 1 0 0 数据总线数据总线 B口口 1 0 1 0 0 数据总线数据总线 C口口 1 1 1 0 0 数据总线数据总线控制寄存器控制寄存器 0 0 0 1 0 A口口数据总线数据总线 0 1 0 1 0 B口口数据总线数据总线 1 0 0 1 0 C口口数据总线数据总线 1 端口端口输出为输出为”高阻高阻” 1 1 0 1 0 非法非法 1 1 0 端口端口输出为输出为”高阻高阻” A1 A0 RD WR CS 操操 作作输入输入输出输出禁止禁止 8255内部共有内部共有A口、口、B口、口、C口和控制口口和控制

12、口4个端口个端口寄存器寄存器,对他们的寻址和读对他们的寻址和读/写操作是由写操作是由CS*、A1、A0和和RD*、WR*几几个信号来控制的。个信号来控制的。 7-157.3.3 7.3.3 控制字格式控制字格式82558255有两种控制字:有两种控制字: 工作方式控制字工作方式控制字C C口按位置位口按位置位/ /复位控制字复位控制字7-167.3.3 7.3.3 控制字格式控制字格式1. 1. 工作方式控制字工作方式控制字B组控制组控制C口口低低4位位0输出输出1输入输入B口口I/O选择选择0输出输出1输入输入方式方式选择选择0方式方式01方式方式1A组控制组控制C口口高高4位位0输出输出1

13、输入输入A口口I/O选择选择0输出输出1输入输入方式方式选择选择00方式方式001方式方式11 方式方式21 D6 D5 D4 D3 D2 D1 D07-17D7 D6 D5 D4 D3 D2 D1 D02. C2. C口按位置位口按位置位/ /复位控制字复位控制字 C C口的按位置位口的按位置位/ /复位复位操作一次只能使操作一次只能使C C口口的的 1 1 位 置位 置 “ 1 1 ” 或 置或 置“0 0”。 如果要在某位上输出如果要在某位上输出一个开关量信号一个开关量信号, ,对对该位的置该位的置 “1 1”置置“0 0”操作必须成对使用。操作必须成对使用。 C C口按位置位口按位置位

14、/ /复位控复位控制字不是送到制字不是送到C C口地口地址址, ,而是送到控制寄而是送到控制寄存器地址。存器地址。说明:说明:0C口口的的位位选选择择位位 D3D2D100001001201030114100510161107111置位置位复位复位0 0 复位复位1 1 置位置位7.3.3 7.3.3 控制字格式控制字格式7-187.3.4 7.3.4 三种工作方式三种工作方式地址总线地址总线数据总线数据总线控制总线控制总线方式方式0RD WRD7D0 CSA0 A1B口口C口口A口口I/OI/OI/OI/OPB7PB0PC30PC74PA7PA0基本基本I/O方式方式方式方式2B口口C口口C

15、口口A口口I/OPB7PB0A口控制口控制应答式双向应答式双向I/O方式方式I/O双向双向B组组A组组方式方式1B口口C口口C口口A口口I/OPB7PB0PA7PA0控制控制应答式应答式I/O方式方式控制控制I/OPA7PA07-191.1.方式方式0 0:基本:基本I/OI/O方式方式7.3.4 7.3.4 三种工作方式三种工作方式方式方式0主要主要用于无条用于无条件件I/O传送传送,这时输出这时输出有锁存功能,而输入有锁存功能,而输入则无锁存功能;则无锁存功能; C口支持按位操作;口支持按位操作;方式方式0亦可亦可用于应答用于应答式工作。式工作。 A、B、C三个端口均为数据三个端口均为数据

16、I/O口,其中口,其中A口、口、B口、口、C口高口高4位、位、C口低口低4位可通过编程选择分别工作于位可通过编程选择分别工作于输入或输出状态。输入或输出状态。PA70PC74PC30PB70I/O数数据据7-20 例例7.2 用用8255实现的开关输入和显示输出接口。实现的开关输入和显示输出接口。无条件输入无条件输入/ /输出输出7.3.4 7.3.4 三种工作三种工作方式方式方式方式0 0译译码码器器AEN D7D0 IOWIOR+5VA1A0A9A2200HD7D0CS A1A0PB7 PB6 PB0 PA2 PA1 PA0 LED7 LED6 LED0 K2 K1 K08255WRRD

17、A口可用三态门代替,口可用三态门代替,B口可用锁存器代替。口可用锁存器代替。K K2 2K K1 1K K0 0=000=000,LEDLED0 0亮;亮; K K2 2K K1 1K K0 0=001=001,LEDLED1 1亮;亮; K K2 2K K1 1K K0 0=010=010,LEDLED2 2亮;亮;K K2 2K K1 1K K0 0=011=011,LEDLED3 3亮;亮; K K2 2K K1 1K K0 0=100=100,LEDLED4 4亮;亮; K K2 2K K1 1K K0 0=101=101,LEDLED5 5亮;亮;K K2 2K K1 1K K0 0

18、=110=110,LEDLED6 6亮;亮; K K2 2K K1 1K K0 0=111=111,LEDLED7 7亮;亮;7-21例例7.2 7.2 程序程序7.3.4 7.3.4 三种工作三种工作方式方式方式方式0 0#include #include unsigned char tab=0 x01,0 x02,0 x04,0 x08,0 x10,0 x20,0 x40,0 x80;main() unsigned char i; outportb(0 x203,0 x90); /* 写写8255方式控制字方式控制字 */ while(!kbhit() /* 无键按下时,循环无键按下时,循

19、环 */ i=inportb(0 x200); /* 从从A口输入开关状态口输入开关状态 */ i&=0 x07; /* 保留低保留低3位位 */ outportb(0 x201,tabi); /* 从从B口输出相应控制字口输出相应控制字 */ 7-22 有条件输入有条件输入/ /输出输出7.3.4 7.3.4 三种工作三种工作方式方式方式方式0 0译译码码器器AEN D7D0 IOWIOR+5VA1A0A9A2200HD7D0CS A1A0PB7 PB6 PB0 PA2 PA1 PA0 LED7 LED6 LED0 K2 K1 K08255 PC0WRRD 在例在例7.2 中,用一按

20、钮控制实现有条件开关中,用一按钮控制实现有条件开关输入输入和和状态显示(按钮按下时,输入状态显示(按钮按下时,输入/输出)。输出)。7-232. 2. 方式方式1 1:应答式:应答式I/OI/O方式方式 A、B口为数据口为数据I/O口,口,C口的高口的高4位和低位和低4位分别作为位分别作为A、B口的控制口的控制/状态口。可用中断状态口。可用中断式应答,也可用查询式应答。式应答,也可用查询式应答。方式的输入方式的输入方式的输出方式的输出方式的状态字方式的状态字方式的接口方法方式的接口方法7.3.4 7.3.4 三种工作方式三种工作方式7-24 方式方式1 1的输入的输入PC2=1,使,使INTE

21、B=1B口控制字口控制字111D7 D6 D5 D4 D3 D2 D1 D0信号挂靠关系信号挂靠关系中断开启中断开启1011 1/0D7 D6 D5 D4 D3 D2 D1 D0PC4=1,使,使INTEA=1A口控制字口控制字PC6,71 输入输入0 输出输出PC4PC3PC5&RDA口口PA7PA0INTEASTBAIBFAINTRAI/OPC6、7PC2PC0PC1&RDB口口PB7PB0INTEBSTBBIBFBINTRB7.3.4 7.3.4 三种工作三种工作方式方式方式方式1 17-25 方式方式1 1的输出的输出1010 1/0D7 D6 D5 D4 D3 D2

22、D1 D0PC6=1,使,使INTEA=1A口控制字口控制字PC2=1,使,使INTEB=1B口控制字口控制字PC7PC3PC6&WRA口口PA7PA0INTEAOBFAACKAINTRAI/OPC4、5PC1PC0PC2WR& &B口口PB7PB0INTEBOBFBACKBINTRB110D7 D6 D5 D4 D3 D2 D1 D0PC4,51 输入输入0 输出输出信号挂靠关系信号挂靠关系中断开启中断开启7.3.4 7.3.4 三种工作三种工作方式方式方式方式1 17-26D7 D6 D5 D4 D3输入口输入口D7 D6 D5 D4 D3 方式方式1 1的状态字的

23、状态字INTEBIBFBINTRB 通过读通过读C口,可获得状态字,从中查询口,可获得状态字,从中查询I/O设备状态设备状态(是否(是否IBF=1或或OBF=0)。输出口输出口输出口输出口C口口D7 D6 D5 D4 D3 D2 D1 D0I/OI/OIBFAINTEAINTRAA组状态组状态B组状态组状态输入口输入口D2 D1 D0D2 D1 D0INTEBOBFBINTRBOBF INTEAI/OI/O INTRA7.3.4 7.3.4 三种工作三种工作方式方式方式方式1 17-27 方式方式1 1的接口方法的接口方法 方式方式1 1接口时,首先要根据应用的具体要求确定接口时,首先要根据应

24、用的具体要求确定A A口和口和B B口是输入还是输出口是输入还是输出, ,然后把然后把C C口的应答线与外设的口的应答线与外设的控制、状态线相连。具体又可采用:控制、状态线相连。具体又可采用: 7.3.4 7.3.4 三种工作三种工作方式方式方式方式1 1中断驱动式接口中断驱动式接口 程序查询式接口程序查询式接口7-28 方式方式1 1中断驱动式接口中断驱动式接口D7D0RDWRA1A0CS 8255APC4PC5PC6PC3地址地址译码译码A0=0AEN=0A9A3D7D0IORIOWA2A1PA70STB数据数据中导孔中导孔响应响应启动启动纸纸带带机机ACKINTRAIRQi210H 例例

25、7.3 7.3 快速启停电容式纸带机接口设计。快速启停电容式纸带机接口设计。 7.3.4 7.3.4 三种工作三种工作方式方式方式方式1 17-29 方式方式1 1查询式接口查询式接口 这时无需使用这时无需使用INTRINTR信号,而是通过信号,而是通过C C口读口读入方式入方式1 1输入状态字,查询输入状态字,查询IBFIBF的状态来实现查的状态来实现查询式输入。询式输入。7.3.4 7.3.4 三种工作三种工作方式方式方式方式1 1 以以例例7.37.3为例,若要从纸带机输入一组以为例,若要从纸带机输入一组以“$ $”符号结束的数据,并存入内存符号结束的数据,并存入内存BUFFERBUFF

26、ER开开始的数据缓冲区,则相应的始的数据缓冲区,则相应的C C语言查询式驱动语言查询式驱动程序如下:程序如下: 7-30例例7.37.3查询式驱动程序查询式驱动程序#include #include unsigned char buffer256;main()unsigned char i=0,status,x;outportb(0 x216,0 xb0); /* 写写8255方式控制字方式控制字 */outportb(0 x216,0 x0c); /* 从从PC6输出正脉冲启动纸带机工作输出正脉冲启动纸带机工作 */outportb(0 x216,0 x0d);outportb(0 x216

27、,0 x0c);while(1) /* 循环循环 */ status=inportb(0 x214); /* 从从C口输入状态口输入状态 */ while(!(status&0 x20) /* 当当IBFA=0时等待时等待 */ status=inportb(0 x214); x=inportb(0 x210); /* 从从A口输入数据口输入数据 */ bufferi=x; if(x=$) break; i+;7.3.4 7.3.4 三种工作三种工作方式方式方式方式1 17-313. 3. 方式方式2 2 应答式双向数据传送方式。应答式双向数据传送方式。 在在这种方式下,这种方式下,A

28、口为双向数据传送端口,口为双向数据传送端口,C口的口的高高5位位(PC7PC3)作为相应的应答控制线;作为相应的应答控制线;B口和口和C口口余下的低余下的低3位位(PC2PC0)可工作于方式可工作于方式0或方式或方式1。 7.3.4 7.3.4 三种工作方式三种工作方式方始的接口功能方始的接口功能方式方式2 2的状态字的状态字方式方式2 2的接口方法的接口方法7-32 方式方式2 2的接口功能的接口功能1=方式方式1D7控制字控制字D6D2D1D01 11/0 1/0 1/0PC201=输入输入0=输出输出通道通道B1=输入输入0=输出输出B组方式组方式0=方式方式0D5D4D31 1WRRD

29、PA7PA0&INTE2INTE1PC5PC4PC6PC7PC3PC2PC0INTRAACKAOBFASTBAIBFAI/OI/O3 方式方式2 2的接口功能相当于方式的接口功能相当于方式1 1输入和输出功能输入和输出功能的组合。的组合。7.3.4 7.3.4 三种工作三种工作方式方式方式方式2 27-33 方式方式2 2的状态字的状态字7.3.4 7.3.4 三种工作三种工作方式方式方式方式2 2D7 D6 D5 D4 D3I/OI/OI/OC口口D7D6D5D4D3D2 D1 D0OBF INTEAIBFAINTEAINTRAA组状态组状态B组状态组状态方式方式1输入输入D2 D1

30、 D0D2 D1 D0INTEBIBFBINTRBD2 D1 D0INTEBOBFBINTRB方式方式1输出输出方式方式0输入输入/输出输出7-34 方式方式2 2的接口方法的接口方法方式方式2 2的接口方法有两种形式,即:的接口方法有两种形式,即: 对中断式接口,只能对中断式接口,只能采用查询式中断:中采用查询式中断:中断响应后,先读状态字,查明是输入中断还是断响应后,先读状态字,查明是输入中断还是输出中断,再转入相应中断服务。输出中断,再转入相应中断服务。 中断驱动式接口中断驱动式接口 程序查询式接口程序查询式接口7.3.4 7.3.4 三种工作三种工作方式方式方式方式2 27-35 本节

31、通过几个具体实例来本节通过几个具体实例来说明并行接口在说明并行接口在实际应用中的使用方法。实际应用中的使用方法。7.4 并行接口应用思维并行接口应用思维7.4.1 7.4.1 步进电机控制接口设计步进电机控制接口设计7.4.2 LED7.4.2 LED显示器接口设计显示器接口设计7.4.3 7.4.3 键盘接口设计键盘接口设计7.4.4 7.4.4 打印机接口设计打印机接口设计7-367.4.1 7.4.1 步进电机控制接口设计步进电机控制接口设计 例例7.4 7.4 设计一个三相设计一个三相步进电机控制接口。步进电机控制接口。编写程序使步进电机按一定速度正编写程序使步进电机按一定速度正/ /

32、反转。反转。 1.1.三相步进电机的工作原理三相步进电机的工作原理2.2.三相步进电机的驱动控制方法三相步进电机的驱动控制方法 3.3.控制接口设计控制接口设计4.4.驱动软件设计驱动软件设计 7-371. 1. 三相步进电机的工作原理三相步进电机的工作原理 三相步进电机的内部结构如图三相步进电机的内部结构如图所示。当三相定子绕组轮流接通驱所示。当三相定子绕组轮流接通驱动脉冲时,所产生的磁场吸引转子动脉冲时,所产生的磁场吸引转子转动。转动。 按各相定子依次励磁的顺序不按各相定子依次励磁的顺序不同,三相步进电机有同,三相步进电机有3 3种工作方式:种工作方式: 三相三拍三相三拍。 正转正转:AB

33、CA(反转)(反转)三相双三拍。三相双三拍。正转:正转:ABBCCAAB三相六拍三相六拍。 正转正转:AABBBCCCAA7.4.1 7.4.1 步进电机控制接口设计步进电机控制接口设计AABBCC7-382.2.步进电机的驱动控制方法步进电机的驱动控制方法 步进电机的驱动控制方法,在于根据转速或位移步进电机的驱动控制方法,在于根据转速或位移的要求产生所需频率的步进脉冲,并控制其发出的个的要求产生所需频率的步进脉冲,并控制其发出的个数,再由脉冲分配器将步进脉冲按照步进电机工作方数,再由脉冲分配器将步进脉冲按照步进电机工作方式分配给各相绕组。式分配给各相绕组。 常用并口常用并口代替,软代替,软件

34、分配件分配 7.4.1 7.4.1 步进电机控制接口设计步进电机控制接口设计步步进进脉脉冲冲发发生生器器多多路路脉脉冲冲分分配配器器A相驱动器相驱动器B相驱动器相驱动器C相驱动器相驱动器ABCUC7-393.3.硬件设计硬件设计方案一:用方案一:用82558255实现实现 这时可选用这时可选用PAPA口口/PB/PB口作控制接口,口作控制接口,C C口作状态接口作状态接口输入正反转标志。相应接口可如下所示:口输入正反转标志。相应接口可如下所示:7.4.1 7.4.1 步进电机控制接口设计步进电机控制接口设计D70IORIOWA2A1CS8255D70RDWRA1A0译译码码电电路路210HA0

35、=0AEN=0A9A3PC0PB2PB1+5V+5V+5V+5VPB0CBA正反转标志正反转标志VC1117-40方案二:用简单并口实现方案二:用简单并口实现7.4.1 7.4.1 步进电机控制接口设计步进电机控制接口设计硬件设计硬件设计IOWD0D1D21 10 x210LEQ2Q1+5V+5V+5V+5VQ0CBA正反转标志正反转标志VC111D0D1D21 1IOR 这时可选用锁存器作控制接口,三态门作状态接这时可选用锁存器作控制接口,三态门作状态接口输入正反转标志。相应接口可如下所示:口输入正反转标志。相应接口可如下所示:7-41方案三:用单片机并口实现方案三:用单片机并口实现7.4.

36、1 7.4.1 步进电机控制接口设计步进电机控制接口设计硬件设计硬件设计 这时可选用这时可选用P0P0口输出作为控制接口,口输出作为控制接口,P1.0P1.0状态接状态接口输入正反转标志。相应接口可如下所示:口输入正反转标志。相应接口可如下所示:51单片机单片机+5V+5V+5V+5VCBA正反转标志正反转标志VC111P0.1P0.2P1.0P0.07-424.4.驱动软件设计驱动软件设计 以上述电路为基础,根据步进频率计算出每一拍以上述电路为基础,根据步进频率计算出每一拍的时间,然后按所选择的工作方式列出一周期内各拍的时间,然后按所选择的工作方式列出一周期内各拍应向并行输出口送出的控制字表

37、。以三相六拍为例,应向并行输出口送出的控制字表。以三相六拍为例,对应的控制字表如下:对应的控制字表如下:工作方式工作方式控制字控制字存放地址存放地址控制字控制字(PB2 PB1 PB0)控制字写入顺序控制字写入顺序正转正转反转反转三相六拍三相六拍BASEBASE+1BASE+2BASE+3BASE+4BASE+50010110101101001017.4.1 7.4.1 步进电机控制接口设计步进电机控制接口设计7-43例例7.4 7.4 方案一程序方案一程序( (延时程序略延时程序略) )#include #include unsigned char base=01H,03H,02H,06H,

38、04H,05H; /* 定义三相六拍控制字表定义三相六拍控制字表 */main() unsigned char i=0,status,x;outputb(0 x216,0 x81); /* 写写8255方式控制字方式控制字 */status=inportb(0 x214); /* 输入正反转标志输入正反转标志 */if(!(status&0 x01) i=5; /* 反转,反转,i指向最后一个控制字指向最后一个控制字 */while(!kbhit() /* 无键按下时,循环无键按下时,循环 */ outportb(0 x212,basei); /* 从从B口输出当前控制字口输出当前控制

39、字 */ delay1s(); /* 延时,步进电机走一拍延时,步进电机走一拍 */ status=inportb(0 x214); /* 从从C口输入正反转标志口输入正反转标志 */ if(status&1) /* 正转正转 */ i+; if(i=6) i=0; /* 正转完一周,正转完一周,i指向第一个控制字指向第一个控制字 */ else i-; if(i=-1) i=5; /* 反转完一周,反转完一周,i指向最后一个控制字指向最后一个控制字 */ 7.4.1 7.4.1 步进电机控制接口设计步进电机控制接口设计7-44例例7.4 7.4 方案三程序方案三程序( (延时程序略延

40、时程序略) )#include #define uchar unsigned char#define uint unsigned intsbit BF=P10;/ 正反转标志正反转标志uchar code base=01H,03H,02H,06H,04H,05H; / 定义定义三相六拍控制字三相六拍控制字表表main() uchar i=0,status,x;BF=1;/ 置置p1.0输入输入if(BF=0) i=5; / 反转反转,i指向最后一个控制指向最后一个控制字字while(1) / 循环循环 p0=basei); / 从从P0口口输出当前控制字输出当前控制字 delay1s(); /

41、 延时延时,步进电机走一拍,步进电机走一拍 if(BF) / 正转正转 i+; if(i=6) i=0; / 正转正转完一周,完一周,i指向第一个控制指向第一个控制字字 else i-; if(i=-1) i=5; / 反转反转完一周,完一周,i指向最后一个控制指向最后一个控制字字 7.4.1 7.4.1 步进电机控制接口设计步进电机控制接口设计7-457.4.27.4.2 LED显示器接口设计显示器接口设计 例例7.5 7.5 在微机在微机中扩展如图所示的中扩展如图所示的8位位8段段LED显示器。显示器。1.LED1.LED显示器内部结构及显示原理显示器内部结构及显示原理2.LED2.LED

42、显示器的驱动控制方法显示器的驱动控制方法 3.83.8位位LEDLED显示器接口硬件设计显示器接口硬件设计4.4.接口驱动软件设计接口驱动软件设计 7-461. LED1. LED显示器内部结构及显示原理显示器内部结构及显示原理 D7 D6 D5 D4 D3 D2 D1 D0dpgfedcba 显示段码显示段码7.4.27.4.2 LED显示器接口设计显示器接口设计7-472.2. LEDLED显示器的驱动控制方法显示器的驱动控制方法 以以1位位LED显示器为例,只需在显示器为例,只需在8段段LED显显示器与微处理器之间加一个示器与微处理器之间加一个8位位锁存器。锁存器。7.4.27.4.2

43、LED显示器接口设计显示器接口设计8位位锁锁存存器器DB07IOW40HD0Q0Q1Q2Q3Q4Q5Q6Q7abcdefgdpabcdefgdp+5V3008&D77-483. 83. 8位位LEDLED显示器接口设计显示器接口设计 单片机单片机驱驱动动器器P0.7P0.0P1.7dpaaLED7LED0aaP1.0dpdpdp阴极阴极阴极阴极驱驱动动器器7.4.27.4.2 LED显示器接口设计显示器接口设计 需需2 2个并行输出口。个并行输出口。 方案一:方案一:若用单片机实现,使用若用单片机实现,使用2个并行输出口,个并行输出口,如下所示。如下所示。7-493. 83. 8位位L

44、EDLED显示器接口设计显示器接口设计方案二方案二驱驱动动器器PA7PA0PB7dpaaLED7LED0aaPB08255D7D0A0A1DBA0A1地址地址译码译码A9A2AEN=0dpdpdp阴极阴极阴极阴极驱驱动动器器RDWRCSIORIOW200H7.4.27.4.2 LED显示器接口设计显示器接口设计 若用若用8255实现,电路可如下所示(也可用实现,电路可如下所示(也可用2个锁存个锁存器代替器代替PA/PB口)。口)。7-50 假定要从左至右显示假定要从左至右显示: :1991997.7.1010. .,设计该接口,设计该接口的驱动程序设计。的驱动程序设计。 数据结构数据结构4.

45、4. 接口驱动软件设计接口驱动软件设计该接口采用软件译该接口采用软件译码,可在码,可在ROMROM区建区建立一个显示字符段立一个显示字符段码表;码表;在在RAMRAM区,应开辟区,应开辟一个显示数据缓冲一个显示数据缓冲区,将要显示的内区,将要显示的内容预先存放到该缓容预先存放到该缓冲区。冲区。7.4.27.4.2 LED显示器接口设计显示器接口设计ROMSEGPT121516012F段段码码表表.0 xC00 xF90 xA40 x8E0 x7FRAM显显示示缓缓冲冲区区0 x010 x090 x090 x010 x000 x100 x080 x10DISMEM+1+2+5+6+7+3+419

46、910.8.7-51 程序流程图程序流程图指向显示缓冲区首址指向显示缓冲区首址关显示关显示从缓冲区取显示字符从缓冲区取显示字符从段码表取段码从段码表取段码输出至段码寄存器输出至段码寄存器位指针送位寄存器位指针送位寄存器延时延时取显示位指针取显示位指针修改显示位指针修改显示位指针修改缓冲区指针修改缓冲区指针入口入口到最右端位?到最右端位?NY结束结束Y有键按下?有键按下?N7.4.27.4.2 LED显示器接口显示器接口设计设计驱动软件设计驱动软件设计7-52 C语言程序语言程序#include stdio.h#include conio.h#include dos.hunsigned char

47、 segpt=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8, 0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e,0 x7f;unsigned char dismem=1,9,9,8,0 x10,1,0,0 x10;main()unsigned char temp,datal,i;int count;outportb(0 x203,0 x80); while(!kbhit() /* 无键按下,循环无键按下,循环 */i=0;datal=0 x80;outportb(0 x201,0); /* 位码指向

48、最左端,关显示位码指向最左端,关显示 */while(1) temp=dismemi;/* 取要显示的字符取要显示的字符 */ outportb(0 x200,segpttemp);/* 将字符显示段码送端口将字符显示段码送端口A */ outportb(0 x201,datal);/* 将位码送端口将位码送端口B */ count=0 xffff; while(count!=0) count-;/* 延时延时 */ if(datal=0 x01) break; i+; datal=1;/* 调整指针,位码右移一位调整指针,位码右移一位 */7.4.27.4.2 LED显示器接口显示器接口设计

49、设计驱动软件设计驱动软件设计7-53 单片机方案单片机方案C语言程序语言程序#include #define uchar unsigned char#define uint unsigned intuchar code SegCode=0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8, 0 x80,0 x90,0 x88,0 x83,0 xc6,0 xa1,0 x86,0 x8e,0 x7f;uchar code DisMem=1,9,2,7,0 x10,8,0 x10,1;/定义显示缓冲区定义显示缓冲区 void main()uchar temp

50、,BitCode,i;while(1) i=0; BitCode =0 x80;/ 位码指向左端位码指向左端LED显示器显示器 P0=0; / 关显示关显示 while(1) temp= DisMemi;/ 取要显示的字符取要显示的字符 P1= SegCodetemp;/ 将显示字符的显示段码送将显示字符的显示段码送P1口口 P0= BitCode;/ 将位码送将位码送P0口口 DelayMs();/ 延时延时 if(BitCode =0 x01) break; i+; BitCode =1; / 调整指针,位码右移调整指针,位码右移1位位 ;7.4.27.4.2 LED显示器接口显示器接口设

51、计设计驱动软件设计驱动软件设计7-547.4.3 7.4.3 键盘接口设计。键盘接口设计。 要求:键盘提供要求:键盘提供16个数字键个数字键0F。当有键按下时,。当有键按下时,在在PC机屏幕上显示按键所对应的数字,若按下机屏幕上显示按键所对应的数字,若按下“F”键,键,则退出程序运行。则退出程序运行。 例例6.6 6.6 设计设计一个一个4 4行行4 4列的非编码键盘接口。列的非编码键盘接口。7-55 行行/ /列列扫描式键盘接口设计(单片机)扫描式键盘接口设计(单片机)单单片片机机P0.0P0.1P0.2P0.3P1.0P1.1P1.2P1.3+5V0 1 2 34 5 6 7C D E F

52、8 9 A B0行行1行行2行行3行行0列列 1列列2列列3列列7.4.3 7.4.3 键盘接口设计键盘接口设计 可用可用1个并行口的个并行口的4位作为行信号输入,另一个并行位作为行信号输入,另一个并行口的口的4位作为列状态输入。位作为列状态输入。7-56 行行/ /列列扫描式键盘接口设计扫描式键盘接口设计CSD07A0A1RDWR200203HPC0PC1PC2PC3PC4PC5PC6PC78255+5VD0D7A0A1IORIOW0 1 2 34 5 6 7C D E F8 9 A B0行行1行行2行行3行行0列列 1列列2列列3列列7.4.3 7.4.3 键盘接口设计键盘接口设计 可用可

53、用1个锁存器代替个锁存器代替PC30口,三态门代替口,三态门代替PC74口。口。7-57 键码产生键码产生查表法查表法 C语言可用二维表(二维数组),如下所语言可用二维表(二维数组),如下所示。示。 当识别出按键时,根据当识别出按键时,根据按键的按键的行列行列坐标获坐标获取按键取按键的的键码。键码。 7.4.3 7.4.3 键盘接口设计键盘接口设计KEY_TAB4,4=0, 1, 2, 34, 5, 6, 78, 9, A, BC, D, E, F7-58汇编语言用顺序表(一维数组)汇编语言用顺序表(一维数组)0 01 12 23 3F FSEGTAB 当识别出按键时,根据按键当识别出按键时,

54、根据按键的行列坐标计算出被按键的键码的行列坐标计算出被按键的键码在表中存放的序号,然后以该序号查表获取键在表中存放的序号,然后以该序号查表获取键码(码(ASCIIASCII码)。码)。 此例,根据按键排列有此例,根据按键排列有: : 序号序号= =行号行号4 4 + 列号。列号。 7.4.3 7.4.3 键盘接口设计键盘接口设计键码产生键码产生 方法是预先在内存方法是预先在内存中按顺序建立中按顺序建立0F这这16个字符的键码(个字符的键码(ASCII码)码)表,如图所示。表,如图所示。 7-59 行扫描行扫描程序流程程序流程初始化初始化8255读入列状态(读入列状态(PC7PC4)输出使输出使

55、PC3PC0为为0的扫描信号的扫描信号有键按下?有键按下?软件延时软件延时520ms,去抖动,去抖动取扫描取扫描0行的扫描码,行号行的扫描码,行号=0有键按下?有键按下?读入列状态(读入列状态(PC7PC4)输出当前行扫描信号输出当前行扫描信号行号加行号加1行号行号=4?取扫描下一行的扫描码取扫描下一行的扫描码YNYNYNAB7.4.3 7.4.3 键盘接口设计键盘接口设计7-60 行扫描行扫描程序流程(续)程序流程(续)计算被按键所在列号计算被按键所在列号根据行列号计算被按键序号根据行列号计算被按键序号查表获取被按键查表获取被按键ASCII码码用用DOS功能调用显示被按键功能调用显示被按键是

56、是F键?键?结束结束YNAB7.4.3 7.4.3 键盘接口设计键盘接口设计7-61线反转式线反转式键盘接口键盘接口CSD07A0A1RDWR200203HPC0PC1PC2PC3PC4PC5PC6PC78255+5VD0D7A0A1IORIOW0 1 2 34 5 6 7C D E F8 9 A B0行行1行行2行行3行行0列列 1列列2列列3列列+5V7.4.3 7.4.3 键盘接口设计键盘接口设计 需需2个可编程的输入个可编程的输入/输出口。输出口。7-62线反转式线反转式键盘接口(单片机)键盘接口(单片机)7.4.3 7.4.3 键盘接口设计键盘接口设计 需需2个可编程的输入个可编程的

57、输入/输出口。输出口。+5V0 1 2 34 5 6 7C D E F8 9 A B0行行1行行2行行3行行0列列 1列列2列列3列列+5V单单片片机机P0.0P0.1P0.2P0.3P1.0P1.1P1.2P1.37-63 Centronics打印机接口标准打印机接口标准 查询式打印机接口设计查询式打印机接口设计 中断式打印机接口设计中断式打印机接口设计7.4.4 7.4.4 并行打印机接口设计并行打印机接口设计 例例7.7 7.7 设计设计一个基于一个基于CentronicsCentronics标准的查标准的查询式询式/ /中断式打印机接口。中断式打印机接口。编程将编程将存放在内存存放在内

58、存BUFBUF单元开始、以数字单元开始、以数字0 0结束的打印数据输出。结束的打印数据输出。 7-64 Centronics标准最主要的是标准最主要的是8位并行数据线,两根位并行数据线,两根握手联络信号线握手联络信号线STROBE*、ACK*和一根忙线和一根忙线BUSY。有效有效不忙不忙0.5s0.5s0.5s0.5std接接口口打打印印机机DATASTROBEBUSYACK1.Centronics1.Centronics打印机接口标准打印机接口标准7.4.4 7.4.4 并行打印机接口设计并行打印机接口设计7-652. 查询式打印机接口设计查询式打印机接口设计WRRDD70A0A1CS 82

59、55A打印机打印机DATA81STROBEBUSYIOWIOR D70A0A1ISA A3A4总总 A5AEN线线 A6A7ABC Y2G2AG2BG174LS138驱动器驱动器A口口PC6PC21EN 用用82558255的的A A口作输出数据口,口作输出数据口,C C口的高口的高4 4位位作控制口,低作控制口,低4 4位作状态口,电路如下:位作状态口,电路如下:7.4.4 7.4.4 并行打印机接口设计并行打印机接口设计7-66读读8255 C口状态口状态数据送数据送82558255A A口口数据缓冲区指针加数据缓冲区指针加1 1END82558255初始化初始化: :A A口方式口方式0

60、 0,输出输出; ;C C口高口高4 4位输出位输出, ,低低4 4位输入;使位输入;使PC6=1PC6=1。打印数据完?打印数据完?忙忙( (PC2=1)PC2=1)?使使PC6PC6输出一个输出一个 (选通)(选通)Y YY YN NN N 查询式驱动程序流程查询式驱动程序流程7.4.4 7.4.4 并行打印机接口设计并行打印机接口设计7-67 查询式驱动程序查询式驱动程序#include stdio.h#include dos.hunsigned char buf256;main() unsigned char status,i; outportb(0 x93,0 x81); /* 设置设置8255方式字方式字 */ outportb(0 x93,0 x0d); /* 置置

温馨提示

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

评论

0/150

提交评论