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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機4*4按鍵設計 帶實驗文檔說明,仿真圖

[復制鏈接]
跳轉到指定樓層
樓主
一個基于AT89C51簡單的4*4按鍵設計,帶實驗文檔說明,仿真圖,帶注釋程序。


所有資料51hei提供下載:

新建壓縮(zipped)文件夾.zip (30.39 KB, 下載次數: 11)

實驗24 單片機鍵盤顯示控制實驗.doc (57.5 KB, 下載次數: 5)



單片機源程序如下:
  1. #include<reg51.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int        //引用頭文件和定義宏

  4. uchar n,i;
  5. uchar code number[]={"0123456789ABCDEF"};
  6. uchar code k_t[]={0xee,0xde,0xbe,0x7e,0xed,0xdd,0xbd,0x7d,0xeb,0xdb,0xbb,0x7b,0xe7,0xd7,0xb7,0x77};

  7. //相連一行為0,不相連為1,找出所有按鍵值(可列表實現)
  8. //K_T={0xee,...};


  9. sbit lcdrs=P2^0;                                                                                                
  10. sbit lcdrw=P2^1;
  11. sbit lcden=P2^2;  //定義LCD的引腳

  12. void delaylcd() //延時,用于LCD控制
  13. {  uchar i;
  14.    for(i=0;i<125;i++); }

  15. void delay()          //延時20ms
  16. {  uchar i;
  17.    uchar t=20;
  18.    while(t--)
  19.    for(i=0;i<125;i++); }

  20. void w_lcdcom(uchar com) //寫LCD命令數據
  21. {  lcdrs=0;
  22.    lcdrw=0;
  23.    delay();
  24.    P0=com;
  25.    lcden=1;
  26.    delay();
  27.    lcden=0; }

  28. void w_lcddat(uchar dat)//寫LCD一個字符數據
  29. {  lcdrs=1;
  30.    lcdrw=0;
  31.    delay();
  32.    P0=dat;
  33.    lcden=1;
  34.    delay();
  35.    lcden=0; }

  36. void initlcd()//初始化LCD
  37. {  lcden=0;
  38.    w_lcdcom(0x38);
  39.    w_lcdcom(0x06);
  40.    w_lcdcom(0xc); }

  41. void w_lcdstr(uchar *s)//寫LCD字符串
  42. {   while(*s)
  43.    {  w_lcddat(*s);
  44.       s++;} }

  45. void key()
  46. { uchar x=0,y=0,i;
  47.    P3=0xf0;  //行線送全“1”
  48.    while(P3==0xf0); //無鍵按下等待
  49.    delay(); //延時20ms去抖動
  50.    y=P3; //讀行值
  51.    P3=0xf; //列線送全“1”
  52.    x=P3; //讀列值
  53.    x=x|y; //將4位行值和4位列值,組合成8位的鍵值。
  54.    P3=0xf0;
  55.    while(P3!=0xf0);
  56.    for(i=0;i<16;i++)  
  57.    {  if(x==k_t[i])
  58.       {  n=i; break;}
  59.    }}


  60. void main()//主程序
  61. {  uint count=0,i;
  62.    initlcd(); //初始化LCD
  63.    while(1)
  64.    { //讀按鍵
  65.               w_lcdcom(0x80);   //置光標到第1行第1列
  66.       for(i=0;i<16;i++)
  67.       {  key();
  68.          w_lcddat(number[n]);delaylcd();count++; }

  69.          if(count==17)        w_lcdcom(0xc0);
  70.          
  71.           {for(i=0;i<16;i++)
  72.       {  key();
  73.          w_lcddat(number[n]);delaylcd();count++;}}        //顯示
  74.         
  75.         if(count==33)        {w_lcdcom(1);count=0;}
  76.           }
  77. }
復制代碼









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

使用道具 舉報

沙發
ID:535857 發表于 2019-5-12 00:44 來自手機
打不開,解壓不了,上傳不上,唉

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品国产乱码久久久久久88av | 国产视频中文字幕 | 四虎影音| 亚洲日本免费 | www.精品国产 | 午夜影院网站 | 亚洲日韩欧美一区二区在线 | 日韩在线观看中文字幕 | 亚洲人成人一区二区在线观看 | 午夜精品一区二区三区在线视 | 婷婷去俺也去 | 天天看天天操 | 久久影音先锋 | 手机av在线| av一区在线 | 亚洲女人天堂成人av在线 | 一区二区三区高清 | www.国产日本| 久久精品16 | 成人av一区| 国产成人久久久 | 国产成人综合亚洲欧美94在线 | 欧洲在线视频 | 欧美一级片免费看 | 国产日韩视频 | 欧美天堂 | 久久久久精 | 亚洲精品视频在线播放 | 欧美一区二区三区在线观看 | 日韩免费毛片 | 日本亚洲精品成人欧美一区 | 国产精品亚洲一区二区三区在线观看 | 中文字幕在线观看一区二区 | 国产免费xxx | 国产精品永久免费视频 | 成人精品一区二区三区 | 日韩欧美中文字幕在线观看 | 精品免费国产视频 | 午夜影视在线观看 | 欧美一区视频 | 国产精品国产a级 |