欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機按鍵+ -操作程序源代碼

[復制鏈接]
跳轉到指定樓層
樓主
ID:11064 發表于 2015-11-3 19:48 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h> //包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義

sbit KEY_UP =P3^3;  //該按鍵按一次加1
sbit KEY_DOWN =P3^4; //該按鍵按1次減1

unsigned char code SHU[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 顯示段碼值0~9

/*------------------------------------------------
uS延時函數,含有輸入參數 unsigned char t,無返回值
unsigned char 是定義無符號字符變量,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編,大致延時
長度如下 T=tx2+5 uS
------------------------------------------------*/
void DelayUs2x(unsigned char t)
{   
        while(--t);
}
/*------------------------------------------------
mS延時函數,含有輸入參數 unsigned char t,無返回值
unsigned char 是定義無符號字符變量,其值的范圍是
0~255 這里使用晶振12M,精確延時請使用匯編
------------------------------------------------*/
void DelayMs(unsigned char t)
{
        while(t--)
        {
                //大致延時1mS
            DelayUs2x(245);
                DelayUs2x(245);
        }
}

/*-- 主函數 --*/
void main (void)
{
        unsigned char num=0;                  
        KEY_UP=1; //按鍵輸入端口電平置高
        KEY_DOWN=1;
        while (1)         //主循環
          {
                  if(!KEY_UP)  //如果檢測到低電平,說明按鍵按下
            {
                         DelayMs(10); //延時去抖,一般10-20ms
                     if(!KEY_UP)     //再次確認按鍵是否按下,沒有按下則退出
                           {
                        while(!KEY_UP);//如果確認按下按鍵等待按鍵釋放,沒有釋放則一直等待
                               {
                                           if(num<9)    //加操作
                                          num++;
                                 }
                           }
                }
                if(!KEY_DOWN)  //如果檢測到低電平,說明按鍵按下
            {
                         DelayMs(10); //延時去抖,一般10-20ms
                     if(!KEY_DOWN)     //再次確認按鍵是否按下,沒有按下則退出
                           {
                        while(!KEY_DOWN);//如果確認按下按鍵等待按鍵釋放,沒有釋放則一直等待
                               {
                                       if(num>0)  //減操作
                                  num--;
                                 }
                           }
                }
                   P2=0xfe; //數碼管的位碼,只有先選通,才能夠顯示,第一位數碼管選通,即二進制1111 1110
            P0=SHU[num%10]; //在數碼管中顯示一個數字
        }
}
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表