找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5028|回复: 7
打印 上一主题 下一主题
收起左侧

怎么加一些数码管程序才能是实现 AD采样经串口输出显示在数码管上呢 求助 求大...

[复制链接]
跳转到指定楼层
楼主
ID:180790 发表于 2017-4-11 20:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
     急急急   求助  求大哥帮忙啊   
     怎么加一些数码管程序才能是实现  AD采样经串口输出显示在数码管上呢? 我的程序如下:但是不会加显示数码管程序。有一个警告
           #include"reg51.h"
#include"XPT2046.h"
#define uint unsigned int
#define uchar unsigned char
uchar getdata;
sbit TX = P3^1;          //输出
/****************************************************************************
*函数名:send
*输  入:要发送的数据
*输  出:无
*功  能:发送数据
****************************************************************************/
void send(uchar state)
{
        SBUF=state;                        ///发送数据
        while(TI==0);            ///等待发送完成
        TI=0;                                ///发送完成信号清零
}
/****************************************************************************
*函数名:SCON_init
*输  入:无
*输  出:无
*功  能:串口初始化设置
****************************************************************************/
void SCON_init(void)
{
        SCON=0x50;                        
        TMOD=0x21;                           
        PCON=0x00;                           //设置串口通信波特率为9600
        TH1=0xfd;
        TL1=0xfd;
        TI=0;                                 
        EA=1;                                  ///打开中断使能
        TR1=1;                                  ///打开中断开关
        ES=1;
        ET0=1;        
}
void main(void)
{
        uchar temp;                                ///存储AD值的寄存单元
        int count;                                ///手动延时计数
        SCON_init();                        ///串口初始化程序
        while(1)
        {
          if(count==5)
          {         
                  count=0;                          ///计数清零
                temp = Read_AD_Data(0xE4);                //   AIN3 外部输入
            send(temp);                         ///串口发送数据
          }
          count++;
        }
}
  这是AD采样的程序:
#include"XPT2046.h"
/****************************************************************************
*函数名:TSPI_Start
*输  入:无
*输  出:无
*功  能:初始化触摸SPI
****************************************************************************/

void SPI_Start(void)
{
        CLK = 0;
        CS  = 1;
        DIN = 1;
        CLK = 1;
        CS  = 0;               
}
/****************************************************************************
*函数名:SPI_Write
*输  入:dat:写入数据
*输  出:无
*功  能:使用SPI写入数据
****************************************************************************/

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

                CLK = 1;

        }
}
/****************************************************************************
*函数名:SPI_Read
*输  入:无
*输  出:dat:读取 到的数据
*功  能:使用SPI读取数据
****************************************************************************/

uint SPI_Read(void)
{
        uint i, dat=0;
        CLK = 0;
        for(i=0; i<12; i++)                //接收12位数据
        {
                dat <<= 1;

                CLK = 1;
                CLK = 0;

                dat |= DOUT;
        }
        return dat;        
}

/****************************************************************************
*函数名:Read_AD_Data
*输  入:cmd:读取的X或者Y
*输  出:endValue:最终信号处理后返回的值
*功  能:读取触摸数据
****************************************************************************/
uint Read_AD_Data(uchar cmd)
{
        uchar i;
        uint AD_Value;
        CLK = 0;
        CS  = 0;
        SPI_Write(cmd);
        for(i=6; i>0; i--);         //延时等待转换结果
        CLK = 1;          //发送一个时钟周期,清除BUSY
        _nop_();
        _nop_();
        CLK = 0;
        _nop_();
        _nop_();
        AD_Value=SPI_Read();
        CS = 1;
        return AD_Value;        
}
    运行结果有警告:
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).

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:180790 发表于 2017-4-11 20:35 | 只看该作者
我设计的程序 但是我自己都难住了  我初学者  搞不懂
回复

使用道具 举报

板凳
ID:111634 发表于 2017-4-11 22:10 | 只看该作者
本帖最后由 zl2168 于 2017-4-12 10:28 编辑

搞不懂的原因是:初学者没打好基础+从网上找来烂程序

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

地板
ID:148552 发表于 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)//数码管显示程序
{
  we=1;
  P0=0x7f;//第一位数码管显示个位
  we=0;
  P0=0x0;
  du=1;
  P0=leddata[s%16];
  du=0;
  
  delay(5);/*这个延时必不可少,否则扫描太快,数码管反应不过来*/
  P0=0xff;/*此处作用是消除数码管残影*/
  we=1;
  P0=0xbf;//第二位数码管显示十位
  we=0;
  P0=0x0;

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


//du数码管段选   we 数码管位选   P0 数据口  s要显示的数(00~ff)

评分

参与人数 1黑币 +20 收起 理由
admin + 20 回帖助人的奖励!

查看全部评分

回复

使用道具 举报

5#
ID:151348 发表于 2017-4-12 08:55 | 只看该作者
你这板子自带数码管,但大家不知道你这板子的原理图,最好是附上来,然后大家才好“就事论事”
回复

使用道具 举报

6#
ID:180790 发表于 2017-4-12 13:26 | 只看该作者
你像风儿来了 发表于 2017-4-11 22:21
uchar code leddata[]={

                0x3F,  //"0"

我上去改改  真心感谢
回复

使用道具 举报

7#
ID:180790 发表于 2017-4-12 13:27 | 只看该作者
zl2168 发表于 2017-4-11 22:10
搞不懂的原因是:初学者没打好基础+从网上找来烂程序

是的   这是没办法  我的确是合的程序  谢谢
回复

使用道具 举报

8#
ID:180790 发表于 2017-4-12 14:40 | 只看该作者
这是电路板的参考资料

电路板参考资料.rar

2.17 MB, 下载次数: 4

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表