第9章MCS51單片機(jī)的串行接口_第1頁
第9章MCS51單片機(jī)的串行接口_第2頁
第9章MCS51單片機(jī)的串行接口_第3頁
第9章MCS51單片機(jī)的串行接口_第4頁
第9章MCS51單片機(jī)的串行接口_第5頁
已閱讀5頁,還剩69頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用第九章

MCS-51單片機(jī)的串行接口9.1串行通信簡介9.2MCS-51串行接口結(jié)構(gòu)9.3MCS-51串口工作方式9.4MCS-51單片機(jī)的串口應(yīng)用9.5MCS-51單片機(jī)多機(jī)通信9.6I2C總線自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用5.451單片機(jī)的串行接口一、串行通信概述1.什么叫串行通信?

在生活中同學(xué)們排橫隊行走——并行;排縱隊行走——串行。計算機(jī)中在傳輸信息、數(shù)據(jù)時也有并行、串行的問題。0010001001P1.0P1.1P1.2P1.3RXDTXD單片機(jī)外設(shè)1外設(shè)21111110101000自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用2.串行通信的方向單工A

發(fā)B

發(fā)半雙工A

發(fā)收B

收發(fā)例如:廣播電臺收音機(jī)例如:對講機(jī)自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用全雙工A

發(fā)收B

收發(fā)例如:電話機(jī)接收設(shè)備發(fā)送設(shè)備3.同步通信、異步通信同步——發(fā)送設(shè)備時鐘與接收設(shè)備時鐘嚴(yán)格一致。校驗字符2校驗字符1

數(shù)據(jù)n………

數(shù)據(jù)2

數(shù)據(jù)1同步字符2同步字符1自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用異步——發(fā)送時鐘與接收時鐘不一定相等??臻e位停止位奇偶校驗位5~8位數(shù)據(jù)起始位空閑位自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用●串行通信中每秒傳輸?shù)碾x散信號的個數(shù)●單位為baud(波特)●在二進(jìn)制傳輸系統(tǒng)中,波特率即為每秒傳輸二進(jìn)制位的個數(shù),單位為比特/秒或bps●波特率因子輔助各位的定位串行通信的波特率自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用●假設(shè)使用MCS-51的P1.0作為異步串行輸出信號線●11.0592MHz的振蕩頻率●波特率為1200bps●發(fā)送的數(shù)據(jù)幀包括1個起始位、8個數(shù)據(jù)位、1個偶校驗位、1個停止位●要發(fā)送的8位字符事先已經(jīng)裝入累加器A●請給出實現(xiàn)方案和發(fā)送過程串行通信的軟件實現(xiàn)自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用串行接口與RS232C標(biāo)準(zhǔn)串行接口UART再加上一些控制電路自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用標(biāo)準(zhǔn):機(jī)械、功能、電氣、時序等線路驅(qū)動器自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用9.251單片機(jī)串行接口MCS-51單片機(jī)內(nèi)部的串行接口是全雙工的,即它能同時發(fā)送和接收數(shù)據(jù)。這個口既可以用于網(wǎng)絡(luò)通信,也可以實現(xiàn)串行異步通信,還可以作為同步移位寄存器使用。在串行口中可供用戶使用的是它的寄存器。4種工作方式,波特率可編程設(shè)置,可中斷。自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用圖中共有兩個串行口的緩沖寄存器(SBUF)。一個是發(fā)送寄存器,一個是接收寄存器。串行發(fā)送時,從片內(nèi)總線向發(fā)送SBUF寫入數(shù)據(jù);串行接收時,從接收SBUF向片內(nèi)總線讀出數(shù)據(jù)。它們都是可尋址的寄存器,但因為發(fā)送和接收不能同時進(jìn)行,所以給這兩個寄存器賦以同一地址(99H)。自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用SCON——串行口控制寄存器SM0SM1SM2RENTB8RB8

TI

RITI/RI:中斷請求標(biāo)志位(前面已講過)RB8:接收的第九位數(shù)TB8:發(fā)送的第九位數(shù)REN:允許接收控制位SM2:多機(jī)通信控制位(常與RB8配合,決定是否激活RI)SM0、SM1:工作方式選擇位(四種工作方式)自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用SCON——串行口控制寄存器SM0SM1工作方式方式描述波特率000移位寄存器fosc/12(fosc為振蕩器頻率)0118位UART可變1029位UARTfosc/64或fosc/321139位UART可變自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用SMODPCON——電源管理寄存器SMOD位用于決定波特率的倍數(shù)。020=1倍

121=2倍SBUF——串行發(fā)送/接收數(shù)據(jù)緩沖器是兩個物理單元,共用一個地址(99H)自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用

串行口的工作方式(1)方式0:同步移位寄存器方式

波特率固定為fosc/12RXD——接收發(fā)送數(shù)據(jù)

TXD——產(chǎn)生同步移位脈沖接收/發(fā)送完,置位RI/TI,(要求SM2=0)

D7D6D5D4D3D2D1D0D0D1D2D3D4D5D6D7發(fā)送接收無起始位,無停止位。可用于并口的擴(kuò)展。自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用51單片機(jī)指令系統(tǒng)(2)方式1:8位UART

波特率為(2SMOD×T1的溢出率)/32,可變。一幀信息10位。D0D1D2D3D4D5D6D7停止位起始位發(fā)送D7D6D5D4D3D2D1D0起始位停止位接收送RB8發(fā)送完置位TI。當(dāng)接收到數(shù)據(jù)后,置位RI是有條件的。即:REN=1,RI=0且SM2=0或SM2=1但是接收到的停止位為1。此時,數(shù)據(jù)裝載SBUF,RI置1,停止位進(jìn)入RB8。

自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用51單片機(jī)指令系統(tǒng)(3)方式2、方式3:9位UART

一般用于多機(jī)通信。一幀信息11位。

D0D1D2D3D4D5D6D7TB8停止位起始位發(fā)送發(fā)送完數(shù)據(jù)置位TI。

TB8D7D6D5D4D3D2D1D0起始位停止位接收接收到有效數(shù)據(jù)完畢,置位RI的條件:REN=1,RI=0且SM2=0或接收到第9位數(shù)據(jù)為1,此時,數(shù)據(jù)裝載SBUF,RI置1,第9位數(shù)據(jù)(TB8)

RB8。

送RB8方式2波特率:(固定)2SMOD/64×fosc自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用9.451單片機(jī)串行接口的應(yīng)用波特率發(fā)生器原理自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用波特率計算方式0的波特率是固定的,為fosc/12方式2的波特率是fosc/32或fosc/64,取決于PCON中SMOD位的值若SMOD=0,波特率為fosc/64若SMOD=1,波特率為fosc/32方式1和3的波特率還取決于定時器/計數(shù)器T1或T2的溢出率自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用波特率計算使用定時器/計數(shù)器T1作為波特率發(fā)生器方式0時,溢出率為fosc/12/(213-TC)方式1時,溢出率為fosc/12/(216-TC)方式2時,溢出率為fosc/12/(28-TC)方式2最方便自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用波特率的設(shè)置方式0、方式2固定。方式1,方式3可變。波特率=2SMOD/32×(T1的溢出率)T1溢出率=單位時間內(nèi)溢出次數(shù)=1/(T1的定時時間)而T1的定時時間t就是T1溢出一次所用的時間。此情況下,一般設(shè)T1工作在模式2(8位自動重裝初值)。

N=28-t/T,t=(28-N)T=(28-N)×12/fosc所以,T1溢出率=1/t=fosc/12(28-N),故,波特率=2SMOD/32×fosc/12(256-N)。若已知波特率,則可求出T1的計數(shù)初值:

y=256-2SMOD×fosc/(波特率×32×12)

①按選定串行口的操作方式設(shè)定SCON的SM0、SM1兩位二進(jìn)制編碼。②對于方式2或3,應(yīng)根據(jù)需要在TB8中寫入待發(fā)送的第9位數(shù)據(jù)。③若選定的操作方式不是方式0,還需設(shè)定發(fā)送的波特率:設(shè)定SMOD的狀態(tài),以控制波特率是否加倍。若選定操作方式1或3,則應(yīng)對定時器T1進(jìn)行初始化以設(shè)定其溢出率。自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用例、若fosc=6MHz,波特率為2400波特,設(shè)SMOD=1,則定時/計數(shù)器T1的計數(shù)初值為多少?并進(jìn)行初始化編程。

解:X=256-2SMOD×fosc/(2400×32×12)=242.98≈243=F3Hfosc=11.0592MHz,波特率為2400,設(shè)SMOD=0,則X=F4H。初始化編程:MOVTMOD,#20HMOVPCON,#80H MOVTH1,#0F3HMOVTL1,#0F3HSETBTR1MOVSCON,#50H

自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用方式0的應(yīng)用主要用于I/O擴(kuò)展;外接串入并出的移位寄存器芯片,每一片擴(kuò)展一個8位的并行輸出口;多片串聯(lián)起來,可以實現(xiàn)多個8位并行輸出口的擴(kuò)展??捎米鞫辔混o態(tài)顯示的LED段選控制;外接并入串出的移位寄存器芯片,每一片可以擴(kuò)展一個8位的并行輸入口;多片串聯(lián)起來,可以實現(xiàn)多個8位并行輸入口的擴(kuò)展。自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用方式0的應(yīng)用——輸出自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用方式0的應(yīng)用——輸入自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用方式1的應(yīng)用P231,例9.6;P232,例9.7;自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用方式2、3的應(yīng)用方式2和3是9位UART方式,用于雙機(jī)通信時,有8位數(shù)據(jù),第9位可以用作校驗位,校驗需要用軟件編程實現(xiàn)發(fā)送時,要先計算出校驗位,存入TB8,然后再寫SBUF,啟動發(fā)送過程接收時,要根據(jù)接收到的8位數(shù)據(jù)計算出校驗位,然后與RB8中收到的第9位比較是否相同。如果相同,將8位數(shù)據(jù)保存在接收緩沖區(qū)中,否則可以向主程序報告接收錯誤,或者干脆直接將數(shù)據(jù)丟棄自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用9.5MCS-51單片機(jī)的多機(jī)通信方式SCON中的SM2位可以作為多處理機(jī)通信位,使單片機(jī)方便地應(yīng)用于集散式分布系統(tǒng)中集散式分布系統(tǒng),或者稱為分布式控制系統(tǒng)

(DCS),是相對于集中式控制系統(tǒng)而言的一種新型計算機(jī)控制系統(tǒng),它是在集中式控制系統(tǒng)的基礎(chǔ)上發(fā)展、演變而來的。這種系統(tǒng)中,有一臺主機(jī)和多臺從機(jī)。主機(jī)負(fù)責(zé)全局運行情況的監(jiān)視、統(tǒng)計、控制等,各從機(jī)負(fù)責(zé)本地信號的采集處理、本地資源的控制。主機(jī)和從機(jī)通過通信線路相聯(lián)系自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用多機(jī)通信原理主從式多機(jī)通信連接方式自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用多機(jī)通信原理當(dāng)串行口工作在方式2或3時若SM2=1,則只有接收到的第9位數(shù)據(jù)(RB8)為1時,才將數(shù)據(jù)送入接收緩沖器SBUF,并置位RI,申請中斷,否則丟棄接收到的數(shù)據(jù)若SM2=0,則無論第9位數(shù)據(jù)(RB8)是1還是0,都將數(shù)據(jù)裝入SBUF,置位RI,申請中斷自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用多機(jī)通信原理每臺從機(jī)一個地址(編號)系統(tǒng)中的通信總是由主機(jī)發(fā)起主機(jī)向從機(jī)發(fā)送的信息分為地址字節(jié)和數(shù)據(jù)字節(jié)兩種。地址字節(jié)用于尋址從機(jī),數(shù)據(jù)字節(jié)為發(fā)給從機(jī)的實際數(shù)據(jù),二者可以使用第9位來區(qū)分。地址字節(jié)幀的第9位為1,數(shù)據(jù)字節(jié)幀的第9位為0系統(tǒng)初始化時,將所有從機(jī)的SM2位置為1,并允許串行口接收中斷。這樣,只有主機(jī)送來的地址幀才會被接收自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用多機(jī)通信的協(xié)議通信協(xié)議中,除規(guī)定命令、數(shù)據(jù)的格式,還有以下一些方面需要特別考慮命令的順序差錯處理超時處理自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用9.6SPI總線SPI(SerialPeripheralInterface)總線Motorola公司提出同步串行外設(shè)接口使用SPI的外圍設(shè)備種類繁多,應(yīng)用廣泛自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用SPI總線結(jié)構(gòu)一個主設(shè)備和一個或多個從設(shè)備自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用SPI總線結(jié)構(gòu)4條信號線兩條串行數(shù)據(jù)線MISO(主設(shè)備輸入、從設(shè)備輸出)和MOSI(主設(shè)備輸出、從設(shè)備輸入)先傳送高位,后傳送低位串行時鐘線SCLK主設(shè)備使用從設(shè)備選擇線SS#選擇指定的從設(shè)備,相當(dāng)于片選信號自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用SPI時序自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用SPI總線應(yīng)用串行口方式0就是一種簡化的SPI總線接口SCLK信號由TxD輸出,MOSI/MISO信號由RxD輸出或輸入?yún)^(qū)別串行數(shù)據(jù)與串行時鐘之間的極性和相位的關(guān)系固定)串行時鐘頻率固定MCS-51只工作在主設(shè)備方式MOSI/MISO信號使用同一個引腳串行數(shù)據(jù)線上數(shù)據(jù)位的傳輸次序與標(biāo)準(zhǔn)SPI相反自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用SPI總線應(yīng)用日歷時鐘芯片DS1302可否使用SPI總線接口?MCS-51中的串行口能否勝任?如何連接與編程?分析DS1302的讀寫時序與標(biāo)準(zhǔn)SPI的時序不同,與MCS-51的相似,但時鐘極性相反若使用串行口方式0,應(yīng)將TxD輸出的移位時鐘信號反相;RxD直接連接DS1302的I/O引腳DS1302的CE類似于SPI總線結(jié)構(gòu)中的SS#,也是極性相反自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用SPI總線應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用READ_1302: ;讀DS1320 SETB CE ;選中DS1302 MOV SBUF,A ;寫8位寄存器

JNB TI,$ ;等待寫入結(jié)束

CLR TI ;清除TI SETB REN ;開始接收8位數(shù)據(jù)

JNB RI,$ ;等待接收結(jié)束

CLR RI ;接收結(jié)束,清除RI CLR REN ;停止接收

MOV A,SBUF ;將收到數(shù)據(jù)裝入A CLR CE ;結(jié)束操作

RET自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用WRITE_1302: ;寫DS1320 SETB CE ;選中DS1302 MOV SBUF,A ;寫8位寄存器

JNB TI,$ ;等待寫入結(jié)束

CLR TI ;清除TI MOV SBUF,B ;寫8位數(shù)據(jù)

JNB TI,$ ;等待寫入結(jié)束

CLR TI ;清除TI CLR CE ;結(jié)束操作

RET自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用9.7I2C總線接口I2C(Inter-IC)總線由Philips在20世紀(jì)80年代提出并獲得了專利最初目的是為了在電視機(jī)之類產(chǎn)品中方便地連接CPU和外圍的集成電路大多數(shù)主要半導(dǎo)體廠商生產(chǎn)支持I2C總線的IC芯片微處理器、EEPROM、溫度傳感器、ADC、DAC、視頻處理器件、實時鐘、顯示器件等都有支持I2C總線的版本自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C總線簡介使用兩條信號線(串行時鐘線SCL和串行數(shù)據(jù)線SDA)就能實現(xiàn)總線上各器件的雙工同步數(shù)據(jù)傳送總線上各器件的SCL和SDA引腳都是開漏結(jié)構(gòu)系統(tǒng)中所有器件的SCL和SDA引腳同名端連接在一起,總線上所有節(jié)點由器件本身和引腳狀態(tài)確定地址,無需使用片選每個被尋址的器件都有惟一的地址自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C系統(tǒng)連接與引腳結(jié)構(gòu)自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用常用I2C接口器件地址器件類型地址PCF8570256BRAM1010A2A1A0R/W#PCF8582156BE2PROM1010A2A1A0R/W#PCF85748位I/O0100A2A1A0R/W#PCF85918位ADC/DAC1001A2A1A0R/W#PCF8583日歷時鐘1010A2A1A0R/W#SAA10644位LED驅(qū)動器0111A2A1A0R/W#自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C總線簡介I2C總線上的器件,分為主設(shè)備和從設(shè)備主設(shè)備能控制總線訪問,提供串行時鐘信號(SCL),并產(chǎn)生啟動和結(jié)束信號??偩€上至少要有一個主設(shè)備在總線上被尋址的器件稱為從設(shè)備在由若干器件組成的I2C總線系統(tǒng)中,可能存在多個主設(shè)備目前不少單片機(jī)內(nèi)部集成了I2C總線接口自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C總線協(xié)議總線必須由主設(shè)備控制無論是主設(shè)備還是從設(shè)備,接收一個字節(jié)后必須發(fā)出一個確認(rèn)信號ACK總線空閑時,SCL和SDA都必須保持高電平I2C總線傳送數(shù)據(jù)時,在時鐘線SCL高電平期間,數(shù)據(jù)線SDA必須保持穩(wěn)定的邏輯電平狀態(tài)。只有在時鐘線為低時,才允許數(shù)據(jù)線上的信號發(fā)生變化自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C總線協(xié)議在時鐘線保持高電平期間,數(shù)據(jù)線出現(xiàn)的由高到低的跳變定義為起始信號(S),啟動I2C總線操作數(shù)據(jù)線上出現(xiàn)的由低到高的跳變定義為停止信號(P),終止總線的數(shù)據(jù)傳送數(shù)據(jù)傳送格式起始信號S后,主設(shè)備送出8位的地址字節(jié),以選擇從設(shè)備并指定數(shù)據(jù)的傳輸方向(讀還是寫),其后傳送數(shù)據(jù)I2C總線上傳送的每一個數(shù)據(jù)均為8位,數(shù)據(jù)個數(shù)沒有限制自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C總線協(xié)議每傳送一個字節(jié)后,接收設(shè)備(主設(shè)備或從設(shè)備)都必須發(fā)一位應(yīng)答信號ACK(低電平為ACK,高電平為非應(yīng)答信號ACK#),發(fā)送設(shè)備確認(rèn)后,再發(fā)送下一字節(jié)數(shù)據(jù)每一字節(jié)數(shù)據(jù)都是由最高有效位在前全部數(shù)據(jù)發(fā)送結(jié)束后,主設(shè)備發(fā)送終止信號P自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C串行EEPROM及其應(yīng)用EEPROM是可用工作電壓擦除和改寫內(nèi)容的只讀存儲器。系統(tǒng)工作時可以改寫,無電源供電時數(shù)據(jù)仍然保存使用EEPROM可以解決掉電數(shù)據(jù)存儲問題,通常情況下,所存儲的數(shù)據(jù)可以保存10~100年,擦寫次數(shù)達(dá)1~10萬次有并行方式和串行方式兩種接口自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用常見的EEPROM有AT24C01/02/04/08/16等型號,其內(nèi)部存儲容量分別是1K、2K、4K、8K和16KbitAT24CXX的引腳除了I2C總線所需的SCL和SDA外,還有WP(寫保護(hù)):提供硬件數(shù)據(jù)保護(hù)A2、A1、A0(器件地址):當(dāng)總線上有多片AT24CXX時,地址信號用于器件的選擇。主設(shè)備發(fā)出的地址字節(jié)必須與地址信號的硬件連接匹配自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用AT24CXX地址格式器件容量地址格式A2A1A0引腳連接位字節(jié)AT24C011K1281010A2A1A0R/W#接高或低電平AT24C022K2561010A2A1A0R/W#接高或低電平AT24C044K5120100A2A1P0R/W#A2A1接高或低電平AT24C088K1K1001A2P1P0R/W#A2接高或低電平AT24C1616K2K1010P2P1P0R/W#無連接自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用AT24CXX時序自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C時序的子程序(啟動)SCL BIT P1.0 ;I2C信號引腳SDA BIT P1.1I2C_INI: ;總線狀態(tài)初始化

SETB SCL ;SCL和SDA都是高電平

SETB SDA CALL I2C_DELAY ;延時

RETI2C_START: ;發(fā)送起始信號S SETB SDA ;SCL和SDA都是高電平

SETB SCL CALL I2C_DELAY CLR SDA ;SDA變低

CALL I2C_DELAY RET自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C時序的子程序(發(fā)送1字節(jié))I2C_SEND_8B: ;在I2C總線上發(fā)送8位的數(shù)據(jù)或地址字節(jié)

PUSH B ;欲發(fā)送的字節(jié)在A中

MOV B,#8 ;共8位,循環(huán)8次I2C_SNEXT_B: ;循環(huán)體

CLR SCL ;SCL變低,SDA上數(shù)據(jù)可以變化

RLC A ;最高位移入C MOV SDA,C ;送SDA線

CALL I2C_DELAY ;等待穩(wěn)定

SETB SCL ;SCL變高,從設(shè)備可以取走數(shù)據(jù)

CALL I2C_DELAY ;等待從設(shè)備取走

DJNZ B,I2C_SNEXT_B ;循環(huán)

POP B ;恢復(fù)B RET自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C時序的子程序(接收1字節(jié))I2C_REC_8B: ;接收I2C總線上的8位數(shù)據(jù)

SETB SDA ;置SDA為輸入

PUSH B ;要用到B寄存器

MOV B,#8 ;共8位,循環(huán)8次I2C_RNEXT_B: ;循環(huán)體

CLR SCL ;SCL變低,SDA上數(shù)據(jù)可以變化

CALL I2C_DELAY ;等待從設(shè)備將數(shù)據(jù)送出

SETB SCL ;通知從設(shè)備,數(shù)據(jù)不可變化

CALL I2C_DELAY ;等待數(shù)據(jù)穩(wěn)定

MOV C,SDA ;接收

RLC A ;移入A DJNZ B,I2C_RNEXT_B ;循環(huán)

POP B ;恢復(fù)B RET自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C時序的子程序(應(yīng)答信號)I2C_WAIT_ACK: ;接收應(yīng)答信號A CLR SCL ;SCL變低,SDA上數(shù)據(jù)可以變化

SETB SDA ;置SDA為輸入

CALL I2C_DELAY ;等待從設(shè)備將A送出

SETB SCL ;通知從設(shè)備,數(shù)據(jù)不可變化

MOV C,SDA ;接收

CLR SCL ;SDA上數(shù)據(jù)可以變化

RETI2C_NACK: ;發(fā)送非應(yīng)答信號NA CLR SCL ;SCL變低,SDA上數(shù)據(jù)可以變化

SETB SDA ;送出1 CALL I2C_DELAY ;等待數(shù)據(jù)穩(wěn)定

SETB SCL ;SCL變高,從設(shè)備可以取走數(shù)據(jù)

CALL I2C_DELAY ;等待從設(shè)備取走

RET自強(qiáng)自立求知求真單片機(jī)原理及應(yīng)用I2C時序的子程序(停止信號)I2C_STOP: ;發(fā)送停止

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論