浓毛老太交欧美老妇热爱乱,蜜臀性色av免费,妺妺窝人体色www看美女,久久久久久久久久久大尺度免费视频,麻豆人妻无码性色av专区

位置:51電子網(wǎng) » 技術資料 » 單 片 機

用AT89S51單片機多路開關狀態(tài)指示

發(fā)布時間:2008/8/14 0:00:00 訪問次數(shù):700

  1. 實驗任務

  at89s51單片機的p1.0-p1.3接四個發(fā)光二極管l1-l4,p1.4-p1.7接了四個開關k1-k4,編程將開關的狀態(tài)反映到發(fā)光二極管上。(開關閉合,對應的燈亮,開關斷開,對應的燈滅)。

  2. 系統(tǒng)板上硬件連線

  1. 把“單片機系統(tǒng)”區(qū)域中的p1.0-p1.3用導線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的l1-l4端口上;

  2. 把“單片機系統(tǒng)”區(qū)域中的p1.4-p1.7用導線連接到“四路撥動開關”區(qū)域中的k1-k4端口上;

  4. 程序設計內(nèi)容

  1. 開關狀態(tài)檢測

  對于開關狀態(tài)檢測,相對單片機來說,是輸入關系,我們可輪流檢測每個開關狀態(tài),根據(jù)每個開關的狀態(tài)讓相應的發(fā)光二極管指示,可以采用jb p1.x,rel或jnb p1.x,rel指令來完成;也可以一次性檢測四路開關狀態(tài),然后讓其指示,可以采用mov a,p1指令一次把p1端口的狀態(tài)全部讀入,然后取高4位的狀態(tài)來指示。

  2. 輸出控制

  根據(jù)開關的狀態(tài),由發(fā)光二極管l1-l4來指示,我們可以用setb p1.x和clr p1.x指令來完成,也可以采用mov p1,#1111xxxxb方法一次指示。

  5. 程序框圖
                   

  6. 方法一(匯編源程序)


  org 00h


  start: mov a,p1


  anl a,#0f0h


  rr a


  rr a

  rr a

  rr a

  xor a,#0f0h

  mov p1,a

  sjmp start

  end

  7. 方法一(c語言源程序)

  #include <at89x51.h>

  unsigned char temp;

  void main(void)


  {

  while(1)


  {


  temp=p1>>4;


  temp=temp | 0xf0;


  p1=temp;


  }


  }


  8. 方法二(匯編源程序)


  org 00h


  start: jb p1.4,next1


  clr p1.0


  sjmp nex1


  next1: setb p1.0


  nex1: jb p1.5,next2


  clr p1.1


  sjmp nex2

  
  next2: setb p1.1


  nex2: jb p1.6,next3


  clr p1.2


  sjmp nex3


  next3: setb p1.2


  nex3: jb p1.7,next4


  clr p1.3


  sjmp nex4


  next4: setb p1.3


  nex4: sjmp start


  end


  9. 方法二(c語言源程序)


  #include <at89x51.h>

  void main(void)


  {


  while(1)


  {


  if(p1_4==0)


  {


  p1_0=0;


  }


  else


  {


  p1_0=1;


  }


  if(p1_5==0)


  {


  p1_1=0;


  }


  else


  {


  p1_1=1;


  }


  if(p1_6==0)


  {


  p1_2=0;


  }


  else


  {


  p1_2=1;


  }


  if(p1_7==0)


  {


  p1_3=0;


  }


  else


  {


  p1_3=1;


  }


  }


  }



  1. 實驗任務

  at89s51單片機的p1.0-p1.3接四個發(fā)光二極管l1-l4,p1.4-p1.7接了四個開關k1-k4,編程將開關的狀態(tài)反映到發(fā)光二極管上。(開關閉合,對應的燈亮,開關斷開,對應的燈滅)。

 。玻 系統(tǒng)板上硬件連線

  1. 把“單片機系統(tǒng)”區(qū)域中的p1.0-p1.3用導線連接到“八路發(fā)光二極管指示模塊”區(qū)域中的l1-l4端口上;

  2. 把“單片機系統(tǒng)”區(qū)域中的p1.4-p1.7用導線連接到“四路撥動開關”區(qū)域中的k1-k4端口上;

  4. 程序設計內(nèi)容

  1. 開關狀態(tài)檢測

  對于開關狀態(tài)檢測,相對單片機來說,是輸入關系,我們可輪流檢測每個開關狀態(tài),根據(jù)每個開關的狀態(tài)讓相應的發(fā)光二極管指示,可以采用jb p1.x,rel或jnb p1.x,rel指令來完成;也可以一次性檢測四路開關狀態(tài),然后讓其指示,可以采用mov a,p1指令一次把p1端口的狀態(tài)全部讀入,然后取高4位的狀態(tài)來指示。

  2. 輸出控制

  根據(jù)開關的狀態(tài),由發(fā)光二極管l1-l4來指示,我們可以用setb p1.x和clr p1.x指令來完成,也可以采用mov p1,#1111xxxxb方法一次指示。

  5. 程序框圖
                   

  6. 方法一(匯編源程序)


  org 00h


  start: mov a,p1


  anl a,#0f0h


  rr a


  rr a

  rr a

  rr a

  xor a,#0f0h

  mov p1,a

  sjmp start

  end

  7. 方法一(c語言源程序)

  #include <at89x51.h>

  unsigned char temp;

  void main(void)


  {

  while(1)


  {


  temp=p1>>4;


  temp=temp | 0xf0;


  p1=temp;


  }


  }


  8. 方法二(匯編源程序)


  org 00h


  start: jb p1.4,next1


  clr p1.0


  sjmp nex1


  next1: setb p1.0


  nex1: jb p1.5,next2


  clr p1.1


  sjmp nex2

  
  next2: setb p1.1


  nex2: jb p1.6,next3


  clr p1.2


  sjmp nex3


  next3: setb p1.2


  nex3: jb p1.7,next4


  clr p1.3


  sjmp nex4


  next4: setb p1.3


  nex4: sjmp start


  end


  9. 方法二(c語言源程序)


  #include <at89x51.h>

  void main(void)


  {


  while(1)


  {


  if(p1_4==0)


  {


  p1_0=0;


  }


  else


  {


  p1_0=1;


  }


  if(p1_5==0)


  {


  p1_1=0;


  }


  else


  {


  p1_1=1;


  }


  if(p1_6==0)


  {


  p1_2=0;


  }


  else


  {


  p1_2=1;


  }


  if(p1_7==0)


  {


  p1_3=0;


  }


  else


  {


  p1_3=1;


  }


  }


  }



相關IC型號

熱門點擊

 

推薦技術資料

硬盤式MP3播放器終級改
    一次偶然的機會我結(jié)識了NE0 2511,那是一個遠方的... [詳細]
版權所有:51dzw.COM
深圳服務熱線:13751165337  13692101218
粵ICP備09112631號-6(miitbeian.gov.cn)
公網(wǎng)安備44030402000607
深圳市碧威特網(wǎng)絡技術有限公司
付款方式


 復制成功!