找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4418|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)接收16進(jìn)制用數(shù)碼管顯示十進(jìn)制為什么沒有轉(zhuǎn)換程序,直接在顯示函數(shù)中求出來了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:378091 發(fā)表于 2018-8-3 09:11 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
1黑幣
#include <reg52.h>

#define uchar unsigned char
#define uint  unsigned int

sbit we = P2^7;        //數(shù)碼管位選
sbit du = P2^6;        //數(shù)碼管段選

/*數(shù)碼管段碼*/
uchar code leddata[]={

                0x3F,  //"0"
                0x06,  //"1"
                0x5B,  //"2"
                0x4F,  //"3"
                0x66,  //"4"
                0x6D,  //"5"
                0x7D,  //"6"
                0x07,  //"7"
                0x7F,  //"8"
                0x6F,  //"9"
                0x77,  //"A"
                0x7C,  //"B"
                0x39,  //"C"
                0x5E,  //"D"
                0x79,  //"E"
                0x71,  //"F"
                0x76,  //"H"
                0x38,  //"L"
                0x37,  //"n"
                0x3E,  //"u"
                0x73,  //"P"
                0x5C,  //"o"
                0x40,  //"-"
                0x00,  //熄滅
                0x00  //自定義

                         };

/*1毫秒延時函數(shù)*/
void delay(uint z)       
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);
}

/*
串口初始化函數(shù)
工作模式1 10位異步收發(fā) 發(fā)送速率4800bps
*/
void UART_init()  
{
        TMOD = 0x20;          //T1工作模式2  8位自動重裝
        TH1 = 0xfa;
        TL1 = 0xfa;         //比特率4800
        TR1 = 1;                //啟動T1定時器
        SM0 = 0;
        SM1 = 1;                 //串口工作方式1 10位異步
        REN = 1;                //串口允許接收
}

/*3位數(shù)碼管顯示函數(shù)*/
void display(uchar num)
{
        uchar bai,shi,ge;
        bai = num / 100; //求模
        shi = num % 100 / 10; //求余100后求出有多少個10
        ge  = num % 10; //求余
       
        P0 = 0xff;        //清除斷碼
        we = 1;
        P0 = 0xfe;         //點(diǎn)亮第一位數(shù)碼管
        we = 0;

        du = 1;
        P0 = leddata[bai];        //顯示百位
        du = 0;
        delay(1);

        P0 = 0xff;        //清除斷碼
        we = 1;
        P0 = 0xfd;//點(diǎn)亮第二位數(shù)碼管
        we = 0;

        du = 1;
        P0 = leddata[shi];        //顯示十位
        du = 0;
        delay(1);

        P0 = 0xff;        //清除斷碼
        we = 1;
        P0 = 0xfb;//點(diǎn)亮第三位數(shù)碼管
        we = 0;

        du = 1;
        P0 = leddata[ge];  //顯示各位
        du = 0;
        delay(1);       
}

void main()
{
        UART_init();//串口配置初始化
        while(1)
        {
                if (RI)        //檢測是否接收完成
                {
                        RI = 0;        //清除接收標(biāo)志位,以便于下次接收
                }
                display(SBUF); //取出接收SBUF的值賦給數(shù)碼管顯示
        }
}

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:221865 發(fā)表于 2018-8-3 13:43 | 只看該作者
void display(uchar num)
{
        uchar bai,shi,ge;
        if(num >= '0' && num <= '9')
        {
                bai = (num - '0')/100;
        }
        ...
}

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

板凳
ID:164602 發(fā)表于 2018-8-4 09:07 | 只看該作者
誰說沒有轉(zhuǎn)換程序?
這就是。
void display(uchar num)
{
        uchar bai,shi,ge;
        bai = num / 100; //求模
        shi = num % 100 / 10; //求余100后求出有多少個10
        ge  = num % 10; //求余
        

評分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎勵!

查看全部評分

回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表