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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索

LCD1602顯示實驗數值顯示有什么好方法

查看數: 1036 | 評論數: 1 | 收藏 1
關燈 | 提示:支持鍵盤翻頁<-左 右->
    組圖打開中,請稍候......
發布時間: 2021-12-21 23:01

正文摘要:

用LCD1602和16個按鍵實現十進制數的加減乘除四則運算 c是運算結果(即等號后面的數值)有沒有比較好的方法顯示 兩個輸入數的范圍是0~32767,也就是運算結果范圍也很大 從高到低或從低到高提取數字都行 但是要像下圖 ...

回復

ID:944932 發表于 2021-12-21 23:21
#include "r_lcd1602drv.h"
#include "r_matrixKeypad.h"
u8 keyValueTab[][2]={
                    {0xee,'1'},{0xed,'2'},{0xeb,'3'},{0xe7,'+'},
                    {0xde,'4'},{0xdd,'5'},{0xdb,'6'},{0xd7,'-'},
                    {0xbe,'7'},{0xbd,'8'},{0xbb,'9'},{0xb7,'*'},
                    {0x7e,'.'},{0x7d,'0'},{0x7b,'='},{0x77,'/'}
                    };
u8 GetKeyValue(u32 scanCode)
{
    int i;
    for(i=0;i<16;i++)
        if(scanCode==keyValueTab[i][0])
            return keyValueTab[i][1];
    return 0;
}

int main()
{
    r_lcd1602drv lcd;
    r_matrixKeypad keypad;
   
   
    uchar buf[20];
    u32 scanCode;
   
    float f=0,f1=0;

    u8  datBuf[20];
    u8  datBuf1[20];
    u8  datBufIdx=0;
    u8  datBufIdx1=0;
  
    u8 keyValue;
    u8 isPoint=0;
    u8 isadd=0;
    u8 isde=0;

   
    u32 pins[]={Pin3,Pin4,Pin5,Pin6,Pin7,Pin8,Pin9,Pin10};
    u32 rowPins[]={Pin5,Pin6,Pin7,Pin8};
    u32 colPins[]={Pin1,Pin2,Pin3,Pin4};
    InitSystem();
    lcd.SetRsPin(GPIOB,Pin0);
    lcd.SetRwPin(GPIOB,Pin1);
    lcd.SetEnPin(GPIOB,Pin2);
    lcd.SetDataPins(GPIOB,pins,8);
    lcd.Init();
    keypad.SetRowPort(GPIOA,rowPins,4);
    keypad.SetColPort(GPIOA,colPins,4);
   
    while(1)
    {
    scanCode=keypad.GetScanCode();
      
        if(scanCode!=0)
        {  
         
          if(isde==1)
          {
            isde=0;
            datBufIdx=0;
            datBufIdx1=0;
            lcd.Init();
            lcd.SetRowCol(0,0);
            for(u8 i=0;i<20;i++)
            {
               datBuf[i]=0;
               datBuf1[i]=0;
               
            }
          }
         
          if((isadd=='+')|(isadd=='-')|(isadd=='*')|(isadd=='/'))
          {
           keyValue=GetKeyValue(scanCode);
            if(keyValue>='0'&&keyValue<='9')
            {
                datBuf1[datBufIdx1++]=keyValue;
                lcd.DispChar(keyValue);
            }
            if(keyValue=='.')
            {
                if(isPoint==0)
                {
                    datBuf1[datBufIdx1++]=keyValue;
                    lcd.DispChar(keyValue);
                    isPoint=1;
                }
            }
         
          }
         
          if(isadd==0)
          {
           keyValue=GetKeyValue(scanCode);
            if(keyValue>='0'&&keyValue<='9')
            {
                datBuf[datBufIdx++]=keyValue;
                lcd.DispChar(keyValue);
            }
            if(keyValue=='.')
            {
                if(isPoint==0)
                {
                    datBuf[datBufIdx++]=keyValue;
                    lcd.DispChar(keyValue);
                    isPoint=1;
                }
            }
            if((keyValue=='+')|(keyValue=='-')|(keyValue=='*')|(keyValue=='/'))
            {            
              isadd=keyValue;
              isPoint=0;
              lcd.DispChar(keyValue);            
            }
         
          }
   
            if(keyValue=='=')
            {
               sscanf((char *)datBuf,"%f",&f);
               sscanf((char *)datBuf1,"%f",&f1);              
              switch(isadd)     
              {
              case '+':f=f1+f;break;
              case '-':f=f-f1;break;
              case '*':f=f*f1;break;
              case '/':f=f/f1;break;
              }
               lcd.SetRowCol(1,0);
               sprintf((char *)buf,"%.2f",f);
               lcd.DispString(buf);
               isPoint=0;
               datBufIdx=0;
               datBufIdx1=0;
               isde=1;
               isadd=0;
            }
           
        }
    }
    }

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 福利视频网 | 人人九九精 | 国产一区二区三区日韩 | 国产精品国色综合久久 | 国产精品久久久久久 | 色www精品视频在线观看 | 国产精品精品久久久 | 国产精品久久久久久久久久久新郎 | 中文字幕日韩欧美一区二区三区 | 色视频在线观看 | 成人在线免费网站 | 性欧美精品一区二区三区在线播放 | 亚洲精品一区二区 | 欧美在线观看一区 | 人人射人人草 | av网站观看 | 97成人精品 | 久久久久久久久久久久久久久久久久久久 | 久久精品二区 | 99精品免费久久久久久久久日本 | 日本免费小视频 | 亚洲电影在线播放 | 在线91| 九九热精品在线 | 一级毛片在线播放 | 欧美日韩在线视频一区二区 | 日韩一区二区三区在线观看 | 成人免费视频网站在线看 | 久久99深爱久久99精品 | 国产精品久久久久久久久久免费看 | 国产欧美精品一区二区 | 久久91精品国产 | 日本一区二区不卡 | 国产精品不卡 | 成人免费视频网站在线看 | 青草青草久热精品视频在线观看 | 午夜电影在线播放 | 亚洲精品视频久久 | 91亚洲国产成人久久精品网站 | 亚洲精品一二三区 | 91成人在线 |