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

技術(shù)熱線: 4007-888-234

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

提供開(kāi)發(fā)工具、應(yīng)用測(cè)試 完善的開(kāi)發(fā)代碼案例庫(kù)分享

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

技術(shù)支持

軟件模擬SPI串口(匯編和PICC編寫)

更新時(shí)間: 2019-03-26

軟件模擬SPI串口(匯編和PICC編寫)

pic低檔單片機(jī)中,多沒(méi)有SPI串口,在與外界串口器件通訊時(shí)帶來(lái)麻煩,下面給出軟件模擬SPI串口的程序:

匯編:

;*********************************************************** output movwf outdb clrf rxdata movlw 0x09 movwf i again decfsz i,1 goto dbtran return dbtran movlw 0x80 andwf outdb,0 btfsc STATUS,2 goto daout bsf PORTC,5 datan rlf outdb,1 movlw 0x02 movwf T1 call delay bsf PORTC,3 btfss PORTC,4 goto datas bsf STATUS,0 datat rlf rxdata,1 movlw 0x02 movwf T1 call delay bcf PORTC,3 goto again daout bcf PORTC,5 goto datan datas bcf STATUS,0 goto datat ;************************************************************ delay decfsz T1,1 goto delay return ;***********************************************************

這是一個(gè)SPI串口調(diào)用子程序,其中outdb為發(fā)送數(shù)據(jù),rxdata為接受來(lái)的數(shù)據(jù),此程序在與外部EEPROM通訊中,經(jīng)過(guò)檢驗(yàn)沒(méi)問(wèn)題。

piCC

unsigned char RW_SPI(unsigned char val){ unsigned char BitCounter; for (BitCounter=8;BitCounter!=0;BitCounter--){ CLK=0; //write DI=0; if(val&0x80) DI=1; val<<=1;

CLK=1; //read if(DO) val|=1;

} CLK=0; return val; }

此函數(shù)把SPI的讀寫功能集成在一塊,傳遞的val既是向SPI寫的數(shù)據(jù),也是從SPI讀取的數(shù)據(jù),只需要在執(zhí)行讀或?qū)懼鞍?/span>MCUI/O腳設(shè)置成相應(yīng)的輸出或輸入即可。(因?yàn)樵诖蟛糠謶?yīng)用中,是把SPIDIDO相連并用MCU的一個(gè)IO口來(lái)讀寫)。

調(diào)用示例:

#define NULL 0

SETIO=OUTPUT; CS=0; RW_SPI(0xab); CS=1;

//SPI0xab數(shù)據(jù)。

CS=0; SETIO=INPUT;



404
返回首頁(yè) |  返回上一頁(yè)
澎湖县| 东海县| 龙陵县| 彭州市| 安义县| 古田县| 荃湾区| 遵义市| 双城市| 安吉县| 九江县| 嵊泗县| 武汉市| 北宁市| 山东| 台东市| 九寨沟县| 唐海县| 大安市| 河津市| 大姚县| 庆云县| 云和县| 多伦县| 西乌珠穆沁旗| 仁怀市| 大石桥市| 黄冈市| 宁化县| 秀山| 东莞市| 福州市| 竹山县| 深水埗区| 枣庄市| 偃师市| 永德县| 朝阳市| 雷波县| 贞丰县| 古蔺县|