单片机外围电路扩展_第1页
单片机外围电路扩展_第2页
单片机外围电路扩展_第3页
单片机外围电路扩展_第4页
单片机外围电路扩展_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

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

文档简介

会计学1单片机外围电路扩展51单片机程序存储器数据存储器数码管显示键盘电源模块指示灯AD转换温度传感器IIC总线LCD液晶最小系统板外扩第1页/共70页3.1:程序存储器ROM的扩展1,在使用8031(无片内ROM)或大于4K程序存储器时,必须通过外接ROM来构成、扩充系统的程序存储区。2,当使用外部存储器来扩展系统时,必须占用单片机的P0、P2口作为外部电路的数据、地址总线。此时,P0、P2口就不能作为通用的I/O端口。3,在系统扩展时,外部电路与单片机连接的依据是单片机访问外部存储器的时序,所以正确的理解时序是硬件电路设计的关键。第2页/共70页MCS-51与32KROM的连接P2.7:

:

:P2.0P0.7:

::

P0.0ALE/EA

PsenCEA14

::A8A7

O7

:

:

::::

A0

O0OED7

Q7

D0

Q0CP27256

32KROMMCS-51/CE=P2.7(A15)返回前一次完整的地址信号第3页/共70页外部ROM的状态与地址线A15的关系表ROM引脚/CEA14~A8A7~A0地址范围ROM工作状态单片机引脚A15P2口P0口00000000001111111100000000111111110000H~07FFH选中11000000001111111100000000111111118000HFFFFH未选中第4页/共70页访问外部程序存储器ROM的时序:A15-A8(PC)A7-A0OPA7-A0常数存储器数据输出控制

/Psen地址总线(高八位)P2口地址数据总线(低8位)P0口S1S2S6S5S4S3373地址锁存信号

ALEA15-A8(DPTR+A)MOVCA,@A+DPTRAB转电路图返回前一次(参考讲义70页)第5页/共70页片外存储器访问时序说明P0、P2口作地址和数据总线。其中P0口作为地址和数据复用总线,前半部(A段)作地址总线,后半部(B段)作为数据总线。外部程序存储器ROM的操作步骤如下:

1,单片机必须为其提供完整的(15位)地址信息;

2,ROM芯片的/CE端=0,选中该芯片;

3,在满足上述条件的基础上,当ROM的/OE=0时(B时间段),存储器输出数据的三态门打开,并将与输入地址相对应的存储单元中的指令(数据)向外输出,单片机通过P0口将指令送至CPU内部。74LS373锁存器:将A时间段P0口输出的低位地址进行保存,使ROM在B时间段仍然可以得到完整的地址信号。转电路图转时序图第6页/共70页外部ROM的容量扩展原理(一)如何使用两片32K的ROM芯片扩展为64K的存储阵列。A15P2口MCS-51

P0口ALE/EAPsen/CE2A14A8A7A0/OE2O0~O7/CE1A14A8A7A0/OE1O0~O774LS373第7页/共70页由两片32K的ROM构成64K存储阵列与A15的

关系表A15/CEA14~A8P2口A7~A0P0口地址范围ROM1工作状态ROM2工作状态00000000001111111100000000111111110000H~07FFH选中未选中11000000001111111100000000111111118000H~FFFFH未选中选中第8页/共70页外部ROM的容量扩展原理(二)若需要对2片以上的芯片扩展,可以通过译码电路实现。P2.7P2.6P2.5P2.4P2.0P0口ALEPsen/CE0A12A8A7

8K×8A0/OE1O0~O774LS373Cy7BA

0y

/CE1A12A8A78K×8A0/OE1O0~O7/CE7A12A8A78K×8A0/OE1O0~O7MCS–5174LS138第9页/共70页采用LS138译码器实现ROM扩展示意表P2.7~P2.5138输出选中ROMP2.4~P0.0有效地址范围000Y0=0第1片0000H~1FFFH0000H~1FFFH001Y1=0第2片0000H~1FFFH2000H~3FFFH010Y2=0第3片0000H~1FFFH4000H~5FFFH011Y3=0第4片0000H~1FFFH6000H~7FFFH100Y4=0第5片0000H~1FFFH8000H~9FFFH101Y5=0第6片0000H~1FFFHA000H~BFFFH110Y6=0第7片0000H~1FFFHC000H~DFFFH111Y7=0第8片0000H~1FFFHE000H~FFFFH第10页/共70页小结:1,单片机的P0、P2口作为地址数据总线;2,P0口为数据、地址复用总线,所以必须加入八位锁存器74LS373来锁存P0口的低八位地址。3,外接ROM是靠MOVC指令产生的Psen信号来打开数据三态门,使ROM中的指令通过P0口送入单片机内部。4,存储器的容量M与其地址线条数n的关系:M=2↑n5,当使用两片ROM扩展时,可以使用一个反向器实现容量的扩展,通过ROM芯片的/CE端实现。6,当使用2片以上的ROM芯片扩展时,就要使用译码器实现存储容量的扩展,译码器的输入与高位地址相连接,输出端分别与各ROM芯片的/CE连接(如图所示)。7,当外接ROM的高八位地址线与P2口高八位线没有完全用足时,要注意外存储的地址重叠问题。返回第11页/共70页51单片机程序存储器数据存储器数码管显示键盘电源模块指示灯AD转换温度传感器IIC总线LCD液晶最小系统板第12页/共70页指示灯电路(一)一、电源指示灯通常的指示灯电路是使用发光二极管,接法如下:当电源正常工作时发光二极管就正常显示第13页/共70页1.6.5并行端口在使用时应注意的几个问题“拉电流”还是“灌电流”----与大电流负载的连接

(我们以美国ATMEL公司生产的AT8951为例)

1,

使用灌电流的方式与电流较大的负载直接连接时,端口可以吸收约20mA的电流而保证端口电平不高于0.45V(见右上图)。

2,采用拉电流方式连接负载时,AT89C51所能提供“拉电流”仅仅为80μA,否则输出的高电平会急剧下降.如果我们采用右下图的方式,向端口输出一个高电平去点亮LED,会发现,端口输出的电平不是“1”而是“0”!

当然,不是所有的单片机都是这样,PIC单片机就可以提供30mA的拉电流和灌电流。单对于大多数IC电路,最好还是使用“灌电流”去推动负载。Px.yVddPx.yVddVdd灌电流方式输出”0”点亮LED拉电流方式输出高电平点亮LED返回第14页/共70页指示灯电路(二)二、端口指示灯可以将某一I/O口的输出端接在三极管的基极,如下图的接法(当LED0端的输入为高电平时,三极管饱和导通,此时三极管消耗功率最小,LED亮)实现指示灯电路。第15页/共70页按键接口设计(一)按键是人机会话的一个重要的输入工具。常用按键举例复位按键功能转换按键数据输入键盘复位按键:对于MCS—51系列单片机的复位引脚RST上只要出现10ms以上的高电平,单片机就会实现复位。第16页/共70页按键接口设计(二)以下是一个典型的复位电路设计图:第17页/共70页按键接口设计(三)复位电路的设计:单片机的复位分为上电复位和按钮复位。上电复位是指单片机在加电瞬间,要在RST引脚上出现大于10ms的正脉冲,使单片机进入复位状态。按钮复位是指用户按下“复位”按钮,使单片机进入复位状态。第18页/共70页按键接口设计(四)功能转换按键:此类按键主要是当I/O口用作多种用途时,可以使用此类按键可以实现同一I/O口的复用。如图所示:SWDIP-8的引脚1-8可以接某一I/O口,当按键开关在不同的位置可以控制不同的外部接口第19页/共70页按键接口设计(五)数据输入键盘第20页/共70页按键接口设计(六)数据输入键是最常用的一种键盘:上图所示的按键主要是实现了按键按下之后,对应S0,S1,S2,S3分别由按下之前的高电平变为低电平,从而实现了输入由1到0的变化。此类按键一般需要对其进行编码和确定键值。当然还有其他种类的键盘,这里就不再一一列举,希望我们用的时候自己总结。第21页/共70页第22页/共70页数码管(一)

在单片机系统中,通常用LED数码显示器来显示各种数字或符号。八段LED显示器由8个发光二极管组成。LED显示器有两种不同的连接形式:一种是8个发光二极管的正极连在一起,称之为共阳极LED显示器;另一种是8个发光二极管的负极连在一起,称之为共阴极LED显示器。第23页/共70页数码管(二)共阴与共阳的内部电路如下图所示:第24页/共70页数码管(三)由图可以看出,共阳和共阴结构的LED显示器各笔划段名的安排位置是相同的,当二极管导通时,相应的笔划段就发亮,由发亮的笔划段组合而显示出各种字符(a~g是7个笔段电极,DP为小数点)需要注意的是:对于同一个字符的编码,共阴和共阳接法对应的编码是不一样的,两者互为反码。第25页/共70页数码管(四)数码管显示器的显示常采用两种方法:1.静态显示2.动态扫描显示静态显示:就是把多个LED显示器的每一段与一个独立的并行口连接起来,而公共端则根据数码管的种类连接到“VCC”或“GND”端。这种方法当显示位数较多时单片机中I/O口的开销很大,需要提供的I/O接口电路也较复杂,但它具有编程简单,显示稳定,CPU的效率较高的优点。第26页/共70页静态LED数码显示电路(共阳极)七段译码器七段译码器七段译码器七段译码器七段译码器VccBCD码00000001001000110100返回第27页/共70页数码管(五)由于静态显示占用的I/O口线较多,CPU的开销很大,所以为了节省单片机的I/O口线,常采用动态扫描方式来作为LED数码管的接口电路。动态显示的接口电路是把所有LED的8个笔划段a~g,dp同名端连在一起,而每一个显示器的公共极COM端与各自独立的I/O口连接。当CPU向字段输出口送出字形码时,所有显示器接收到相同的字形码,但究竟是那个显示器亮,则取决于COM端,而这一端是由I/O口控制的,所以我们就可以自行决定何时显示哪一位了。第28页/共70页数码管(六)当用电平依次选通DS1,DS2,DS3,DS4时,同时输入相应位的码段数据,这样就是动态扫描的显示过程,只要扫描的频率不小于25Hz,由于人眼的视觉停留特性,就不会感觉闪烁,看起来是4位数码管同时发光的效果。第29页/共70页第30页/共70页第31页/共70页51单片机程序存储器数据存储器数码管显示键盘电源模块指示灯AD转换温度传感器IIC总线LCD液晶最小系统板第32页/共70页串行传输口设计(一)串口是计算机上一种非常通用设备通信协议。串口通信的概念简单,串口按位发送和接收字节。尽管比按字节传送的并行通信慢,但是串口可以在使用一根线发送数据的同时用另一根线接收数据。串口的通信要遵循固定的协议,比如通信两设备间要有相同的波特率,要设定所传输的数据位个数,还有是否要用奇偶位、校验位及停止位。第33页/共70页串行传输口设计(二)串口用于ASCII码字符的传输,通信使用3根线完成:(1)地线,(2)发送,(3)接收。对于51单片机,它本身就有一个串口通信的接口,RXD与TXD,分别对应P3.0与P3.1引脚。要实现串口的通信,并不是直接将P3.0与P3.1的线接出来,而是需要有一个器件

MAX232。第34页/共70页串行传输口设计(三)由于51单片机接口输出的是TTL电平,而串口通信需要RS232电平,所以要用MAX232来实现TTL电平与RS232电平的转换。如下图所示:第35页/共70页第36页/共70页第37页/共70页串行传输口设计(四)串口通信的验证方法:在程序中发送一个字符,然后通过计算机上的串口调试助手显示出来,如果显示的与发送的一致,则串口就调试成功。第38页/共70页51单片机程序存储器数据存储器数码管显示键盘电源模块指示灯AD转换温度传感器IIC总线LCD液晶最小系统板第39页/共70页简单的AD转换电路设计(一)AD转换就是要将模拟信号量,转换为数字信号量。可以用TLC0832来实现AD转换。TLC0832是一种最简单的A/D转换器件,有2路模拟量输入通道。芯片引脚如右图所示:DI为控制信息的输入端。DO为数据输出端。CH0,CH1为模拟量输入通道。CLK为时钟端。CS为选通信号端(低有效)。第40页/共70页简单的AD转换电路设计(二)TLC0832是一个8位精度的AD转换器件,由5V电压供电,输入的范围必须是0~5V。可以通过写DI输入中的SGL和ODD进行单通道或者差分输入通道的选择。其逻辑如下:第41页/共70页电源和地(一)对于一个既有数字信号又有模拟信号的系统,我们要注意的一个问题是模拟电源和数字电源,模拟地与数字地的隔离。模拟电路涉及弱小信号,数字电路门限电平较高,对电源的要求就比模拟电路低些。在既有数字电路又有模拟电路的系统中,数字电路产生的噪声会影响模拟电路,使模拟电路的小信号指标变差,克服的办法是分开模拟地和数字地,这种隔离主要用于AD转换。第42页/共70页电源和地(二)因此为了提高整个电路的抗干扰性能,通常把数字电路的地线和模拟电路的地线隔离,或是通过电感连接。注意:在画PCB时连接尽量短宽。(下图是一种接法,其中左侧表示模拟电源和地,右侧是数字电源和地)。第43页/共70页简单的AD转换电路设计(三)引脚接法说明:

DI可以接51单片机的某一输出端口,接收51控制信息的输入。

DO可以接51单片机的某一输入端口,将A/D转换后的数字信号量输出到51单片机。

CLK可以接51单片机的某一输出端口,进行时钟控制信号的输入。

CS(低有效)可以接单片机的某一输出端口,进行选通控制。

第44页/共70页第45页/共70页第46页/共70页简单的AD转换电路设计(四)TLC0832的工作时序如下图所示:第47页/共70页简单的AD转换电路设计(五)时序分析:

AD转换时序的开始要先将CS置为低(CS必须在整个转换过程中被置为低),通过时钟的上升沿将DI的控制信息发送给TLC0832,来选择通道,然后,再通过时钟的下降沿将DO的数据发送回51。当CS为高后,转换结束。在每一个输入时钟上升沿,DI上的每位数据就会被传输到器件0832。DI有三个位,第一个输入位是起始位,它为高电平。然后,就是两个选择通道的位,即SGL与ODD。第48页/共70页简单的AD转换电路设计(六)

TLC0832输出的数字信号量先是以MSB为首的数据流,接着就是以LSB为首的数据流,这两个数据流完全一样,只是数据流的读取方式不一样。MSB为首的8位数据流是先将转换后的8位数据的高位发给51芯片,而LSB为首的8位数据流是先将低位发给51芯片。将MSB为首的8位数据读完后,对于LSB那些数据可以不保存,但是要用时钟将它们一一读完。这些数据流都是在输入时钟的下降沿开始读的,每个下降沿就会将一个数据位输入到51中。第49页/共70页简单的AD转换电路设计(七)对于DI控制信息的时序实现如下:

CS=0;//选通

CLK=0;DI=1;

//发送起始位

CLK=1;CLK=0;DI=1;//置SGL为高

CLK=1;CLK=0;DI=0;//置ODD为低,选择的是CH0通道。(SGL已经置高。)

CLK=1;

读数字输出量的时序与此类似,不过注意的是,读是由下降沿触发。第50页/共70页简单的AD转换电路设计(八)AD转换的验证方法:将从TLC0832中读出的二进制数通过程序转化为模拟量,然后显示在数码管或LCD等显示设备上。注意:在编写读写程序时,一定要严格按照资料中给出的时序。第51页/共70页温度传感器的设计(一)用DS18B20器件可以对温度进行测量。它将测量的温度自动转换为数字信号,通过一根线传输到51芯片中,可以通过简单的编程实现9位的温度读书。第52页/共70页温度传感器的设计(二)温度传感器的温度显示:将读到的二进制数据转换成十进制,然后显示在数码管或LCD等显示设备上。具体的编程应用,可以看所给的关于DS18B20的资料。注意:DS18B20结构简单,只有三个引脚(VCC,GND和一根数据传输线),但是编程时一定要控制好时序和设计好延时。第53页/共70页第54页/共70页第55页/共70页IIC电路的设计(一)IIC(Inter-IntergratedCircuitBus)总线是Philips公司推出的一种二线制总线,它现在已经变作为一种标准的总线系统广泛应用于电子行业中。它只需要通过一个简单双向的由两根线组成的总线就可以完成电路的直接通信。第56页/共70页IIC信号线是:SCL(serialclockline)与SDA(serialdataline)。SCL被用来同步设备之间的数据传送,也就是时钟,它控制着SDA的传输;SDA主要用来传送由总线控制器(51芯片)发送给从设备的控制字、地址和主设备与从设备间传送的数据。此外WP用于写保护。第57页/共70页第58页

温馨提示

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

评论

0/150

提交评论