串行通信及串行接口技术.pptx

上传人:知****量 文档编号:18309151 上传时间:2022-05-30 格式:PPTX 页数:62 大小:1.07MB
返回 下载 相关 举报
串行通信及串行接口技术.pptx_第1页
第1页 / 共62页
串行通信及串行接口技术.pptx_第2页
第2页 / 共62页
点击查看更多>>
资源描述

《串行通信及串行接口技术.pptx》由会员分享,可在线阅读,更多相关《串行通信及串行接口技术.pptx(62页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、1 发送 接收 D0 D1 D2 D3 D4 D5 D6 D7 控制 状态 计算机或外设 计算机 计算机 计算机 或外设 (a) 并行通信 (b) 串行通信 10101001 1.通信方式通信方式计算机与外界(计算机与计算机之间、计算机与外计算机与外界(计算机与计算机之间、计算机与外围设备之间)的信息交换称为通信。围设备之间)的信息交换称为通信。 并行通信并行通信 串行通信串行通信2数据位数据位:根据情况可取:根据情况可取5 5位、位、6 6位、位、7 7位或位或8 8位,低位在前高位在后。位,低位在前高位在后。2串行通信串行通信(1)分类(按数据格式分)分类(按数据格式分) 异步通信异步通信

2、 停止位停止位:通常:通常可取可取1 1位、位、1.51.5位或位或2 2位,用于位,用于向接收端表示向接收端表示一帧字符信息一帧字符信息已发送完毕,已发送完毕,也为发送下一也为发送下一帧字符作准备。帧字符作准备。3 同步通信同步通信 * 同步 字符 1 同步 字符 2 数据 1 数据 2 校验 字符 2 校验 字符 1 数据 n (b) 双同步字符帧结构 同步 字符 数据 1 数据 2 数据 3 (a) 单同步字符帧结构 数据 n 校验 字符 1 校验 字符 2 n 在同步通信中,同步字符可以采用统一标准字符,也可在同步通信中,同步字符可以采用统一标准字符,也可由用户约定。由用户约定。l 在

3、在单同步字符帧单同步字符帧结构中,同步字符常采用结构中,同步字符常采用ASCIIASCII码中规定码中规定的的SYN(SYN(即即16H)16H)代码;代码;l 在在双同步字符帧双同步字符帧结构中,同步字符一般采用国际通用标结构中,同步字符一般采用国际通用标准代码准代码EB90HEB90H。4(2)波特率)波特率(baud rate)l 波特率是串行通信的重要指标,用于表征数据传输波特率是串行通信的重要指标,用于表征数据传输的速度,定义为每秒钟传送二进制数码的位数的速度,定义为每秒钟传送二进制数码的位数(bit)(bit),单位是单位是波特波特,即即1 1波特波特=1bit/s=1bit/s(

4、bps)bps)。【例】某异步通信的传输速率为【例】某异步通信的传输速率为72007200字符帧字符帧/ /分钟,分钟,每个字符帧的长度为每个字符帧的长度为1010位。则传输速率为:位。则传输速率为:7200 10 位位 60秒秒=1200bps 每位传输时间(位宽):每位传输时间(位宽):d10.833(ms)1200T 5(3)串行通信的差错校验)串行通信的差错校验 奇偶校验奇偶校验 发送数据时,数据后尾随一位奇偶校验位(发送数据时,数据后尾随一位奇偶校验位(0或或1)。当设置为奇校验时,数据中)。当设置为奇校验时,数据中1的个数与校验位的个数与校验位1的个数之和应为奇数;当设置为偶校验时

5、,数据中的个数之和应为奇数;当设置为偶校验时,数据中1的个数与校验位的个数与校验位1的个数之和应为偶数。的个数之和应为偶数。 接收时,接收方采用与发送方一样的差错校验方接收时,接收方采用与发送方一样的差错校验方法对接收到的数据进行校验法对接收到的数据进行校验。 和校验和校验 发送方对发送的数据块求和,产生一个字节的校发送方对发送的数据块求和,产生一个字节的校验和,并将其尾随数据块发送;接收方将接收的数验和,并将其尾随数据块发送;接收方将接收的数据求和,将结果与发送方发送的据求和,将结果与发送方发送的“校验和校验和”进行比进行比较以判断是否出错。较以判断是否出错。6一、串行通信及接口一、串行通信

6、及接口1.1.结构结构:89C5189C51内部有全双工的异步通讯串行口(内部有全双工的异步通讯串行口( UART UART );两);两个独立的个独立的接收、发送缓冲器接收、发送缓冲器SBUF(SBUF(属于特殊功能寄存器属于特殊功能寄存器) ),一个,一个用作发送,一个用作接收。发送缓冲器只能写入不能读出;接用作发送,一个用作接收。发送缓冲器只能写入不能读出;接收缓冲器只能读出不能写入,两者共用一个字节地址收缓冲器只能读出不能写入,两者共用一个字节地址(99H)(99H)。72.串行口控制寄存器串行口控制寄存器SCON用于串行通信的方式选择、接收和发送控制以及串行用于串行通信的方式选择、接

7、收和发送控制以及串行口的状态标志指示。口的状态标志指示。 SM0 SM1-串行口工作方式选择位串行口工作方式选择位D7D6D5D4D3D2D1D0SM0SM1SM2RENTB8RB8TIRISM0SM1工作方式工作方式功能描述功能描述波特率波特率0 00 11 01 1方式方式0方式方式1方式方式2方式方式38位同步移位寄存器位同步移位寄存器10位位UART11位位UART11位位UARTfosc/12可变(定时器控制)可变(定时器控制)fosc/64、fosc/32可变(定时器控制)可变(定时器控制)8 SM2 SM2:多机通信控制位:多机通信控制位 * * 主要用于方式主要用于方式2 2和

8、方式和方式3 3。当串行口以方式。当串行口以方式2 2和方式和方式3 3接收数据时:接收数据时: SM2=1 SM2=1,则只有在接收到的第,则只有在接收到的第9 9位数据位数据(RB8)(RB8)为为1 1时才时才将接收到的前将接收到的前8 8位数据送入位数据送入SBUFSBUF,并置位,并置位RIRI产生中断请产生中断请求;否则将接收到的前求;否则将接收到的前8 8位数据丢弃。位数据丢弃。 SM2=0 SM2=0,则不论第,则不论第9 9位数据是位数据是0 0还是还是1 1,都将前,都将前8 8位数据位数据装入装入SBUFSBUF中,并产生中断请求。在方式中,并产生中断请求。在方式0 0,

9、SM2SM2必须为必须为0 0。 REN REN:允许接收控制位:允许接收控制位 REN=0 REN=0时禁止串行口接收。时禁止串行口接收。 REN=1 REN=1时允许串行口接收。时允许串行口接收。 该位由软件置位或复位。该位由软件置位或复位。9 TB8 TB8:发送数据位:发送数据位 * * 在方式在方式2 2或方式或方式3 3时,时,TB8TB8是发送数据的第是发送数据的第9 9位,根据发送数据位,根据发送数据的需要由软件置位或复位。的需要由软件置位或复位。 可作为奇偶校验位可作为奇偶校验位( (单机通信单机通信) )。 可在多机通信中作为发送地址帧或数据帧的标志位。多机通可在多机通信中

10、作为发送地址帧或数据帧的标志位。多机通信时,一般约定:发送地址帧时,设置信时,一般约定:发送地址帧时,设置TB8=1TB8=1;发送数据帧时,;发送数据帧时,设置设置TB8=0TB8=0。在方式。在方式0 0和方式和方式1 1中,该位未用。中,该位未用。 RB8 RB8:接收数据位:接收数据位 * * 在方式在方式2 2和方式和方式3 3时,存放接收数据的第时,存放接收数据的第9 9位。位。 可以是约定的奇偶校验位。可以是约定的奇偶校验位。 可以是约定的地址可以是约定的地址/ /数据标志位,可根据数据标志位,可根据RB8RB8被置位的情况对被置位的情况对接收到的数据进行某种判断。在多机通信时,

11、若接收到的数据进行某种判断。在多机通信时,若RB8=1RB8=1,说明,说明收到的数据为地址帧;收到的数据为地址帧;RB8=0RB8=0,说明收到的数据为数据帧。在,说明收到的数据为数据帧。在方式方式1 1下,若下,若SM2=0SM2=0,则,则RB8RB8用于存放接收到的停止位方式;方用于存放接收到的停止位方式;方式式0 0下,该位未用。下,该位未用。 10 TI TI:发送中断标志位:发送中断标志位 用于指示一帧数据发送完否。用于指示一帧数据发送完否。 方式方式0 0下,发送电路发送完第下,发送电路发送完第8 8位数据时,位数据时,TITI由硬件置位。由硬件置位。 其他方式下,其他方式下,

12、TITI在发送电路开始发送停止位时置位,这就在发送电路开始发送停止位时置位,这就是说:是说:TITI在发送前必须由软件复位,发送完一帧后由硬件置在发送前必须由软件复位,发送完一帧后由硬件置位。因此,位。因此,CPUCPU查询查询TITI状态便可知一帧信息是否已发送完毕。状态便可知一帧信息是否已发送完毕。 RI RI:接收中断标志位:接收中断标志位 用于指示一帧信息是否接收完。用于指示一帧信息是否接收完。 在方式在方式1 1下,下,RIRI在接收电路接收到第在接收电路接收到第8 8位数据时由硬件置位。位数据时由硬件置位。 在其他方式下,在其他方式下,RIRI是在接收电路接收到停止位的中间位置是在

13、接收电路接收到停止位的中间位置时置位的,时置位的,RIRI也可供也可供CPUCPU查询,以决定查询,以决定CPUCPU是否需要从是否需要从SBUFSBUF中中提取接收到的字符或数据。提取接收到的字符或数据。RIRI也由软件复位。也由软件复位。 113.电源控制寄存器电源控制寄存器PCON SMOD-串行口波特率倍增位串行口波特率倍增位 PCON不可位寻址不可位寻址。可用下列指令设置。可用下列指令设置SMOD位:位:ANL PCON,#7FH ;SMOD=0ORL PCON,#80H ;SMOD=1D7D6D5D4D3D2D1D0SMOD-GF1GF0PDIDL12(1)串行工作方式)串行工作方

14、式0 * 工作原理工作原理 串行口作为同步移位寄存器使用;串行口作为同步移位寄存器使用; 以以RXD(P3.0)端作为数据移位的输入端和输出端;)端作为数据移位的输入端和输出端;TXD(P3.1)端输出移位脉冲;)端输出移位脉冲; 8位为一帧,不设起始位和停止位,低位在前,高位位为一帧,不设起始位和停止位,低位在前,高位在后;帧格式如下:在后;帧格式如下: 每个机器周期发送或接收一位,故波特率为每个机器周期发送或接收一位,故波特率为fosc/12;. . .D0D1D2D3D4D5D6D7. . .13 发送时,只需将数据写入串行口缓冲寄存器发送时,只需将数据写入串行口缓冲寄存器SBUF,即启

15、动发送,串行口把即启动发送,串行口把8位数据以位数据以fosc/12的波特率从的波特率从RXD端送出(低位在前),发送完置中断标志端送出(低位在前),发送完置中断标志TI为为“1”; 接收时,软件置接收时,软件置REN=1时,串行口即开始从时,串行口即开始从RXD端端以以fosc/12波特率输入数据(低位在前),当接收到波特率输入数据(低位在前),当接收到8位数据时,置中断标志位数据时,置中断标志RI为为“1”,用户可从,用户可从SBUF读数据。读数据。 应用应用 串行工作串行工作方式方式0常用于扩展常用于扩展I/O接口接口。14 工作原理工作原理 串行口作为通用异步接收和发送器(串行口作为通

16、用异步接收和发送器(UART)使用;)使用; 10位为一帧,帧格式如下:位为一帧,帧格式如下: 定时器定时器T1作为波特率发生器,通常选用方式作为波特率发生器,通常选用方式2(自动(自动重装入初值方式)、定时、禁止中断;重装入初值方式)、定时、禁止中断;. .0D0D1D2D3D4D5D6D71. .起始位起始位停止位停止位15 波特率波特率=T1溢出率溢出率 2SMOD/32 T1溢出周期溢出周期=(256-初值)初值) 12/fosc T1溢出率溢出率=fosc/12 (256-初值)初值)波特率波特率=2SMOD fosc/384 (256-初值)初值)则定时器则定时器T1方式方式2的初

17、值为:的初值为:初值初值=256- 2SMOD fosc/384 波特率波特率 发送时,数据从引脚发送时,数据从引脚TXD输出,当数据写入串行口缓输出,当数据写入串行口缓冲寄存器冲寄存器SBUF,即启动发送,发送完一帧数据置中,即启动发送,发送完一帧数据置中断标志断标志TI为为“1”; 接收时,软件置接收时,软件置REN=1时,串行口即开始采样时,串行口即开始采样RXD端,当检测到起始位时开始接收一帧数据,接收到停端,当检测到起始位时开始接收一帧数据,接收到停止位时置中断标志止位时置中断标志RI为为“1”,用户可从,用户可从SBUF读数读数据。据。16【例】【例】 由内部由内部RAMRAM单元

18、单元30H30H4FH4FH取出取出ASCIIASCII码数据,在码数据,在最高位上加奇偶校验位后由串行口输出,采用最高位上加奇偶校验位后由串行口输出,采用1010位异位异步通信,波特率为步通信,波特率为1200bit/s1200bit/s,f fosc=11.0592MHzosc=11.0592MHz。解:由题意可知,应把串行口置为方式解:由题意可知,应把串行口置为方式1 1;采用定时器;采用定时器T1T1,以方式,以方式2 2工作,作波特率发生器,预置值工作,作波特率发生器,预置值(TH1)=(TL1)=0E8H(TH1)=(TL1)=0E8H。初值初值=256- 2SMOD fosc/3

19、84 波特率波特率 =256-20 11059200/(384 1200) =256-24 =0E8H17TX:MOV C,P;设置奇校验位设置奇校验位CPL C MOV ACC.7,CMOV SBUF,A;启动串行口发送启动串行口发送JNB TI,$;等待发送完等待发送完CLR TI ;清清TI标志标志,允许再发送允许再发送RET MOV TMOD,#20H;设设T1为模式为模式2MOV TL1,#0E8H;装入时间常数装入时间常数MOV TH1,#0E8HSETB TR1;启动定时器启动定时器T1MOV SCON,#40H;设串行口为方式设串行口为方式1MOV R0,#30H;发送数据首地

20、址发送数据首地址MOV R7,#32;发送个数发送个数LOOP:MOV A,R0;发送数据送累加器发送数据送累加器ALCALL TX;调发送子程序调发送子程序INC R0;指向下一步个地址指向下一步个地址DJNZ R7,LOOP18 工作原理工作原理 串行口作为通用异步接收和发送器(串行口作为通用异步接收和发送器(UART)使用;)使用; 11位为一帧,帧格式如下:位为一帧,帧格式如下:可编程位(第可编程位(第9数据位)数据位)D8由软件置由软件置“1”或清或清“0”,可作检验位,也可作它用。发送方发送时将可作检验位,也可作它用。发送方发送时将TB8装入装入D8,接收方接收时将,接收方接收时将

21、D8装入装入RB8; 波特率波特率=2SMOD fosc/64. .0D0D1D2D3D4D5D6D7D81. .起始位起始位停止位停止位19 工作原理工作原理 串行工作方式串行工作方式3的波特率与方式的波特率与方式1相同;其他功能相同;其他功能与方式与方式2完全相同。完全相同。20 89C51串行通信应用串行通信应用1.双机串行通信技术双机串行通信技术 如果两个如果两个8031应用系统相距很近,将它们的串行应用系统相距很近,将它们的串行口直接相连,即可实现双机通信。口直接相连,即可实现双机通信。 TxD 8031 RxD GND RxD 8031 TxD GND AT89S51AT89S51

22、(P3.0)(P3.0)(P3.1)(P3.1)21【例】【例】 双机通信双机通信XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922

23、P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51R2510VCCX111.0592MHzC122pFC222pFC310uFR110kVCCD1LED-BIBYD2LED-BIBYD3LED-BIBYD4LED-BIBYD5LED-BIBYD6LED-BIBYD7LED-BIBYR3510R4510R5510R6510R7510R8510R9510XTAL218XTAL119ALE30EA31PSEN29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD

24、534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U2AT89C51C610uFR1110kVCCX211.0592MHzC422pFC522pFD0LED-REDRTX.DSN22ORG0000H;发送端程序发

25、送端程序 tx.asmLJMPMAINORG0030HMAIN:MOV TMOD,#20H ;设设T1为模式为模式2MOV TL1,#0FDHMOV TH1,#0FDH ;波特率波特率9600ANLPCON,#7FH ;SMOD=0SETB TR1;启动定时器启动定时器T1MOV SCON,#40H ;设串行口为方式设串行口为方式1MOVA,#0FEH L1:MOV SBUF,A;发送数据发送数据JNB TI,$;发送完?发送完?CLR TI LCALLD1S;延时延时1秒秒RLASJMP L123ORG 0000H ;接收端程序接收端程序 rx.asmLJMP MAINORG 0030HMA

26、IN:MOV SP,#60HMOV TMOD,#20HMOV TL1,#0FDHMOV TH1,#0FDH ;波特率波特率9600ANLPCON,#7FH ;SMOD=0SETB TR1MOV SCON,#50H ;串口方式串口方式1,允许接收,允许接收 L2: JNBRI,$;接收到数据?接收到数据?CLRRIMOV A,SBUFMOV P1,ASJMP L224相互转换相互转换232C接口采用接口采用EIA电平(负逻辑)电平(负逻辑)“0” 电平为电平为3V15V“1”电平为电平为3V15V实际常用实际常用12V或或15V标准标准TTL电平(正逻辑)电平(正逻辑)n“1”电平:电平:2.4

27、V5Vn“0”电平:电平:0V0.8V2.单片机与单片机与PC机的通信机的通信 为了增加通信距离,减少通道及电源干扰,可以在通信为了增加通信距离,减少通道及电源干扰,可以在通信线路上采取光电隔离的方法,利用线路上采取光电隔离的方法,利用RS-232C、RS-422或或RS485标准进行双机通信。标准进行双机通信。25MAX232 MAX232 :+5V+5V供电,供电,RS-232RS-232驱动器驱动器/ /接收器接收器单片机单片机TXDRXDPC机机RXDTXDDB-9(P3.0)(P3.1)(2)(3)(5)26PC端软件:串口调试工具(可显示从串口接收的数据)端软件:串口调试工具(可显

28、示从串口接收的数据)显示窗口通信协议设置27 串行接口器件与单片机接口时串行接口器件与单片机接口时需要的需要的I/OI/O口线很少口线很少(仅需(仅需1 14 4条),极大地简化了器件间的连接,进而条),极大地简化了器件间的连接,进而提高了可靠性。串行接口器件提高了可靠性。串行接口器件体积小体积小,因而,因而占用电路占用电路板的空间小板的空间小,仅为并行接口器件的,仅为并行接口器件的10%10%,明显减少了,明显减少了电路板空间和成本。电路板空间和成本。 串行接口工作电压宽、抗干扰能力强、功耗低、数串行接口工作电压宽、抗干扰能力强、功耗低、数据不易丢失。据不易丢失。 串行扩展技术在串行扩展技术

29、在ICIC卡、智能仪器仪表以及分布式控卡、智能仪器仪表以及分布式控制系统等领域得到了广泛的应用。制系统等领域得到了广泛的应用。28一、一、 1-Wire(单总线)接口(单总线)接口 n n单总线(单总线(1-Wire bus1-Wire bus)是由)是由DALLAS DALLAS 公司推出的外围串行扩展公司推出的外围串行扩展总线。它只有一条数据输入总线。它只有一条数据输入/ /输出线输出线DQDQ,总线上的所有器件都挂,总线上的所有器件都挂在在DQDQ上,电源也可通过这条信号线供给,称为单总线技术。上,电源也可通过这条信号线供给,称为单总线技术。1-1-WireWire器件按照串行协议进行供

30、电和数据通信。器件按照串行协议进行供电和数据通信。 优势优势: : 通过单线接口提供器件控制及操作通过单线接口提供器件控制及操作 每个器件具有全球唯一的工厂光刻每个器件具有全球唯一的工厂光刻ID (64ID (64位位ROM)ROM) 通过单总线供电通过单总线供电(“(“寄生电源寄生电源”) ”) 可挂接多点:单一总线可挂接多个器件可挂接多点:单一总线可挂接多个器件 ( (长度长度200M) )29n n DS18B20 Programmable Resolution 1-Wire Digital Thermometer30 Unique 1-Wire Interface Requires O

31、nly One Port Pin for Communication Each Device has a Unique 64-Bit Serial Code Stored in an On-Board ROM Multidrop Capability Simplifies Distributed Temperature-Sensing Applications Requires No External Components Can Be Powered from Data Line; Power Supply Range is 3.0V to 5.5V Measures Temperature

32、s from -55C to +125C (-67F to +257F) 0.5C Accuracy from -10C to +85C Thermometer Resolution is User Selectable from 9 to 12 Bits Converts Temperature to 12-Bit Digital Word in 750ms (Max) User-Definable Nonvolatile (NV) Alarm Settings Alarm Search Command Identifies and Addresses Devices Whose Tempe

33、rature is Outside Programmed Limits (Temperature Alarm Condition) Available in 8-Pin SO (150 mils), 8-Pin SOP, and 3-Pin TO-92 Packages Software Compatible with the DS1822 Applications Include Thermostatic Controls, Industrial Systems, Consumer Products, Thermometers, or Any Thermally Sensitive Syst

34、em 31n n 典型应用典型应用测温范围:测温范围:-55 -55 +125 +125;(9/12(9/12位二进制码表示位二进制码表示) )测温精度:测温精度:0.5 (-100.5 (-10+85)+85);用户自设定温度报警上下限,其值是非易失性的用户自设定温度报警上下限,其值是非易失性的 测温距离:测温距离:200M200M; 32n n 封装及引脚封装及引脚33n n 温度寄存器温度寄存器34n n 温度温度 数字量关系数字量关系小数小数整数整数负温度为补码表示负温度为补码表示35n n 存储器存储器36n n 配置寄存器配置寄存器37n n DS18B20操作操作38串行接口技术

35、串行接口技术-1-Wire总线总线39串行接口技术串行接口技术-1-Wire总线总线40n n 操作时序操作时序 DALLAS公司为单总线的寻址及数据的传送提供了严公司为单总线的寻址及数据的传送提供了严格的时序规范,具体内容可查阅数据手册。格的时序规范,具体内容可查阅数据手册。主机发复位脉冲主机发复位脉冲接收器件接收器件“存在存在”脉脉冲冲41串行接口技术串行接口技术-1-Wire总线总线写写“0”“0”写写“1”“1”读读“1”“1”读读“0”“0”42串行接口技术串行接口技术-1-Wire总线总线43【例】温度传感器【例】温度传感器DS18B20的的DQ与与P3.4相连。相连。 下列为读温

36、度和转换程序。下列为读温度和转换程序。(P3.4)44;-;*DS18B20读温度子程序读温度子程序;12位分辨率,位分辨率,MSB存入存入65H,LSB存入存入64H;转换为转换为BCD码存入码存入6FH(符号位,(符号位,FFH负,负,00H正)正),6EH(百位)(百位);6DH(十位)(十位),6CH(个位)(个位),6BH(小数)(小数);-RD_TEMP:SETB P3.4 LCALL RST1820 ;读温度之前必须先复位读温度之前必须先复位 JB F0,YES ;查看标志位看查看标志位看18B20是否存在,是否存在,1为存在,为存在,0为不存在为不存在 RET ;不存在则返回不

37、存在则返回 YES:MOV A,#0CCH ;存在则开始读温度存在则开始读温度,跳过跳过ROM匹配匹配 LCALL WRB ;调写子程序调写子程序 MOV A,#44H ;发出温度转换命令发出温度转换命令 LCALL WRB ;调写子程序调写子程序 MOV B,#150 WT:LCALL DISP DJNZ B,WT;等待等待AD转换完成转换完成,现在分辨率为现在分辨率为12位位,温度最大转换时间为温度最大转换时间为750MS LCALL RST1820 ;读温前需要复位读温前需要复位 MOV A,#0CCH ;跳过跳过ROM匹配匹配 LCALL WRB MOV A,#0BEH ;发读温度命令

38、发读温度命令 LCALL WRB LCALL RD2B ;将温度数据读回将温度数据读回 LCALL BTOD;将温度值转换为将温度值转换为BCD码码 RET45;18B20复位子程序复位子程序;18B20复位需要将数据位拉低复位需要将数据位拉低500us;18B20收到信号后要等待收到信号后要等待16-60us,然后发出然后发出60-240us的低脉冲的低脉冲RST1820:SETB P3.4 NOPCLR P3.4MOV R6,#3 RST0:MOV R7,#105 ;设一个设一个537us延时延时 DJNZ R7,$DJNZ R6,RST0 SETB P3.4 ;拉高数据线拉高数据线,等待

39、回应等待回应NOP NOPNOP MOV R6,#23 RST1:JNB P3.4,RST2 ;延时延时延时延时50us等待等待18B20回应回应,若返回低脉冲则说明若返回低脉冲则说明18B20存在存在 DJNZ R6 ,RST1 LJMP RST3 ;经过反应时间而没检测到经过反应时间而没检测到18B20的存在的存在,则跳转去清零标志位则跳转去清零标志位 RST2:SETB F0 ;检测到检测到18B20存在存在,置置1标志位标志位 LJMP RST4 RST3:CLR F0 ;没检测到没检测到18B20,清零标志位清零标志位 LJMP RST5 RST4:MOV R6,#111;延时延时2

40、40us,确定回应信号已发完确定回应信号已发完 DJNZ R6,$ RST5:SETB P3.4 RET 46;-;写写18B20子程序子程序;- WRB:MOV R6,#8 ;写计数寄存器,一共有写计数寄存器,一共有8位数据位数据 CLR C WRB1:CLR P3.4MOV R7,#6;设一个延时设一个延时 DJNZ R7,$ RRC A;右循环,先输出低位右循环,先输出低位 MOV P3.4,C MOV R7,#23;设延时设延时50us DJNZ R7,$ SETB P3.4 NOP NOP DJNZ R6,WRB1 ;判断是否完成数据传送判断是否完成数据传送 SETB P3.4 ;完

41、成传送拉高数据位完成传送拉高数据位 RET47;-;从从18B20中读出温度数据子程序中读出温度数据子程序,存入存入65H,64H;- RD2B:MOV R5,#2 ;设读回数据个数指针设读回数据个数指针 MOV R0,#64H ;把温度数据低位存入把温度数据低位存入64H RD2B0:MOV R6,#8 ;设数据长度指针设数据长度指针 RD2B1:CLR C SETB P3.4 NOP NOP CLR P3.4NOPNOPNOPSETB P3.4MOV R7,#9 DJNZ R7,$MOV C,P3.4MOV R7,#23 DJNZ R7,$RRC ADJNZ R6,RD2B1MOV R0,

42、A INC R0;高位存入高位存入65HDJNZ R5,RD2B0RET48;-;将温度数据转换为将温度数据转换为BCD码子程序码子程序;- BTOD:MOVA,65HJNBACC.7,PLUS;判断正负判断正负CPLAMOV67H,AMOVA,64HCPLAADDA,#01HMOV66H,AMOVA,67HADDC A,#00HMOV67H,A;若为负数,求绝对值存入若为负数,求绝对值存入67H,66HMOV 6FH,#0FFH;置负数标志置负数标志SJMPBTOD0 PLUS:MOV 6FH,#00H;置正数标志置正数标志MOV67H,65HMOV66H,64H49BTOD0:MOVA,6

43、6HANLA,#0FHMOVDPTR,#POINTMOVCA,A+DPTRMOV 6BH,AMOVA,66HANLA,#0F0HSWAPAMOV63H,AMOVA,67HANLA,#07HSWAPAORLA,63HMOVB,#100DIVABMOV6EH,AMOVA,#10XCHA,BDIVABMOV6DH,AMOV6CH,BRET POINT:DB 00H,01H,01H,02H,02H,03H,04H,04H,05H,06H,06H,07H,07H,08H,09H,09H50n n SPI(Serial Periperal Interface)是)是Motorola公司推公司推出的同步串行

44、外设接口,允许单片机与多个厂家生产出的同步串行外设接口,允许单片机与多个厂家生产的带有该接口的设备直接连接,以串行方式交换信息。的带有该接口的设备直接连接,以串行方式交换信息。n n 使用条线:串行时钟使用条线:串行时钟SCK,主器件输入,主器件输入/从器件输从器件输出数据线出数据线MISO(简称(简称SO),主器件输出),主器件输出/从器件输入从器件输入数据线数据线MOSI(简称(简称SI)和从器件选择线)和从器件选择线(CS)。n n SPI的典型应用是单主系统。该系统只有一台主器件,的典型应用是单主系统。该系统只有一台主器件,从器件通常是外围接口器件,如存储器、从器件通常是外围接口器件,

45、如存储器、I/O接口、接口、A/D、D/A、键盘、日历、键盘、日历/时钟和显示驱动等。时钟和显示驱动等。二、二、 SPI总线接口简介总线接口简介51n n 典型应用典型应用n n 时序时序主主从从从从从从主器件与从器件的主器件与从器件的SCKSCK、MISOMISO、MOSIMOSI都是同名端相连都是同名端相连52n n 只有两条信号线,一条是只有两条信号线,一条是数据线数据线SDA,另一条是,另一条是时钟线时钟线SCL,所有连接到所有连接到I2C总线上器件的数据线都接到总线上器件的数据线都接到SDA线上,各器件的时线上,各器件的时钟线均接到钟线均接到SCL线上。标准线上。标准I2C普通模式,

46、数据的传输速率为普通模式,数据的传输速率为100kb/s,高速模式可达,高速模式可达400kb/s。三、三、I2C总线接口总线接口n n 典型应用典型应用53n n 24C02 引脚引脚54n n I2C总线协议总线协议555657n虚拟方式应用虚拟方式应用 89C51单片机没有单片机没有I2C接口,用接口,用I/O口结合软件实现。口结合软件实现。58 起始信号起始信号S START:SETB P1.7;SDA=1SETB P1.6;SCL=1NOPNOPNOPCLR P1.7;SDA=0NOP NOPNOPCLR P1.6;SCL=0 RET59 停止信号停止信号SSTOP: CLR P1.

47、7;SDA=0SETB P1.6;SCL=1NOPNOPNOPSETB P1.7;SDA=1NOPNOPNOPCLR P1.6CLR P1.7 RET60 发送发送1字节数据子程序字节数据子程序S1BYTE:MOV R6,#08H ;8位数据长度送入位数据长度送入R6中中 WLP:RLC A;A左移左移,发送位进入发送位进入C MOV P1.7,C;将发送位送入将发送位送入SDA引脚引脚 SETB P1.6;SCL=1,使使SDA引脚上的数据有效引脚上的数据有效 NOP NOP CLR P1.6 ;SDA线上数据变化线上数据变化 DJNZ R6,WLP RET61 接收接收1字节数据子程序字节数据子程序R1BYTE:MOV R6,#08H ;8位数据长度送入位数据长度送入R6中中 RLP:SETB P1.7;置置SDA数据线为输入方式数据线为输入方式 SETB P1.6 ;SCL=1,使使SDA数据线上的数据有效数据线上的数据有效 MOV C,P1.7 ;读入读入SDA引脚状态引脚状态 MOV A,R2 RLC A;将将C读入读入A MOV R2,A;将将A存入存入R2 CLR P1.6 ;SCL=0,继续接收数据继续接收数据 DJNZ R6,RLP RET62

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 应用文书 > 工作计划

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁