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

標題: 簡易單片機計算器仿真,16按鍵行掃描式LCD1602顯示 [打印本頁]

作者: kingofwar    時間: 2018-5-5 16:19
標題: 簡易單片機計算器仿真,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)





作者: paytonshi    時間: 2018-5-6 07:22
哇靠。很多錯誤




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 亚洲毛片在线 | 精品国产一二三区 | 免费超碰| 成人天堂噜噜噜 | 日韩免费一区 | 日韩精品在线观看网站 | 中文字幕乱码一区二区三区 | 亚洲精品一区二区网址 | 在线 丝袜 欧美 日韩 制服 | 午夜精品网站 | 久久精品久久久久久 | 国产ts人妖系列高潮 | 成人精品鲁一区一区二区 | 日本中文字幕一区 | 精品视频在线一区 | 中文字幕在线播放第一页 | 国产福利小视频 | 日韩亚洲一区二区 | 久久久久久久久久久福利观看 | 狠狠干天天干 | 超级乱淫av片免费播放 | 日本在线免费观看 | 黄免费在线 | 国产目拍亚洲精品99久久精品 | 午夜精品影院 | 日韩激情网 | 手机在线观看 | 中文字幕日韩欧美一区二区三区 | 欧美精品区 | 成人午夜网 | 国产成人精品久久二区二区 | 国产免费又色又爽又黄在线观看 | 日本成人在线观看网站 | 色婷婷精品国产一区二区三区 | 精品一区二区三区免费毛片 | 国产伦精品一区二区三区精品视频 | 日韩精品在线一区 | 中文字幕在线剧情 | 亚洲欧美激情精品一区二区 | 国产成人精品一区二区三区在线 | 国产激情一区二区三区 |