電子與信息工程學院實驗報告
1.了解C51語言設計的原則。 2.掌握單片機的使用。 3.掌握keil軟件和proteus軟件的使用。 二、實驗內容 用KeilC51編寫程序,來實現D1~D4四個流水燈的循環點亮,并在Proteus軟件中仿真,用外部中斷0的方式控制按鍵開,使K3連接在P3.2口,編程使K3控制D1~D4燈依次循環點亮,不能影響其它燈。 按鍵S3按下時,P2口控制的8位發光LED燈D1~D4循環點亮。 三、實驗步驟 我們可以編寫一個簡單的程序來實現四個流水燈的循環點亮,用按鍵來控制,K3連接在P3.2,編程使K3控制D1~D4燈依次循環點亮,不能影響其它燈。 用外部中斷0來實現。
如程序所述,當k3為低電平,即為0時,使D1~D4點亮,用while循環使D1~D4不斷循環點亮,當k3為高電平是,停止循環。 工程截圖如圖所示: 四、實驗結果 1、先根據要求連接到如圖所示電路圖。 將k3接到單片機的P3^2口上,P2口接8個LED燈,LED的另一端接上拉電阻,最后接到電源正極。單片機的X1口接晶振電路。
圖片1.png (16.21 KB, 下載次數: 92)
下載附件
測試前
2018-3-21 12:50 上傳
- 根據要求將程序添加到上電路圖中,即可得到一下結果。
開始運行,按下S3,LED從D1開始到D4依次循環點亮。
圖片2.png (16.73 KB, 下載次數: 78)
下載附件
測試后
2018-3-21 12:50 上傳
3、使S3抬起時,即S3接高電平是,循環停止。
五、實驗總結 在編寫程序的過程中,要弄懂電路圖中各個引腳所接的位置,弄明白單片機和各個元件的功能以及引腳功能,這樣在寫程序時才能明白該如何寫語句,自己就會比較清楚,也會比較有條理性。在寫的過程中也要注意C語言書寫的要求,有時候錯一個標點或者括號程序運行就會出現錯誤,所以必須細心。通過這次實驗,感覺自己還不是很熟悉,對于很多東西都不懂,需要一邊寫一邊查詢各個功能和用法,寫起來還是很吃力的。 在以后的學習中,我一定要更加努力的學習,更多的去敲程序練習,同時也更多的去練習寫程序。
C51單片機程序:
- #include "reg52.h" //此文件中定義了單片機的一些特殊功能寄存器
- typedef unsigned int u16; //對數據類型進行聲明定義
- typedef unsigned char u8;
- #define led P2
- sbit k3=P3^2;
- void delay(u16 i)
- {
- while(i--);
- }
- void Int0Init()
- {
- //設置INT0
- IT0=1;//跳變沿出發方式(下降沿)
- EX0=1;//打開INT0的中斷允許。
- EA=1;//打開總中斷
- }
- void main()
- {
- Int0Init(); // 設置外部中斷0
- while(1);
- }
- void Int0() interrupt 0 //外部中斷0的中斷函數
- {
- delay(100); //延時消抖
- { while(k3==0)
- {
- led=0xfe;
- delay(50000);
- led=0xfd;
- delay(50000);
- led=0xfb;
- delay(50000);
- led=0xf7;
- delay(50000);
- led=0xf7;
- delay(50000);
- led=0xfb;
- delay(50000);
- led=0xfd;
- delay(50000);
- led=0xfe;
- delay(50000);
- }
- }
- }
復制代碼
完整的Word格式文檔51黑下載地址:
流水燈.doc
(159.54 KB, 下載次數: 63)
2018-3-21 12:50 上傳
點擊文件名下載附件
單片機流水燈 下載積分: 黑幣 -5
|