久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4335|回復: 7
打印 上一主題 下一主題
收起左側

單片機怎樣實現按鍵按下數字連加?

[復制鏈接]
跳轉到指定樓層
樓主
ID:101869 發表于 2021-6-27 21:34 來自觸屏版 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
弱弱的問下  按鍵按下mun怎樣實現連續加也就是按下按鍵1.2.3.4.5這樣,我用的mum++按著不放手就只+1不能連續加 請老師們指導下
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:945591 發表于 2021-6-27 23:11 | 只看該作者
這個可以通過定時器來實現,比如當按鍵時間小于2秒時,按一次加1,當超過2秒時,沒50毫秒加1實現連加功能。例程如下:
#include<reg51.h>
unsigned int a;
unsigned char times;
sbit key=P1^0;
void t0isr() interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
times++;
if(times>40)
{
a++;
printf("%d",a);
}
回復

使用道具 舉報

板凳
ID:101869 發表于 2021-6-28 08:34 來自觸屏版 | 只看該作者
gxbdf 發表于 2021-6-27 23:11
這個可以通過定時器來實現,比如當按鍵時間小于2秒時,按一次加1,當超過2秒時,沒50毫秒加1實現連加功能。 ...

如果不用定時器呢
回復

使用道具 舉報

地板
ID:707333 發表于 2021-6-28 08:52 | 只看該作者
用循環也可以,每次循環檢測到按鍵仍然按下內部變量k就加一(沒繼續按下就k=0,考慮防抖會復雜一點);當k=100(或者其他值),實現連加,同時k=0,,,大致這樣子

循環時注意需要給其他處理留出時間
回復

使用道具 舉報

5#
ID:830240 發表于 2021-6-28 09:44 | 只看該作者
學習長短按鍵的實現方法,就會這個了,長按鍵網上很多例子
回復

使用道具 舉報

6#
ID:313048 發表于 2021-6-28 09:47 | 只看該作者
可以用定時器定時掃描,也可以再主循環中用狀態機也可以。
回復

使用道具 舉報

7#
ID:313048 發表于 2021-6-28 09:49 | 只看該作者

用狀態機,2個狀態,狀態1是讀取,狀態2執行操作,在狀態1讀取到按下后,跳轉到狀態2讀取按下,執行加操作后,跳回狀態1,重復執行就可以了。
回復

使用道具 舉報

8#
ID:401564 發表于 2021-6-28 14:58 | 只看該作者
我也是在學C語言,這是我寫的
如果你是用別的單片機型號,有上拉電阻也是可以亮燈的,延時部分要改一下,因為我這是24MHZ的
/*=========================================================================================
名稱:單片機按鍵加1程序
作者:老玉
日期:20210625
最后更新日期:20210627
電路編號:YGG_20210413.0_ST
MCU:STC88A4KS32
使用片上24MHZ時鐘,
功能描述:這是學習C8051用的入門程序,單片機按鍵加1,單擊加一次,長按一直加,并顯示
;=========================================================================================*/
#include <REG52.h>
#define OUT P0                         //輸出顯示
sbit KEY=P3^2;                         //按鍵
sbit com0=P2^0;                         //數碼管的COM引腳
sbit com1=P2^1;
sbit com2=P2^2;
sbit com3=P2^3;
sfr P0M0=0x94;                        //stc8A4K端口控制寄存器
sfr P0M1=0x93;                        
unsigned int NUM;
//=================================================
void delay(unsigned char i)                   //延時
{
        unsigned int k;
        for(i;i>0;i--)
                {
                 for(k=1000;k>0;k--);
                }
}
//=====================================================================================
unsigned char ledtab[]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};
//=====================================================================================
void display()                        
{       
                         unsigned char bat;
                        if(NUM>1000)NUM=0x00;
                        bat=NUM%10;                                 //顯示個位
                        OUT=ledtab[bat];
                        com0=0;
                        delay(10);
                        com0=1;

                        bat=NUM%100/10;                        //先求余100,再除以10,等到十位數
                        OUT=ledtab[bat];
                        com1=0;
                        delay(10);
                        com1=1;

                        bat=NUM%1000/100;
                        OUT=ledtab[bat];
                        com2=0;
                        delay(10);
                        com2=1;

                        bat=NUM/1000;
                        OUT=ledtab[bat];
                        com3=0;
                        delay(10);
                        com3=1;
}
//==================================================================================
void main()                                          //主程序
{
        P0M0=0xff;
        P0M1=0x00;
        KEY=1;
        while(1)
        {         
         unsigned char t;
         if(!KEY)                
                {
                        for(t=0;t<10;t++)display();
                        NUM++;
                }
         display();               
        }
}
//============================================================

回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美精品中文字幕久久二区 | 亚洲国产二区 | 精品国产一区探花在线观看 | 91精品久久久久久久久久小网站 | 午夜影院在线观看视频 | 9999久久 | 色综合久久久久 | 亚洲人成人一区二区在线观看 | 日韩在线一区二区 | 日本黄色一级片视频 | 成人一区二区三区在线观看 | 91精品国产高清久久久久久久久 | 日韩在线欧美 | 国产视频久久 | 亚洲日日操 | 欧美五月婷婷 | 中文天堂在线观看 | 久热精品在线播放 | 91在线观看免费 | 中文字幕日韩欧美一区二区三区 | 日韩精品久久 | 色婷婷综合久久久中字幕精品久久 | 日韩精品久久久久 | 黄免费看 | 亚洲网站在线观看 | 日本中文在线 | 日日射影院 | 福利片在线观看 | 不卡在线视频 | 一区二区三区视频 | 日日干日日色 | 中文字幕 欧美 日韩 | 国产精品久久久久久久免费观看 | 欧美精品一区二区三区一线天视频 | 亚洲精品乱码久久久久久按摩观 | 亚洲韩国精品 | 精品久久国产 | 亚洲av毛片 | 日本在线看片 | 亚洲不卡在线观看 | 欧美一级二级三级视频 |