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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3507|回復(fù): 0
收起左側(cè)

STM32單片機變量以十進(jìn)制方式顯示函數(shù)代碼

[復(fù)制鏈接]
ID:116773 發(fā)表于 2019-2-25 15:05 | 顯示全部樓層 |閱讀模式
    花了半天時間調(diào)試完成了一個變量顯示函數(shù),可以任意指定顯示數(shù)字的位數(shù)(通常不超過10位),還可以設(shè)定是否顯示前導(dǎo)‘0’,并可在任意位置插入小數(shù)點(當(dāng)然這個小數(shù)點是人為確定的,不是數(shù)據(jù)中計算出來的,因為數(shù)據(jù)是無符號類型)。這個函數(shù)很容易移植到其他應(yīng)用中的,只要修改一下相關(guān)顯示的代碼就行。

STM32單片機源程序:
  1. /****************************************************************
  2. * 顯示變量函數(shù)display_value()
  3. * 輸入?yún)?shù):開始顯示(左上角)坐標(biāo):x,y,(uint16_t)
  4. *           前景色,背景色,(White,Black,Red,Green,Blue,Yellow)
  5. *           變量,(uint32_t)
  6. *           顯示長度(不含小數(shù)點),小數(shù)位數(shù),(uint8_t)
  7. *           前導(dǎo)0(0=顯示,1=空格)
  8. *****************************************************************/
  9. void display_value(uint16_t x,uint16_t y,uint16_t fc,uint16_t bc,uint32_t v,uint8_t l,uint8_t b,uint8_t z)
  10. {
  11.     unsigned char i,j,m;
  12.     unsigned short k,x0;
  13.         uint32_t u,n;
  14.         
  15.     x0 = x;
  16.         u = v;
  17.         z = z > 0 ? 0: 16;            //前導(dǎo)0:z=16;前空格:z=0

  18.         n = 1;
  19.         for(j = 1; j < l; j++)        //計算倍數(shù)
  20.         n = n * 10;
  21.         
  22.         LCD_CS_CLR;                   //選擇LCD
  23.         for(m = l;m > 0;m --)         //開始分拆變量
  24.         {

  25.                 k = u / n;                //當(dāng)前位數(shù)字
  26.                 u = u - (k * n);          //剩余數(shù)字
  27.                 if(k > 0) z = 16;         //只要有一位數(shù)字>0,之后不能顯示空格
  28.                 if(m == 1) z = 16;        //小數(shù)點之前的'0'顯示
  29.                 n = m < 2 ? 1: n / 10;    //計算當(dāng)前的倍數(shù)
  30.         
  31.         if((m == b) & (m > 0))    //顯示小數(shù)點
  32.                 {
  33.                     for(i = 0;i < 16;i ++){
  34.                         for(j = 0;j < 8;j ++){
  35.                     if(asc16[14 * 16 + i] & (0x80 >> j))//從asc16[]數(shù)組中取字符.數(shù)據(jù)
  36.                         /* draw a point on the lcd */
  37.                         lcd_draw_point(x + j,y + i,fc);
  38.                     else{
  39.                         if(fc != bc)
  40.                             /* draw a point on the lcd */
  41.                             lcd_draw_point(x + j,y + i,bc);
  42.                     }
  43.                                 }
  44.                         }
  45.                         x += 8;
  46.                 }
  47.                
  48.             for(i = 0;i < 16;i ++){    //顯示字符(k=字符序號)
  49.             for(j = 0;j < 8;j ++){
  50.                 if(asc16[(k+z) * 16 + i] & (0x80 >> j))//從asc16[]數(shù)組中取字符數(shù)據(jù)
  51.                     /* draw a point on the lcd */
  52.                     lcd_draw_point(x + j,y + i,fc);
  53.                 else{
  54.                     if(fc != bc)
  55.                         /* draw a point on the lcd */
  56.                         lcd_draw_point(x + j,y + i,bc);
  57.                 }
  58.             }
  59.                 }
  60.         x += 8;

  61.         }
  62.         LCD_CS_SET;
  63. }
復(fù)制代碼

評分

參與人數(shù) 1黑幣 +100 收起 理由
admin + 100 共享資料的黑幣獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区二区久久久久 | 一区欧美 | 久久伊人精品一区二区三区 | 岛国一区 | 老司机精品福利视频 | 北条麻妃一区二区三区在线视频 | 精品国产视频 | 欧美综合久久 | 伊人久久国产 | 黄网在线观看 | 精品久久久久久亚洲精品 | 久久久久国产精品午夜一区 | 国内精品久久久久久久 | 欧美激情精品久久久久久免费 | 中国黄色在线视频 | 国产91久久久久 | 成人国产精品久久 | 91精品一区二区三区久久久久久 | 国产精品免费在线 | 免费国产视频 | 岛国av一区二区三区 | 久久国产亚洲 | 久久精品国内 | 欧美一区二区免费视频 | 日韩国产精品一区二区三区 | 黄在线| 91网在线播放 | 99re在线视频免费观看 | 亚洲高清一区二区三区 | 在线小视频 | 99九色| 欧美一区2区三区3区公司 | 亚洲精品一区二三区不卡 | 日韩伦理一区二区 | 高清18麻豆 | 成人日韩av | 国产二区视频 | 久久国产精品免费 | 久草资源在线 | 欧美日韩综合视频 | 日韩在线h |