最新免费av在线观看,亚洲综合一区成人在线,中文字幕精品无码一区二区三区,中文人妻av高清一区二区,中文字幕乱偷无码av先锋

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(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

C語(yǔ)言編譯過(guò)程P0口的問(wèn)題,求大俠指教

作者:小小公民 欄目:單片機(jī)
C語(yǔ)言編譯過(guò)程P0口的問(wèn)題,求大俠指教
//2006.12.8     
//檢測(cè)端口P0各管腳的電平
//問(wèn)題:在調(diào)試狀態(tài)下,IF語(yǔ)句執(zhí)行混亂
//對(duì)條件不進(jìn)行判斷就隨意執(zhí)行。
//注:僅僅是在軟件中調(diào)試,所以應(yīng)該不上上拉電阻的問(wèn)題。
//換做其它端口運(yùn)行正常。
//現(xiàn)在還是很迷惑,呵呵,苦惱ing,一定要解決!
#include<reg51.h>
#include<stdio.h>
#define    high    1
#define    low     0
#define    port00  P0_0
#define    port01  P0_1
#define    port02  P0_2
#define    port03  P0_3
#define    port04  P0_4
sbit       P0_0=P0^0;
sbit       P0_1=P0^1;
sbit       P0_2=P0^2;
sbit       P0_3=P0^3;
sbit       P0_4=P0^4;
void main()
{
int a1,b1;
port00=low;
port01=low;
port02=high;
port03=low;
port04=low;
for(;;)
{
  a1=0;
  b1=0;
  if(port00==low)
  {
   a1=2;
   b1=3;
   port00=high;//此處已被賦值為1,但在if(port00==low)仍然執(zhí)行a1=2;
                                                           //b1=3;                                                          //port00=high;
  }
  else if(port01==low)
  {
   a1=3;
   b1=3;
   port01=high;
  }
  else if(port02==high)
  {
   a1=4;
   b1=4;
   port02=low;
  }
  else if(port03==low)
  {
   a1=5;
   b1=5;
   port03=high;
  }
  else if(port04==low)
  {
   a1=6;
   b1=6;
   port04=high;
  }
  else
  continue;
}
}

   



* - 本貼最后修改時(shí)間:2006-12-8 17:36:08 修改者:小小公民

2樓: >>參與討論
tjjack
re
#define    port00  P0_0
#define    port01  P0_1
#define    port02  P0_2
#define    port03  P0_3
#define    port04  P0_4
sbit       P0_0=P0^0;
sbit       P0_1=P0^1;
sbit       P0_2=P0^2;
sbit       P0_3=P0^3;
sbit       P0_4=P0^4;

不對(duì)

3樓: >>參與討論
小小公民
呵呵,那么應(yīng)該怎么改寫
只這樣寫仍然會(huì)出現(xiàn)那種情況。
sbit       P0_0=P0^0;
sbit       P0_1=P0^1;
sbit       P0_2=P0^2;
sbit       P0_3=P0^3;
sbit       P0_4=P0^4;


4樓: >>參與討論
lixun00
8951系列的P0口是當(dāng)作總線用的,使勇士要加上拉電阻,其他的...
為準(zhǔn)雙向口,你可以參考"口"電路

5樓: >>參與討論
wyh820826
你想實(shí)現(xiàn)什么功能
 
6樓: >>參與討論
northerns
用什么調(diào)試的?
 
7樓: >>參與討論
AIRWILL
就是上拉問(wèn)題啦
 
8樓: >>參與討論
小小公民
不是上拉電阻的問(wèn)題
1.用的是Keil C51 7.09 評(píng)估版 ;實(shí)現(xiàn)鍵盤功能;
2.不是上拉電阻的問(wèn)題,因?yàn)閮H僅只是在軟件中實(shí)驗(yàn),將P0口換為P1,P2,P3都可以在軟件中正常調(diào)試;
3.在DEBUG調(diào)試模式下,觀察I/O口控制窗口:在語(yǔ)句內(nèi)向P0口寫入數(shù)據(jù)時(shí),只能改變上面一行數(shù)據(jù)。
去圖書館也沒(méi)找到原因,困惑ing.




9樓: >>參與討論
小小公民
是不是需要在軟件中有什么特殊設(shè)置?
 
10樓: >>參與討論
小小公民
這是編譯后的程序
C:0x0800    C280     CLR      P0_0(0x80.0)
    24:  port01=low;
C:0x0802    C281     CLR      P0_1(0x80.1)
    25:  port12=high;
C:0x0804    D292     SETB     P1_2(0x90.2)
    26:  port13=low;
C:0x0806    C293     CLR      P1_3(0x90.3)
    27:  port14=low;
C:0x0808    C294     CLR      P1_4(0x90.4)
    28:  for(;;)
    29:  {
    30:   if(port00==low)
C:0x080A    208004   JB       P0_0(0x80.0),C:0811
    31:   {
    32:    port00=high;//此處已被賦值為1,但在if(port00==low)仍然執(zhí)行a1=2;
    33:                                                            //b1=3;                                                          //port00=high;
C:0x080D    D280     SETB     P0_0(0x80.0)
    34:   }
C:0x080F    80F9     SJMP     C:080A
    35:   else if(port01==low)
C:0x0811    208104   JB       P0_1(0x80.1),C:0818
    36:   {
    37:    port01=high;
C:0x0814    D281     SETB     P0_1(0x80.1)
    38:   }
C:0x0816    80F2     SJMP     C:080A
    39:   else if(port12==high)
C:0x0818    309204   JNB      P1_2(0x90.2),C:081F
    40:   {
    41:    port12=low;
C:0x081B    C292     CLR      P1_2(0x90.2)
    42:   }
C:0x081D    80EB     SJMP     C:080A
    43:   else if(port13==low)
C:0x081F    209304   JB       P1_3(0x90.3),C:0826
    44:   {
    45:    port13=high;
C:0x0822    D293     SETB     P1_3(0x90.3)
    46:   }
C:0x0824    80E4     SJMP     C:080A
    47:   else if(port14==low)
C:0x0826    2094E1   JB       P1_4(0x90.4),C:080A
    48:   {
    49:    port14=high;
C:0x0829    D294     SETB     P1_4(0x90.4)
    50:   }
C:0x082B    80DD     SJMP     C:080A
    99:                 MOV     R0,#IDATALEN - 1
C:0x082D    787F     MOV      R0,#0x7F
   100:                 CLR     A
C:0x082F    E4       CLR      A
   101: IDATALOOP:      MOV     @R0,A
C:0x0830    F6       MOV      @R0,A
   102:                 DJNZ    R0,IDATALOOP
C:0x0831    D8FD     DJNZ     R0,IDATALOOP(C:0830)
   151:                 MOV     SP,#?STACK-1
   152: ; This code is required if you use L51_BANK.A51 with Banking Mode 4
   153: ; EXTRN CODE (?B_SWITCH0)
   154: ;               CALL    ?B_SWITCH0      ; init bank mechanism to code bank 0
C:0x0833    758107   MOV      SP(0x81),#0x07
   155:                 LJMP    ?C_START
C:0x0836    020800   LJMP     main(C:0800)

11樓: >>參與討論
沈老
http://www.zsmcu.com/system/ViewInfo.asp?id=300
參見(jiàn)http://www.zsmcu.com/system/ViewInfo.asp?id=300

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
求救﹗
字模軟件
請(qǐng)教485通訊中下位機(jī)自動(dòng)編號(hào)的問(wèn)題
LCD ESD實(shí)驗(yàn)不過(guò)~~大家來(lái)分析
人的 MCU 一生!【轉(zhuǎn)】
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 udpf.com.cn 浙ICP證030469號(hào)