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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 6157|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)8個(gè)鍵的次數(shù)檢測(cè) 源程序 原理圖與Proteus仿真 代碼注釋很詳細(xì)

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
下面是單片機(jī)8個(gè)鍵的次數(shù)檢測(cè)的proteus仿真原理圖(工程文件可到本帖附件中下載):

單片機(jī)源程序:
  1. //#include <reg51.h>
  2. #include<STC12C5A60S2.H>
  3. #define uchar unsigned char
  4. void delay(uchar);

  5. sbit k8=P1^0;
  6. sbit k7=P1^1;
  7. sbit k6=P1^2;
  8. sbit k5=P1^3;
  9. sbit k4=P1^4;
  10. sbit k3=P1^5;
  11. sbit k2=P1^6;
  12. sbit k1=P1^7;
  13. /*
  14. // 檢測(cè)單鍵次數(shù)
  15. main()
  16. {        //m1:m0  00=標(biāo)準(zhǔn);   01=推挽;   10=輸入;   11=開漏輸出
  17.         uchar        num;
  18.         P1M1 = 0Xff;
  19.         P1M0 = 0X00;   //設(shè)定P1輸入
  20.         P2M1 = 0X00;
  21.         P2M0 = 0Xff;   //設(shè)定P2推挽輸出
  22.         num=0;           //次數(shù)初始化為0
  23.         while(1)
  24.         {
  25.                 if(!k3)        //檢測(cè)K3是否被按下
  26.                 {
  27.                         //已被按下
  28.                         num++;  //  次數(shù)加1
  29.                         P2=~num;          //  顯示次數(shù)
  30.                         delay(200);          //  延時(shí)200MS
  31.                 }
  32.         }
  33. }
  34. */
  35. //檢測(cè)8個(gè)鍵的次數(shù)
  36. main()
  37. {        //m1:m0  00=標(biāo)準(zhǔn);   01=推挽;   10=輸入;   11=開漏輸出
  38.         uchar        num[8]={0,0,0,0,0,0,0,0}; //各鍵的次數(shù)初始化為0
  39.         uchar        key=0;
  40.         P1M1 = 0Xff;
  41.         P1M0 = 0X00;   //設(shè)定P1輸入
  42.         P2M1 = 0X00;
  43.         P2M0 = 0Xff;   //設(shè)定P2推挽輸出
  44. //         num=0;           //次數(shù)初始化為0
  45.         while(1)
  46.         {
  47.                 key=P1^0x80;//k2這個(gè)腳反了,需要取反
  48.                 ///////////////////////
  49.                 if(key!=0xff)        //檢測(cè)K3是否被按下
  50.                 {
  51.                         //已被按下
  52.                         switch(key)
  53.                         {
  54.                            case 0xfe:        //k8被按下
  55.                                 num[0]++;  //  次數(shù)加1
  56.                                 P2=~num[0];          //  顯示次數(shù)
  57.                                 delay(200);          //  延時(shí)200MS
  58.                                 break;
  59.                            case 0xfd:  //k7被按下
  60.                                 num[1]++;  //  次數(shù)加1
  61.                                 P2=~num[1];          //  顯示次數(shù)
  62.                                 delay(200);          //  延時(shí)200MS
  63.                                 break;
  64.                            case 0xfb:  //k6被按下
  65.                                 num[2]++;  //  次數(shù)加1
  66.                                 P2=~num[2];          //  顯示次數(shù)
  67.                                 delay(200);          //  延時(shí)200MS
  68.                                 break;
  69.                            case 0xf7:  //k5被按下
  70.                                 num[3]++;  //  次數(shù)加1
  71.                                 P2=~num[3];          //  顯示次數(shù)
  72.                                 delay(200);          //  延時(shí)200MS
  73.                                 break;
  74.                            case 0xef:  //k4被按下
  75.                                 num[4]++;  //  次數(shù)加1
  76.                                 P2=~num[4];          //  顯示次數(shù)
  77.                                 delay(200);          //  延時(shí)200MS
  78.                                 break;
  79.                            case 0xdf:  //k3被按下
  80.                                 num[5]++;  //  次數(shù)加1
  81.                                 P2=~num[5];          //  顯示次數(shù)
  82.                                 delay(200);          //  延時(shí)200MS
  83.                                 break;
  84.                            case 0xbf:  //k2被按下
  85.                                 num[6]++;  //  次數(shù)加1
  86.                                 P2=~num[6];          //  顯示次數(shù)
  87.                                 delay(200);          //  延時(shí)200MS
  88.                                 break;
  89.                            case 0x7f:  //k1被按下
  90.                                 num[7]++;  //  次數(shù)加1
  91.                                 P2=~num[7];          //  顯示次數(shù)
  92.                                 delay(200);          //  延時(shí)200MS
  93.                                 break;
  94.                           default:
  95.                                   break;

  96.                         }
  97.                 } //*/
  98.         }
  99. }


  100. void delay(uchar k )
  101. {
  102.         uchar x,y,z;
  103.         for(x=k;x>0;x--)
  104.         for(y=20;y>0;y--)
  105.         for(z=250;z>0;z--);
  106. }   
復(fù)制代碼


給大家分享一些我們老師給的一些經(jīng)典的單片機(jī)程序源碼, 一共有十多個(gè).都有詳細(xì)的注釋,然大家快速的理解每一行代碼的意思。而且有proteus仿真原理圖。大家可以直接驗(yàn)證程序的對(duì)錯(cuò).


本系列所有源碼打包下載地址(含proteus仿真工程文件和源程序):
http://m.zg4o1577.cn/bbs/dpj-82474-1.html

本例程下載:
keytest.rar (53.32 KB, 下載次數(shù): 9)


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

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 亚洲视频一区二区三区四区 | 欧美精品日韩少妇 | av黄色在线观看 | 日韩和的一区二区 | 一级理论片 | 国产精品99久久久久久www | 日本在线不卡视频 | 欧美性猛交xxxx乱大交退制版 | 国产精品久久久久久亚洲影视 | 欧美一级欧美三级 | 午夜天堂网| 日本人の夫妇交换 | 天天视频国产 | 日韩av免费播放 | 亚洲国产精品久久久久 | 狠狠干狠狠干 | 九九热在线视频 | 日韩成人小视频 | 黄色一级大片在线免费看产 | 日日干夜夜爽 | 欧美国产视频 | 国产欧美日韩视频 | 青青草伊人网 | 九九热在线播放 | 中文字幕在线免费视频 | 日韩精品极品视频在线观看免费 | 日韩精品福利 | 日韩在线一区二区 | 久久狠| 一级黄色网| 国产视频在线观看视频 | 日韩aaaa | 182tv午夜| 欧美日韩在线不卡 | 国产一区精品在线 | 一区二区三区在线免费观看 | 欧美午夜精品一区二区三区 | 天天摸天天干 | 欧美日韩成人一区二区三区 | 91亚洲国产成人久久精品网站 | 香蕉视频一区二区 |