精品国产人成在线_亚洲高清无码在线观看_国产在线视频国产永久2021_国产AV综合第一页一个的一区免费影院黑人_最近中文字幕MV高清在线视频

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

數碼管神奇的小數點顯示程序詳解

2oON_changxuemc ? 2017-12-12 09:46 ? 次閱讀

數碼管的小數點單獨有一位來控制,這就是物理世界和數字世界的神奇之處,數碼管用來顯示數字和字母的led段有7個,再加上小數點共8個,正好對應一個字節的位數,這樣使用單片機的一個口正好可以全部操作,比如顯示2.,只需將數字2對應的二進制數第1位改為1即可,在實際中,我們將要帶點顯示的數字和0x80相或就可以,其原理如下:

共陰極(1亮0滅): DP G F E D C B A

0 1 0 1 1 0 1 1 = 0x5B

1 0 0 0 0 0 0 0 = 0x80

兩組二進制數進行或運算后結果為:

1 1 0 1 1 0 1 1 = 0xDB

可以發現,進行或運算后,原來顯示數字2的部分(綠色碼)不變,但原來控制點顯示的部分(紅色)為1,正好達到了不影響數字又能點亮點的效果。下面的代碼,實現了顯示0-999縮小10倍的顯示效果。

#include

sbit LATCH1=P2^2;//段鎖存

sbit LATCH2=P2^3;//位鎖存

unsigned char code DuanMa[10]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};// 顯示段碼值0~9

unsigned char code WeiMa[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//分別對應相應的數碼管點亮,即位碼

unsigned char TempData[8]; //存儲顯示值的全局變量

void Delay(unsigned int t); //函數聲明

void Display(unsigned char FirstBit,unsigned char Num);

main()

{

unsigned int num;

unsigned int j;

while(1)

{

j++;

if(j==200) //檢測當前數值顯示了一小段時間后,需要顯示的數值加1,實現數據顯示的變化

{

j=0;

num++;

if(num==1000)//用于顯示0~999

num=0;

}

TempData[0]=DuanMa[num/100];//分解顯示信息 123/100=1

TempData[1]=DuanMa[(num%100)/10]|0x80; //23/10=2. 倒數第2位加點,實現數字縮小10倍

TempData[2]=DuanMa[(num%100)%10]; //23%10=3

Display(2,3);

}

}

void Delay(unsigned int t)

{

while(--t);

}

/*------------------------------------------------

顯示函數,用于動態掃描數碼管

輸入參數 FirstBit 表示需要顯示的第一位,如賦值2表示從第三個數碼管開始顯示

如輸入0表示從第一個顯示。

Num表示需要顯示的位數,如需要顯示99兩位數值則該值輸入2

------------------------------------------------*/

void Display(unsigned char FirstBit,unsigned char Num)

{

unsigned char i;

for(i=0;i{

P1=0; //清空數據,防止有交替重影

LATCH1=1; //段鎖存

LATCH1=0;

P1=WeiMa[i+FirstBit]; //取位碼

LATCH2=1; //位鎖存

LATCH2=0;

P1=TempData[i]; //取顯示數據,段碼

LATCH1=1; //段鎖存

LATCH1=0;

Delay(200); // 掃描間隙延時,時間太長會閃爍,太短會造成重影

}

}

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 數碼管
    +關注

    關注

    32

    文章

    1874

    瀏覽量

    90943

原文標題:單片機怎么顯示小數點?數碼管小數點顯示程序

文章出處:【微信號:changxuemcu,微信公眾號:暢學單片機】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    如何給秒表第二位加上小數點

    怎么給秒表第二位加上小數點?我只會數碼管一加就全都有小數點
    發表于 08-18 21:21

    基于stm32f1xx的四位數碼管小數顯示實驗

    主體2.1實現單個任意數字的顯示2.1.1定義數字表以及數碼管段選表2.1.2 消影2.1.3 主體代碼如下2.2 數據處理2.2.1 記錄小數點位置2.2.2浮點數變為整數,并限制為四位2.2.3 整數變為整數型數組2.2.4
    發表于 07-21 08:13

    共陰數碼管與共陽數碼管小數點段碼是怎樣的

    數碼管主要分為哪幾種呢?有何區別?共陰數碼管與共陽數碼管小數點段碼是怎樣的?
    發表于 01-21 07:43

    如何實現帶小數點數碼管顯示

    如何實現帶小數點數碼管顯示
    發表于 02-15 06:01

    數碼管顯示原理是什么呢

    3.1 數碼管顯示原理這便是數碼管的圖片,叫做四位數碼管,當然也有雙位,單位數碼管,也還有不帶小數點
    發表于 02-22 06:45

    【每周一練】盤古1K開發板+動態數碼管+小數點顯示

    7段數碼管顯示小數點沒有用上。我簡單地修改了一下程序,可以讓其中一個數碼管顯示
    發表于 12-09 20:30

    數碼管的分類

    數碼管的分類     數碼管按段數分為七段數碼管和八段數碼管,八段數碼管比七段數碼管
    發表于 11-06 11:41 ?7430次閱讀

    34-顯示小數點

    34-顯示小數點----------51單片機源程序 用keil直接打開
    發表于 06-16 15:38 ?11次下載

    如何利用單片機數碼管程序模擬是時鐘顯示時間?

    數碼管是一種半導體發光器件,其基本單元是發光二極數碼管按段數可分為七段數碼管和八段數碼管,八段數碼管
    發表于 11-17 11:18 ?1.6w次閱讀

    常用共陰極數碼管型號

    數碼管按段數可分為七段數碼管和八段數碼管,八段數碼管比七段數碼管多一個發光二極單元,也就是多一
    發表于 01-28 10:25 ?3.6w次閱讀
    常用共陰極<b class='flag-5'>數碼管</b>型號

    關于看門狗定時器動態數碼管顯示問題

    程序把看門狗當做普通定時器使用,在看門狗中斷中進行數碼管掃描,另外我加入了顯示的緩沖區,想在數碼管顯示什么數字只需要對緩沖數組中的值進行操
    發表于 04-23 11:10 ?1408次閱讀
    關于看門狗定時器動態<b class='flag-5'>數碼管</b>的<b class='flag-5'>顯示</b>問題

    微雪電子8段數碼管簡介

    8段數碼管模塊 4位8段數碼管模塊 帶小數點 用于數值顯示 時間顯示等等 提供測試程序(A
    的頭像 發表于 12-30 09:03 ?1893次閱讀
    微雪電子8段<b class='flag-5'>數碼管</b>簡介

    基于51單片機數碼管顯示

    它們的各個筆劃,公共電極。數碼管實際上是由七個發光組成8字形構成的,加上小數點就是8個。這些段分別由字母a,b,c,d,e,f,g,dp來表示,如圖所示。數碼管按段數可分為七段
    發表于 11-11 19:21 ?18次下載
    基于51單片機<b class='flag-5'>數碼管</b><b class='flag-5'>顯示</b>

    小數點數碼管顯示

    小數點數碼管顯示數碼管的示意圖如上,通過點亮a-g七個led來拼成對應的數字或字符,數碼管有共陽極(底電平亮)和共陰極(高電平亮),以上圖的數字2為例:共陽極(0亮1滅): D
    發表于 12-16 16:59 ?10次下載
    帶<b class='flag-5'>小數點數碼管</b>的<b class='flag-5'>顯示</b>

    數碼管的工作原理、靜態顯示及動態顯示

    ????? 數碼管是一種利用LED的顯示器件,普通的數碼管在內部集成了八個數碼管,分別組成了對應的段,由于數字只需要七個段就可以,所以有的數碼管
    的頭像 發表于 01-16 15:48 ?4.2w次閱讀
    <b class='flag-5'>數碼管</b>的工作原理、靜態<b class='flag-5'>顯示</b>及動態<b class='flag-5'>顯示</b>