51單片機(二十五)—— 獨立按鍵控制LED

        在51單片機的前面的文章中,我們主要講述了單片機IO口的輸出功能的應用,如LED控制、數碼管控制等。這篇文章我們來講解如何用單片機的IO口讀取按鍵的狀態,並根據按鍵的狀態來控制LED。關於51單片機按鍵輸入功能的介紹可以參考文章《51單片機(二十四)—— 獨立按鍵工作原理》

        在本文中,實例的代碼如下所示。

#define KEY  P2  //定義按鍵輸入端口
#define LED  P0  //定義LED輸出端口

/********************************************************************/
/*                              主函數                              */
/********************************************************************/
void main (void)
{
	KEY=0xff; //按鍵輸入端口電平置高
	for(;;)         //主循環
	{
		LED=KEY;
	}
}

代碼很簡單,主要代碼只有for循環中的一行LED=KEY; 這一句代碼的作用是將KEY的值賦值給LED。由程序的宏定義可知,KEY是P2,它是與獨立按鍵連接的8個IO口的寄存器。LED是P0,它是與LED連接的8個IO口的寄存器。當某個獨立按鍵按下時,則P2對應的IO口的電平狀態被拉低,輸入爲0,當鬆開按鍵時,輸入爲1,在for循環中,將P2的值賦值給P0,當按鍵按下時,控制LED的IO口輸出爲0,則相應的LED點亮。鬆開按鍵時,控制LED的IO口輸出爲1,則相應的LED熄滅。由於賦值代碼在for循環中,則LED的狀態會實時更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章