標(biāo)題:
51單片機(jī)按鍵長(zhǎng)按和短按功能的實(shí)現(xiàn) 附仿真與源碼
[打印本頁(yè)]
作者:
kinggm
時(shí)間:
2018-5-3 12:07
標(biāo)題:
51單片機(jī)按鍵長(zhǎng)按和短按功能的實(shí)現(xiàn) 附仿真與源碼
分為2個(gè)例子
一個(gè)是單片機(jī)按鍵短按,實(shí)現(xiàn)led燈的上下移動(dòng)
一個(gè)是單片機(jī)按鍵長(zhǎng)按led燈亮,松開(kāi),led燈滅
附件里有仿真圖,源碼,以及hex文件
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
0.png
(11.87 KB, 下載次數(shù): 32)
下載附件
2018-5-3 17:59 上傳
0.jpg
(30.39 KB, 下載次數(shù): 25)
下載附件
2018-5-3 17:59 上傳
單片機(jī)源程序如下:
#include<reg51.h>
#include<intrins.h>
#define LEDR P0
#define LEDG P2
sbit PB1=P1^4;
sbit PB2=P1^5;
sbit PB3=P1^6;
sbit PB4=P1^7;
char tamp,tp;
void delay (int);
void debouncer(void);
main() {
PB1=1;
PB2=1;
PB3=1;
PB4=1;
LEDR=0x00;
LEDG=0xff;
tamp=0xfd;
tp=0xfd;
while(1) {
if(PB1==0) {
debouncer();
tamp=_cror_(tamp,1); //變量右移函數(shù)
delay(20);
while(PB1==0);
debouncer();
LEDR=tamp;
}
if(PB2==0) {
debouncer();
tamp=_crol_(tamp,1);//變量左移函數(shù)
delay(20);
while(PB2==0);
debouncer();
LEDR=tamp;
}
if(PB3==0) {
debouncer();
tp=_cror_(tp,1);
delay(20);
while(PB3==0);
debouncer();
LEDG=tp;
}
if(PB4==0) {
debouncer();
tp=_crol_(tp,1);
delay(20);
while(PB4==0);
debouncer();
LEDG=tp;
}
}
}
void debouncer(void)
{
int i;
for(i=0; i<2400; i++);
……………………
…………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
所有資料51hei提供下載:
51單片機(jī)實(shí)現(xiàn)按鍵長(zhǎng)按和短按.zip
(30.87 KB, 下載次數(shù): 80)
2018-5-3 12:07 上傳
點(diǎn)擊文件名下載附件
下載積分: 黑幣 -5
作者:
守候楓林紅葉時(shí)
時(shí)間:
2018-5-9 22:22
學(xué)習(xí)學(xué)習(xí),謝謝樓主的分享!
作者:
25433
時(shí)間:
2020-12-9 17:03
好資料,51黑有你更精彩!!!
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1