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

標題: 51單片機4X8鍵盤掃描電路圖+程序 [打印本頁]

作者: daniu    時間: 2014-12-27 16:59
標題: 51單片機4X8鍵盤掃描電路圖+程序

  1. //===============================================================
  2. //程序編寫人:
  3. //編寫地點:湖南源點IC培訓機構
  4. //時間:2009年7月6日下午  星期一
  5. //功能:本程序實現掃描4X8鍵盤,顯示鍵值0-31.
  6. //===============================================================
  7. #include <reg51.h>
  8. #define   uchar  unsigned char
  9. #define   uint  long unsigned int
  10. #define   ShuChu  P1    //輸出口
  11. #define   PianXuan P0    //片選口
  12. #define   Jian1    P2    //行輸入口
  13. #define   Jian2    P3    //列輸入口
  14. bit   AnJian;
  15. uchar  n;
  16. uint  code   tempt1[]={0x0efe,0x0dfe,0x0bfe,0x07fe,
  17.         0x0efd,0x0dfd,0x0bfd,0x07fd,
  18.         0x0efb,0x0dfb,0x0bfb,0x07fb,
  19.         0x0ef7,0x0df7,0x0bf7,0x07f7,
  20.         0x0eef,0x0def,0x0bef,0x07ef,
  21.         0x0edf,0x0ddf,0x0bdf,0x07df,
  22.         0x0ebf,0x0dbf,0x0bbf,0x07bf,
  23.         0x0e7f,0x0d7f,0x0b7f,0x077f};//反轉碼
  24. uchar code  tempt2[]={0xc0,0xf9,0xa4,0xb0,0x99,
  25.        0x92,0x82,0xf8,0x80,0x90};//共陽數碼管數據
  26. void  Delay(uchar M)//延時函數
  27. {
  28. uchar i,j;
  29. for(j=M;j>0;j--)
  30.   for(i=125;i>0;i--);
  31. }
  32. void  Display(uchar N)//顯示函數
  33. {
  34. ShuChu=tempt2[N/10];   //顯示十位
  35. PianXuan=0x01;
  36. Delay(20);
  37. PianXuan=0x00;
  38. ShuChu=tempt2[N%10];  //顯示個位
  39. PianXuan=0x02;
  40. Delay(20);
  41. PianXuan=0x00;
  42. }
  43. uint  SaoMiao(void)//掃描函數
  44. {
  45. uchar a,b;
  46. uint  d;
  47. Jian1=0x00;
  48. Jian2=0x0f;
  49. a=Jian2&0x0f;
  50. d=a<<8;
  51. Jian1=0xff;
  52. Jian2=0x00;
  53. b=Jian1;
  54. return (d=d|b);    //返回讀取的鍵值
  55. }
  56. uchar DuJianZhi(uint K)//讀鍵值函數
  57. {
  58. uchar i=0,b;
  59. if(K!=0x0fff)
  60. {
  61.   AnJian=1;
  62.   while(K!=tempt1)
  63.   {
  64.    i++;
  65.   }
  66.   return b=i;
  67. }
  68. else
  69.         return b=n;   //返回鍵值位置
  70. }
  71. main()//主函數
  72. {
  73. AnJian=0;
  74. while(1)
  75. {
  76.   P3=0x0f;
  77.   if(AnJian==1)
  78.   {
  79.    Display(n);        //顯示鍵值
  80.     n=DuJianZhi(SaoMiao());
  81.   }
  82.   else
  83.   {
  84.    n=DuJianZhi(SaoMiao());
  85.   }
  86. }
  87. }
復制代碼




作者: iming    時間: 2015-4-15 21:04
很好很強大。學習了。。。。
作者: pengyongnet    時間: 2018-6-27 08:48
樓主分享下原理圖源文件和程序的源文件




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲乱码在线 | 综合色婷婷一区二区亚洲欧美国产 | 色综合久久88色综合天天 | 欧美视频在线观看 | 久久久久黄色 | 91看片在线观看 | 欧洲黄色网 | 国产日本在线 | 欧美日韩大片 | 国产传媒在线观看 | 日本黄色三级视频 | 精品一区二区三区免费 | 国产黄色在线观看 | 青青青操 | 国产黄色片视频 | 成人久久视频 | www.三级| 中文字幕一区二区三区乱码 | 国产精品嫩草影院桃色 | 一区二区三区四区在线视频 | 日本三级一区 | 夜夜操影院 | 成人在线a | 欧美成人区 | 亚洲精品乱码久久久久久蜜桃91 | 免费在线黄色网址 | 午夜婷婷 | 一区二区三区日韩 | 综合色婷婷一区二区亚洲欧美国产 | 日本婷婷| 欧美一区二区三区视频 | 日韩免费三级 | 特级黄色片 | 黄频在线观看 | 青青草国产在线视频 | 在线视频99 | 88av视频| 免费毛片在线播放免费 | 久草视频免费在线观看 | 黄频在线观看 | 91精品久久久久 |