亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機代碼求解釋吶

[復制鏈接]
跳轉到指定樓層
樓主
ID:312422 發表于 2018-4-20 14:54 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
單片機源程序如下:
  1. #include <reg52.h>

  2. #define uchar unsigned char

  3. #define uint unsigned int

  4. sbit BEEP = P3^7;


  5. uchar code DSY_CODE[]=

  6. {

  7.     0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00

  8. };

  9. uchar Pre_KeyNO = 16,KeyNO = 16;


  10. void DelayMS(uint ms)

  11. {

  12.     uchar t;

  13.     while(ms--)

  14.     {

  15.         for(t=0;t<120;t++);

  16.     }

  17. }


  18. void Keys_Scan()

  19. {

  20.     uchar Tmp;

  21.     P1 = 0x0f;

  22.     DelayMS(1);

  23.     Tmp = P1 ^0x0f;

  24.     switch(Tmp)

  25.     {

  26.         case1: KeyNO = 0; break;

  27.         case 2:KeyNO = 1; break;

  28.         case 4:KeyNO = 2; break;

  29.         case 8:KeyNO = 3; break;

  30.         default:KeyNO = 16;

  31.     }

  32.     P1 = 0xf0;

  33.     DelayMS(1);

  34.     Tmp = P1>> 4 ^ 0x0f;

  35.     switch(Tmp)

  36.     {

  37.         case1: KeyNO += 0; break;

  38.         case 2:KeyNO += 4; break;

  39.         case 4:KeyNO += 8; break;

  40.         case 8:KeyNO += 12;

  41.     }

  42. }


  43. void Beep()

  44. {

  45.     uchar i;

  46.     for(i=0;i<100;i++)

  47.     {

  48.         DelayMS(1);

  49.         BEEP =~BEEP;

  50.     }

  51.     BEEP = 1;

  52. }


  53. void main()

  54. {

  55.     P0 = 0x00;

  56.     while(1)

  57.     {

  58.         P1 =0xf0;

  59.         if(P1!= 0xf0)

  60.             Keys_Scan();

  61.         if(Pre_KeyNO!= KeyNO)

  62.         {

  63.             P0 =DSY_CODE[KeyNO];

  64.             Beep();

  65.             Pre_KeyNO= KeyNO;

  66.         }

  67.         DelayMS(100);

  68.     }

  69. }
復制代碼

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:239596 發表于 2018-4-20 18:00 | 只看該作者
這是矩陣按鍵的掃描法,控制蜂鳴器和數碼管的吧
回復

使用道具 舉報

板凳
ID:312890 發表于 2018-4-21 10:23 | 只看該作者
開始頭文件、宏定義0----蜂鳴器引腳定義----數碼管顯示初始化----定義變量----延時函數----按鍵控制函數、先將按鍵置為第四位、兩個swtich控制矩陣按鍵的行列-------然后是蜂鳴器函數、取反延時即可----然后是主函數,使用了你定義過的函數、P1按鍵控制功能(按鍵防抖語句)    PS;這按鍵防抖沒看懂。。。。以下是我經常用的=。=嘿嘿,希望對你有幫助
if(!k1)
{
delay_ms(10)
if(!k1)
{
while(!k1)
語句。。。。
}
}
回復

使用道具 舉報

地板
ID:312890 發表于 2018-4-21 11:25 | 只看該作者
weiweioioi 發表于 2018-4-21 10:23
開始頭文件、宏定義0----蜂鳴器引腳定義----數碼管顯示初始化----定義變量----延時函數----按鍵控制函數、 ...

打錯了抱歉,按鍵設置為低四位  0x0f(0000 1111)
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

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