中文字幕无码不卡一区二区三区_少妇被又大又粗又爽毛片久久黑人_91精品国产在热久久无毒不卡_久久久久久亚洲综合网站

技術(shù)熱線: 4007-888-234
設(shè)計開發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應用測試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導入到強大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機資訊,行業(yè)消息以及公司新聞動態(tài)

一個非常簡單但你很難搞懂的C程序

更新時間: 2019-03-26
閱讀量:2056

以下是問題的所在。首先說明的是硬件和寄存器的設(shè)定完全正確。我把有問題的程序規(guī)納出來,并且以我先前用51單片機模擬 i2c 能夠運行的程序做了對比。SPII2C都是串行的接口。其原理自己的看書了。問題就出現(xiàn)在小小的移位上。下面把其中最容易忽略的地方列出來給大家一起討論。

大家找出下面兩個程序的本質(zhì)區(qū)別在什么地方。

main() { char data; char i; data = 0x55;//01010101; for(i = 0; i < 8; i++) { RB4 = (bit)(data & 0x80);//目的是讓RB4口移位輸出01010101; data <<= 1;//輸出下一位。 } }

和下面的程序。

main() { char data; char i; data = 0x55; for(i = 0; i < 8; i++) { if(data & 0x80)//完成讓RB4口移位輸出01010101; { RB4 = 1; } else { RB4 = 0; } data <<= 1; //輸出下一位。 } }

以上兩個程序其中上面那個是用在51單片機模擬I2C已經(jīng)可以運行的程序了,一樣是移位的程序卻放到PIC里面就不能運行了。但改成下面那個程序在PIC就可以用。有人會說那下面那個程序放到51里會怎樣?我試過一樣沒問題。也就是51兩個程序都可以用,而PIC卻只能用下面的那個,這是我用做SPI的情況,至于其他的編程我就沒試過了。

但是按C語言的邏輯是完全看不出來他們的區(qū)別,至于硬件,51口和PIC的功能也一樣,不過51的是NPNOTP輸出,PIC的是MOS推挽輸出。然后PIC需要定義該口的輸入和輸出寄存器,其他的就沒多大差別了。輸出時后51PIC一樣,但輸入時51可以直接輸出高電平,但PIC需要外部上拉電阻拉高。

 



辽阳市| 察雅县| 余江县| 嘉荫县| 克拉玛依市| 韶山市| 榆林市| 于田县| 太和县| 江永县| 佛教| 巴里| 德钦县| 扎兰屯市| 民乐县| 泗阳县| 台州市| 高青县| 泰宁县| 文昌市| 睢宁县| 常德市| 东源县| 香格里拉县| 祁连县| 大兴区| 乌什县| 定远县| 五指山市| 灵寿县| 永德县| 淮南市| 蕉岭县| 黑山县| 盘锦市| 九龙城区| 汪清县| 加查县| 兴城市| 汨罗市| 宁乡县|