1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉

標(biāo)題: 數(shù)碼管怎么顯示小數(shù)點 [打印本頁]

作者: acolick    時間: 2017-10-9 16:34
標(biāo)題: 數(shù)碼管怎么顯示小數(shù)點
我想做個計算器,然后就是在數(shù)據(jù)結(jié)果在數(shù)碼管顯示的時候不知道怎么顯示,好比說0.9*0.9, 0.89/189這樣,在不知道數(shù)據(jù)是幾位,小數(shù)點在第幾位的時候,我怎么檢測,然后在數(shù)碼管上顯示出結(jié)果。請大神解答,謝謝。

作者: cjjcjj1    時間: 2017-10-9 17:08
提示: 作者被禁止或刪除 內(nèi)容自動屏蔽
作者: acolick    時間: 2017-10-10 09:36
cjjcjj1 發(fā)表于 2017-10-9 17:08
先不管小數(shù)計算,整數(shù)計算過程的程序?qū)懞昧藛幔?br /> 小數(shù)部分,加個標(biāo)志位,記錄下小數(shù)的位數(shù),然后
小數(shù)計算 ...

我寫的比較爛,能想到的都寫了,結(jié)果顯示還沒有寫
#include "reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;

sbit LSA=P2^2;
sbit LSB=P2^3;
sbit LSC=P2^4;
u8 code shumaguan[]={0x3f,0x06,0x5b,0x4f,     //0~3
0x66,0x6d,0x7d,0x07,    //4~7
0x7f,0x6f,0x00,0x00,    //8~b
0x00,0x00,0x00,0x00 }; //c-f

#define keychoice P1
#define keyoutput P0
u8 keyvalue;
u8 a=0;
int a;                 //第一個數(shù)字
int b;             //第二個數(shù)字
int c;             //結(jié)果
char flag;

void delay(u8 i)
{
while(i--);
}
void interrupt0()
{
   EA=1;
   INT0=1;
   EX0=1;
}
void dtdisplay()
{
u8 i;
for(i=1;i<9;i++)
{
  switch(result)
  {
   case(1):LSA=0;LSB=0;LSC=0;break;
   case(2):LSA=1;LSB=0;LSC=0;break;
   case(3):LSA=0;LSB=1;LSC=0;break;
   case(4):LSA=1;LSB=1;LSC=0;break;
   case(5):LSA=0;LSB=0;LSC=1;break;   
   case(6):LSA=1;LSB=0;LSC=1;break;
   case(7):LSA=0;LSB=1;LSC=1;break;
   case(8):LSA=1;LSB=1;LSC=1;break;
  }
  P0=shumaguan;
  delay(100);
  P0=0x00;
}
}
void keydown()
{
        keychoice=0x0f;
        if(keychoice!=0x0f)
        {
         delay(1000);
         if(keychoice!=0x0f)
         {
          keychoice=0x0f;
          switch(keychoice)
          {
           case(0x07):keyvalue=0;break;
           case(0x0b):keyvalue=1;break;
           case(0x0d):keyvalue=2;break;
           case(0x0e):keyvalue=3;break;
          }
          keychoice=0xf0;
          switch(keychoice)
          {
           case(0x70):keyvalue=keyvalue;break;
           case(0xb0):keyvalue=keyvalue+4;break;
           case(0xd0):keyvalue=keyvalue+8;break;
           case(0xe0):keyvalue=keyvalue+12;break;
          }
            //加法
          if(keyvalue==10)                  
          {
             keyvalue='+';
          }
                //減法
            if(keyvalue==11)                  
          {
            keyvalue='-';
          }
                //乘法
            if(keyvalue==12)                  
          {
            keyvalue='*';
      }
                 //除法
            if(keyvalue==13)
          {
             keyvalue='/';
          }
                    //小數(shù)點
           if(keyvalue==14)
          {
            keyvalue='.';
          }
           //等于
            if(keyvalue==15)
          {
            keyvalue='=';
          }

          while((a<50)&&(keychoice!=0xf0))
          {
          delay(1000);
          a++;
          }

         }
        }
}
void keydeal()
{
   
        if(keyvalue==10)
        {
         result=D_shu+E_shu;
        }
                  if(keyvalue==11)
        {
         result=D_shu-E_shu;
        }
                if(keyvalue==12)
        {
         result=D_shu*E_shu;
        }
                if(keyvalue==13)
        {
         result=D_shu/E_shu;
        }
        if(keyvalue==15)
        {
          interrupt0();
        }

}


void main()
{
LSA=0;
LSB=0;
LSC=0;
while(1)
{
  keydown();
  keyoutput=shumaguan[keyvalue];
}
   
}
void Int0() interrupt 0
{
  if(keyvalue==15)
  {
   delay(1000);
   
  }
}
作者: acolick    時間: 2017-10-10 09:38
cjjcjj1 發(fā)表于 2017-10-9 17:08
先不管小數(shù)計算,整數(shù)計算過程的程序?qū)懞昧藛幔?br /> 小數(shù)部分,加個標(biāo)志位,記錄下小數(shù)的位數(shù),然后
小數(shù)計算 ...

result 結(jié)果
D_shu 第一個數(shù)
E_shu 第二個數(shù)
作者: egang    時間: 2017-10-10 10:39

共陰極數(shù)碼管,只需將dp腳接高電平(mcu的io輸出高電平)就可以點亮了。

作者: yzwzfyz    時間: 2017-10-11 23:12
贊同沙發(fā)的說法
作者: whwhwh    時間: 2017-10-12 19:32
要知道數(shù)碼管引腳的順序,如共陰極數(shù)碼管只需將dp腳接高電平(mcu的io輸出高電平)就可以點亮了。
作者: asfdasdf    時間: 2017-10-12 23:47
數(shù)碼管有個DP,想要小數(shù)點,點亮它就行了
作者: sldx    時間: 2017-10-13 01:22
假設(shè)結(jié)果為a,整數(shù)部分為m=(int)a;然后你判斷m是幾位數(shù)就可以知道小數(shù)點在哪了……
作者: 老煙槍    時間: 2017-10-13 07:26
最后加標(biāo)志位
作者: 老煙槍    時間: 2017-10-13 07:28
學(xué)習(xí)一下
作者: powerdruy    時間: 2017-10-13 08:54
樓主是不知道如何獲取小數(shù)點后位數(shù)的算法嗎
作者: asas    時間: 2017-10-13 09:11
數(shù)碼管分為7段,最后一個段就是小數(shù)點啊~
作者: acolick    時間: 2017-10-13 09:23
powerdruy 發(fā)表于 2017-10-13 08:54
樓主是不知道如何獲取小數(shù)點后位數(shù)的算法嗎

是啊 不知道小數(shù)點是在第幾位,怎么獲取知道是在第幾位
作者: acolick    時間: 2017-10-13 09:24
whwhwh 發(fā)表于 2017-10-12 19:32
要知道數(shù)碼管引腳的順序,如共陰極數(shù)碼管只需將dp腳接高電平(mcu的io輸出高電平)就可以點亮了。

但是我不知道是第幾位有小數(shù)點啊
作者: SIYEUPIN    時間: 2017-10-13 09:59
數(shù)碼管是8位的,其中1到7位用來顯示數(shù)字,第八位就是小數(shù)點了。比如在第三位,就是第三個數(shù)碼管的第八個燈
作者: lzmcode    時間: 2017-10-13 11:01
選中g(shù)這個段碼
作者: 1115892875    時間: 2017-10-13 11:16
小數(shù)點也屬于數(shù)碼管控制的一部分,你查下手冊就可以
作者: 春風(fēng)十里吹    時間: 2019-2-25 03:26
數(shù)碼管有個DP,想要小數(shù)點,點亮它就行了
作者: 迷彩豬    時間: 2019-2-26 14:14
數(shù)碼管有個dp位,要讓他亮,就要改段碼
作者: zyx123    時間: 2019-2-26 14:18
數(shù)碼管有一個是DP,這個點亮就是小數(shù)點
作者: dxn396396396    時間: 2019-2-26 14:47
數(shù)碼管第八位就是小數(shù)點,只要控制導(dǎo)通就可以顯示了
作者: 傻呆    時間: 2019-12-12 10:34
這個數(shù)碼管秒上的小數(shù)點怎么讓他不亮,程序應(yīng)該怎么改?求大神指點。

2019-12-12_10.32.16.jpg (1.33 MB, 下載次數(shù): 82)

2019-12-12_10.32.16.jpg

2019-12-12_10.32.46.jpg (1.51 MB, 下載次數(shù): 69)

2019-12-12_10.32.46.jpg





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1