發新話題
打印

請教有關C8051F040 P4~P7 使用方式

請教有關C8051F040 P4~P7 使用方式

請教一下有關於P4~P7 IO的使用問題~

小弟目前在測試C8051F040的IO腳位
因為P0~P3可規劃給一些其他的功能使用(UR,INT,TimerINT,ADC2等等)
所以想把P4~P7拿來當作一般IO來使用
可是發現使用相同的設定,還是無法控制P4~P7的腳位(P0~P3沒有問題)

小弟是先宣告 1.6跟7.6
sbit LED1    = P1^6;
sbit LED2    = P7^6;

然後Port設定

void PORT_Init (void)
{
   char SFRPAGE_SAVE = SFRPAGE;        
   SFRPAGE = CONFIG_PAGE;              
   XBR0     = 0x04;                    
   XBR1     = 0x00;
   XBR2     = 0x40;                    

   P0MDOUT |= 0x01;                    
   P1MDOUT |= 0x40;                    
   P7MDOUT |= 0x40;
   SFRPAGE = SFRPAGE_SAVE;            
}

接著用UART傳Data給MCU
如果MCU確認Data正確就將
LED1 = 1;
LED2 = 1;

結果:LED1(1.6腳)亮了 , LED2(7.6腳)沒亮

問題:為什麼相同的設定(1.6跟7.6皆設定為推挽放大),卻有不同的結果?  
     所以小弟在想應該是P4~P7如果要當作一般IO腳應該有其他的設定。

小弟想把AT89S52上的C code移植到C8051F040,可是P4~P7使用這邊卡住了,
如果版主或其他知道問題點的朋友可以提點一下小弟,謝謝你 ^^

TOP

TOP

還是沒有辦法...

C8051F040的P4的位址為C8
P4~7都是0 or 8結尾的
所以定址沒有問題,編譯也可以過,只是不知道為什麼無法顯示出來
我再找看看可能是自己有什麼基本的地方沒有注意到

謝謝版主的留言 ^_^

TOP

你可能還需要注意
SFR Page

P0-P3 是all page
P4-P7 是 F

TOP

SO GA...

版大一語驚醒夢中人 ~ 我終於發現問題在哪邊了
我終於發現問題在哪邊了,好丟臉  >///<

設定輸出方式"P7MDOUT"的時候有切換到F頁,
可是控制高低態切換的時候,卻忘了"P7"也在F頁...

在這邊謝謝版大的好心~ ^_^

TOP

發新話題