電子開發網

電子開發網電子設計 | 電子開發網Rss 2.0 會員中心 會員注冊
搜索: 您現在的位置: 電子開發網 >> 電子開發 >> 單片機 >> 正文

單片機多路開關狀態指示,Switch indicator

作者:佚名    文章來源:本站原創    點擊數:    更新時間:2016/9/23

關鍵字:AT89S51,開關狀態指示

 
1.實驗任務
如圖所示,AT89S51單片機的P1.0-P1.3接四個發光二極管L1-L4,P1.4-P1.7接了四個開關K1-K4,編程將開關的狀態反映到發光二極管上。(開關閉合,對應的燈亮,開關斷開,對應的燈滅)。
2.電路原理圖
 
 
3.系統板上硬件連線
(1.       把“單片機系統”區域中的P1.0-P1.3用導線連接到“八路發光二極管指示模塊”區域中的L1-L4端口上;
(2.       把“單片機系統”區域中的P1.4-P1.7用導線連接到“四路撥動開關”區域中的K1-K4端口上;
4.  程序設計內容
(1.       開關狀態檢測
對于開關狀態檢測,相對單片機來說,是輸入關系,我們可輪流檢測每個開關狀態,根據每個開關的狀態讓相應的發光二極管指示,可以采用JB P1.X,REL或JNB P1.X,REL指令來完成;也可以一次性檢測四路開關狀態,然后讓其指示,可以采用MOVA,P1指令一次把P1端口的狀態全部讀入,然后取高4位的狀態來指示。
(2.       輸出控制
根據開關的狀態,由發光二極管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
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
 
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;
          }
    }
}
Tags:單片機,多路開關,狀態指示,AT89S51  
責任編輯:admin
請文明參與討論,禁止漫罵攻擊,不要惡意評論、違禁詞語。 昵稱:
1分 2分 3分 4分 5分

還可以輸入 200 個字
[ 查看全部 ] 網友評論
關于我們 - 聯系我們 - 廣告服務 - 友情鏈接 - 網站地圖 - 版權聲明 - 在線幫助 - 文章列表
返回頂部
刷新頁面
下到頁底
晶體管查詢
在线播放黄色片| 午夜视频体验区| 美女把尿口扒开让男人桶 | 欧美又大又粗又爽视频| 亚洲精品亚洲人成在线观看 | 午夜欧美日韩在线视频播放| 粉色视频成年免费人15次| 北条麻妃在线一区二区| 狠狠精品干练久久久无码中文字幕 | 国产亚洲美女精品久久久久| 色哟哟精品视频在线观看| 国产中文字幕免费| 精品国产AV色欲果冻传媒| 午夜人妻久久久久久久久| 特级做a爰片毛片免费看无码| 伊人久久青草青青综合| 欧美精品人人做人人爱视频| 亚洲欧美日韩精品久久| 校花被折磨阴部流水| 五月天综合网站| 无码专区一va亚洲v专区在线| 丰满的寡妇3在线观看 | 国产一区二区三区在线免费| 精品剧情v国产在线麻豆| 免费被靠视频动漫| 欧美牲交a欧美牲交aⅴ免费下载| 亚洲欧美日韩丝袜另类| 曰批免费视频试看天天视频下 | 亚洲av网址在线观看| 日本不卡在线观看免费v| 中文字幕无线码一区二区| 女人张腿让男人捅| 99精品国产在热久久婷婷| 国产精品va欧美精品| 荡公乱妇hd在线播放| 四虎comwww最新地址| 深夜福利视频网站| 亚洲成人免费在线观看| 日韩一区二区免费视频| 中日韩美中文字幕| 大学生日嘛批1|