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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

簡易單片機計算器仿真,16按鍵行掃描式LCD1602顯示

[復制鏈接]
跳轉到指定樓層
樓主
簡易計算器,行掃描式,LCD顯示(非完美版)。16按鍵


單片機計算器仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機源程序如下:
  1. #include
  2. #include

  3. #define uchar unsigned char
  4. #define uint unsigned int
  5. sbit Lcd_RS = P2^5;
  6. sbit Lcd_RW = P2^6;

  7. sbit Lcd_en = P2^7;

  8. uchar code table[] = "51201314";
  9. uchar code table1[] = "20140815";
  10. uchar code key16[]=
  11. {0xee,0xed,0xeb,0xe7,
  12. 0xde,0xdd,0xdb,0xd7,
  13. 0xbe,0xbd,0xbb,0xb7,
  14. 0x7e,0x7d,0x7b,0x77}
  15. uchar key_number;
  16. void delayMS(uint x)
  17. {
  18.    uchar i;
  19.    while(x--) for(i = 0; i < 120; i++);
  20.    
  21.     }

  22. bit Busy_Check()
  23. {
  24.    bit state;
  25.    Lcd_RS = 0;
  26.    Lcd_RW = 1;
  27.    Lcd_EN = 1;
  28.    delayMS(1);
  29.    
  30.    state=(bit)(P0&0x80);
  31.    Lcd_EN = 0;
  32.    delayMS(1);
  33.    return state;
  34. }

  35. void LCD_Wdata(uchar dat)
  36. {
  37.    while(Busy_Check());
  38.    Lcd_RS = 1;
  39.    Lcd_RW = 0;
  40.    Lcd_EN = 0;
  41.    P0 = dat;
  42.    Lcd_EN = 1;
  43.    delayMS(1);
  44.    Lcd_EN = 0;
  45. }

  46. void LCD_Wcmd(uchar cmd)
  47. {

  48.    while(Busy_Check());
  49.    Lcd_RS = 0;
  50.    Lcd_RW = 0;
  51.    P0 = cmd;
  52.    delayMS(1);
  53.    Lcd_EN = 0;
  54.    Lcd_EN = 1;
  55.    delayMS(1);
  56.    Lcd_EN = 0;
  57. }
  58. void Init_Lcd()
  59. {

  60.    LCD_Wcmd(0x38);
  61.    delayMS(1);
  62.    LCD_Wcmd(0x0f);
  63.    delayMS(1);
  64.    
  65.    LCD_Wcmd(0x06);
  66.    delayMS(1);
  67.    LCD_Wcmd(0x01);
  68.    delayMS(1);
  69. }

  70. bit pushkey()
  71. {

  72.    P1=0xf0;
  73.    if(P1!=0xf0)
  74.         return (1);
  75.         else
  76.         return (0);
  77. }

  78. void key_scan()
  79. {
  80.     uchar keycode,p;
  81.     delayMS(15);  
  82.      if(P1!=0xf0)
  83.        {P1?=?0xf7;
  84.          while(1)
  85.             {
  86.                keycode = P1;
  87.                if((keycode&0xf0)!=0xf0)?break;
  88.                P1=_cror_(P1,1);
  89.                }
  90.                while((pushkey()));
  91.                for  (p?=?0 p<16?P++)
  92.                   if ( keycode== key16[p])
  93.                   key_number=p;
  94.                     }
  95.       }
  96. void LCD_address(uchar hang,uchar lie )
  97. {
  98.     if (hang%2==1) LCD_Wcmd(0x80+(lie%16)-1);
  99.         else LCD_Wcmd(0x80+0x40+(lie%16)-1);

  100. }
  101. void LCD_display()
  102. { uchar j;
  103. LCD_address(1,1);
  104. while(table1[j]!='')
  105. {
  106. LCD_Wdata(table[j]);
  107. j++;
  108.   }

  109. }

  110. void main()
  111. {   uchar n=0;
  112.     Init_Lcd();//初始化LCD
  113.     LCD_display();
  114.     while(1)
  115.     {
  116.       if(pushkey())//判斷是否有鍵按下

  117.         {
  118.         key_scan();
  119.         switch(key_number)

  120.               {
  121.                 case 10: LCD_Wcmd(0x10);break;

  122.                 case 11: LCD_Wcmd(0x14);break;

  123.                 case 12: n++;

  124.                 if((n%2)==1)


  125.                 {
  126.                 LCD_Wcmd(0x80+0x40);break;
  127.                  }
  128.                 else LCD_Wcmd(0x80);break;

  129.                 ase 13: LCD_Wcmd(0x10);

  130.                 LCD_Wdata(0x00);LCD_Wcmd(0x10);break;

  131.                 case 15: LCD_Wcmd(0x01);break;

  132.                 default: LCD_Wdata(key_number+0x30);break;

  133.                 }

  134.         }

  135.         }

  136.     }
復制代碼


所有資料51hei提供下載:
4乘4計算器LCD.rar (49.01 KB, 下載次數: 26)




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

使用道具 舉報

沙發
ID:304879 發表于 2018-5-6 07:22 | 只看該作者
哇靠。很多錯誤
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 天天躁日日躁狠狠躁2018小说 | 丝袜一区二区三区 | 台湾a级理论片在线观看 | 国产精品久久久久久高潮 | 91视频久久 | 午夜影院在线观看免费 | 最新av在线网址 | 久久国产区 | 久久这里只有精品首页 | 亚洲一区二区av | 在线观看国产 | 在线免费观看视频黄 | jizz18国产| 成人激情视频在线 | 国产成人精品久久 | 国内自拍视频在线观看 | 日韩影院一区 | 成人午夜电影在线观看 | 国产精品久久久久久久久免费丝袜 | 国产在线拍偷自揄拍视频 | 亚洲精品一区中文字幕 | 天天看天天爽 | 国产视频在线一区二区 | 福利视频二区 | 亚洲午夜网 | 超碰精品在线 | av影音在线 | 国产精品久久久久久久久久久久久久 | 国产99热精品 | 国产在线观看网站 | 久久这里只有精品首页 | 91久久久精品国产一区二区蜜臀 | 超碰在线播 | 国产精品自产av一区二区三区 | 成年人免费在线视频 | 国产精品美女一区二区 | 99精品国自产在线观看 | 久久精品亚洲精品 | 婷婷中文字幕 | 艹逼网| 国产欧美日韩一区 |