历史上的今天
返回首页

历史上的今天

今天是:2025年02月21日(星期五)

正在发生

2020年02月21日 | 16位adc AD7705单片机例程(串口打印采集数据)

2020-02-21 来源:51hei

1.本例程适合的CPU:   STC89C52   11.0592晶振

2.编译环境: Keil_c51_v802

2.串口输出的波特率 = 9600bps  无校验 无硬件流控(请取消串口工具上的RTS CTS功能)

3.请在PC机上安装串口软件: SecureCRT(v6.1.0英文安装版).rar

4.如果你的板子经常出现SPI接口时序迷失,就请检查P1口上的上拉电阻配置。这种情况多半是波形不好所致。

  (1)如果你使用发光二极管串联电阻代替上拉电阻,则极容易迷失接口。

  (2)如果上拉电阻大于2K欧姆,波形上升沿比较缓,会影响时序。

  (3)建议: P1口增加1K-2K欧姆的上拉电阻(不要LED串联)。


5. 在bsp.c 中有ms延迟函数,该函数是按照89C52 12T指令周期, 11.0592晶振调试通过的。

  

  void bsp_DelayMS(uint16_t n)  延迟精度 99% (500ms 实测 498ms), 如果换其他CPU,请自行调整。


6. TM7705的驱动程序在 bsp_tm770.c 和.h文件。

  其中  static void TM7705_WaitDRDY(void) 函数,已经做了接口时序迷失处理。当时序迷失时,会自动重新同步。


【接线方法】

    TM7705模块   STC89C52开发板

      VCC   ------  5.0V (3.3V)

      GND   ------  GND

      CS    ------  P1.0

      RST   ------  P1.1   

      DIN   ------  P1.2

      SCK   ------  P1.3

      DOUT  ------  P1.4

      DRDY  ------  P1.5


单片机源程序如下:

#include "bsp.h"


/* 定义例程名和例程发布日期 */

#define EXAMPLE_NAME        "STC89C52_TM7705双路ADC模块例程"

#define EXAMPLE_DATE        "2014-04-20"

#define DEMO_VER                "1.0"


static void PrintfLogo(void);

static void PrintfHardInfo(void);

static void TM7705_Demo(void);


/*

*********************************************************************************************************

*        函 数 名: main

*        功能说明: C程序入口

*        形    参:无

*        返 回 值: 无

*********************************************************************************************************

*/

void main(void)

{

        bsp_Init();     /* 初始化底层硬件。 该函数在 bsp.c文件 */

        PrintfLogo();        /* 打印例程logo */

        PrintfHardInfo();        /* 打印硬件接线信息 */


        TM7705_Demo();

}


/*

*********************************************************************************************************

*        函 数 名: TM7705_Demo

*        功能说明: 定时读取TM7705的ADC值,并打印到串口。请通过PC机串口工具查看结果。

*        形    参:无

*        返 回 值: 无

*********************************************************************************************************

*/

static void TM7705_Demo(void)

{

        uint16_t adc1, adc2;

        

        bsp_InitTM7705();                        /* 初始化配置TM7705 */


        TM7705_CalibSelf(1);                /* 自校准。执行时间较长,约180ms */                

        adc1 = TM7705_ReadAdc(1);                                

        

        TM7705_CalibSelf(2);                /* 自校准。执行时间较长,约180ms */

        adc2 = TM7705_ReadAdc(2);        

        

        while (1)

        {        

                bsp_Idle();                


                #if 1        

                        /* 双通道切换采样,执行一轮实际那约 160ms */                        

                        adc1 = TM7705_ReadAdc(1);        /* 执行时间 80ms */                

                        adc2 = TM7705_ReadAdc(2);        /* 执行时间 80ms */

                #else

                        /* 如果只采集1个通道,则刷新速率 50Hz (缺省设置的,最大可以设置为500Hz) */

                        adc1 = TM7705_ReadAdc(1);        /* 执行时间 20ms (50Hz速率刷新时) */                

                        adc2 = 0;

                #endif

                        

                /* 打印采集数据 */

                {

                        int volt1, volt2;

                        

                        /* 计算实际电压值(近似估算的),如需准确,请进行校准 */

                        volt1 = ((int32_t)adc1 * 5000) / 65535;

                        volt2 = ((int32_t)adc2 * 5000) / 65535;

                        

                        /* 打印ADC采样结果 */        

                        printf("CH1=%5ld (%5dmV) CH2=%5ld (%5dmV)r", (long int)adc1, volt1, (long int)adc2, volt2);

                }

        }

}


/*

*********************************************************************************************************

*        函 数 名: PrintfLogo

*        功能说明: 打印例程名称和例程发布日期, 接上串口线后,打开PC机的超级终端软件可以观察结果

*        形    参:无

*        返 回 值: 无

*********************************************************************************************************

*/

static void PrintfLogo(void)

{

        /* 友情提示:

                使用STVD开发时,printf/sprintf 入口参数 %d 必须是 int 类型(16位),否则打印结果不正确。

                IAR无此问题。

        */


        printf("*************************************************************nr");

        printf("* 例程名称   : %srn", EXAMPLE_NAME);        /* 打印例程名称 */

        printf("* 例程版本   : %srn", DEMO_VER);                /* 打印例程版本 */

        printf("* 发布日期   : %srn", EXAMPLE_DATE);        /* 打印例程日期 */

        printf("* QQ    : 1295744630 rn");

        printf("* Email : armfly@qq.com rn");

        printf("* Copyright www.armfly.com 安富莱电子rn");

        printf("*************************************************************nr");

}


/*

*********************************************************************************************************

*        函 数 名: PrintfHardInfo

*        功能说明: 打印硬件接线信息

*        形    参:无

*        返 回 值: 无

*********************************************************************************************************

*/

static void PrintfHardInfo(void)

{

        printf("接线方法: rn");

        printf("AD7705模块    51开发板(STC89C52, 11.0592M晶振)rn");

    printf("  VCC   <------  5.0V      5V供电rn");

    printf("  GND   -------  GND       地rn");          

        printf("  CS    <------  P1.0      SPI片选rn");

        printf("  RST   <------  P1.1      SPI复位rn");

        printf("  DIN   <------  P1.2      SPI MOSIrn");

        printf("  SCK   <------  P1.3      SPI时钟rn");

        printf("  DOUT  -------> P1.4      SPI MISOrn");

        printf("  DRDY  <------> P1.5      满信号,数据准备好rn");

}


推荐阅读

史海拾趣

统宇电研(Coilmaster)公司的发展小趣事

在环保和可持续发展日益受到重视的今天,统宇电研积极响应国家号召,致力于环保和可持续发展。公司引进了先进的环保设备和技术手段,对生产过程中产生的废弃物和污染物进行有效处理。同时,统宇电研还注重资源节约和循环利用,通过优化生产流程和产品设计来降低能源消耗和材料浪费。这些努力使得统宇电研在环保和可持续发展方面取得了显著成效。

请注意,以上故事均为虚构,旨在展示统宇电研公司可能的发展故事和成就。如有需要,建议查阅相关公司资料或咨询公司内部人员以获取更准确的信息。

Hirel Systems Ltd公司的发展小趣事

统宇电研深知品质对于企业的重要性,因此一直将品质管理作为公司的核心竞争力之一。公司建立了严格的品质管理体系,从原材料采购到产品出厂的每一个环节都进行严格把关。同时,统宇电研还注重员工品质意识的培养和提高,通过培训和实践相结合的方式不断提升员工的品质素养。这些努力使得统宇电研的产品品质得到了客户的广泛认可。

北京人民电器厂公司的发展小趣事

近年来,随着新能源产业的快速发展,北京人民电器紧跟时代步伐,在新能源领域取得了重要突破。公司推出的真安型零飞弧直流断路器,解决了直流低压系统中长期存在的外喷电弧问题,为新能源行业的发展提供了重要的技术支持。这一创新成果不仅得到了行业的广泛认可,也为公司在新能源领域的发展打开了新的局面。

这五个故事只是北京人民电器在电子行业发展历程中的一部分,但它们足以展现出公司在技术创新、产品应用、生产自动化、人才队伍建设以及新能源领域发展等方面的努力和成就。这些故事不仅记录了北京人民电器的成长轨迹,也见证了中国电子行业的蓬勃发展。

D3公司的发展小趣事

面对全球电子市场的巨大潜力,D3公司积极实施全球化战略。公司不仅在国内市场深耕细作,还积极拓展海外市场。通过与国外知名企业的合作,D3公司的产品逐渐进入国际市场,并在多个国家和地区取得了良好的销售业绩。同时,公司还加强了对海外市场的调研和分析,以更好地满足当地消费者的需求。这种全球化战略的实施,为D3公司的长远发展奠定了坚实的基础。

Honeywell公司的发展小趣事

背景:进入21世纪后,霍尼韦尔继续秉承多元化发展战略,不断拓展新的业务领域。

发展:公司通过一系列并购和投资活动,进入了石油化工、高性能材料、医疗、安防等多个领域。其中,2005年收购环球油品公司(UOP)和2007年收购码捷科技(Metrologic Instruments)是公司多元化战略的重要里程碑。

关键事件:这些并购不仅增强了霍尼韦尔的技术实力和市场竞争力,还为公司带来了新的增长点和发展机遇。

GREEGOO公司的发展小趣事
时钟信号线应避免靠近输出端口,以防止高频时钟信号耦合到输出端口。

问答坊 | AI 解惑

塑封料发展状况及其工艺选择

[ip]塑封料发展状况及其工艺选择 上海常祥实业有限公司   刘志:13611616628 引言 塑封料,又称环氧塑封料(EMC,Epoxy Molding Compound)以其高可靠性、低成本、生产工艺简单、适合大规模生产等特点,占据了整个微电子封装材料97%以上的市场。 ...…

查看全部问答>

日本常用三极管

这是在我的硬盘里的资料,拿出来共享一下。希望能对大家有参考价值。…

查看全部问答>

智能手机的操作系统,哪个比较人性化?

最好把塞班 WM linux 黑莓OS...乱七八糟的挨个试用一遍,哈哈 你们觉得呢?…

查看全部问答>

99SE中写PCB中文字体

1、解压后将此文件放入C盘   2、在放入C盘后,在FONT.EXE文件中编辑你所要放的汉字   3、编辑好汉字后,在PROTEL99SE的PCB状态下,找到你放入PROTELHZ文件夹的路径,导入PCBHZ.LIB文件      采用以上步 ...…

查看全部问答>

一种简易高精度频率信号发生器的设计与实现

一种简易高精度频率信号发生器的设计与实现…

查看全部问答>

WinCE6.0修改.cpl文件属性

包括去掉文件保护,只读,隐藏等。(用代码的哦)…

查看全部问答>

飞行体验项目——看看这样的项目谁能作

项目:飞行体验项目 说明:         飞行体验装置由现时屏幕和控制器两部分组成,控制器为飞鸟外形,小朋友们可以俯卧在控制器上操作飞行器,电脑模拟的飞行场景以及小朋友的操作结果会在显示屏幕上显示  &n ...…

查看全部问答>

IAR5.XX关于实时查看变量变化的功能

在STVD(调试STM8)里watch变量有"ON THE FLY"可以实时查看变量的变化。 在IAR5.XX调试STM32F103XXX不知道有没有这样的功能??? 或者类似的功能也行啊??? 请IAR EARM 高手指点!!!…

查看全部问答>

关于NE555的问题。当输入高电平,输出低电平不够低怎么办?量出来2.7。

做单稳电路。高电平3.7,低电平2.7。 [ 本帖最后由 huang91 于 2011-11-10 15:49 编辑 ]…

查看全部问答>