freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

串口通信實驗報告范文(參考版)

2024-10-23 04:56本頁面
  

【正文】 這樣使得接收設(shè)備能夠知道一個位的狀態(tài),有機會判斷是否有噪聲干擾了通信或者是否傳輸和接收數(shù)據(jù)是否不同步。如果是奇校驗,校驗位位1,這樣就有3個邏輯高位。對于偶和奇校驗的情況,串口會設(shè)置校驗位(數(shù)據(jù)位后面的一位),用一個值確保傳輸?shù)臄?shù)據(jù)有偶個或者奇?zhèn)€邏輯高位。有四種檢錯方式:偶、奇、高和低。適用于停止位的位數(shù)越多,不同時鐘同步的容忍程度越大,但是數(shù)據(jù)傳輸率同時也越慢。由于數(shù)據(jù)是在傳輸線上定時的,并且每一個設(shè)備有其自己的時鐘,很可能在通信中兩臺設(shè)備間出現(xiàn)了小小的不同步。停止位:用于表示單個包的最后一位。每個包是指一個字節(jié),包括開始/停止位,數(shù)據(jù)位和奇偶校驗位。擴展的ASCII碼是0~255(8位)。如何設(shè)置取決于你想傳送的信息。數(shù)據(jù)位:這是衡量通信中實際數(shù)據(jù)位的參數(shù)。波特率可以遠遠大于這些值,但是波特率和距離成反比。這意味著串口通信在數(shù)據(jù)線上的采樣率為4800Hz。例如300波特表示每秒鐘發(fā)送300個bit。對于兩個進行通行的端口,這些參數(shù)必須匹配:波特率:這是一個衡量通信速度的參數(shù)。其他線用于握手,但是不是必須的。通信使用3根線完成:(1)地線,(2)發(fā)送,(3)接收。比如IEEE488定義并行通行狀態(tài)時,規(guī)定設(shè)備線總常不得超過20米,并且任意兩個設(shè)備間的長度不得超過2米;而對于串口而言,長度可達1200米。盡管比按字節(jié)(byte)的并行通信慢,但是串口可以在使用一根線發(fā)送數(shù)據(jù)的同時用另一根線接收數(shù)據(jù)。同時,串口通信協(xié)議也可以用于獲取遠程采集設(shè)備的數(shù)據(jù)。大多數(shù)計算機包含兩個基于RS232的串口。SCK=1。0x80)。i 8。SCK=0。//將SO上的數(shù)據(jù)通過按位“或“運算存入 x} return(x)。//拉高SCKSCK=0。i 8。//儲存從X5045中讀出的數(shù)據(jù)SCK=1。讀代碼:unsigned char ReadCurrent(void){unsigned char i。上升沿到來的時候,sdo上的電平將被發(fā)送到從設(shè)備的寄存器中。SPI是一個環(huán)形總線結(jié)構(gòu),由ss(cs)、sck、sdi、sdo構(gòu)成,其時序其實很簡單,主要是在sck的控制下,兩個雙向移位寄存器進行數(shù)據(jù)交換。//延時3us,兩個讀時序之間必須有大于1us的恢復(fù)期}return(dat)。//如果讀到的數(shù)據(jù)是0,則將0存入dat//將單片機檢測到的電平信號DQ存入r[i]for(time=0。//延時約6us,使主機在15us內(nèi)采樣if(DQ==1)dat|=0x80。//將數(shù)據(jù)線“人為”拉高,為單片機檢測DS18B20的輸出電平作準備for(time=0。_nop_()。//等待一個機器周期DQ = 0。i{DQ =1。unsigned char dat。下圖給出讀時隙(包括0或1)時序圖中黑色實線代表系統(tǒng)主機拉低總線,灰色實線代表總局拉低總線,而黑色的虛線則代表上拉電阻總線拉高。當發(fā)送0時,從機在讀時隙結(jié)束后釋放總線,由上拉電阻將總線拉回至空閑高電平狀態(tài)。在主機發(fā)出讀時隙后,單總線器件才開始在總線上發(fā)送1或0。所有讀時隙至少需要60us,且在兩次獨立的讀時隙之間至少需要1us恢復(fù)時間。//稍作延時,給硬件一點反應(yīng)時間 }對于讀時隙,單總線器件僅在主機發(fā)出讀時隙時,才向主機傳輸數(shù)據(jù)。//將dat中的各二進制位數(shù)據(jù)右移1位}for(time=0。time。//延時約30us,DS18B20在拉低后的約15~60us期間從數(shù)據(jù)線上采樣DQ=1。//利用與運算取出要寫的某位二進制數(shù)據(jù),//并將其送到數(shù)據(jù)線上等待DS18B20采樣for(time=0。//將數(shù)據(jù)線從高拉低時即啟動寫時序DQ=datamp。// 先將數(shù)據(jù)線拉高_nop_()。for(i=0。下圖為寫時隙(包括1和0)時序上圖中黑色實線代表系統(tǒng)主機拉低總線,黑色虛線代表上拉電阻將總線拉高。在寫時隙開始后15~60us期間,單總線器件采樣總電平狀態(tài)。兩種寫時隙均起始于主機拉低數(shù)據(jù)總線。主機采用寫1時隙向從機寫入1,而寫0時隙向從機寫入0。return(flag)。//讓單片機檢測是否輸出了存在脈沖(DQ=0表示存在)for(time=0。time。//以向DS18B20發(fā)出一持續(xù)480~960us的低電平復(fù)位脈沖DQ = 1。//再將數(shù)據(jù)線從高拉低,要求保持480~960us for(time=0。time。//儲存DS18B20是否存在的標志,flag=0,表示存在;flag=1,表示不存在DQ = 1。//寫入指定地址return(ReadCurrent())。//開始數(shù)據(jù)傳遞WriteCurrent(OP_WRITE)。//停止數(shù)據(jù)傳遞return x。//選擇要操作的AT24Cxx芯片,并告知要讀其數(shù)據(jù)x=ReadData()。start()。//停止數(shù)據(jù)傳遞delaynms(4)。//寫入指定地址WriteCurrent(dat)。//開始數(shù)據(jù)傳遞WriteCurrent(OP_WRITE)。//在SCL的下降沿讀出數(shù)據(jù)} return(x)。//SCL置為高電平x//將x中的各二進位向左移一位x|=(unsigned char)SDA。i 8。unsigned char x。//SCL為低電平時,SDA上數(shù)據(jù)才允許變化(即允許以后的數(shù)據(jù)傳遞)return ack_bit。//等待一個機器周期ack_bit = SDA。//等待一個機器周期_nop_()。//根據(jù)上述規(guī)定,SCL應(yīng)為高電平_nop_()。//等待一個機器周期_nop_()。//將SCL重新置為低電平,以在SCL線形成傳送數(shù)據(jù)所需的8個脈沖y //將y中的各二進位向左移一位} SDA = 1。//等待一個機器周期_nop_()。//等待一個機器周期SCL = 1。0x80)。i 8。bit ack_bit。//SDA的上升沿被認為是結(jié)束信號 }2,數(shù)據(jù)格式(數(shù)據(jù)輸入)在IIC總線開始信號后,送出的第一個字節(jié)數(shù)據(jù)是用來選擇器件地址和數(shù)據(jù)方向的,其格式為從器件收到地址型號后與自己的地址比較,一致則此器件就是主器件要找的器件,并返回
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1