欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 單片機+7219數碼管模塊顯示正負浮點數 源程序 [打印本頁]

作者: bresya    時間: 2020-6-4 17:07
標題: 單片機+7219數碼管模塊顯示正負浮點數 源程序
7219數碼管模實現顯示正負浮點數字的程序。自動選擇位數,末尾0不顯示

下面是模塊的電路圖:
  1. void Show_num(double Num)
  2. {
  3.         unsigned char point = 0;
  4.         unsigned char negative = 0;//負數標記
  5.         unsigned char i = 0;
  6.         unsigned char n;
  7.         unsigned char tab[8]={0,0,0,0,0,0,0,0};
  8.         Write_Max7219(0x0f, 0x00);       //顯示測試:1;測試結束,正常顯示:0
  9.         if(Num < 0){
  10.                 Num = -Num;
  11.                 negative = 1; //負數
  12.         }
  13.         if(Num>=0 && Num<10){
  14.                 Num = Num * 10000000;
  15.                 point = 8;               
  16.         }else if(Num>=10 && Num<100){               
  17.                 Num = Num * 1000000;
  18.                 point = 7;
  19.         }else if(Num>=100 && Num<1000){
  20.                 Num = Num * 100000;
  21.                 point = 6;
  22.         }else if(Num>=1000 && Num<10000){
  23.                 Num = Num * 10000;
  24.                 point = 5;
  25.         }else if(Num>=10000 && Num<100000){
  26.                 Num = Num * 1000;
  27.                 point = 4;
  28.         }else if(Num>=100000 && Num<1000000){
  29.                 Num = Num * 100;
  30.                 point = 3;
  31.         }else if(Num>=1000000 && Num<10000000){
  32.                 Num = Num * 10;
  33.                 point = 2;
  34.         }else if(Num>=10000000 && Num<100000000){
  35.                 Num = Num * 1;
  36.                 point = 1;
  37.         }
  38.         
  39.         if(negative == 1){
  40.                 tab[7] = 10;
  41.                 for(i=7;i>0;i--){        
  42.                         n = Num/10000000;
  43.                         if(i == point-1){
  44.                                 tab[i-1] = n+0x80;                                
  45.                         }else
  46.                                 tab[i-1] = n;
  47.                         Num = (Num-(n*10000000))*10;                        
  48.                 }
  49.         }else{
  50.                 for(i=8;i>0;i--){        
  51.                         n = Num/10000000;
  52.                         if(i == point){
  53.                                 tab[i-1] = n+0x80;        
  54.                         }else
  55.                                 tab[i-1] = n;        
  56.                         Num = (Num-(n*10000000))*10;
  57.                 }
  58.         }
  59.         i=0;
  60.         while(1){               
  61.                 if(tab[i] == 0){
  62.                         tab[i] = 15;
  63.                         i++;
  64.                 }else{
  65.                         break;
  66.                 }        
  67.         }
  68.         for(i=8;i>0;i--){
  69.                 Write_Max7219(i,tab[i-1]);
  70.         }
  71. }
復制代碼



main.rar

1.09 KB, 下載次數: 24, 下載積分: 黑幣 -5

源代碼






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