標(biāo)題:
單片機(jī)按鍵控制8位led燈的亮滅程序+電路圖
[打印本頁]
作者:
qqqqaqqqq
時(shí)間:
2019-7-8 12:02
標(biāo)題:
單片機(jī)按鍵控制8位led燈的亮滅程序+電路圖
用兩個(gè)按鍵控制八燈的亮滅,一次加一或減一
led.jpg
(97.57 KB, 下載次數(shù): 39)
下載附件
仿真圖
2019-7-8 11:58 上傳
以下為原程序:
#include <REGX52.H>
#define LED P0 // LED 接 P0口
typedef unsigned int u16;
typedef unsigned char u8;
u16 num = 0;
sbit key_jia = P2^0; //按鍵加
sbit key_jian = P2^1; //按鍵減
/***** 0000 0001 0000 0011 0000 0111 0000 1111 0001 1111 0011 1111 0111 1111 1111 1111 *****/
u8 code table[] = {0x00,0x01,0x03,0x07,0x0f,0x1f,0x3f,0x7f,0xff};
/*******************************延時(shí)********************************/
void delay(u16 i)
{
while(i--);
}
/******************************按鍵**********************************/
void key(void)
{
if(key_jia == 0) // 按鍵加
{
delay(1000); // 消抖
if(key_jia == 0)
{
num++; // 加一
if(num == 9)
{
num = 8; // 最多到7
}
}
while( !key_jia ); // 檢測按鍵加是否松開
}
if(key_jian == 0) //按鍵減
{
delay(1000);
if(key_jian == 0)
{
if(num != 0) // 判斷是否到0
{
num--; // 減一
}
else
{
num = 0; // 到0停
}
}
while( !key_jian ); // 檢測按鍵減是否松開
}
}
/******************************main************************/
void main(void)
{
LED = table[0]; // 8燈為滅
while(1)
{
key(); // 按鍵
LED = table[num]; // led
}
復(fù)制代碼
全部資料51hei下載地址:
按鍵led及仿真.zip
(56.21 KB, 下載次數(shù): 36)
2019-7-8 12:01 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1