单片机原理及其应用——单片机控制按键依次点亮8只发光二极管
目錄
- 一、實驗要求
- 二、Proteus仿真軟件畫原理圖
- 三、Keil編程軟件編寫程序
- 四、實驗結果
- (一)仿真結果
- (二)連接電路
- (三)燒錄并觀察實驗現象
- 結語
一、實驗要求
【實驗目的】
1、了解獨立按鍵的機械原理;
2、掌握獨立按鍵的程序識別方法。
【實驗內容】
通過按鍵依次點亮8只發光二極管,實現按下按鍵時第一只發光二極管點亮,依次至第八只發光二極管點亮。
二、Proteus仿真軟件畫原理圖
原理圖和之前八只單片機控制8只發光二極管交替閃爍的電路差不多,對之前的電路圖修改,只不過加了按鍵以及更換了單片機輸入/輸出口,電路圖如下:
其中R3電阻的電阻值為10k,其作用是作為上拉電阻,當按鍵沒有按下時,將不確定的輸入信號通過一個電阻鉗位在高電平,同時它也起到限流的作用,避免流入單片機接口的電流過大,其一般取值為4.7-10k歐姆。
若要將按鍵置于P0口,則需在單片機P0.0口處外接上拉電阻,因為P0口內部沒有上拉電阻。
三、Keil編程軟件編寫程序
之前的實驗并未說明實物現象的結果與仿真圖是相反的,所以我們反著寫程序這樣更便于觀察現象,也就是單片機控制按鍵依次點亮8只發光二極管反過來就是單片機控制按鍵依次熄滅8只發光二極管,原來是要通過一個數組使數組內的元素,數組內存儲各端口輸出高低電平狀態組成的十六進制數據,轉換為二進制就對應每個燈的點亮和熄滅,即unsigned char LED[]={0x01,0x02,0x04,0x08,0x10, 0x20,0x40,0x80}改為unsigned char LED[]=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f},然后我們的延時函數設置10ms,即delay(10),之前的實驗有說明這里不再詳述。
寫了兩套程序,都是可以運行的,第一套程序是通過數組每次a++進而取數組中的元素,從而實現按鍵對8只發光二極管操作,程序代碼如下:
#include<reg51.h> sbit Button=P2^0; unsigned char LED[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f}; unsigned char a; void delay(unsigned int x) {unsigned int i,j;for(i=0;i<x;i++)for(j=0;j<125;j++); } void main() {P1=0xff;a=0;while(1){if(Button==0){delay(10);while(Button==0)P1=LED[a];a++;}if(a==9)break;} }第二套程序是通過switch語句,也是通過num++,按鍵按下實現按鍵對8只發光二極管操作,程序代碼如下:
#include<reg51.h> sbit Button=P2^0; void delay() {unsigned int i,j;for(i=0;i<100;i++)for(j=0;j<125;j++); } void main() { char num;while(1){if(Button==0){delay();if(Button==0)while(!Button);num++;if(num>8)num=0;}switch(num){case 1:P1=0xfe;break;case 2:P1=0xfd;break;case 3:P1=0xfb;break;case 4:P1=0xf7;break;case 5:P1=0xef;break;case 6:P1=0xdf;break;case 7:P1=0xbf;break;case 8:P1=0x7f;break;}} }四、實驗結果
(一)仿真結果
仿真結果和實際結果是相反的,所以仿真結果一開始所有燈是點亮的:
按下按鍵,第一只發光二極管熄滅:
……依次,按下按鍵,到第八只發光二極管熄滅:
(二)連接電路
將單片機P2.0口與獨立按鍵模塊K1按鍵連接以及單片機P1.0-P.1.7口與LED&交通燈模塊排線連接在一起(注意不要接反),連接圖如下:
(三)燒錄并觀察實驗現象
燒錄之后一開始所有燈是熄滅的,當按下按鍵時,第一只發光二極管點亮,如圖:
再點一次,第一只發光二極管熄滅,第二只發光二極管點亮,如圖:
再點一次,第二只發光二極管熄滅,第三只發光二極管點亮,如圖:
……依次到第八只發光二極管點亮,如圖:
結語
感謝您的閱讀和支持,若程序代碼和其它方面有不當之處,當指出!您的指出和建議能給作者帶來很大的動力!!!
總結
以上是生活随笔為你收集整理的单片机原理及其应用——单片机控制按键依次点亮8只发光二极管的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 单片机原理及其应用——单片机控制按键点亮
- 下一篇: 单片机原理及其应用——单片机外部中断实验