| 
  |||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe  | 
  
能否再次請(qǐng)教smileage、computer00等諸位大師? | 
  
| 作者:風(fēng)... 欄目:單片機(jī) | 
上次發(fā)了這個(gè)帖子:幾天前發(fā)的帖子,得到兩位大師以及另兩位大師的指點(diǎn),事后又仔細(xì)看了keil的文檔,現(xiàn)在sbit基本知道它是干啥的了,因?yàn)樵趓eg52.h中,沒有具體定義P1、P2、P3、P4的具體位,所以如果要單獨(dú)操作一個(gè)端口,就需要我們自己定義位地址,是這樣的道理吧? 可bit……還是沒弄懂,比如下面的代碼: uchar bdata TEMP = 0x33; //按smileage說的,定義到了bdata區(qū) bit x0 = TEMP^0; bit x1 = TEMP^1; bit x2 = TEMP^2; bit x3 = TEMP^3; bit x4 = TEMP^4; bit x5 = TEMP^5; bit x6 = TEMP^6; bit x7 = TEMP^7; //操作仍然不成功,這難道不是定義時(shí)取位??? 按說上面的代碼似乎沒什么錯(cuò)誤,可用keil一看,運(yùn)行結(jié)果是x0到x7全部為“1”,天哪,這又是怎么了? 智商太低,大師多多指點(diǎn)啊!鞠躬啦!  * - 本貼最后修改時(shí)間:2006-6-12 11:44:45 修改者:風(fēng)...  | 
  
| 2樓: | >>參與討論 | 
| 作者: smileage 于 2006/6/12 13:09:00 發(fā)布:
         應(yīng)該是這樣子 產(chǎn)生上面的現(xiàn)象原因應(yīng)該是bit不具有sbit的如下功能(這個(gè)我上次沒提到) 定義 位變量名=特殊功能寄存器名^位位置 位變量名=字節(jié)地址^位位置 所以定義bit x0 = TEMP^0;不是表示字節(jié)地址^位位置的意思 而是將TEMP^0異或的值賦給x0(非0即為1) 你可以將TEMP的值賦0x00試試,那樣的結(jié)果是 0x = 0; 其他的都為1  | 
  |
| 3樓: | >>參與討論 | 
| 作者: computer00 于 2006/6/12 14:04:00 發(fā)布:
         這里應(yīng)該用sbit sbit x0 = TEMP^0; 另外,keil有一個(gè) at89x52.h,里面有定義P1_0等等,我更喜歡用這個(gè)頭文件。 所有的頭文件都放在/keil/c51/inc目錄里,你可以進(jìn)去慢慢看,看看有些什么好東東在里面~~~~  | 
  |
  | 
    
 
  | 
  
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 | 
Copyright © 1998-2006 www.udpf.com.cn 浙ICP證030469號(hào)  |