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

標題: 51單片機用串口向6位數(shù)碼管發(fā)送文本18.46.23,數(shù)碼管顯示不了,求大佬們指點 [打印本頁]

作者: b1325583446    時間: 2024-4-15 09:45
標題: 51單片機用串口向6位數(shù)碼管發(fā)送文本18.46.23,數(shù)碼管顯示不了,求大佬們指點
#include <REGX52.H>

unsigned char Nixie_Buffer[9];
unsigned char count, count1;

void UART_Init(void)                //4800bps@11.0592MHz
{
        PCON &= 0x7F;                //波特率不倍速
        SCON = 0x50;                //8位數(shù)據(jù),可變波特率,與串口發(fā)送的區(qū)別是這里打開了接收控制位REN
        TMOD &= 0x0F;                //清除定時器1模式位
        TMOD |= 0x20;                //設(shè)定定時器1為8位自動重裝方式
        TL1 = 0xFA;                //設(shè)定定時初值
        TH1 = 0xFA;                //設(shè)定定時器重裝值
        ET1 = 0;                //禁止定時器1中斷
        TR1 = 1;                //啟動定時器1
        EA = 1;
        ES = 1;
}

unsigned char NixieTable[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x7f};//0~F,還有小數(shù)點

sbit DP1 = P0^0;
sbit DP2 = P0^1;
sbit DP3 = P0^2;
sbit DP4 = P0^3;
sbit DP5 = P0^4;
sbit DP6 = P0^5;

void Delay(unsigned int xms)
{
        unsigned char i, j;
        while(xms)
        {
                i = 2;
                j = 199;
                do
                {
                while (--j);
                } while (--i);
                xms--;
        }
}

void Nixie(unsigned char Location,Number)
{
        switch(Location)
        {
                case 1:DP1 = 0;break;
                case 2:DP2 = 0;break;
                case 3:DP3 = 0;break;
                case 4:DP4 = 0;break;
                case 5:DP5 = 0;break;
                case 6:DP6 = 0;break;
        }
        P1 = NixieTable[Number];
        Delay(1);//先延時1毫米,為避免過早清零讓數(shù)碼管太暗
        //P1 = 0x00;//將上一位段選清零,避免上一位段選的數(shù)據(jù)進入下一位的位選,且讓清零的數(shù)據(jù)進入位選,就沒影響,不過這里好像沒啥用
        //計算機進行:位選 段選 位選 段選.......
        P0 = 0xff;
}

void Nixie_showentitle(unsigned char *str)
{
        while(*str != '\0')
        {
                        if (*str >= '0' && *str <= '9')
                        {
                                Nixie(count1, *str++ - 48);//顯示數(shù)字
                                count1++;
                        }
                        else if(*str == '.')
                        {
                                Nixie(count1 - 1, 16);//顯示小數(shù)點
                                *str++;
                        }
        }
}//數(shù)碼管為6位共陽極

void main()
{
        UART_Init();
        while(1)
        {
                Nixie_showentitle(Nixie_Buffer);
        }
}

void UART_Routine() interrupt 4
{
        if(RI)
        {
                Nixie_Buffer[count] = SBUF;//從發(fā)送緩沖區(qū)發(fā)送文本,例如18.46.23
                RI = 0;
                count++;
                count %= 9;
        }
        else
        {
                TI = 0;
        }
}

作者: Hephaestus    時間: 2024-4-15 11:50
那么請問發(fā)送什么可以顯示呢?
作者: b1325583446    時間: 2024-4-15 12:52
Hephaestus 發(fā)表于 2024-4-15 11:50
那么請問發(fā)送什么可以顯示呢?

發(fā)送什么都不能顯示(捂臉)
作者: lkc8210    時間: 2024-4-15 13:18
  1. void Nixie(unsigned char Location,Number)
  2. {
  3.         P1 = NixieTable[Number];
  4.         switch(Location)
  5.         {
  6.                 case 1:DP1 = 0;break;
  7.                 case 2:DP2 = 0;break;
  8.                 case 3:DP3 = 0;break;
  9.                 case 4:DP4 = 0;break;
  10.                 case 5:DP5 = 0;break;
  11.                 case 6:DP6 = 0;break;
  12.         }
  13.         Delay(1);//先延時1毫米,為避免過早清零讓數(shù)碼管太暗
  14.         P0 = 0xff;
  15. }
復(fù)制代碼

作者: xiaobendan001    時間: 2024-4-15 13:20
不懂,用電腦的串口嗎?接收的電路啥樣?
作者: wangxiangtan    時間: 2024-4-15 17:22
你先固定顯示個“123456”,正常顯示的話說明顯示程序沒問題,再檢查串口收發(fā)
作者: wulin    時間: 2024-4-15 17:41
b1325583446 發(fā)表于 2024-4-15 12:52
發(fā)送什么都不能顯示(捂臉)

串口驅(qū)動數(shù)碼管?你這個數(shù)碼管應(yīng)該是個模塊,這個模塊的硬件電路你不提供,大家怎么幫你?
作者: b1325583446    時間: 2024-4-15 19:23
不好意思大家,這是開發(fā)板,是電腦向單片機發(fā)送:

屏幕截圖 2024-04-15 192119.png (94.65 KB, 下載次數(shù): 63)

燒錄界面

燒錄界面

通信工程學(xué)院2023級開發(fā)板.pdf

1.33 MB, 下載次數(shù): 2


作者: b1325583446    時間: 2024-4-15 19:29
lkc8210 發(fā)表于 2024-4-15 13:18

好的,我去試試
作者: b1325583446    時間: 2024-4-15 19:30
wangxiangtan 發(fā)表于 2024-4-15 17:22
你先固定顯示個“123456”,正常顯示的話說明顯示程序沒問題,再檢查串口收發(fā)

謝謝,我去試試
作者: b1325583446    時間: 2024-4-15 19:45
pdf文件沒發(fā)起

屏幕截圖 2024-04-15 194248.png (519.01 KB, 下載次數(shù): 63)

屏幕截圖 2024-04-15 194248.png

作者: wulin    時間: 2024-4-15 21:47
b1325583446 發(fā)表于 2024-4-15 19:45
pdf文件沒發(fā)起

串口收到的文本數(shù)字字符需要減0x30轉(zhuǎn)換成十進制數(shù),文本小數(shù)點也是一個字節(jié),需要轉(zhuǎn)換成0并插入數(shù)碼管段碼的最高位才能在共陽數(shù)碼管上顯示正確數(shù)字。
作者: wulin    時間: 2024-4-15 22:14
uchar data dis_buf[8];
uchar data dis_buf1[6];
串口收到的8個字節(jié)文本保存在緩存
dis_buf[0]='1';
dis_buf[1]='8';
dis_buf[2]='.';
dis_buf[3]='4';
dis_buf[4]='6';
dis_buf[5]='.';
dis_buf[6]='2';
dis_buf[7]='3';

轉(zhuǎn)換成6位數(shù)碼管段碼
dis_buf1[0]=NixieTable[dis_buf[0]-0x30];
dis_buf1[1]=NixieTable[(dis_buf[1]-0x30)]&0x7f;//加小數(shù)點
dis_buf1[2]=NixieTable[dis_buf[3]-0x30];
dis_buf1[3]=NixieTable[(dis_buf[4]-0x30)]&0x7f;//加小數(shù)點
dis_buf1[4]=NixieTable[dis_buf[6]-0x30];
dis_buf1[5]=NixieTable[dis_buf[7]-0x30];
作者: Hephaestus    時間: 2024-4-16 10:31
b1325583446 發(fā)表于 2024-4-15 12:52
發(fā)送什么都不能顯示(捂臉)

那么顯示部分做到什么程度了?能顯示什么?




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 色婷婷基地| 国产h片在线观看 | 国产一级片在线 | 日韩精品成人 | www.久久久久 | av大片在线观看 | 天堂va蜜桃一区二区三区 | 九九热在线观看视频 | 欧美日韩精品 | 久久久精品一区二区 | 成人免费毛片嘿嘿连载视频 | 国产精品少妇 | 中文在线字幕免费观 | 视频一区在线播放 | 久久手机免费视频 | 黄视频在线播放 | 国产精品网站在线观看 | 不卡av网站 | 日韩不卡一区二区 | 91蜜桃视频 | 麻豆成人91精品二区三区 | 久久久久久久久国产精品 | www.成人网 | 久久伊人精品 | 日本公妇乱偷中文字幕 | 国产小视频网站 | 中文字幕伊人 | 欧美一区视频 | 欧美国产在线观看 | 久久日av| 激情五月综合 | www国产| 成人在线网 | 一级免费黄色片 | 日韩中文字幕一区 | 丰满岳乱妇一区二区 | 手机看片在线 | 欧美色图一区二区 | 午夜国产一区 | 国产欧美在线 | 99视频+国产日韩欧美 |