久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费
標題:
51單片機識別 "單擊.雙擊.長按" 問題
[打印本頁]
作者:
dj3365191
時間:
2024-11-21 17:31
標題:
51單片機識別 "單擊.雙擊.長按" 問題
SCH.jpg
(52.11 KB, 下載次數: 0)
下載附件
2024-11-21 17:30 上傳
這程序是在本論壇找到的,原設定是按一下LED1亮一秒滅,按兩下LED2亮一秒滅,長按LED3亮一秒滅。試驗后發現有時按兩下是LED1亮一秒滅,不知這程序怎樣修改避免發生這種情況,謝謝!
//51單片機識別 "單擊.雙擊.長按" 代碼
//作者:Kxuan163
//程序功能:檢測按鈕的按下彈起次數,以識別"單擊.雙擊.長按"
//MCU: STC89c52RC 晶振 11.0592MHZ
//Proteus8仿真通過;51開發板實驗通過。
#include<reg52.h>
#include<stdlib.h>
sbit button =P1^2; //按鈕連接的單片機引腳
sbit LED1 =P2^7; //單擊則LED1亮
sbit LED2 =P2^4; //雙擊則LED2亮
sbit LED3 =P2^0; //長按則LED3亮
unsigned char count; //T0計數溢出中斷次數
unsigned char finish; //T0計時一輪結束標志
unsigned char read; //讀取P1^2引腳電平的變量
unsigned char dn; //讀得P1^2引腳低電平次數
unsigned char up; //button彈起次數
//延時函數,入口參數ms為延時的毫秒數/////
void delayms(unsigned int ms)
{ unsigned char i;
while(ms--)
{ for(i = 0; i < 120; i++); }
} //////////////////////////////////////
//主函數
void main(void)
{
//T0 初始化 //////////////////////////
TMOD=0x01; //使用定時器T0的模式1
TH0=(65536-46083)/256; //定時器T0的高8位設置初值
TL0=(65536-46083)%256; //定時器T0的低8位設置初值
EA=1; //開總中斷
ET0=1; //T0中斷允許
//////////////////////////////////////
while(1)
{
LED1 =1; LED2=1; LED3=1;
dn =0; up=0; count =0; finish =0;
TR0=1; //啟動T0計時
while(finish !=1 ) //在設定的T0計時段內循環檢測
{
read =button; //讀取P1^2引腳電平
if (read == 0) delayms(10); //延時10毫秒消熱抖動
if (button == 0)
{dn ++; read =button;} //讀得P1^2低電平次數累加
if (read ==0 && button ==1) up ++;//彈起次數累加
} //end of while(finish !=1 )
// T0計時一輪結束,進行識別:
TR0 =0;
if (dn >=1 && up ==1 ) //彈起1次,即單擊
{ LED1 =0; delayms(1000);} //LED1亮
if (dn >=2 && up ==2 ) //彈起2次,即雙擊
{ LED2=0; delayms(1000);} //LED2亮
if (dn>=20 && up==0 ) //持續未彈起,即長按
{ LED3=0; delayms(1000);} //LED3亮
} //end of while(1)
} //end of main()
//函數:定時器T0的中斷服務 ////////////////
void Time0(void ) interrupt 1 using 1
{
count++; //T0計數溢出中斷次數累加
if(count==20) //若T0計數溢出次數累計達設定值
{count =0; finish =1;} //一輪計時結束
TH0=(65536-46083)/256;
TL0=(65536-46083)%256;
} ///////////////////////////////////////
作者:
dj3365191
時間:
2024-11-21 17:32
我是實際搭的電路試驗的
作者:
wjfw
時間:
2024-11-21 18:56
延時時間縮短試試
作者:
lids
時間:
2024-11-22 08:24
http://www.zg4o1577.cn/bbs/dpj-99528-1.html
到這里看看,你會有所收獲的
作者:
Y_G_G
時間:
2024-11-22 09:17
本論壇有現成的狀態機,雙擊和長按都可以,我復制下來用了,沒有問題
你應該去學一下狀態機,封裝成.c文件,可以輕松的套用到其它的單片機上
歡迎光臨 (http://www.zg4o1577.cn/bbs/)
Powered by Discuz! X3.1
主站蜘蛛池模板:
一级黄色毛片子
|
四虎永久免费黄色影片
|
爱爱免费视频
|
欧美亚洲国产日韩
|
国产成人精品午夜视频免费
|
99tv成人影院
|
在线观看国产视频
|
一级毛片色一级
|
亚洲第一天堂无码专区
|
天天亚洲
|
伦理午夜电影免费观看
|
国产成人精品久久二区二区91
|
极品的亚洲
|
成人国产在线观看
|
精品久久久久久久久久
|
国产高清自拍视频在线观看
|
久久99国产精品
|
国产精品1区
|
99精品一区二区三区
|
国产一级毛片视频
|
国产精品视频免费观看
|
亚洲精品久久久久久一区二区
|
亚洲性爰
|
中文字幕在线观看
|
日韩精品一区二区三区中文字幕
|
日本久久综合网
|
日本成人三级电影
|
香蕉久久网
|
av永久免费
|
特级丰满少妇一级aaaa爱毛片
|
www日本高清
|
在线观看中文字幕
|
免费xxxx大片国产在线
|
亚洲欧美视频一区二区
|
国产色片在线
|
在线观看成人小视频
|
成人免费毛片在线观看
|
在线一区视频
|
中文字幕一区二区三区在线视频
|
欧美精品一区三区
|
国产亚洲欧美另类一区二区三区
|