| 
  |||||||||||
| 技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe  | 
  
這樣的語句一直無法實現(xiàn),不知道誰有什么高招? | 
  
| 作者:ee168 欄目:單片機 | 
RRC A MOV P0.0 C 用C語言怎么寫,當然,逐步判斷也是可行的 if acc&0x80 p0.0 多少多少,然后acc>>1,怎么怎么.....,感覺這樣慢了一點 誰有什么高招啊,指點指點啊  | 
  
| 2樓: | >>參與討論 | 
| 作者: ynkmsj 于 2006/7/14 13:58:00 發(fā)布:
         看樣子你是想把一個字節(jié)的數(shù)據(jù)8次移到端口上,是不是類似于編IIC的程序,我是定義一個bdata,再定義bdata各個位,然后依次送端口,程序看來長些,可是效率很高的。  | 
  |
| 3樓: | >>參與討論 | 
| 作者: ee168 于 2006/7/14 14:49:00 發(fā)布:
         是啊,是啊 不光是I2C,SPI,還有很多串口元件都需要 我想建立一個類似于 _iril_()的子程序了 樓上的方法我還有點費解,能把程序貼出來嗎?各個位。。。怎么調(diào)用啊  | 
  |
| 4樓: | >>參與討論 | 
| 作者: ynkmsj 于 2006/7/14 23:28:00 發(fā)布:
         希望我們大家都把發(fā)貼主體確定明確些,其實你的主題是:“什么方法可以把字節(jié)快速移到端口?”還有你說的逐步判斷也不確切,應該是逐步執(zhí)行。 許多書上介紹字節(jié)移動到端口,是用循環(huán)程序把字節(jié)移動到位寄存器C里,然后通過C移動到端口,表面上看,程序很短,可是效率太低,對于I2C無所謂,I2C速度很慢,浪費些時間問題不大,但是,SPI或者一些移位寄存器的總線速度達5M以上,這樣的編程CPU應用率太低。 51單片機里有位尋址區(qū),記得是20H-2FH共128個位,20H對應的位地址是00-07,匯編把字節(jié)快速移到端口上的方法如下: 把ACC的內(nèi)容移到P1.0 MOV 20H , A MOV C , 00H MOV P1.0 , C MOV C , 01H MOV P1.0 , C MOV C , 02H MOV P1.0 , C ......................... 這樣的編程雖然程序長一些,但是,省去了移位和循環(huán)跳轉,效率很高的,其實ACC也可以位尋址,把ACC.0-ACC.7依次送到端口也可以,只是多個字節(jié)不適合用ACC。 C的位尋址區(qū)定義為bdata,如:把 i 移動到P1.0 uchar bdata i ; sbit i_0 = i^0 ; sbit i_1 = i^1 ; sbit i_2 = i^2 ; sbit i_3 = i^3 ; 。。。。。。。。。。 P1.0 = i^0 ; P1.0 = i^1 ; P1.0 = i^2 ; P1.0 = i^3 ; 。。。。。。。。。。。。 這樣做還有個好處,如操作CD4094或者CD4014,不按順序就可以調(diào)整字節(jié)的各個位,省去了調(diào)整字節(jié)各個位的程序。 字節(jié)數(shù)據(jù)的移動我認為就是這樣最快,用C和匯編沒有什么區(qū)別的,我實在不知道有什么更快的方法了,剩下的時鐘操作和其他操作你肯定知道。  | 
  |
| 5樓: | >>參與討論 | 
| 作者: huzimax 于 2006/7/15 0:43:00 發(fā)布:
         樓主的問題,感覺C確實不容易簡捷地實現(xiàn). ynkmsj大俠的方法是個好方法 但還是不如ASM來得簡捷,況且,RRC這樣的指令大多CPU都支持,但bdata這樣的類型除了51其它的單片機支持得不是很多,所以可移植性不高.  | 
  |
| 6樓: | >>參與討論 | 
| 作者: ee168 于 2006/7/17 8:23:00 發(fā)布:
         感謝ynkmsj一直提供的幫助,以上方法確實可行。 
 
  | 
  |
  | 
    
 
  | 
  
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 | 
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號  |