(1)动态存储器RAM6116/2128 6116/2128是2KB×8位全静态RAM,其最大存取时间为150ns,两条控制线简化了译码并解决了总线争用问题。RAM6116引脚排列如图9-2所示。
1)RAM6116/2128引脚功能。RAM6116/2128的各引脚功能见表9-9,操作方式见表9-10。
图9-2 RAM6116引脚排列图
表9-9 RAM6116/2128引脚功能
表9-10 6116/2128操作方式表
2)MCS—51单片机与6116/2128的接口方法。图9-3给出了8031与6116/2128的接口逻辑图。
图9-3 8031与6116/2128的接口
(2)可擦可编程只读存储器EPROM2716 Intel2716是2KB×8的EPROM。采用单一5V电源供电,静止的等待工作模式,存取时间为350ns。其引脚排列如图9-4所示。
1)2716引脚功能。2716的各引脚功能见表9-11。2716有5种操作方式,表9-12给出了它们的5种组合。
2)MCS—51单片机与2716的接口方法。图9-5给出了8031与2716EPROM的接口电路。
(3)电可擦可编程只读存储器EEPROM2816 EEPROM近来被广泛使用,其主要优点是能在应用系统中进行在线改写,并能在断电情况下保存数据。
图9-4 2716引脚排列
1)EEPROM2816。2816是一个2KB×8的EEPROM,对2816的写入要通过在端加上一个21V的脉冲来完成,而2816A则要5V的脉冲就可以完成。2816A的写入数据类似于静态RAM的写入数据。2816A使用了一个两线和控制结构,以消除争用总线的情况。2816A引脚排列如图9-6所示。
2)MCS—51单片机与2816A的接口方法。8031与2816A的接口如图9-7所示。图中线由和P相“与”后提供,无论是有效还是有效都能使2816的输出有效,这种连接方法是把EEPROM既作为程序存储器,也作为数据存储器。
表9-11 2716引脚功能
表9-12 2716的操作方式表
注:1.读操作:2716有两种控制功能,只有在这两种控制功能都能在逻辑上符合要求,才能从输出点得到读出的
数据。
2.静止等待方式:2716有静止等待方式,功耗从525mW降到132mW。
3.编程方式:第一次使用或每当用紫外线对2716擦除之后,2716的各位均为“1”,编程就把“0”写入指定的位置。当VPP为25V,为高电平,给端加上50ms的脉冲信号后,就可以将地址线给定的单元写上
数据线提供的数据。
4.编程检验:用编程检验的方法来确认所进行的编程是否正确进行。当VPP为25V时,可以进行编程检验。
5.禁止编程:对多个并联的2716写入各种不同的数据也是很方便的。除了外,把并行连接的2716的各个相同的引脚连在一起。
6.擦除过程:把2716放在波长短于400nm的光照之下,就可以对2716进行擦除。
图9-5 8031与2716EPROM的接口
图9-6 2816A引脚排列图
2.MCS—51单片机并行接口
(1)MCS—51的中断系统及其控制
图9-7 8031与2816A的接口电路
1)中断系统的一般功能。中断系统也就是中断管理系统。一个计算机系统可以接受的中断申请总是不止一个,对于这些不止一个的中断源进行管理,就是中断系统的任务。这些任务一般包括:
①对中断申请的屏蔽或开放,也称为开中断或者关中断。
②中断的排队。
③中断的响应。
④中断的撤除。
2)MCS—51中断源及中断标志位。MCS—51的中断系统就是若干个特殊功能寄存器,即定时器控制寄存器TCON;中断允许寄存器IE;中断优先级寄存器IP;串行口控制寄存器SCON。其中TCON和SCON只有一部分位是用于中断控制。TCON中各控制位的分布如图9-8所示。TCON各控制位的含义见表9-13。
图9-8 8051的中断标志位和控制位
表9-13 TCON各控制位的功能及含义
控制位TR0和TR1控制定时器的起、停,与中断无关。TCON寄存器的地址为88H,其中各位都可位寻址,位地址为88H~8FH。图9-9为MCS—51的中断源及其中断标志示意图。
3)中断允许和中断允许寄存器IE。MCS—51中断的开放和关闭是由中断允许寄存器IE实现两级控制。其寄存器IE的位分布情况如图9-10所示。IE中各位的含义和作用见表9-14。
IE寄存器的单元地址是A8H,各控制位都可以位寻址,位地址为A8H~AFH。8051单片机在复位时,IE的各位均为0,所以CPU是处于关中断的状态。8051CPU在响应中断之后不会自动实现关中断。在这些情况下,注意要用指令来实现开中断或关中断,以便可以进行中断处理。
图9-9 8051的中断源
图9-10 中断允许寄存器IE各控制位
表9-14 IE中各位的功能及含义
4)两级优先和中断优先级寄存器IP。MCS—51的中断优先级只有两个,即任何一个中断源都可以规定为高级中断或低级中断,从而实现两级中断嵌套。
每个中断源的优先级别由中断优先级寄存器IP来管理。IP寄存器的单元地址为B8H,其中各控制位可以位寻址,可以通过位操作指令改变各中断源的中断优先级。图9-11为IP寄存器中各控制位的分布。其中各位的功能及含义见表9-15。
图9-11 中断优先级寄存器IP
表9-15 各位的功能及含义
MCS—51可以有五个中断源,按照优先级由高到低的顺序为:外部中断请求0,标志为IE0;定时器0溢出中断,标志为TF0;外部中断请求1,标志为IE1;定时器1溢出中断,标志为TF1;串行口中断,标志为RI或TI。
5)MCS—51的中断响应。中断响应的条件和一般中断系统类似,有以下三条:
①必须没有同级或更高级的中断正在响应。
②必须当现在正在执行的指令执行完毕以后,才能响应中断。
③若正在执行的指令是RETI或者是任何访问IE或IP的指令,则必须在另外执行一条指令之后才可以响应中断。
若满足响应条件,CPU将完成两件工作:其一是把中断点的地址推入堆栈;其二是根据中断的不同来源,把程序的执行转到相应的中断服务程序的入口。对于8051系列共有五个入口,见表9-16。
表9-16 8051的中断服务程序入口
6)中断请求的撤除。对于定时器T0或T1的中断请求标志TF0和TF1,在响应中断后,中断系统通过硬件可使标志位自动复0。但是外部中断有两种触发方法:电平方式和边沿方式,对于边沿方式来说,消除了IE0或IE1以后必须再来一个边沿信号,才可能使标志位重新置位。对于电平型触发则不同,若仅是消除了IE0或IE1,而加在或上的低电平不撤消,在下一个机器周期CPU检测外中断申请时会发现又有低电平信号加在外中断输入上,又会使IE0或IE1置位,从而产生错误的结果。由于MCS—51的中断系统在中断响应后没有信号输出通知外设结束中断申请,因此,必须由用户自己来处理这个问题。
假如申请中断的低电平信号是由图9-12中的D触发器产生的,D触发器的作用是锁存外部中断申请以便CPU检测。为此,可利用D触发器的直接置1端SD,使它受单片机的一个信号输出的控制,这个信号平时为1,但在响应中断之后应变为0,从而使D触发器置1而撤消中断申请。只需在中断服务子程序中加上两条指令:
ANL P1,#OFEH
ORLP1,#01H即P1口的P1.0引脚平时输出为1,在中断服务程序中送出一个负脉冲,用来使D触发器置1。
(2)MCS—51的外部中断源扩展 MCS—51单片机只有两个外部中断输入端,两个相应的中断服务程序的入口(0003H和0013H)。为了能服务于多个外设,就要设法扩展。
图9-12 电平型外部中断请求的撤除
1)借用定时/计数器溢出中断作为外部中断。若是两个内部定时/计数器溢出中断没有使用或者有一个没有使用,可借用来作为外部中断,扩展一个(或两个)外中断源。具体方法如下:(www.xing528.com)
①置定时/计数器为工作方式2,即8位的自动装载方式。
②定时/计数器的高8位和低8位都预置为0FFH。
③将定时/计数器的计数输入端(T0,T1)作为扩展的外部中断输入。
④在相应的中断服务程序入口开始处存放为外中断服务的中断服务程序。
2)用8259可编程中断控制器扩展中断源。采用可编程中断控制器既可以扩展中断源,又可以同时解决中断源的优先排队。8259是Intel公司为8080/8085和8086/8088系列微型计算机开发的中断控制器,但也可以用在MCS—51系统。一片8259中断控制器可以扩展和管理八个中断源,并可以有八级优先中断。八个中断源中有一个或一个以上提出中断申请,8259就会向CPU发出请求,还能确定哪个是最高级中断申请,并把这个最高级中断服务程序入口地址送给CPU。它的另一个特点是中断入口地址可以由用户来设定,并安排在存储器的任何一个部位。
①8259的引脚功能。8259的引脚功能参见附录B。
②8259和MCS—51的接口。由于8259与MCS—51系列芯片的特性并不完全兼容,在它们接口的时候必须作一些处理。一是8259需要一个中断应答信号,它在发出请求以后要求CPU连续送出三次低电平INTA信号,以控制调用指令机器码的发送。但MCS—51芯片不会自动发送信号。为解决这个问题可在中断服务程序中连续三次使用MOVX指令,利用MOVX指令时序中的信号并与8259的INT信号相结合(在此期间INT一直有效),就可得到所需的信号。另一个问题是MCS—51不能直接使用8259送来的CALL指令,亦即两者CALL指令的机器码不兼容。但CALL指令中所包含的中断入口地址还是可以利用的。在中断服务程序中对于先读入的CALL机器码可不必保留,而将陆续收到的两字节中断入口地址存入DPTR寄存器,再用转移指令跳至中断服务程序的入口。通过以上的处理,8259就可以和MCS—51芯片接口。图9-13是8259与8031的接口连接图。
接口程序应包括初始化程序、中断服务程序以及为各个中断源服务的子程序。初始化程序包括对MCS—51中断系统的初始化以及对8259的初始化。中断服务程序主要解决如何从8259读入中断入口地址并转去中断服务,最后结束中断。
设8259为全嵌套方式,只需送入ICW1和ICW2。8259的端口地址为FFH和FEH。中断入口地址间隔为4字节,电平触发,中断输入IRO的中断入口地址为2100H。由此可以编写接口程序如下:
初始化程序:
图9-138259和8031的接口连接
CPU响应8259的中断申请后,转入0003H中断入口,存放中断服务程序:
此外,对于每个中断输入IR0—IR7,应该各有一段具体为它们服务的中断服务子程序,但按照以上方法编写接口程序时,这些程序都不写成子程序的形式,而只是一些程序段。并且,每个程序段都要以LJMPCONT来结束,以便返回到8259中断程序中的断点。另外,在8259初始化程序中,规定了对各IR服务程序入口地址只间隔4字节,这点空间不足以放下一段实际的服务程序。故各IR服务程序的形式如下:
用以上方法可以扩展八级中断。
(3)MCS—51并行I/O口的扩展 MCS—51并行I/O口扩展的基本方法就是利用一些接口芯片。这些接口芯片除了有较强的驱动能力之外,还能扩展I/O的数目,有的还能提供必要的联络信号。这些接口芯片则是作为RAM单元来与MCS—51系统相连接的。
1)用8255A可编程并行接口芯片扩展I/O口。8255A是用于IntelMCS—80/85系列的通用可编程并行输入/输出接口芯片。它也可以和MCS—51单片机系统相连,以扩展MCS—51系统的I/O口。8255A与单片机相连时是作为外部RAM的单元来处理的。
①8255A的引脚功能。8255A有三种工作方式:方式0(基本输入输出方式),方式1(带通输入输出方式),方式2(双向选通输入输出,仅适合于A口)。8255A使用单一的5V电源,引脚排列如图9-14所示,引脚功能说明见表9-17。
②8255A和MCS—51系统的连接。图9-15是8031通过8255A和微型打印机接口的连接图,数据传送采用查询方式。设8255A的A口地址为70H,B口地址为71H,C口地址为72H,控制寄存器的地址为73H。
图9-14 引脚排列图
表9-17 8255A引脚功能表
图9-15 8255A和8031及打印机接口
微型打印机接到端口A,8255A设置为工作方式0,选用端口C的某几位提供或接收控制信息或状态信息,从而构成查询式的接口连接。用C口的PC0提供打印机所需的选通信号,在编程时要在PC0上模拟产生一个负脉冲以驱动打印机开始工作。从PC7接收并查询打印机送来的BUSY信号。由此可确定8255A的工作方式为:
A口:方式0,输出,D6D5=00,D4=0。
B口:无关,设D2D1为00。
C口:高4位(PC7—PC4)为输入,低4位(PC3—PC0)为输出,D3=1,D0=0。
由此可以确定8255A的工作方式控制字为10001000,即88H。输出数据从内部RAM的20H单元开始存放,共输出500个数据,有关程序如下:
2)用8155通用接口芯片扩展I/O口。在MCS—51系统中经常使用的一种并行接口芯片是8155通用接口芯片。它不但有三个I/O端口(A口,B口为8位,C口为6位),还带有一个2KB(256×8)的静态随机存储器和一个14位定时/计数器。
①8155的引脚功能。8155的引脚功能见附录B。
②8155和MCS—51单片机的连接。图9-16是8155和8031的连接图,其中用或非电路产生一个信号。8155各通道等端口占用地址00H~07H,当AD7~AD3=00000时,或非门输出1,使IO/M=1,端口工作。否则,选择8155内部RAM。
图9-16 8155和8031的连接
若采用16位外部RAM地址对8155寻址,用P2.7接到,则P2.7=0接存储器,P2.7=1接8155的I/O口。为了反映16位地址,则A15=0时接到RAM,A15=1接到通道口。此时,对8155的操作要用16位地址的传送指令:
MOVX A,@DPTR
MOVX @DPTR,A
8155的端,在使用16位地址的情况下,可以接到译码器的输出,以减少8155所占用的地址单元数或者进行多片8155的片选。
不同的硬件连接会对数据传送时的编程发生影响。若用P2.7控制,使用8位地址。从8155的RAM的41H单元取数据从A口输出,则需用这些指令:
CLR P2.7 ;使,对RAM操作
MOV R0,#41H ;送RAM单元地址
MOVX A,@R0 ;取出40H内容
SETB P2.7 ;使,对I/O口操作
MOVX @R0,A ;从A口输出当使,改为对I/O口操作后,仍用41H地址。实际上,这时有用的仅是其中AD2~AD0三位。由于AD2~AD0=001,故选中端口A,完成从A口输出。
若用P2.7控制,采用16位地址。则RAM40H单元应写为0040H,A口的地址可用8001H。则完成以上数据传送任务需用指令:
3.MCS—51单片机串行接口
8251是一种通用的同步/异步全双工接收/发送器,可由CPU编程,定义为常用的任何一种串行数据传输方式。当8251工作于同步方式时,可传送5~8位的字符,由内部或外部字符同步,可自动插入同步字符,波特率为0~64kBd;异步可传送5~8位的字符,波特率为0~19.2kBd;时钟频率可为波特率的1、16、64倍。8251可产生中止符,可产生1、1.5或2个停止位,具有奇偶校验,重迭检测和帧检验,可检查假启动,能自动检测和处理中止符。8251使用单一的5V电源,其引脚排列如图9-17所示。
图9-17 8251引脚排列图
(1)通用可编程通信接口8251引脚功能 通用可编程通信接口8251引脚功能见表9-18。
表9-18 8251引脚功能
(2)8251与MCS—51的接口方法 8031和8251的接口逻辑图如图9-18所示。
图9-18 8031和8251的接口逻辑
4.MCS—51单片机D-A及A-D转换器接口
(1)DAC0832数模转换器
1)DAC0832数模转换器简介。DAC0832是DAC0800系列产品中的一种,其他产品有DAC0830,DAC0831等,它们是8位模拟转换器,可互相代换,其芯片引脚功能参见附录B。
DAC0832有两个电流输出端:Iout1为DAC电流输出1,Iout2为DAC电流输出2,Iout2为一常数与Iout1之差,即Iout1+Iout2=常数,实际使用时,总是将电流转换为电压来使用,即Iout1和Iout2加到一个运算放大器的输入。
2)DAC0832与MCS—51单片机的连接。DAC0832转换器可以有三种工作方式,即直通方式,单缓冲方式和双缓冲方式。图9-19是8031和两片DAC0832转换器的接口连接。
设两片0832的输入寄存器地址分别为20H和21H,两个DAC寄存器都用地址02H,则将digit和digit+1两个单元的8位数据同时转换成模拟量的程序段为:
图9-19 8031与两片DAC0832的接口
如果外部RAM扩展的单元数大于256,则所用传送指令要改为MOVX@DPTR,A,0832的各寄存器也要采用16位地址。
(2)ADC0809模-数转换器
1)ADC0809模-数转换器简介。ADC0809是CMOS工艺的逐次比较型8位A-D转换器,目前在8位微机系统中广泛使用,其芯片引脚功能见附录B。
2)ADC0809和8031的连接。0809在和8031连接时,应该分配0809一个外部RAM单元的地址,但0809没有片选输入信号,可以用地址译码器来选通控制产生START信号和OE信号,前者用来启动A-D转换,后者用来把转换结果读入CPU。图9-20是ADC0809与8031的接口连接图,数据采集采用中断方式。
根据图9-20,可以写出对8位模拟输入依次进行A-D转换并把结果依次存入存储器的程序,设数据区的首地址为30H,ADC0809的地址定为0F0H,ADDA-ADDC接到P0.0~P0.2,模拟量地址为00~07H,参考程序如下:
图9-20 8031和ADC0809的接口电路
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。