標(biāo)題: 怎么加一些數(shù)碼管程序才能是實現(xiàn) AD采樣經(jīng)串口輸出顯示在數(shù)碼管上呢 求助 求大... [打印本頁]

作者: 逍遙大鵬    時間: 2017-4-11 20:34
標(biāo)題: 怎么加一些數(shù)碼管程序才能是實現(xiàn) AD采樣經(jīng)串口輸出顯示在數(shù)碼管上呢 求助 求大...
     急急急   求助  求大哥幫忙啊   
     怎么加一些數(shù)碼管程序才能是實現(xiàn)  AD采樣經(jīng)串口輸出顯示在數(shù)碼管上呢? 我的程序如下:但是不會加顯示數(shù)碼管程序。有一個警告
           #include"reg51.h"
#include"XPT2046.h"
#define uint unsigned int
#define uchar unsigned char
uchar getdata;
sbit TX = P3^1;          //輸出
/****************************************************************************
*函數(shù)名:send
*輸  入:要發(fā)送的數(shù)據(jù)
*輸  出:無
*功  能:發(fā)送數(shù)據(jù)
****************************************************************************/
void send(uchar state)
{
        SBUF=state;                        ///發(fā)送數(shù)據(jù)
        while(TI==0);            ///等待發(fā)送完成
        TI=0;                                ///發(fā)送完成信號清零
}
/****************************************************************************
*函數(shù)名:SCON_init
*輸  入:無
*輸  出:無
*功  能:串口初始化設(shè)置
****************************************************************************/
void SCON_init(void)
{
        SCON=0x50;                        
        TMOD=0x21;                           
        PCON=0x00;                           //設(shè)置串口通信波特率為9600
        TH1=0xfd;
        TL1=0xfd;
        TI=0;                                 
        EA=1;                                  ///打開中斷使能
        TR1=1;                                  ///打開中斷開關(guān)
        ES=1;
        ET0=1;        
}
void main(void)
{
        uchar temp;                                ///存儲AD值的寄存單元
        int count;                                ///手動延時計數(shù)
        SCON_init();                        ///串口初始化程序
        while(1)
        {
          if(count==5)
          {         
                  count=0;                          ///計數(shù)清零
                temp = Read_AD_Data(0xE4);                //   AIN3 外部輸入
            send(temp);                         ///串口發(fā)送數(shù)據(jù)
          }
          count++;
        }
}
  這是AD采樣的程序:
#include"XPT2046.h"
/****************************************************************************
*函數(shù)名:TSPI_Start
*輸  入:無
*輸  出:無
*功  能:初始化觸摸SPI
****************************************************************************/

void SPI_Start(void)
{
        CLK = 0;
        CS  = 1;
        DIN = 1;
        CLK = 1;
        CS  = 0;               
}
/****************************************************************************
*函數(shù)名:SPI_Write
*輸  入:dat:寫入數(shù)據(jù)
*輸  出:無
*功  能:使用SPI寫入數(shù)據(jù)
****************************************************************************/

void SPI_Write(uchar dat)
{
        uchar i;
        CLK = 0;
        for(i=0; i<8; i++)
        {
                DIN = dat >> 7;          //放置最高位
                dat <<= 1;
                CLK = 0;                        //上升沿放置數(shù)據(jù)

                CLK = 1;

        }
}
/****************************************************************************
*函數(shù)名:SPI_Read
*輸  入:無
*輸  出:dat:讀取 到的數(shù)據(jù)
*功  能:使用SPI讀取數(shù)據(jù)
****************************************************************************/

uint SPI_Read(void)
{
        uint i, dat=0;
        CLK = 0;
        for(i=0; i<12; i++)                //接收12位數(shù)據(jù)
        {
                dat <<= 1;

                CLK = 1;
                CLK = 0;

                dat |= DOUT;
        }
        return dat;        
}

/****************************************************************************
*函數(shù)名:Read_AD_Data
*輸  入:cmd:讀取的X或者Y
*輸  出:endValue:最終信號處理后返回的值
*功  能:讀取觸摸數(shù)據(jù)
****************************************************************************/
uint Read_AD_Data(uchar cmd)
{
        uchar i;
        uint AD_Value;
        CLK = 0;
        CS  = 0;
        SPI_Write(cmd);
        for(i=6; i>0; i--);         //延時等待轉(zhuǎn)換結(jié)果
        CLK = 1;          //發(fā)送一個時鐘周期,清除BUSY
        _nop_();
        _nop_();
        CLK = 0;
        _nop_();
        _nop_();
        AD_Value=SPI_Read();
        CS = 1;
        return AD_Value;        
}
    運行結(jié)果有警告:
Build target 'Target 1'
compiling main.c...
compiling XPT2046.c...
linking...
*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
    SEGMENT: ?PR?SPI_START?XPT2046
Program Size: data=12.0 xdata=0 code=182
creating hex file from "AD"...
"AD" - 0 Error(s), 1 Warning(s).


作者: 逍遙大鵬    時間: 2017-4-11 20:35
我設(shè)計的程序 但是我自己都難住了  我初學(xué)者  搞不懂
作者: zl2168    時間: 2017-4-11 22:10
本帖最后由 zl2168 于 2017-4-12 10:28 編輯

搞不懂的原因是:初學(xué)者沒打好基礎(chǔ)+從網(wǎng)上找來爛程序
作者: 你像風(fēng)兒來了    時間: 2017-4-11 22:21
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  //自定義
};




void delay(uint z)//毫秒延時
{
        uint x,y;
        for(x = z; x > 0; x--)
                for(y = 114; y > 0 ; y--);
}


void display(uint s)//數(shù)碼管顯示程序
{
  we=1;
  P0=0x7f;//第一位數(shù)碼管顯示個位
  we=0;
  P0=0x0;
  du=1;
  P0=leddata[s%16];
  du=0;
  
  delay(5);/*這個延時必不可少,否則掃描太快,數(shù)碼管反應(yīng)不過來*/
  P0=0xff;/*此處作用是消除數(shù)碼管殘影*/
  we=1;
  P0=0xbf;//第二位數(shù)碼管顯示十位
  we=0;
  P0=0x0;

  du=1;
  P0=leddata[s/16];
  du=0;
  
  delay(5);
  P0=0xff;
}


//du數(shù)碼管段選   we 數(shù)碼管位選   P0 數(shù)據(jù)口  s要顯示的數(shù)(00~ff)
作者: imxuheng    時間: 2017-4-12 08:55
你這板子自帶數(shù)碼管,但大家不知道你這板子的原理圖,最好是附上來,然后大家才好“就事論事”
作者: 逍遙大鵬    時間: 2017-4-12 13:26
你像風(fēng)兒來了 發(fā)表于 2017-4-11 22:21
uchar code leddata[]={

                0x3F,  //"0"

我上去改改  真心感謝

作者: 逍遙大鵬    時間: 2017-4-12 13:27
zl2168 發(fā)表于 2017-4-11 22:10
搞不懂的原因是:初學(xué)者沒打好基礎(chǔ)+從網(wǎng)上找來爛程序

是的   這是沒辦法  我的確是合的程序  謝謝
作者: 逍遙大鵬    時間: 2017-4-12 14:40
這是電路板的參考資料

電路板參考資料.rar

2.17 MB, 下載次數(shù): 4






歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1