《《单片机串行扩展》PPT课件.ppt》由会员分享,可在线阅读,更多相关《《单片机串行扩展》PPT课件.ppt(53页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、 第六部分单片机的串行扩展第六部分单片机的串行扩展 系统扩展是指单片机内部各功能部件不能满足应用系统扩展是指单片机内部各功能部件不能满足应用系统要求时,在片外连接相应的外围新片以满足应系统要求时,在片外连接相应的外围新片以满足应用系统要求。用系统要求。80C51系列单片机有很强的外部扩展系列单片机有很强的外部扩展能力,外围扩展电路芯片大多是一些常规芯片。扩能力,外围扩展电路芯片大多是一些常规芯片。扩展电路及扩展方法较典型、规范。展电路及扩展方法较典型、规范。80C51系统扩展有系统扩展有程序存储器(程序存储器(ROM)扩展,数)扩展,数据存储器(据存储器(RAM)扩展,)扩展,I/O口扩展,中
2、断系统扩口扩展,中断系统扩展以及其他特殊功能扩展。展以及其他特殊功能扩展。单片机系统扩展方法有单片机系统扩展方法有并行扩展和串行扩展法并行扩展和串行扩展法。并行扩展并行扩展是指利用单片机的三总线(是指利用单片机的三总线(AB、DB、CB)进行的系统扩展(见第五部分);进行的系统扩展(见第五部分);串行扩展串行扩展是指利用是指利用SPI三总线、三总线、IC双总线、单总线双总线、单总线 等等进行的串行系统扩展。进行的串行系统扩展。6.1 概述概述缺点:速度慢,在需要高速的场合要用并行扩展。缺点:速度慢,在需要高速的场合要用并行扩展。优点:串行接口器件体积小;与单片机接口的优点:串行接口器件体积小;
3、与单片机接口的I/O口口线少。线少。串行扩展的特点:串行扩展的特点:在器件之间采用在器件之间采用两根信号线(两根信号线(SDL,SCL)进行信息传送并允进行信息传送并允许若干兼容器件共享的数据总线,称为许若干兼容器件共享的数据总线,称为IC总线总线。SDA传输双向的数据;传输双向的数据;SCL线用来传输时钟信号,用来同线用来传输时钟信号,用来同步串行数据线上的数据。步串行数据线上的数据。一、一、IC公用双总线结构(飞利浦公司)公用双总线结构(飞利浦公司)挂接在挂接在IC总线的器件,根据功能可分为:总线的器件,根据功能可分为:主控器件和从控主控器件和从控器件。器件。主控器件主控器件:控制总线存取
4、,产生串行时钟信号,并产生启动:控制总线存取,产生串行时钟信号,并产生启动传送及结束传送的器件,传送及结束传送的器件,总线必须有一个主控器件。总线必须有一个主控器件。从控器件从控器件:在总线上被主控器件寻址的器件,它们根据主控:在总线上被主控器件寻址的器件,它们根据主控器件的命令来接收和发送数据。器件的命令来接收和发送数据。6.2 串行扩展概述串行扩展概述VCCSDASCLI2C芯片1#I2C芯片N#多个器件之间连接使数据线多个器件之间连接使数据线SDA为为“与与”的关系,的关系,即只要其中一个器件输出即只要其中一个器件输出0,即可使,即可使SDA数据线为数据线为0。在有多个器件组成的在有多个
5、器件组成的在有多个器件组成的在有多个器件组成的I I2 2C C总线系统中,可能存在多总线系统中,可能存在多总线系统中,可能存在多总线系统中,可能存在多个主器件。因此,个主器件。因此,个主器件。因此,个主器件。因此,I2C总线系统是一个允许多主的总线系统是一个允许多主的系统。系统。I I2 2C C数据传输协议:数据传输协议:只有当总线不忙时(只有当总线不忙时(SDASDA与与SCLSCL均为高电平)均为高电平),数据传输才开始;数据传输期间,数据传输才开始;数据传输期间,无论何时串行时钟线为高,串行数据线必须保持无论何时串行时钟线为高,串行数据线必须保持稳定;稳定;当串行时钟线为高时,串行数
6、据线将认为当串行时钟线为高时,串行数据线将认为此时传送的开始或停止。此时传送的开始或停止。I2C总线定义的总线条件有:总线定义的总线条件有:1.总线不忙:总线不忙:2.开始传输数据:开始传输数据:3.停止传输数据:停止传输数据:SCL和和SDA保持高电平。保持高电平。在在SCL1时,时,SDA发生一个高到底的跳变。发生一个高到底的跳变。在在SCL1时,时,SDA发生一个低到高的跳变。发生一个低到高的跳变。4.数据有效:数据有效:SCL保持高电平期间,当保持高电平期间,当SDA稳定后,串行数稳定后,串行数据线的状态表示数据线是有效的。据线的状态表示数据线是有效的。5.数据变化:数据变化:SCL保
7、持低电平期间,保持低电平期间,SDA数据线的状态才可数据线的状态才可以发生变化。以发生变化。在在I2C总线上传输的数据有两种方式:主发送从接收、从发送总线上传输的数据有两种方式:主发送从接收、从发送主接收。主接收。它们是由起始信号后的第一个字节的最低位决定。它们是由起始信号后的第一个字节的最低位决定。1表示主器件读数据,表示主器件读数据,0表示主器件写数据)。表示主器件写数据)。主发送从接收(主器件为写数据):主发送从接收(主器件为写数据):主器件产生起始信号后,主器件产生起始信号后,发送的第一个字节为从地址(该地发送的第一个字节为从地址(该地址的前址的前7位字节为从器件的片选信号,最低位决定
8、数据的传位字节为从器件的片选信号,最低位决定数据的传输方向位)此时该位是输方向位)此时该位是0。从器件每接收一个数据字节后,都返回一个应答信号(ASK=0)从发送主接收(主器件为读数据):从发送主接收(主器件为读数据):从发送主接收(主器件为读数据):从发送主接收(主器件为读数据):从器件在接收到主器件发送的从地址和为从器件在接收到主器件发送的从地址和为1的方向位后,返的方向位后,返回一个应答信号(回一个应答信号(ASK=0),接着从器件发送数据到主器接着从器件发送数据到主器件,主器件每接收一个数据字节后,都返回一个应答信号件,主器件每接收一个数据字节后,都返回一个应答信号(ASK=0ASK=
9、0):在接收从器件最后一个字节后,在接收从器件最后一个字节后,主器件发送一个非应答信主器件发送一个非应答信号(号(ASK=1),终止从器件继续发送。从器件发送的数据,终止从器件继续发送。从器件发送的数据可以是单字节,也可以是一串数据。可以是单字节,也可以是一串数据。主控器的主控器的时钟输出时钟输出S应答应答起始信号起始信号用于应答信号用于应答信号的时钟脉冲的时钟脉冲1289主发送器的主发送器的数据输出数据输出从发送器的从发送器的数据输出数据输出非应答非应答(1)A0、A1、A2:片选或页面选择地址输入。:片选或页面选择地址输入。1、二线制、二线制I2CE2PROMAT24CXX系列的扩展系列的
10、扩展AT24C01(A)/02/04/08/16E2ROM存储器都是存储器都是8个引脚。个引脚。存储容量为存储容量为1K/2K/4K/8K/16Kbits。(2)GND:地线。:地线。6.3单片机的外部串行扩展单片机的外部串行扩展 一、一、串行扩展串行扩展E2PROMAT24C01(A)/02/04/08/16的封装形式的封装形式AT24C04与单片机的扩展与单片机的扩展模拟实现模拟实现I2C接口接口(3)SDA:串行数据(:串行数据(/地址)地址)I/O端,用于串行数据的端,用于串行数据的输入输入/输出。输出。(4)SCL:串行时钟输入端,用于输入:串行时钟输入端,用于输入/输出数据的同步。
11、输出数据的同步。(5)WP:写保护,用于硬件数据的保护。:写保护,用于硬件数据的保护。(6)VCC:电源电压,接:电源电压,接+5V。AT24CXXSDA和和SCL时钟关系时钟关系AT24CXX启动和停止信号启动和停止信号应答信号应答信号AT24CXX立即地址读立即地址读其中:其中:1010为为EEPROM的编码;的编码;XXX为为AT24CXX的地址编号。的地址编号。在在I2C总线上最多可以连接总线上最多可以连接8个个AT24C01/02,4个个AT24C04,2个个AT24C08,1个个AT24C16。AT24CXX立即地址读立即地址读AT24CXX随机读随机读AT24CXX顺序读顺序读A
12、T24C01(A)/02/04/08/16字节写字节写AT24C01(A)/02/04/08/16页面写页面写START:;开始位开始位;传入参数:传入参数:无无;返回值:无返回值:无SETBSDASETBSCLNOPNOPCLR SDANOPNOPNOPNOPCLR SCLRETSTOP:;停止位停止位;传入参数:传入参数:无无;返回值:无返回值:无CLR SDANOPNOPSETBSCLNOPNOPNOPNOPSETBSDANOPRETSHIN:;从从AT24Cxx移入数据到移入数据到MCU;传入参数:传入参数:无无;返回值:返回值:R7-移入的数据移入的数据USING0CLRAMOVR6
13、,ASHIN_LP:SETBSCLMOVA,R7ADDA,ACCMOVR7,AMOVC,SDACLRARLCAORLAR7,ACLRSCLINCR6CJNER6,#08H,SHIN_LP;共共8位,判断是否完成位,判断是否完成RETSHOUT:;从从MCU移出数据到移出数据到AT24Cxx;传入参数:传入参数:R7-要移出的数据要移出的数据;返回值:返回值:C-AT24Cxx的应答位的应答位USING0CLRAMOVR6,ASHOUT_LP:MOVA,R7;循环移入循环移入8个位个位RLCAMOVSDA,CNOPSETBSCLNOPNOPCLRSCLMOVA,R7ADDA,ACCMOVR7,A
14、INCR6CJNER6,#08H,SHOUT_LP;共共8位,判断是否完成位,判断是否完成SETBSDA;读取应答读取应答NOPNOPSETBSCLNOPNOPNOPMOVC,SDA;保存应答位到保存应答位到CCLRSCLRETREAD_RANDOM:;在指定地址读取在指定地址读取;传入参数:传入参数:R7-地址地址;返回值:返回值:R7-读入的数据读入的数据USING0MOVR5,AR7;暂存地址暂存地址LCALL STARTMOVR7,#OP_WRITE;写入器件地址和写入命令写入器件地址和写入命令LCALL SHOUTMOVR7,AR5;写入地址写入地址LCALL SHOUTLCALL
15、READ_CURRENT;在当前地址读取在当前地址读取RETREAD_CURRENT:;在当前地址读取在当前地址读取;传入参数:无传入参数:无;返回值:返回值:R7-读出的数据读出的数据USING0LCALL STARTMOVR7,#OP_READ;写入器件地址和读取命令写入器件地址和读取命令LCALL SHOUTLCALL SHIN;读取数据,保存在读取数据,保存在R7LCALL STOPRETWRITE_BYTE:;在指定地址写入数据在指定地址写入数据;传入参数:传入参数:R7-写入数据的地址写入数据的地址;传入参数:传入参数:R5-要写入的数据要写入的数据;返回值:无返回值:无USING
16、0MOVR4,AR7LCALLSTARTMOVR7,#OP_WRITE;写入器件地址和写命令写入器件地址和写命令LCALLSHOUTMOVR7,AR4;地址地址LCALLSHOUTMOVR7,AR5;数据数据LCALLSHOUTLCALLSTOPMOVR7,#10;写入周期写入周期,延时延时10msLCALLDELAYMS2、利用、利用SPI扩展扩展E2PROMSPI是三线总线结构的一个同步外围接口,允许单片机与是三线总线结构的一个同步外围接口,允许单片机与各种外围设备以串行方式进行通讯。特点:各种外围设备以串行方式进行通讯。特点:l主从机工作方式;主从机工作方式;l可程控的主机位传送频率、时
17、钟极性和相位;可程控的主机位传送频率、时钟极性和相位;l发送完成中断标志;发送完成中断标志;l写冲突保护标志。写冲突保护标志。l全双工、三线同步传送;全双工、三线同步传送;在在SPI设置为主机方式时,设置为主机方式时,MISO是主机的数据输是主机的数据输入线,入线,MOSI是主机的数据输出线;设置为从机时,是主机的数据输出线;设置为从机时,MISO是从机的数据输出线,是从机的数据输出线,MOSI是从机的数据是从机的数据输入线。输入线。(1)、)、串行数据线(串行数据线(MISO,MOSI)主机输入主机输入/从机输出数据线从机输出数据线MISO和主机输出和主机输出/从机输从机输入数据线入数据线M
18、OSI,用于串行数据的发送和接收。,用于串行数据的发送和接收。数数据发送时,先传高位,后传低位。据发送时,先传高位,后传低位。(2)、串行时钟线)、串行时钟线SCLK 串行时钟线用于同步从串行时钟线用于同步从MISO和和MOSI引脚输入和输引脚输入和输出的数据的传输。出的数据的传输。在在SPI设置为主机方式时,设置为主机方式时,SCLK为输出;设置为从机方式时,为输出;设置为从机方式时,SCLK为输入为输入。(3)、从机选择)、从机选择/SS在从机方式时,在从机方式时,/SS脚是输入端,用于使能脚是输入端,用于使能SPI从机从机进行数据传送;进行数据传送;在主机方式时在主机方式时/SS一般为高
19、电平。一般为高电平。高位数据低位数据1)串行)串行E2PROM的特点及引脚的特点及引脚 93C46是是6416位位串行存取的电擦除可编程只读存串行存取的电擦除可编程只读存储器。特点:储器。特点:在线改写数据和自动擦除功能;调电在线改写数据和自动擦除功能;调电数据不丢失;输入、输出与数据不丢失;输入、输出与TTL兼容;片内可产生兼容;片内可产生擦除和写入时的电压;片内有控制和定时发生器;擦除和写入时的电压;片内有控制和定时发生器;具有整体编程允许和截至功能。具有整体编程允许和截至功能。CS:片选信号。高电平有效。用片选信号。高电平有效。用CS下降沿启动片内下降沿启动片内 定时器,开始读写操作。启
20、动后,与定时器,开始读写操作。启动后,与CS信号上电平无信号上电平无关。关。CLK:串行数据时钟信号输入端。频率位:串行数据时钟信号输入端。频率位0250KHZ。DI:串行数据输入端。串行数据输入端。DO:串行数据输出端。擦除时,串行数据输出端。擦除时,DO引脚可作为擦引脚可作为擦写状态指示,即忙闲信号。写状态指示,即忙闲信号。ORG:结构端。当接到:结构端。当接到VCC或悬空时,芯片为或悬空时,芯片为16位位存储器结构;接到存储器结构;接到VSS时,选择时,选择8位存储器结构。在位存储器结构。在时钟频率低于时钟频率低于1MHZ,ORG悬空。悬空。2)指令系统:读指令,写指令,擦除指令,擦除整
21、)指令系统:读指令,写指令,擦除指令,擦除整片存储器指令,写整个存储器指令,擦写允许指令片存储器指令,写整个存储器指令,擦写允许指令 读指令时序读指令时序写指令时序写指令时序擦除指令时序擦除指令时序擦除整片指令时序擦除整片指令时序3)与单片机的接口)与单片机的接口取反目的是双向传输数据片选1,读入数据;,读入数据;0操作码、地址、数据进入操作码、地址、数据进入C46二、二、串行扩展串行扩展I/O口口 1、利用利用SPI扩展扩展I/O口口(1)扩展并行输出口扩展并行输出口(2)扩展并行输入口扩展并行输入口 2、利用、利用I2C扩展扩展I/O口口(1)PCF8574是一种是一种CMOS电路,具有电
22、路,具有I2C接口和接口和8位准双向口。它在位准双向口。它在I2C总线中仅作从器件。具有低的总线中仅作从器件。具有低的电流损耗,具有中断逻辑线。电流损耗,具有中断逻辑线。3只硬件地址引脚最多只硬件地址引脚最多挂接挂接8个个PCF8574。SDA:串行数据线,双向串行数据线,双向SCL:串行时钟线,输入串行时钟线,输入P7P0:8位准双向口。上电复位为高位准双向口。上电复位为高电平。在做输入时,应置高电平。电平。在做输入时,应置高电平。A0A2:地址输入线地址输入线/INT:中断输出,低电平有效中断输出,低电平有效(2)PCF8574的寻址方式及操作的寻址方式及操作控制字节和器件寻址 读,写读,
23、写应答应答开始开始信号信号控制控制字节字节选中某一片选中某一片(a)为PCF8574器件控制字节,(b)为PCF8474A控制字节读操作读操作 写操作写操作(3)PCF8574应用和编程应用和编程 作扩展作扩展8位输入口位输入口 A0,A1,A2接地了接地了扩展扩展8位输出口位输出口 输出显输出显示示A0,A1,A2接地了接地了作扩展作扩展4位输入和位输入和4位输出口。位输出口。中断中断悬空悬空输入开输入开关量关量输出显输出显示示 TLC549 TLC549是美国德州仪器公司生产的是美国德州仪器公司生产的8 8位串行位串行A/DA/D转换转换器芯片,通过器芯片,通过SPISPI接口与单片机连接
24、,从接口与单片机连接,从CLKCLK输入的输入的频率最高可达频率最高可达1.1MHz1.1MHz。1 1、8 8位串行位串行A/DA/D转换器转换器TLC549 TLC549 TLC549 TLC549具有具有4MHz4MHz的片内系统时钟,片内具有采样保的片内系统时钟,片内具有采样保持电路,持电路,A/DA/D转换时间最长转换时间最长17s17s,最高转换速率为,最高转换速率为4000040000次次/s/s。TLC549 TLC549的电源范围为的电源范围为+3V+3V +6V+6V,功耗小于,功耗小于15Mw,15Mw,总失调误差最大为总失调误差最大为0.5LSB0.5LSB,适用于电池
25、供电的便,适用于电池供电的便携式仪表及低成本高性能的系统中。携式仪表及低成本高性能的系统中。三、三、串行扩展串行扩展A/D、D/A等等 REF+REF+:正基准电压输入端,:正基准电压输入端,2.5VREF+VCC+0.1V2.5VREF+VCC+0.1V。(1)(1)、引脚功能、引脚功能 REF-REF-:负基准电压输入端,:负基准电压输入端,-0.1VREF-2.5V-0.1VREF-2.5V,且要求,且要求REF+REF+REF-1VREF-1V。在要求不高时,也可将在要求不高时,也可将REF-REF-接地,接地,REF+REF+接接VCCVCC。AINAIN:模模拟拟信信号号输输入入端
26、端,0AINVCC0AINVCC,当当AINREF+AINREF+时时,转转换换结结果果为为全全1(FFH)1(FFH),AINREF-AINREF-时时,转转换换结结果果为为全全“”(00H00H)。)。/CS/CS:芯片选择输入端,低电平有效。:芯片选择输入端,低电平有效。DODO:数据串行输出端,输出时高位在前,低位在后。:数据串行输出端,输出时高位在前,低位在后。CLKCLK:外部时钟输入端,最高频率可达:外部时钟输入端,最高频率可达1.1MHz1.1MHz。(2)(2)、TLC549TLC549的时序的时序 当当/CS/CS变为低电平时,变为低电平时,TLC549TLC549芯片被选
27、中,同时前次转换结果的芯片被选中,同时前次转换结果的最高有效位最高有效位MSB(A7)MSB(A7)自自DODO端输出;端输出;接着自接着自CLKCLK端输入个外部时钟信号,前个端输入个外部时钟信号,前个CLKCLK信号是配合信号是配合TLC549TLC549输出上次转换结果的输出上次转换结果的A6-A0 A6-A0 位,并为本次转换做准备:位,并为本次转换做准备:在第个在第个CLKCLK信号由高至低的跳变之后,片内采样信号由高至低的跳变之后,片内采样/保持电路对保持电路对输入模拟量采样开始,第个输入模拟量采样开始,第个CLKCLK信号的下降沿使片内采样信号的下降沿使片内采样/保保持电路进入保
28、持状态并启动持电路进入保持状态并启动A/DA/D开始转换。开始转换。转换时间为转换时间为3636个系统时钟周期,最大为个系统时钟周期,最大为17uS17uS。A/DA/D转换完成前转换完成前的这段时间内,的这段时间内,TLC549TLC549的控制逻辑要求:或者的控制逻辑要求:或者/CS/CS保持高电平,保持高电平,或者或者CLKCLK时钟端保持时钟端保持3636个系统时钟周期的低电平。个系统时钟周期的低电平。由此可见,在由此可见,在TLC549TLC549的的CLKCLK端输入个外部时钟信号期间需要端输入个外部时钟信号期间需要完成以下工作:读入前次完成以下工作:读入前次A/DA/D转换结果;
29、对本次转换的输入模转换结果;对本次转换的输入模拟信号采样并保持;启动本次拟信号采样并保持;启动本次A/DA/D转换。转换。利用利用TLC549TLC549转换器设计一个简易数字电压表,用转换器设计一个简易数字电压表,用4 4位位LEDLED显显示器将被测电压显示出来。示器将被测电压显示出来。将将TLC549TLC549的的/CS/CS、CLKCLK、DODO接到单片机的三条接到单片机的三条I/OI/O口线,口线,REF+REF+、REF-REF-直接接到直接接到VccVcc、GNDGND,模拟输入,模拟输入AINAIN接电位器的中心抽头,接电位器的中心抽头,调节电位器即可改变被测输入电压值。调
30、节电位器即可改变被测输入电压值。sbitCLK=P11;/时钟时钟sbitDO=P12;/数据输出数据输出sbitCS=P10;/片选信号片选信号ucharTLC549_ADC(void)uchari,tmp;CS=1;CLK=0;CS=0;_nop_();_nop_();for(i=0;i8;i+)tmp=1;tmp|=DO;CLK=1;_nop_();CLK=0;CS=1;for(i=17;i!=0;i-)_nop_();return(tmp);CSBITP1.0CLOCKBITP1.1DOBITP1.2MEMEQU30HORG0050HSTAR:SETBCS;CSCLRCLOCK;CLO
31、CKMOVR5,#00H;#模数转换模数转换CLRCSNOP;参见参见datasheet的时序表的时序表NXT:MOVC,DOSETBCLOCKNOPRLCACLRCLOCKINCR5CJNER5,#8,NXTMOVR5,#00HSETBCSMOVMEM,A;转换结果放于转换结果放于MEM 1 1、TLC5615TLC5615的内部结构和引脚功能的内部结构和引脚功能 TLC5615 TLC5615 是是SPISPI接口的接口的1010位电压输出的位电压输出的D/AD/A转换器,转换器,通过通过3 3根串行总线就可以完成根串行总线就可以完成10 10 位数据的串行输入,位数据的串行输入,易于和工
32、业标准的微处理器或单片机接口,适用于易于和工业标准的微处理器或单片机接口,适用于电池供电的测量仪表、移动电话以及工业控制场合。电池供电的测量仪表、移动电话以及工业控制场合。其主要特点如下:其主要特点如下:(1 1)5V5V单电源工作;单电源工作;(2 2)3 3线串行接口;线串行接口;(3 3)DACDAC输出的最大电压为输出的最大电压为2 2倍基准输入电压;倍基准输入电压;(4 4)上电时内部自动复位,确保可以重复启动;)上电时内部自动复位,确保可以重复启动;(5 5)功耗低,最大功耗为)功耗低,最大功耗为1.75mW1.75mW。二、串行二、串行D/AD/A转换器转换器TLC5615TLC
33、5615 模拟地模拟地 串行二进制串行二进制数输入端数输入端 串行时钟输串行时钟输入端入端芯片选择芯片选择,低低有效有效 菊花链的串行数据输出端菊花链的串行数据输出端(用于多芯片的级联)(用于多芯片的级联)基准电压输入端基准电压输入端 DAC 模拟电压输出端模拟电压输出端 正电源电压端正电源电压端 2 2、TLC5615TLC5615的时序的时序 当当/CS/CS为为低低电电平平时时,在在每每一一个个SCLKSCLK时时钟钟的的上上升升沿沿从从DIN DIN 引引脚脚移移入入一一位位数数据据,高高位位在在前前,低低位位在在后后。经经1616个个时时钟钟后后,/CS/CS 的的上上升升沿沿将将1
34、616位位移移位位寄寄存存器器的的10 10 位位有有效效数数据据锁锁存存到到1010位位DACDAC寄寄存存器器,供供DACDAC电路进行转换。电路进行转换。#include#include#includetypedefunsignedcharuchar;typedefunsignedintuint;sbitCS=P37;/*DA片选信号片选信号*/sbitSCLK=P36;/*DA时钟信号时钟信号*/sbitDIN=P35;/*数字数据输入数字数据输入*/voiddelay(uintus);/*延时子函数延时子函数*/voiddac_5615(uintdata_in);voiddelay(
35、uintus)uchari;while(us-)for(i=0;i125;i+);/*函函数数名:名:dac_5615()功功能:写入能:写入DAC的的10bit输入数据输入数据*/voiddac_5615(uintdata_in)uchari;data_in=6;/*精度精度10位,所以左移位,所以左移6位位*/CS=0;SCLK=0;for(i=0;i12;i+)/*逐位传递逐位传递12次,由于次,由于10位传完需位传完需要传送要传送2位位0*/DIN=(bit)(data_in&0 x8000);SCLK=1;data_in=1;SCLK=0;CS=1;SCLK=0;_nop_();#/
36、*主程序主程序*/main()uinti;while(1)for(i=0;i0 x3ff;i+=4)dac_5615(i);delay(100);delay(100);6.4外部中断源的扩展外部中断源的扩展 在在80C51系列单片机中,一般只有两个外部中断请系列单片机中,一般只有两个外部中断请求的输入端求的输入端/INT0、/INT1。当某个系统需要扩展更当某个系统需要扩展更多个中断时,采用多个中断时,采用“OC门门”经过经过“线或线或”后,引入后,引入芯片本身的外部中断请求端,就可以方便的扩展多芯片本身的外部中断请求端,就可以方便的扩展多个外部中断。个外部中断。在中断服务程序中,在中断服务程
37、序中,由软件设置的顺序查询外部中由软件设置的顺序查询外部中断是哪一位是高电平,然后进入中断服务程序。断是哪一位是高电平,然后进入中断服务程序。查查询程序的流程图如下图所示。询程序的流程图如下图所示。中断源中断源1中断源中断源2中断源中断源3中断源中断源4共用一个共用一个中断源中断源高高低低扩展中断源扩展中断源1的优先级最高,的优先级最高,中断源中断源4的优先级低。的优先级低。PINT0:PUSHPSW;保护现场保护现场PUSHAJBP1.0,LOOP1;转向中断服务程序转向中断服务程序1JBP1.1,LOOP2;转向中断服务程序转向中断服务程序2JBP1.2,LOOP3;转向中断服务程序转向中断服务程序3JBP1.3,LOOP4;转向中断服务程序转向中断服务程序4INTEND:POPAPOPPSWRETILOOP1:中断服务程序中断服务程序1AJMPINTENDLOOP2:中断服务程序中断服务程序2AJMPINTENDLOOP3中断服务程序中断服务程序3AJMPINTENDLOOP4中断服务程序中断服务程序4AJMPINTEND
限制150内