单片机接口技术.docx
- 文档编号:4134637
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:44
- 大小:403.91KB
单片机接口技术.docx
《单片机接口技术.docx》由会员分享,可在线阅读,更多相关《单片机接口技术.docx(44页珍藏版)》请在冰豆网上搜索。
单片机接口技术
单片机接口技术
《单片机原理与接口技术》
备课笔记
信息工程系
史保华
第六章单片机接口技术概论
6.1接口的基本概念
接口(Interface)这个词的技术含义,是指各种不同特性部件的相互交接部分。
对于单片机来说,CPU是整个系统的核心器件,它与其它外围电路和部件相互交接的部分就是接口。
接口又分为硬件部分和软件部分。
所谓硬件接口是指两个部件实体之间的连线和逻辑电路;而接口软件则是指为实现信息交换而设计的程序。
在现有的技术条件下,硬件接口往往需要相应的接口软件的支持。
计算机的外围电路和部件通过接口进行互连的根本目的,就是要实现信息的交换。
而这些外围电路和部件内信息的类型、格式以及对它们处理的方法和速度都有很大的差异。
因此,各种外围电路和部件的接口技术也是各不相同的。
由于目前各种接口器件的种类繁多、性能各异,所以掌握常用器件的接口技术就显得非常必要了。
根据接口的功能和所涉及的信息类型、格式以及信息交换的速度,具体的接口技术可以有以下几种分类。
一、存储器接口与I/O外设接口
在计算机系统中,存储器与I/O外设是两类不同性质的功能电路。
存储器的功能是存储信息;而I/O外设则用于信息的输入/输出。
虽然在MCS-51系列单片机中没有独立的外部I/O指令,存储器与外部I/O的操作都采用MOVX指令,存储器的特性与I/O外设却有着明显的不同。
而且目前存储器的种类也很多,各种类型的存储器特性也有很大的差异。
二、串行接口与并行接口
微型计算机系统中的总线(数据总线、地址总线)都属于并行总
线,即数据和地址的各位信息同时传送。
并行接口的特点是信息传送的
速度快,缺点是硬件连线多。
8位总线就至少要有8+1(地线)根连线。
串行接口是将信息逐位传送,因此传送速度较慢。
其优点是可以只用两根连接线就能传送任意位的信息。
三、模拟接口与数字接口
凡是涉及模拟信号的接口部件都是模拟接口,反之为数字接口。
模拟接口有两类,即D/A接口和A/D接口。
四、高速接口与低速接口
所谓高速接口与低速接口,通常是指相对CPU的读写速度而言的
信息传送速度。
如果接口传送信息的速度接近或超过CPU的读写速度,就称为高速接口;反之就称为中低速接口。
6.2接口技术所要解决的问题6.2.1数据锁存、缓冲与驱动
根据总线的时序关系,CPU向外设写一个数据时,数据仅仅在总线上存在一个很短的时间(在系统时钟为12MHz时,约0.5μs)。
一般说外设很难在这样短的时间内完成应当做的工作。
如果在接口电路中增加一个D触发器,就可以将输出数据锁存。
锁存的信息可以为外设随时取得,不必考虑两者的速度配合。
而CPU在输出数据后就可以进行别的操作。
有些输入信息的接口也具有锁存功能。
接口电路除了要对数据进行锁存以外,还应当具有缓冲功能,即在输入/输出之间进行一定的隔离,以减少甚至消除相互之间的影响。
接口部件输出到数据总线中去的缓冲器一般采用三态门,以防止外部的信号影响公用的数据总线所进行的其他操作。
考虑到负载的情况和总线本身的负载能力,缓冲器一般都具有适当的驱动能力。
特殊情况下还可以采用专门的驱动器。
6.2.2数据形式的变换
某些接口所连接的两个部件的信息形式是不同的,因此接口必须对
所传送的信息进行变换以使其能适合接收方的要求。
这方面最为明显的是A/D接口和D/A接口。
串行数据和并行数据的形式变换也是很常见的。
除了一般形式的串行/并行数据变换以外,有时还要包括特殊的数据转换。
例如,CRT接口不仅要将计算机提供的并行数据转换为串行数据,而且还要将字符代码形式的数据转换为相应的字形信息。
在有些情况下接口还要进行电平的转换。
例如,串行通讯标准RS-232的信号电平为?
12V,而计算机内的逻辑电平通常为TTL电平(0~+5V)。
这就需要进行电平的变换。
6.2.3数据传送过程的控制
微处理机与外设通常是异步工作的。
如果不对数据传输过程进行适当的控制,就有可能导致数据在传输过程中发生错误。
例如,从CPU向外设输出一串数据,当输出的第一个数据锁存在接口电路中以后,外设必须及时取走它,否则就有可能发生当CPU发送第二个数据时,外设还未将第一个数据取走的情况。
由于锁存器的内容被更改,第一个数据就丢失了。
控制数据传输是否开始的依据应该是接受部件是否准备好;而开始接收数据的条件应该是对方的数据已经准备好。
接口电路处于系统总线与外设之间,为了协调数据的传输,它应该有两个方向的联络、控制信号,以表征通讯的双方是否已经准备就绪。
6.2.4地址编码与译码
计算机的各种接口部件通常要在系统中占据一个或多个I/O地址。
对于MCS-51系列单片机,由于其外扩的I/O端口与外扩的随机存储器共用一个地址空间,因此,还牵涉到一个如何妥善安排地址空间,以便使各个接口部件之间互相不影响,也不与存储器地址相冲突的问题。
I/O端口地址通常采用译码的方法产生。
但有的单片机应用系统外围接口比较简单,也可以直接利用单片机本身的I/O端口进行连接,从而不占用任何的地址资源。
6.2.5接口软件
这里的所谓接口软件是指为了使接口电路正常工作,而由CPU所执行的程序。
很多接口部件都有多种工作方式并可以通过编程改变其工作方式,称为可编程接口器件。
由于接口电路的多样性,接口软件的设计也有很大的差异。
接口软件通常包括:
接口初始化程序,接口状态检测和控制程序以及进行一个基本数据传输的程序。
6.3单片机接口技术的特点
由于单片机已经具备了一些常用的功能部件以及单片机的应用主要是面向测控系统,因此,与通用微型计算机的接口技术相比较,单片机的接口技术有其自身的特点。
首先,单片机的接口更侧重于简单的人机接口和测控接口。
通用微型计算机的人机界面是标准键盘和显示器,比单片机的人机接口要复杂得多,功能也强得多。
例如,PC机的键盘本身就是一个单片机系统,可以对100多个键进行扫描,并具有消除抖动和重键处理等功能。
另外,通用计算机不是面向测控应用的,因此通常不具备测控接口。
如果需要,必须使用扩展板。
其次,单片机的接口往往需要用户自行设计,而且没有统一的标准和规格。
同一种功能往往可以采用不同的接口设计方案。
而通用微型计算机的接口部件是已经设计好的,用户只能使用其提供的功能,而不能更改其原有的设计。
因此,单片机的接口设计往往需要更多的技巧和经验。
第三,单片机应用系统的规模通常都比较小,存储器的容量也不大。
因此,很少采用大容量的存储器,而且通常只采用静态存储器,很少采用动态存储器。
另外,也很少采用外部存储器(软盘、硬盘等)。
而在通用微型计算机中,通常都采用大容量的动态存储器,软盘和硬盘更是必不可少的大容量的外部存储器。
鉴于单片机的上述特点,本书着重介绍单片机面向测控应用系统的接口设计,最后还简要讨论和介绍了单片机应用系统的设计方法。
第七章单片机显示接口技术
单片机应用系统中,常常需要将信息显示出来,实现信息的人机交互,用于显示的器件有很多,如CRT、LED(发光二极管显示器)、LCD(液晶显示器)、场致发光器件等。
常用的显示器有LED和LCD两种。
在纯数值或简单字符显示应用中LED显示器又占有明显的优势。
LED显示器又分为单个LED指示器、七段LED数码显示器和点阵LED显示器等。
尽管种类繁多,但它们具有共同的特点:
低成本、高亮度、长寿命、显示直观、能用于数字及简单的字符显示。
7.1单个LED指示器
7.1.1结构与原理
单个LED指示器,即为一个发光二极管,其特性为:
导通时发光,截
止时不发光。
利用这一特性,单个LED指示器可以用来指示某点的电平。
发光二极管的导通电流通常为3~10mA,其导通压降为1.7V。
使应用时应加限流电阻,其阻值范围可根据欧姆定律计算得出。
7.1.2单个LED指示器的接口与编程
如果发光二极管的阳极作为接口端,此时若要LED指示器发光,接口
端需输入高电平;而如果发光二极管的阴极作为接口端,此时若要LED
指示器发光,接口端则需输入低电平。
接口电路如图7-1所示:
(a)(b)
图7-1LED接口电路图
图(a)中,要使LED指示器发光,对应程序段为:
SETBP1.0
图(b)中,要使LED指示器发光,对应程序段为:
CLRP1.0
7.1.3单个LED指示器的应用
利用8个LED指示器组成一个简单的跑马灯系统,如图7-2所示。
图7-2跑马灯电路图
要求:
实现单一灯左移,左移一周后所有灯全亮并闪烁3次,然后右移,右移一周后所有灯全亮并闪烁3次,每移动一次的时间间隔为0.5秒,重复循环。
分析:
在该系统中,只有P2口输出“0”时对应的灯才会亮。
实现灯亮的左移,实际是P2.0=0P2.1=0„„P2.7=0P2.0=0,可采用左移指令实现。
灯的右移刚好和左移相反,而灯的闪烁实际是P2=#00HP2=#0FFH的转换,可采用赋值指令实现。
间隔0.5秒则可采用循环指令实现。
程序流程图如图7-3所示。
开始
开始
P2=0FEH初始化R7=08H
左移延时0.5S
闪烁3次
P2左移1位右移R7=R7-1
闪烁3次
NR7=0,
主程序流程图Y
开始返回
开始
左移子程序流程图
R6=03H
R7=08H
P2=7FHP2=00H
具体程序为:
ORG1000H
SJMPSTARTSTART:
ACALLLEFT
ACALLFLASH
ACALLRIGHT
ACALLFLASH
SJMPSTARTLEFT:
SETBC
MOVR7,#08H
MOVA,#0FEHQQ:
MOVP2,A
LCALLDELAY
RLCA
DJNZR7,QQ
RET
FLASH:
MOVR6,#03HJJ:
MOVP2,#00H
LCALLDELAY
MOVP2,#0FFH
LCALLDELAY
DJNZR6,JJ
RET
RIGHT:
SETBC
MOVR7,#08H
MOVA,#7FHKK:
MOVP2,A
LCALLDELAY
RRCA
DJNZR7,KK
RET
DELAY:
MOVR3,#200LOOP:
MOVR1,#10
NOP
NOP
NOP
NOP
NOP
NOP
NOP
LOOP1:
MOVR2,#248LOOP2:
DJNZR2,LOOP2
DJNZR1,LOOP1
DJNZR3,LOOP
RET
END
7.2七段LED数码显示器7.2.1结构与原理
LED数码显示器是由发光二极管组成的显示字段的显示器件。
这种显示器分为共阳极和共阴极两种形式,如图7-4所示。
共阴极LED数码显示器的发光二极管阴极连接在一起,形成该显示器的公共端(通常称为位选端),因此称为共阴极LED数码显示器,8个发光二极管的另一端通常称为段选端,当显示器的公共端接低电平,某个发光二极管的阳极接高电平时,该发光二极管被点亮,如图7-4(a)所示;而共阳极LED数码显示器的发光二极管阳极连接在一起,形成该显示器的公共端,当该显示器的公共端接高电平,某个发光二极管的阴极接低电平时,该发光二极管被点亮,如图3-4(b)所示。
0.5英寸七段LED数码显示器的引脚如图3-4(c)所示。
图7-4七段LED数码显示器的结构简图及引脚图
通常七段LED数码显示器有8个发光二极管,其中7个发光二极管构成一个“8”字,1个发光二极管用于显示小数点。
这8个笔段分别用a~h表示。
七段LED数码显示器与单片机的并行接口很简单,只要将1个8位并行输出口(必须带输出锁存)与显示器的8个引脚相连即可。
但要注意输出口的实际驱动能力,必要时应加驱动电路。
每个发光二极管均有其额定工作电流(5~10mA),所以实际使用时在每个发光二极管回路中必须接限流电阻,使其工作在额定电流范围内,否则会影响显示器的使用寿命。
8位并行输出口输出不同的数据即可显示不同的字符,通常将控制发光二极管的一个字节数据称为段码。
共阳极结构与共阴极结构的显示器的段码成互补关系。
通常将一个字节中的最高位对应h笔段,最低位对应a笔段,显示字符与对应的段码如表7-1所示。
表7-1七段LED数码显示器的段码显示字符共阴极段码共阳极段码显示字符共阴极段码共阳极段码
03FHC0HA77H88H
106HF9Hb7CH83H
25BHA4HC39HC6H
34FHB0Hd5EHA1H
466H99HE79H86H
56DH92HF71H8EH
67DH82HP73H8CH
707HF8HU3EHC1H
87FH80H-146HB9H
96FH90Hy6EH91H
7.2.2七段LED数码显示器的接口和编程一、静态显示接口
1(静态软件译码显示接口。
下面以0.5英寸共阳极LED数码显示器为例介绍静态并行接口的方法和相应的显示软件。
接口电路如图3-5所示,8位段数据总线P0口送出,经74LS373锁存驱动,接到LED数码显示器的8根段信号引脚上,因为共阳极七段LED数码显示器段选端是低电平有效,对于74LS373来说是吸收电流,所以有足够的能力点亮LED数码显示器。
从图7-5还可以看出,每1位LED数码显示器的驱动电路相对独立,当需要N位显示时就必须有N个驱动电路,所以硬件资源占用较多。
必须注意的是:
在N位LED数码显示器显示电路里,74LS373的数据锁存信
WR号端(CLK)必须有相应的片选信号与单片机的信号组合使用,以区分送出的段码给哪一位LED数码显示器显示。
图7-5七段LED显示器静态显示电路图2(静态硬件译码显示接口
用于静态硬件译码的器件有很多,常用的有74系列TTL电路,如74LS47、74LS48、74LS49等,各电路的使用和结构大同小异,现以74LS47为例,介绍静态硬件译码LED数码显示的使用方法。
74LS47是14引脚双列直插DIP封装,各引脚说明如下:
(1)D、C、B、A:
BCD码输入,D为高位,A为低位。
(2):
灯亮测试端,低电平有效,=0时,表示要点亮所有显示笔LTLT
段。
(3)/:
既是暗码控制的输入端(BlankingInput),又是暗码RBOBIBI
传播的输出端RBO(RippleBlankingOutput)。
/RBO有低电平输入时,BI
熄灭所有显示笔段;当/RBO悬空时,作为暗码传播的输出端,输出状BI
态有BCD码输入端和端确定。
RBI
(4):
暗码传播的输入端(RippleBlankingImput),=0且BCDRBIRBI码输入端也为0时,熄灭所以显示笔段。
这一切能主要用于消除整数的前零和小数的后零显示。
(5)a~g:
笔段驱动输出端,为低电平有效的集电极开路型输出结构,能直接驱动共阳极LED数码显示器,如图7-6所示。
74LS47的功能表如表7-2所示。
用两片74LS47组成的静态硬件译码显示电路图如图7-6所示。
图7-6静态硬件译码显示
表7-274LS47的功能表
二、动态扫描显示接口
在单片机应用系统中,由于单片机本身具有较强的逻辑控制能力,所以采用动态扫描软件译码并不复杂。
而且软件译码其译码逻辑可随意编程设定,不受硬件译码逻辑限制。
采用动态扫描软件译码的方式能大大简化电路结构,降低系统成本。
因此,在单片机应用系统中使用较广泛。
在静态硬件译码电路中,各LED数码显示器的驱动电路相互独立,当译码器输入端的数字编码保持不变时,其输出就是稳定的,因此LED数码显示也是稳定不变的,与显示器个数的多少无关。
而动态扫描显示时,在多位LED数码显示器的应用中,因受到动态扫描显示硬件结构的限制,在某一瞬间只有一位LED数码显示器被点亮,当要点亮下一位LED数码块时,当前被点亮的LED数码块必须熄灭后才能显示下一位,依次逐位显示完全部内容后又开始新的一轮显示,如此周而复始地不断循环刷新。
实际应用中为了显示一连串稳定而清晰的字符,不能在视觉上出
现闪烁、抖动现象,必须选择合适的扫描刷新频率,当扫描刷新频率达到适当值时,我们的眼睛就感觉不到显示器是一位一位被点亮的,而看到的是稳定、清晰的显示,这就是人的“视觉暂留效应”所产生的效果。
TTL电路价格便宜,在单片微机应用系统中是优先考虑的器件。
图7-7是8051通过TTL电路扩展I/O口控制的四位动态扫描LED数码显示器接口,图中LED数码显示器为0.5英寸共阴极结构。
图7-7七段LED显示器动态扫描显示电路图其中两片74LS373分别用于段信号和位信号的驱动。
利用图7-7的硬件,我们给出能显示数字0~9的软件。
第八章单片机键盘接口技术
键盘是计算机不可缺少的设备,是实现人机对话的纽带。
按其结构
形式,键盘可分为非编码式键盘和编码式键盘,前者用软件方法产生键码,而后者用硬件方法产生键码。
本章主要介绍非编码式键盘的基本工作原理、键的识别方法以及单片机键盘接口技术。
8.1键盘的基本工作原理
键盘实质是一组按键开关的集合。
通常,按键所用开关为机械弹性开关,均利用机械触点的合、断作用。
最简单的键盘如图8-1所示,它也被称为独立式按键,其中,每个键对应I/O端口的一位,没有键闭合时,各位均处于高电平。
当有一个键按下时,就使对应位接地而成为低电平,而其他位仍为高电平。
这样,CPU只要检测到某一位为“0”,便可判别出对应键已经按下。
图8-1独立式键盘结构
但是,用图8-1的结构来设计的独立式键盘有一个很大的缺点,就是当键盘上的键较多时,引线太多,占用的I/O端口也太多。
比如,一个有64个键的键盘,采用这种方法来设计时,就需要64条连线,即需用8个8位并行端口。
所以,这种简单结构只用在仅有几个键的小键盘中。
通常使用的键盘结构是矩阵式的,如图8-2所示。
设有M×N个键,那么,采用矩阵式结构后,便只要M+N条引线就行了。
比如,有8*8=64个键,那么,只要16条引线便可以完成键盘的连接。
图8-2键盘的矩阵式结构
下面以3*3=9个键为例,简略地说明矩阵式结构键盘的工作原理。
如同4-2所示,这个矩阵分为3行3列,如果第S4号键按下,则第2行和第1列线接通而形成通路。
如果第2行线接为低电平,则由于键S4的闭合,会使第1列线也为低电平。
矩阵式键盘工作时,就是按照行线和列线上的电平来识别闭合键的。
8.2键的识别方法
为了识别键盘上的闭合键,通常采用两种方法,一种称为行扫描法,另一种称为线反转法。
8.2.1行扫描法的原理
如图8-3所示,假定S7键被按下,称之为被按键或闭合键。
这时键盘矩阵中S7所处的行线和列线相通。
图8-3行扫描法键盘识别示意图
行扫描法识别闭合键的原理如下:
先使第0行输出“0”,其余行输出“1”,然后检查列线信号。
如果某列有低电平信号,则表明第0行和该列相交位置上的键被按下;否则说明没有键被按下。
此后,再将第1行输出“0”,其余行为“1”,然后再检查列线中是否有变为低电平的线。
如此往下逐行扫描,直到最后一行。
在扫描过程中,当发现某一行有键闭合时,就中断扫描,然后根据行线位置和列线位置,识别此刻被按下的是哪一个键。
实际应用中,一般先快速检查键盘中是否有某个键已被按下,然后再确定具体按下了哪个键。
为此,可以使所有各行同时为低电平,再检查是否与有列线也处于低电平。
这时,如果列线上有一位为0,则说明必有键被按下,然后再用扫描法来确定具体位置。
8.2.2线反转法的原理
扫描法要逐行扫描查询,当被按下的键处于最后一行时,则要经过多次扫描才能最后获得此按键所处的行列值。
而线反转法则显得很简练,无论被按键是处于第1行或是最后一行,均只须经过两步便能获得此按键所在的行列值,线反转法的原理如图8-4所示。
(a)行线输出,列线输入
(b)列线输出,行线输入
图8-4线反转法键盘识别电路图
从图中可以看到,用线反转法识别闭合键时,要将行线接一个并行口,先让它工作在输出方式,将列线也接到一个并行口,先让它工作在输入方式。
输出端口往各行线上全部送“0”,然后从输入输出端口读入列线的值。
如果此时有某个键被按下,则必定会使某一列线值为“0”。
然后,再对两个并行端口进行方式设置,使接行线的并行端口工作在输入方式,而使接列线的并行端口工作在输出方式,并且将刚才读得的列线值从并行端口输出,再读取行线的输入值,那么在闭合键所在的行线上的值必定为“0”。
这样,当一个键被按下时,必定可以读得唯一的一对行列值。
比如图8-4中标号为S11的键闭合,则第一次往行线输出全“0”后,
读得列值维P1.7~P1.4=1101,第二次从列线输出刚才读得的值后,会从行线上读得行值为P1.3~P1.0=1101,于是,行值和列值合起来得到一个数值11011101即0DDH,这个值对应了键S11,它一定是唯一的。
因此,根据读得的行值和列值维0DDH便可确定按下的为键S11。
8.2.3抖动和重键问题的解决
在键盘设计时,除了对键码的识别以外,还有两个问题需要解决,一个是抖动问题,另一个是重键与连击问题。
(1)抖动问题
由于机械触点的弹性作用,一个机械按键开关在闭合时不会马上稳定地接通,在断开时也不会一下子断开。
因而在开关闭合及断开的瞬间均伴随有一连串的抖动电信号,抖动时间的长短由按键的机械特性决定,一般为5~10ms,这是一个很重要的时间参数,在很多场合都要用到。
(2)消除按键抖动的措施
按键的抖动,通常有硬件、软件两种消除方法。
稳态消抖
双稳态消抖电路原理如图8-6所示,图中用两个与非门构成一个RS触发器。
当按键未按下时,输出为“,”,当按键按下时,输出为“0”,此时即使因按键的机械性能,使按键因弹性抖动而产生瞬时不闭合(抖动跳开b),只要按键不返回原始状态a,双稳态电路的状态不改变,输出保持为“,”,不会产生抖动的波形。
就是说即使,点的电压波形是抖动的,但经双稳态电路之后,其输出为正规的矩形方波,这一点很容易通过分析,,触发器的工作过程得到验证。
图8-6双稳态消抖电路
?
滤波消抖电路
因为,,积分电路具有吸收干扰脉冲的作用,所以只要选择好适当的时间常数,让按键抖动信号通过此滤波电路,便可消除抖动的影响,如图8-7所示。
图8-7滤波消抖电路
当,未按下时,非门输入电压为“,”,非门输出电压为“,”。
当,按下时,由于,两端电压不能突变,即使在接触过程中出现抖动,只要,两端的充电电压波动不超过门的开启电压(,,,为,(,,左右),门的输出将不会改变,可通过选取适当的,,、,,和,便可实现。
同样,,在断开过程中,即使出现抖动,由于,两端电压不能突变,它要经过,,放电,只要,两端的放电电压波动不超过非门的关闭电压,门的输出也不会改变。
所以,关键在于,,、,,和,时间常数的选取,必须保证,由稳态电压充电到开启电压或放电到关闭电压的延迟时间大于或等于,,,。
这既可由计算确定,也可由实验确定,图8-7中参数仅供参考。
若采用输入端有施密特触发特性的门电路,则效果更好。
?
软件消抖
如果按键较多,采用硬件消抖将使电路非常复杂、成本也较高,因此常采用软件的方法进行消抖。
在第一次检测到有键按下时,执行一段延时,,,,的子程序后再确
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 接口 技术