找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3735|回復(fù): 1
收起左側(cè)

單片機I/O口輸入、輸出實驗 源程序+Proteus仿真

[復(fù)制鏈接]
ID:786312 發(fā)表于 2020-6-22 22:41 | 顯示全部樓層 |閱讀模式
實驗內(nèi)容
1.P1 口做輸出口,接八只發(fā)光二極管,編寫程序,使發(fā)光二極管循環(huán)點亮
2.P1.0,P1.1作輸入口接兩個撥動開關(guān),P1.2,P1.3作輸出口,接兩個發(fā)光二極管,編寫程序讀取開關(guān)狀態(tài),將此狀態(tài),在發(fā)光二極管上顯示出來。編程時應(yīng)注意P1.0,P1.1作為輸入口時應(yīng)先置1,才能正確讀入值。

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)

實驗1

實驗1

實驗2

實驗2

單片機源程序如下:
  1. //實驗1
  2. #include <reg51.h>
  3. #define LED P1
  4. void delay(int);                                        //聲明延遲函數(shù)

  5. //主程序
  6. main()
  7. {
  8.         unsigned char i;
  9.                                                         //讓LED最右端的燈亮
  10.         while(1)
  11.         {               
  12.           LED = 0xfe;
  13.           for(i=0;i<8;i++)
  14.                 {
  15.                         delay(100);
  16.                         LED=(LED<<1)|0x01;        //讓左邊一個LED燈亮
  17.                 }
  18.         }        
  19. }               

  20. //延遲函數(shù)

  21. void delay(int x)
  22. {
  23.         int i,j;
  24.         for(i=0;i<x;i++)
  25.                 for(j=0;j<600;j++);
  26. }
復(fù)制代碼
  1. //實驗2
  2. #include<reg51.h>
  3. #define uchar unsigned char
  4. #define unit unsigned int
  5. sbit k1=P1^0;
  6. sbit k2=P1^1;
  7. sbit led1=P1^2;
  8. sbit led2=P1^3;
  9. void main()
  10. {
  11. while(1)
  12. {
  13. k1=1;
  14. k2=1;
  15. if(k1==0)
  16. led1=0;
  17. else led1=1;
  18. if(k2==0)
  19. led2=0;
  20. else led2=1;
  21. }
  22. }
復(fù)制代碼

全部資料51hei下載地址:
實驗一 IO口輸入輸出實驗.zip (397.89 KB, 下載次數(shù): 14)

評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

ID:786312 發(fā)表于 2020-6-22 22:42 | 顯示全部樓層
兩個實驗圖標反了!!
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表