熱門: 51單片機(jī) | 24小時(shí)必答區(qū) | 單片機(jī)教程 | 單片機(jī)DIY制作 | STM32 | Cortex M3 | 模數(shù)電子 | 電子DIY制作 | 音響/功放 | 拆機(jī)樂園 | Arduino | 嵌入式OS | 程序設(shè)計(jì)
![]() |
254或256也可以, 差不多一小段時(shí)間 |
QWE4562012 發(fā)表于 2020-7-28 18:10 C我不會(huì),我只會(huì)匯編 |
Y_G_G 發(fā)表于 2020-7-28 09:01 你現(xiàn)在有自己做產(chǎn)品不 用C語言 |
問題1:這是IIC通訊中的的等待響應(yīng)程序,沒有什么是"255",你喜歡的話可以是12345或者是655353555,這個(gè)是作者自己寫,就是查詢255次,看IIC接收器有沒有響應(yīng),這并不是一個(gè)嚴(yán)謹(jǐn)?shù)某绦?br />
問題2:這個(gè)是IIC的寫入 問題3:這個(gè)是IIC的讀取 2和3原理是一樣的,但你并沒有認(rèn)真看數(shù)字電路方面的東西,這個(gè)屬于移位寄存器這一塊的 對于單片機(jī)編程,基礎(chǔ)很重要,而且基礎(chǔ)要花很多時(shí)間去學(xué),不然,你看后面的代碼基本是沒有一句你能真正理解的,你要是理解了,也就是好像明白它在說什么而已,實(shí)際上,你看了那么久的C語言,估計(jì)是一點(diǎn)用都沒有 |
QWE4562012 發(fā)表于 2020-7-27 18:19 在這段程序里,CY是移位操作時(shí),移出累加器的那個(gè)位, 這段話,對這段程序理解沒有任何幫助。 |
QWE4562012 發(fā)表于 2020-7-27 18:19 在這里,CY是移位運(yùn)算時(shí),移出累加器的那個(gè)位,進(jìn)入CY |
QWE4562012 發(fā)表于 2020-7-27 18:21 接收數(shù)據(jù) |
gbchang 發(fā)表于 2020-7-27 15:52 那K左移一位再火上0或者1 是什么目的 |
gbchang 發(fā)表于 2020-7-27 15:56 51單片機(jī)Cy位即baiPSW.7,是51單片機(jī)算數(shù)運(yùn)算du中的進(jìn)位借位標(biāo)zhi志,根據(jù)算數(shù)運(yùn)算結(jié)果由系統(tǒng)置位或復(fù)位dao,也可以編程置位或復(fù)位。置位指令為:SETB C;復(fù)位指令為CLR C。 |
其實(shí),樓主應(yīng)該問, 這個(gè) CY 是干什么的,在什么地方定義的。這樣才符合I2C提問的常規(guī)場景。 |
QWE4562012 發(fā)表于 2020-7-27 15:49 j 的值是sda,sda是一個(gè)管腳,值可能是 1 或者 0 |
土豆西紅柿 發(fā)表于 2020-7-27 15:00 這個(gè)j是多少 |
這明顯是 模擬方式發(fā)送 IIC 字節(jié)呀。在 C 語言中調(diào)用 CY 寄存器,是個(gè)有深度的想法。設(shè)計(jì)者對MCU底層匯編還是比較在行的。 |
QWE4562012 發(fā)表于 2020-7-27 12:04 k先左移1位,然后位運(yùn)算或上j的值,最后在賦值給k |
TTQ001 發(fā)表于 2020-7-26 23:53 將SDA讀取到j(luò),K右移1位并與j結(jié)合;-----------------你講下這個(gè)具體是怎么運(yùn)算的好不 |
mm201 發(fā)表于 2020-7-26 23:59 CY是寄存器的一個(gè)高位符號 給到SDA好抽象啊 |
lyxing 發(fā)表于 2020-7-26 21:40 直接發(fā)一個(gè)字節(jié)按八次發(fā)不就行了嗎?他這樣做很麻煩啊 |
mm201 發(fā)表于 2020-7-26 23:59 您好,為什么是255呢 |
第一張圖是說,SDA為高,程序自加(起延時(shí)作用)溢出。第二張圖是,寫sda高低,通過參數(shù)傳遞 第三張圖是,把每一次讀回來的一個(gè)位 或操作,理解為讀一個(gè)位。 |
首先,I2C SDA高且變量i不大于255,請保持遞增。 第二,將SDA設(shè)置為CY(高或低); 第三,將SDA讀取到j(luò),K右移1位并與j結(jié)合; |
本帖最后由 windows100 于 2020-7-26 22:37 編輯 第一張圖是說,SDA為高則總線不忙退出,或者程序自加(起延時(shí)作用)溢出。第二張圖是,寫sda高低,通過參數(shù)傳遞 第三張圖是,把每一次讀回來的一個(gè)位 或操作,理解為讀一個(gè)位。你應(yīng)該還有個(gè)for循環(huán)沒有截圖進(jìn)來。 不要追問了,我不一定按時(shí)回答 |
這個(gè)應(yīng)是模擬I2C總線傳輸數(shù)據(jù)流程,可以參考I2C總線傳輸協(xié)議。第一圖SDA拉高延時(shí),第二圖發(fā)送一位數(shù)據(jù),第三圖接收一位數(shù)據(jù)后,與K合并,完成一字節(jié)的接收。 |
位運(yùn)算 左移 |
Powered by 單片機(jī)教程網(wǎng)