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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

哪位解釋一下這個(gè)單片機(jī)數(shù)碼管顯示代碼詳細(xì)工作來龍去脈

[復(fù)制鏈接]
ID:705846 發(fā)表于 2024-11-24 18:40 | 顯示全部樓層 |閱讀模式
哪位解釋一下這個(gè)代碼詳細(xì)工作來龍去脈。謝謝。

//數(shù)碼管顯示緩存區(qū)
unsigned char Nixie_Buf[14]={0,0,1,2,3,4,5,6,7,8,9,10,11,32};

//數(shù)碼管段碼表
unsigned char NixieTable[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,
                                                        0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10,0x08,0x03,0x46,0x21,0x06,0x0e,0xFF,
};
               

回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-11-24 19:01 | 顯示全部樓層
14字節(jié)緩沖,32個(gè)段碼,不懂
回復(fù)

使用道具 舉報(bào)

ID:161164 發(fā)表于 2024-11-24 20:57 | 顯示全部樓層
unsigned char NixieTable[] = {
    0xc0, // 0  -> NixieTable[0]
    0xf9, // 1  -> NixieTable[1]
    0xa4, // 2  -> NixieTable[2]
    0xb0, // 3  -> NixieTable[3]
    0x99, // 4  -> NixieTable[4]
    0x92, // 5  -> NixieTable[5]
    0x82, // 6  -> NixieTable[6]
    0xf8, // 7  -> NixieTable[7]
    0x80, // 8  -> NixieTable[8]
    0x90, // 9  -> NixieTable[9]
    0x88, // A  -> NixieTable[10]
    0x83, // b  -> NixieTable[11]
    0xc6, // C  -> NixieTable[12]
    0xa1, // d  -> NixieTable[13]
    0x86, // E  -> NixieTable[14]
    0x8e, // F  -> NixieTable[15]
    0x40, // G  -> NixieTable[16]
    0x79, // H  -> NixieTable[17]
    0x24, // I  -> NixieTable[18]
    0x30, // J  -> NixieTable[19]
    0x19, // K  -> NixieTable[20]
    0x12, // L  -> NixieTable[21]
    0x02, // M  -> NixieTable[22]
    0x78, // N  -> NixieTable[23]
    0x00, // O  -> NixieTable[24]
    0x10, // P  -> NixieTable[25]
    0x08, // Q  -> NixieTable[26]
    0x03, // R  -> NixieTable[27]
    0x46, // S  -> NixieTable[28]
    0x21, // T  -> NixieTable[29]
    0x06, // U  -> NixieTable[30]
    0x0e, // V  -> NixieTable[31]
    0xFF  // 關(guān)閉顯示 -> NixieTable[32]
};
回復(fù)

使用道具 舉報(bào)

ID:69038 發(fā)表于 2024-11-24 22:44 | 顯示全部樓層
就是典型的一維數(shù)組,沒什么好講的;
unsigned char Nixie_Buf[14]={0,0,1,2,3,4,5,6,7,8,9,10,11,32};
表示這個(gè)數(shù)組的數(shù)據(jù)格式是 unsigned char 類型的;
這個(gè)數(shù)組名字叫  Nixie_Buf ,下標(biāo)從0開始到13,共有14個(gè)成員,
分別就是{0,0,1,2,3,4,5,6,7,8,9,10,11,32},按順序排列。
如果要取第一個(gè)數(shù),就 Nixie_Buf[0]=0;第二個(gè)是 Nixie_Buf[1]=0;余下類推,直到Nixie_Buf[13]=32
這樣數(shù)組常用于一大堆毫無規(guī)律,卻又反復(fù)調(diào)用的數(shù)據(jù),基本上就是以空間換效率?
當(dāng)然,在你這里因?yàn)閿?shù)據(jù)量不大,效率并不差太多。
不用數(shù)組的話,可能你要用一個(gè)switch分支來賦值:
u8 Nixie_Buf;
u8 index;
switch (index)
{
case 0: Nixie_Buf=0; break;
case 1: Nixie_Buf=0; break;
case 2: Nixie_Buf=1; break;
case 3: Nixie_Buf=2; break;
.
.
case 13: Nixie_Buf=32; break;
default: break;
}
或用 if 來分支:
if (index==0) Nixie_Buf=0;
else if  (index==1) Nixie_Buf=0;
else if  (index==2) Nixie_Buf=1;
else if  (index==3) Nixie_Buf=2;
.
.
.
else if  (index==13) Nixie_Buf=32;

if..else if 超過5個(gè),建議用switch,
當(dāng)然這也不是強(qiáng)推的,依個(gè)人喜好,并沒有太大的優(yōu)劣區(qū)別。
~~個(gè)人觀點(diǎn),僅供參考~~
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-11-25 07:55 | 顯示全部樓層
lkc8210 發(fā)表于 2024-11-24 20:57
unsigned char NixieTable[] = {
    0xc0, // 0  -> NixieTable[0]
    0xf9, // 1  -> NixieTable[1]

一個(gè)7段數(shù)碼管,花樣還整這么多
回復(fù)

使用道具 舉報(bào)

ID:705846 發(fā)表于 2024-11-25 11:22 | 顯示全部樓層
xiaobendan001 發(fā)表于 2024-11-25 07:55
一個(gè)7段數(shù)碼管,花樣還整這么多

unsigned char Nixie_Buf[14]={0,0,1,2,3,4,5,6,7,8,9,10,11,32};
花括號(hào)內(nèi)的數(shù)字是什么意思。
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-11-25 12:29 | 顯示全部樓層
samxon 發(fā)表于 2024-11-25 11:22
unsigned char Nixie_Buf[14]={0,0,1,2,3,4,5,6,7,8,9,10,11,32};
花括號(hào)內(nèi)的數(shù)字是什么意思。

顯示緩沖區(qū),一般都是直接定義一個(gè)比如unsigned char Nixie_Buf[14];
花括號(hào)里面的是寫代碼時(shí)預(yù)填的內(nèi)容,實(shí)際使用時(shí)這些內(nèi)容往往是隨時(shí)變化的。大概會(huì)在上電瞬間即被沖掉。
回復(fù)

使用道具 舉報(bào)

ID:624769 發(fā)表于 2024-11-25 16:00 | 顯示全部樓層
samxon 發(fā)表于 2024-11-25 11:22
unsigned char Nixie_Buf[14]={0,0,1,2,3,4,5,6,7,8,9,10,11,32};
花括號(hào)內(nèi)的數(shù)字是什么意思。

意思就是:
unsigned char  Nixie_Tran(unsigned char temp)
{
   if(temp != 0)
   {
         if(temp <13)    temp--;
         else temp = 32;
   }
   return temp;
}
回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-11-25 17:27 | 顯示全部樓層
188610329 發(fā)表于 2024-11-25 16:00
意思就是:
unsigned char  Nixie_Tran(unsigned char temp)
{

不懂啊,給解釋一下唄
回復(fù)

使用道具 舉報(bào)

ID:705846 發(fā)表于 2024-11-25 21:35 | 顯示全部樓層
xiaobendan001 發(fā)表于 2024-11-25 12:29
顯示緩沖區(qū),一般都是直接定義一個(gè)比如unsigned char Nixie_Buf[14];
花括號(hào)里面的是寫代碼時(shí)預(yù)填的內(nèi)容 ...

也就是說花括號(hào)內(nèi)的數(shù)字可以隨便寫嗎
回復(fù)

使用道具 舉報(bào)

ID:1133081 發(fā)表于 2024-11-25 21:50 | 顯示全部樓層
unsigned char NixieTable[]是共陽數(shù)碼管段碼表對(duì)應(yīng)字符0~9、A~Z(部分字母不能顯示)和清屏0xFF。如果代碼Px=NixieTable[Nixie_Buf[11]],則顯示“A”。
回復(fù)

使用道具 舉報(bào)

ID:705846 發(fā)表于 2024-11-25 22:14 | 顯示全部樓層
WL0123 發(fā)表于 2024-11-25 21:50
unsigned char NixieTable[]是共陽數(shù)碼管段碼表對(duì)應(yīng)字符0~9、A~Z(部分字母不能顯示)和清屏0xFF。如果代碼 ...

為什么要用Px=NixieTable[Nixie_buf[11]],而不用NexieTable[11]來顯示A呢。
回復(fù)

使用道具 舉報(bào)

ID:1133081 發(fā)表于 2024-11-26 06:49 | 顯示全部樓層
samxon 發(fā)表于 2024-11-25 22:14
為什么要用Px=NixieTable[Nixie_buf[11]],而不用NexieTable[11]來顯示A呢。

數(shù)碼管段碼NixieTable[]的成員是常量,數(shù)碼管顯示緩存Nixie_Buf[]的成員通常是變量,比如存儲(chǔ)的是年月日時(shí)分秒。當(dāng)你編程水平達(dá)到一定高度,就能感受到用此方法編寫數(shù)碼管驅(qū)動(dòng)函數(shù)會(huì)簡(jiǎn)單高效。這是一段用于TX-1C學(xué)習(xí)板的數(shù)碼管動(dòng)態(tài)顯示函數(shù)部分的示例。
  1. #define uint unsigned int                         //宏定義整型
  2. #define uchar unsigned char                 //宏定義字符型
  3. sbit dula=P2^6;                        //段
  4. sbit wela1=P2^7;                        //位
  5. uchar code table[]={                                        //數(shù)碼管0~f段碼
  6. 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
  7. 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
  8. uchar code wela[]={0x7e,0x7d,0x7b,0x77,0xef,0xdf};//數(shù)碼管位碼
  9. uchar data dis_buf[6];                                //6位數(shù)據(jù)緩存
  10. uint  Cntus=0;                                                        //2500us
  11. uchar Cnt1s=0,Cnt1min=0,hour=12;        //秒、分、時(shí)

  12. /***********分解數(shù)據(jù)位程序*************/
  13. void Separate()
  14. {
  15.         dis_buf[0]= hour/10;                        // 時(shí)十位
  16.         dis_buf[1]= hour%10;                        // 時(shí)個(gè)位
  17.         dis_buf[2]= Cnt1min/10;                        // 分十位
  18.         dis_buf[3]= Cnt1min%10;                        // 分個(gè)位
  19.         dis_buf[4]= Cnt1s/10;                        // 秒十位
  20.         dis_buf[5]= Cnt1s%10;                        // 秒個(gè)位
  21. }
  22. /**********6位數(shù)碼管動(dòng)態(tài)顯示程序**********/
  23. void display()
  24. {
  25.         static uchar i=0;                        //靜態(tài)變量
  26.         P0=0x00;                                                //消隱
  27.         dula=1;                                                //鎖存
  28.         dula=0;

  29.         P0=wela[i];                                        //送位碼
  30.         wela1=1;                                                //鎖存
  31.         wela1=0;

  32.         if((i==1)||(i==3))                                //如果顯示第2、4位
  33.                 P0=table[dis_buf[i]]|0x80;  //送段碼+點(diǎn)
  34.         else P0=table[dis_buf[i]];                //送段碼
  35.         dula=1;                                                //鎖存
  36.         dula=0;
  37.         i++;
  38.         if(i>=6)
  39.                 i=0;
  40. }
復(fù)制代碼



回復(fù)

使用道具 舉報(bào)

ID:1109793 發(fā)表于 2024-11-26 08:09 | 顯示全部樓層
samxon 發(fā)表于 2024-11-25 22:14
為什么要用Px=NixieTable[Nixie_buf[11]],而不用NexieTable[11]來顯示A呢。

NexieTable[11]顯示的是段碼的第12個(gè)元素大概是B,NixieTable[Nixie_buf[11]],緩沖區(qū)第12個(gè)元素的值是10,就等于NexieTable[10],是A,其他地方的代碼可以通過改變Nixie_buf里面的值,改變顯示內(nèi)容
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 综合久久综合久久 | 2019天天操 | 午夜精品视频在线观看 | 久久久综合久久 | 特一级毛片 | 一区二区精品在线 | 一区二区福利视频 | 亚洲成人精品国产 | 中文字幕一区二区三区在线观看 | 不卡的av一区 | 一级a性色生活片久久毛片 一级特黄a大片 | 狠狠操狠狠干 | 一级国产精品一级国产精品片 | 韩国精品在线观看 | 91天堂网 | 狠狠干夜夜草 | 久久毛片网站 | 久久久久久久亚洲精品 | 日本不卡一区二区三区在线观看 | 久久精品国产免费看久久精品 | 亚洲h视频| 天堂资源最新在线 | 欧美综合一区 | 国产高清免费视频 | 在线亚洲欧美 | 亚洲一区不卡 | 亚洲有码转帖 | 久久av网 | 激情麻豆视频 | 欧美三区视频 | 亚洲精品久久久一区二区三区 | 久久久久久久国产精品 | 男女网站免费观看 | 国产精品96久久久久久 | 蜜桃日韩 | 精品91久久 | 久久精品色欧美aⅴ一区二区 | 国产精品久久毛片av大全日韩 | 欧美二三区| 精品国产一区二区三区性色av | 亚洲精品在线播放 |