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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

電話撥號盤模擬 單片機程序+Proteus仿真

[復制鏈接]
跳轉到指定樓層
樓主


單片機源程序如下:
  1. #include<reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. uchar keycode,DDram_value=0xc0;
  5. sbit rs=P2^0;
  6. sbit rw=P2^1;
  7. sbit e =P2^2;
  8. sbit speaker=P2^3;
  9. uchar code table[]={0x30,0x31,0x32,0x33,0x34,
  10.                     0x35,0x36,0x37,0x38,0x39,0x20};
  11. uchar code table_designer[]=" HIT ZYG Design";
  12. void lcd_delay();
  13. void delay(uint n);
  14. void lcd_init(void);
  15. void lcd_busy(void);
  16. void lcd_wr_con(uchar c);
  17. void lcd_wr_data(uchar d);
  18. uchar checkkey(void);
  19. uchar keyscan(void);
  20. void main()
  21. {
  22.     uchar num;
  23.         lcd_init();
  24.         lcd_wr_con(0x80);
  25.         for(num=0;num<=14;num++)
  26.         {
  27.           lcd_wr_data(table_designer[num]);
  28.         }
  29.         while(1)
  30.         {
  31.            keycode=keyscan();
  32.            if((keycode>=0)&&(keycode<=9))
  33.            {
  34.               lcd_wr_con(0x06);
  35.                   lcd_wr_con(DDram_value);
  36.               lcd_wr_data(table[keycode]);
  37.                   DDram_value++;
  38.            }
  39.            else if(keycode==0x0a)
  40.            {
  41.                      lcd_wr_con(0x04);
  42.                   DDram_value--;
  43.                   if(DDram_value<=0xc0)
  44.                   {
  45.                            DDram_value=0xc0;
  46.                   }
  47.                   else if(DDram_value>=0xcf)
  48.                   {
  49.                            DDram_value=0xcf;
  50.                   }
  51.                   lcd_wr_con(DDram_value);
  52.                   lcd_wr_data(table[10]);
  53.            }
  54.            else if(keycode==0x0b)
  55.            {
  56.                      uchar i,j;
  57.                   j=0xc0;
  58.                   for(i=0;i<=15;i++)
  59.                   {
  60.                     lcd_wr_con(j);
  61.                           lcd_wr_data(table[10]);
  62.                         j++;
  63.                   }
  64.                   DDram_value=0xc0;
  65.            }
  66.         }

  67. }
  68. //液晶工作時的延時函數
  69. void lcd_delay()
  70. {
  71.   uchar y;
  72.   for(y=0;y<0xff;y++)
  73.   {
  74.            ;
  75.   }
  76. }
  77. //液晶初始化
  78. void lcd_init(void)
  79. {
  80.    lcd_wr_con(0x01);
  81.    lcd_wr_con(0x38);
  82.    lcd_wr_con(0x0c);
  83.    lcd_wr_con(0x06);
  84. }
  85. // 判斷液晶忙或閑的程序
  86. void lcd_busy(void)
  87. {
  88.   P0=0xff;
  89.   rs=0;
  90.   rw=1;
  91.   e=1;
  92.   e=0;
  93.   while(P0&0x80)
  94.   {
  95.            e=0;
  96.          e=1;
  97.   }
  98.   lcd_delay();
  99. }
  100. //向液晶控制口輸入命令的調用函數
  101. void lcd_wr_con(uchar c)
  102. {
  103.    lcd_busy();
  104.    e=0;
  105.    rs=0;
  106.    rw=0;
  107.    e=1;
  108.    P0=c;
  109.    e=0;
  110.    lcd_delay();
  111. }
  112. //向液晶寫數據的調用函數
  113. void lcd_wr_data(uchar d)
  114. {
  115.    lcd_busy();
  116.    e=0;
  117.    rs=1;
  118.    rw=0;
  119.    e=1;
  120.    P0=d;
  121.    e=0;
  122.    lcd_delay();
  123. }
  124. void delay(uint n)
  125. {
  126.    uchar i;
  127.    uint j;
  128.    for(i=50;i>0;i--)
  129.      for(j=n;j>0;j--);
  130. }
  131. //檢測鍵有無按下函數
  132. uchar checkkey(void)
  133. {
  134.         uchar temp;
  135.         P1=0xf0;
  136.         temp=P1;
  137.         temp=temp&0xf0;
  138.         if(temp==0xf0)
  139.         {
  140.            return(0);
  141.         }
  142.         else
  143.         {
  144.            return(1);
  145.         }
  146. }
  147. //鍵盤掃描函數,返回所按下的鍵盤號
  148. uchar keyscan(void)
  149. {
  150.    uchar hanghao,liehao,keyvalue,buff;
  151.    if(checkkey()==0)
  152.    {
  153.              return(0xff);//無鍵按下,返回0xff
  154.    }
  155.    else
  156.    {
  157.              uchar sound;
  158.                  for(sound=50;sound>0;sound--)
  159.                  {
  160.                          speaker=0;
  161.                         delay(1);
  162.                         speaker=1;
  163.                         delay(1);
  164.                  }
  165.                  P1=0x0f;
  166.                  buff=P1;
  167.                  if(buff==0x0e)
  168.                  {
  169.                       hanghao=0;
  170.                  }
  171.                  else if(buff==0x0d)
  172.                  {
  173.                       hanghao=3;
  174.                  }
  175.                  else if(buff==0x0b)
  176.                  {
  177.                       hanghao=6;
  178.                  }
  179.                  else if(buff==0x07)
  180.                  {
  181.                       hanghao=9;
  182.                  }
  183.                  P1=0xf0;
  184.                  buff=P1;
  185.                  if(buff==0xe0)
  186.                  {
  187.                    liehao=2;
  188.                  }
  189.                  else if(buff==0xd0)
  190.                  {
  191.                          liehao=1;
  192.                  }
  193.                  else if(buff==0xb0)
  194.                  {
  195.                     liehao=0;
  196.                  }
  197.                  keyvalue=hanghao+liehao;
  198.                  while(P1!=0xf0);
  199.                  return(keyvalue);
  200.    }
  201. }
復制代碼
全部資料51hei下載地址:
電話撥盤模擬.zip (58.61 KB, 下載次數: 91)


評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:522355 發表于 2020-6-20 10:39 | 只看該作者
感謝樓主,很有幫助!
回復

使用道具 舉報

板凳
ID:863537 發表于 2021-1-4 14:51 來自手機 | 只看該作者
樓主,問一下在軟件上能成功,然后 我把你的程序端口修改了一下然后放在開發板上,為什么就不行了??
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美一级黄色片 | 成人在线不卡 | 国产亚洲精品成人av久久ww | 国产女人与拘做视频免费 | 欧美另类视频在线 | 91精品一区 | 在线播放国产视频 | 国产午夜精品一区二区三区嫩草 | 日本精品一区二区在线观看 | 草久网 | 免费色网址 | 亚洲免费一 | 亚洲日本一区二区三区四区 | 亚洲综合精品 | 波多野结衣先锋影音 | 国产精品不卡一区 | 亚洲美女在线视频 | 亚洲一区中文字幕 | 中日字幕大片在线播放 | 久久国产欧美日韩精品 | 日韩欧美黄色 | 日韩黄色免费 | 羞羞视频网站免费观看 | 久久精品视频在线播放 | 国产在线中文字幕 | 狠狠艹| 国产精品99久久免费观看 | 91亚洲精品在线观看 | 别c我啊嗯国产av一毛片 | 黑人精品欧美一区二区蜜桃 | 精品无码久久久久久国产 | 亚洲高清在线观看 | 欧美一区二区三区在线免费观看 | 亚洲国产视频一区二区 | 国产在线一区二区三区 | 欧美精品一区二区三区四区五区 | 午夜丁香视频在线观看 | 盗摄精品av一区二区三区 | 精品三级在线观看 | 国产精品美女久久久久久免费 | 中文字幕在线免费 |