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