找回密码
 立即注册
查看: 489|回复: 12

TLC1549 AD转换问题

[复制链接]
  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-17 16:23:36 | 显示全部楼层 |阅读模式
大佬们,我用STC89C51单片机读取TLC1549的数据很稳定,但是,我换成STC8A8K64D4单片机用同样的程序读取TLC1549的数据,就一直不停的变化呢,能不能帮我看看是哪儿的问题,谢谢了

主程序

#include "main.h"
#include <intrins.h>
#include "lcd1602.h"
#include "tlc1549.h"
#include "math.h"
#define  SUM  50
#define  VREF  4933
unsigned char aa[7]={0,0,0,0,0,0,0};
void setport()
{
        P0M1=0X00;P0M0=0X00;
        P2M1=0X00;P2M0=0X00;
        P1M1=0X00;P1M0=0X00;
        P3M1=0X00;P3M0=0X00;
}
void delay(unsigned long t)
{
        while(t--);
}
void main()
{
        unsigned char i=0;
  unsigned long int temp1,buff;
        setport();
        LCD_Initial();        
        i=SUM;
        temp1=0;
        CS = 1;
        for(;;)
        {
                  temp1+=ADConvert();               
            i--;        
                        if(i==0)
                        {
                        temp1=temp1/SUM;
                        temp1=temp1*VREF;
                        temp1=temp1/1024;
                        
                        buff=(temp1*100)/3271;
                         display(temp1,buff);
                        i=SUM;
                        temp1=0;
                        }
                        delay(100);
        }
}
void display(unsigned long int d,unsigned long int y)
{
        aa[0]=d/1000;
        aa[1]=d%1000/100;
        aa[2]=d%100/10;
        aa[3]=d%10;//电压值
        
        aa[4]=y/100;
        aa[5]=y%100/10;
        aa[6]=y%10;//百分比
        
        Print(0,0,aa[0]+'0');
        LCD_write(1,0,".");
        Print(2,0,aa[1]+'0');
        Print(3,0,aa[2]+'0');
        Print(4,0,aa[3]+'0');
        LCD_write(5,0,"v");
        Print(2,1,aa[4]+'0');
        Print(3,1,aa[5]+'0');
        Print(4,1,aa[6]+'0');
        LCD_write(5,1,"%");  
}


TLC1549读数程序

#include "stc8.h"
#include "intrins.h"
//接口定义
sbit CS = P2^4;
sbit DA = P2^3;
sbit CK = P2^2;

//读取ADC结果函数
unsigned int ADConvert(void)
{
  unsigned char ii;
  unsigned int temp = 0;
  CS = 0;   //开启控制电路,使能DA和CK IO引脚;
  for(ii=0;ii<10;ii++)  //采集10次 ,即10bit
  {
    CK = 0;        
    temp <<= 1;
    if(DA) temp++;  
    CK = 1;
  }
  CS = 1;
  return(temp);
}

回复

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:395
  • 最近打卡:2025-05-06 17:50:26

0

主题

336

回帖

1506

积分

金牌会员

积分
1506
发表于 2024-6-17 16:32:44 | 显示全部楼层
一般像这种情况把延时函数改成STC8A8K64D4适配的看看
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-17 16:42:47 | 显示全部楼层
xxxe*** 发表于 2024-6-17 16:32
一般像这种情况把延时函数改成STC8A8K64D4适配的看看

改了延时了,数据只是波动的慢一点,但还是在波动的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-17 16:43:57 | 显示全部楼层
xxxe*** 发表于 2024-6-17 16:32
一般像这种情况把延时函数改成STC8A8K64D4适配的看看

单片机与TLC1549连接方式都是一样的
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家II
  • 打卡总天数:428
  • 最近打卡:2025-05-07 00:13:45
已绑定手机

19

主题

3194

回帖

4948

积分

论坛元老

积分
4948
发表于 2024-6-17 18:00:52 | 显示全部楼层
STC8A8K64D4自带ADC为什么还要用外置的呢?
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:以坛为家I
  • 打卡总天数:395
  • 最近打卡:2025-05-06 17:50:26

0

主题

336

回帖

1506

积分

金牌会员

积分
1506
发表于 2024-6-17 21:47:59 | 显示全部楼层
STC8A8K64D4的速度比STC89C51快多了,你把ADConvert函数中模拟CK时钟的程序中也加上几个_nop_()试试呢
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-19 18:07:17 | 显示全部楼层
wnag*** 发表于 2024-6-17 16:56
除了延时,软件方面应该没有什么需要注意的吧

好的,我试一下,谢谢了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-19 18:07:51 | 显示全部楼层
xxxe*** 发表于 2024-6-17 21:47
STC8A8K64D4的速度比STC89C51快多了,你把ADConvert函数中模拟CK时钟的程序中也加上几个_nop_()试试呢 ...

好的,我试一下,谢谢了
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-19 18:29:48 | 显示全部楼层
so*** 发表于 2024-6-17 18:00
STC8A8K64D4自带ADC为什么还要用外置的呢?

自带是12位的,占用12个IO口,这个只用1个IO口
回复 支持 反对

使用道具 举报 送花

  • 打卡等级:常住居民II
  • 打卡总天数:87
  • 最近打卡:2025-04-30 10:02:32
已绑定手机

23

主题

175

回帖

878

积分

高级会员

积分
878
发表于 2024-6-19 18:31:09 | 显示全部楼层
欢迎哈*** 发表于 2024-6-19 18:07
好的,我试一下,谢谢了

可以了,{:5_332:}谢谢了
回复 支持 反对

使用道具 举报 送花

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

本版积分规则

QQ|手机版|小黑屋|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2025-5-7 11:58 , Processed in 0.146465 second(s), 113 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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