找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

溫度傳感器數(shù)碼管問題求大神賜教,在線等

[復(fù)制鏈接]
ID:224119 發(fā)表于 2017-8-2 15:29 | 顯示全部樓層 |閱讀模式
本人小白一個,怎么使以下程序在十位加入小數(shù)點。
程序如下。
#include        "config.h"       

//宏定義,數(shù)碼管a-g各段對應(yīng)的比特,更換硬件只用改動以下8行
#define    a 0x01                  //  AAAA
#define    b 0x04                    // F    B
#define    c 0x10                    // F    B
#define    d 0x40                    //  GGGG
#define    e 0x80                    // E    C
#define    f 0x02                    // E    C
#define    g 0x08                    //  DDDD    H
#define    h 0x20

//用宏定義自動生成段碼表,很好的寫法,值得學(xué)習(xí)
//更換硬件無需重寫段碼表
unsigned char code LED_table[]={
        a+b+c+d+e+f,                   //"0"
        b+c,                           //"1"
        a+b+d+e+g,                       //"2"
        a+b+c+d+g,                       //"3"
        b+c+f+g,                       //"4"
        a+c+d+f+g,                       //"5"
        a+c+d+e+f+g,                   //"6"
        a+b+c,                           //"7"
        a+b+c+d+e+f+g,                   //"8"
        a+b+c+d+f+g,                   //"9"
        b+c+e+f+g,                       //"H"
        a+f+e+g,                       //"C"
        d+e+f,                           //"L"
        g,                               //"-"
        h,                                                                //"."
        0x00                           //black
};



extern void Dlay(uint16 t);
extern uint DisplayData2 ;
uchar Keybit1 =0;
uchar Keybit2 =0;
void Display(uint DisplayData )                        //形參
{
        //////////////////////////////////////數(shù)碼管顯示
        P0 = 0X00;//清除顯示
        P3 = 0x00;
        P0 = 0X80;//個位顯示
        P3 = LED_table[DisplayData % 10];
        Dlay(4000);

        P0 = 0X00;//清除顯示
        P3 = 0x00;
        P0 = 0X40;//十位顯示
        P3 = LED_table[DisplayData % 100 / 10];       
        Dlay(4000);

        P0 = 0X00;//清除顯示
        P3 = 0x00;
        P0 = 0X08;//百位顯示
        P3 = LED_table[DisplayData % 1000 / 100];
        Dlay(4000);

        /////////////////////////////////////////按鍵讀取
        P0 = 0X00;//清除顯示
        P3 = 0x00;
        P3CR =Bin(11100110);        //3.4 ad口 設(shè)為輸入        ,3.0-3.3開關(guān)輸入
        Dlay(100);
        if((P3 & 0x10) ==0){
                if(Keybit1 ==0){
                        DisplayData2 -- ;
                        Keybit1 =1;
                }
        }else{
                Keybit1 =0;
        }

        if((P3 & 0x08) ==0){
                if(Keybit2 ==0){
                        DisplayData2++;
                        Keybit2 =1;
                }
        }else{
                Keybit2=0;
        }
       
        P3CR =Bin(11111111);        //3.3 ad口 設(shè)為輸入        ,3.0-3.3開關(guān)輸入
               

}



回復(fù)

使用道具 舉報

ID:224122 發(fā)表于 2017-8-2 16:08 | 顯示全部樓層
P3 = LED_table[DisplayData % 100 / 10] + 0x20;   
回復(fù)

使用道具 舉報

ID:224122 發(fā)表于 2017-8-2 16:09 | 顯示全部樓層
        P0 = 0X00;//清除顯示
        P3 = 0x00;
        P0 = 0X40;//十位顯示
        P3 = LED_table[DisplayData % 100 / 10] + 0x20;        
        Dlay(4000);
回復(fù)

使用道具 舉報

ID:224119 發(fā)表于 2017-8-2 18:23 | 顯示全部樓層
1047001555 發(fā)表于 2017-8-2 16:09
P0 = 0X00;//清除顯示
        P3 = 0x00;
        P0 = 0X40;//十位顯示

嗯。謝謝解惑
回復(fù)

使用道具 舉報

ID:152163 發(fā)表于 2017-8-2 20:02 | 顯示全部樓層
那要看你的數(shù)碼管是幾段的 有的加不上
回復(fù)

使用道具 舉報

ID:220231 發(fā)表于 2017-8-6 01:05 來自觸屏版 | 顯示全部樓層
P3 = LED_table[DisplayData % 100 / 10]|0x80就行
回復(fù)

使用道具 舉報

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

本版積分規(guī)則

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

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

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