#include //头文件

#include//头文件

#define uint unsigned int //宏定义

#define uchar unsigned char//宏定义

#define datlcd P0

sbit lcdrs = P2^0;        //液晶读                                 

sbit lcdrw = P2^1; //液晶写

sbit lcden = P2^2;//液晶选择

#define SOFT_SPI                /* 定义此行表示使用GPIO模拟SPI接口 */

//#define HARD_SPI                /* 定义此行表示使用CPU的硬件SPI接口 */


/* 通道1和通道2的增益,输入缓冲,极性 */

#define __CH1_GAIN_BIPOLAR_BUF        (GAIN_1 | UNIPOLAR | BUF_EN)

#define __CH2_GAIN_BIPOLAR_BUF        (GAIN_1 | UNIPOLAR | BUF_EN)


/*                                                                                

        接线方法: STC89C52开发板,请使用杜邦线连接。


    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        

*/


#if !defined(SOFT_SPI) && !defined(HARD_SPI)

        #error "Please define SPI Interface mode : SOFT_SPI or HARD_SPI"

#endif


#ifdef SOFT_SPI                /* 软件SPI */

        /* 定义GPIO端口 */

        sbit CS     = P1^0;

        sbit RESET  = P1^1;

        sbit DIN    = P1^2;

        sbit SCK    = P1^3;

        sbit DOUT   = P1^4;

        sbit DRDY        = P1^5;


        /* 定义口线置0和置1的宏 */

        #define CS_0()                CS = 0

        #define CS_1()                CS = 1


        #define RESET_0()        RESET = 0

        #define RESET_1()        RESET = 1


        #define DI_0()                DIN = 0

        #define DI_1()                DIN = 1


        #define SCK_0()                SCK = 0 

        #define SCK_1()                SCK = 1


        #define DO_IS_HIGH()        (DOUT != 0)


        #define DRDY_IS_LOW()        (DRDY == 0)

#endif


#ifdef HARD_SPI                /* 硬件SPI */

        #error "Don't surport Hard SPI Interface mode"

#endif


/* 通信寄存器bit定义 */

enum

{

        /* 寄存器选择  RS2 RS1 RS0  */

        REG_COMM        = 0x00,        /* 通信寄存器 */

        REG_SETUP        = 0x10,        /* 设置寄存器 */

        REG_CLOCK        = 0x20,        /* 时钟寄存器 */

        REG_DATA        = 0x30,        /* 数据寄存器 */

        REG_ZERO_CH1        = 0x60,        /* CH1 偏移寄存器 */

        REG_FULL_CH1        = 0x70,        /* CH1 满量程寄存器 */

        REG_ZERO_CH2        = 0x61,        /* CH2 偏移寄存器 */

        REG_FULL_CH2        = 0x71,        /* CH2 满量程寄存器 */


        /* 读写操作 */

        WRITE                 = 0x00,        /* 写操作 */

        READ                 = 0x08,        /* 读操作 */


        /* 通道 */

        CH_1                = 0,        /* AIN1+  AIN1- */

        CH_2                = 1,        /* AIN2+  AIN2- */

        CH_3                = 2,        /* AIN1-  AIN1- */

        CH_4                = 3                /* AIN1-  AIN2- */

};


/* 设置寄存器bit定义 */

enum

{

        MD_NORMAL                = (0 << 6),        /* 正常模式 */

        MD_CAL_SELF                = (1 << 6),        /* 自校准模式 */

        MD_CAL_ZERO                = (2 << 6),        /* 校准0刻度模式 */

        MD_CAL_FULL                = (3 << 6),        /* 校准满刻度模式 */


        GAIN_1                        = (0 << 3),        /* 增益 */

        GAIN_2                        = (1 << 3),        /* 增益 */

        GAIN_4                        = (2 << 3),        /* 增益 */

        GAIN_8                        = (3 << 3),        /* 增益 */

        GAIN_16                        = (4 << 3),        /* 增益 */

        GAIN_32                        = (5 << 3),        /* 增益 */

        GAIN_64                        = (6 << 3),        /* 增益 */

        GAIN_128                = (7 << 3),        /* 增益 */


        /* 无论双极性还是单极性都不改变任何输入信号的状态,它只改变输出数据的代码和转换函数上的校准点 */

        BIPOLAR                        = (0 << 2),        /* 双极性输入 */

        UNIPOLAR                = (1 << 2),        /* 单极性输入 */


        BUF_NO                        = (0 << 1),        /* 输入无缓冲(内部缓冲器不启用) */

        BUF_EN                        = (1 << 1),        /* 输入有缓冲 (启用内部缓冲器) */


        FSYNC_0                        = 0,

        FSYNC_1                        = 1                /* 不启用 */

};


/* 时钟寄存器bit定义 */

enum

{

        CLKDIS_0        = 0x00,                /* 时钟输出使能 (当外接晶振时,必须使能才能振荡) */

        CLKDIS_1        = 0x10,                /* 时钟禁止 (当外部提供时钟时,设置该位可以禁止MCK_OUT引脚输出时钟以省电 */


        /*

                2.4576MHz(CLKDIV=0 )或为 4.9152MHz (CLKDIV=1 ),CLK 应置 "0"。

                1MHz (CLKDIV=0 )或 2MHz   (CLKDIV=1 ),CLK 该位应置  "1"

        */

        CLK_4_9152M = 0x08,

        CLK_2_4576M = 0x00,

        CLK_1M                 = 0x04,

        CLK_2M                 = 0x0C,


        FS_50HZ                = 0x00,

        FS_60HZ                = 0x01,

        FS_250HZ        = 0x02,

        FS_500HZ        = 0x04,


        /*

                四十九、电子秤应用中提高TM7705 精度的方法

                        当使用主时钟为 2.4576MHz 时,强烈建议将时钟寄存器设为 84H,此时数据输出更新率为10Hz,即每0.1S 输出一个新数据。

[1] [2] [3] [4]
关键字:单片机  AD7705  转换程序 引用地址:单片机AD7705转换程序

上一篇:你从未见过的单片机密码锁设计(基本版)
下一篇:DS1302时钟+1602液晶,proteus电路图+程序

推荐阅读

第一次写,也不知道写些啥,就copy一个STM32 系统时钟初始化模板函数吧,以来分享给新手参考,而来自己当做备份一下。有大神看到觉不妥之处请指出,勿喷!谢谢!void SYS_Init(void){uint8_t HSEStartUpStatus;RCC_DeInit(); //将RCC设置为默认的重置状态RCC_HSEConfig(RCC_HSE_ON); //配置外部高速晶振 (HSE - ON)HSEStartUpStatus = RCC_Wait...
1 引言随着社会经济水平的发展,现在人们的生活追求个性化、自动化,追求快节奏,追求充满乐趣的生活方式,家装要求的档次越来越高,生活家居人性化、智能化的要求使智能控制技术在智能家居电子产品中得到了广泛应用,它不仅优化人们的生活方式和居住环境,而且方便人们有效地安排时间和节约各种能源,实现了家电、照明、窗帘控制和防盗报警、定时控制及...
今年上半年,小米生态链企业石头科技先后推出了石头扫地机器人T7以及石头扫地机器人T7 Pro,共同组成了石头扫地机器人T7系列,这是石头少见的在短时间之内连续推出两款旗舰产品,也足见其技术成果积淀已经初见爆发的端倪。双11到来之际,石头扫地机器人这两款新品已经在石头官网、天猫、京东、苏宁等平台开启了预热活动。T7市场价2899元、现在直降600元,...
日前,芯启源创始人芦笙参加了第十九届中国通信集成电路技术应用研讨会暨青岛微电子产业发展大会(CCIC 2021),并做了主题演讲。在接受媒体访问时,芦笙解读了公司的发展策略。这家成立仅六年的公司,产品线包括了SmartNIC,DPU,IP以及EDA工具,更重要的这几类产品都实现了商业化销售,这其中的秘密武器是什么?芯启源创始人芦笙丰富的创业经验如果从芯...

史海拾趣

问答坊 | AI 解惑

请问大侠们有没有做过可以驱动硬盘电机的电路?

请问大侠们有没有做过可以驱动硬盘电机的电路?…

查看全部问答∨

软件测试自动化的新进展

如今的电子设备中所包含的软件代码量动辄达到数百万行。用不了几年,设备软件代码量又会成倍增长。因此SQA (Software quality assurance,软件质量保证)比以往任何时候都更为关键,也更加困难。为了将设备质量缺陷消灭在萌芽状态,从而大幅降低设备 ...…

查看全部问答∨

电阻基出知识(上)

如标题,不多说了.…

查看全部问答∨

2440 PWM

s3c2440 PWM 按照手册上设置5个定时器后,观察寄存器输出(TCNTOn)值 TCNTO0,TCNTO1,TCNTO2,TCNTO3,TCNTO4: 8633,5181,24113,550,11317 28193,1665,23381,623,8387 27769,4275,22674,800,5561 27346,884,21968,977,2735 26937,3620,21 ...…

查看全部问答∨

准备发礼品了,大家看看有没有在名单上

谢谢大家对我的支持,2011我会继续努力的。 现在我在做统计的工作,在回我贴的朋友里并明确告诉我投我的,我做了下统计,把名单列出来,大家看看还有没有遗漏?有出路的话请抓紧时间跟帖告诉我,你应该排在的顺序,那个压缩包的密码我先不公布,等 ...…

查看全部问答∨

求助 关于一个按键几个功能,程序出现问题

#include<reg52.h> typedef unsigned char uchar  ; typedef unsigned int uint; uchar table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; uchar tt,dat; sbit button = P3^7; void delay_50us(uint t) {   ...…

查看全部问答∨

脉搏采集器:压电式传感器、蓝牙4.0、锂电池充电

脉搏采集器:压电式传感器、蓝牙4.0、锂电池充电功能 懂的Q85809719,有酬…

查看全部问答∨

谁有18B20和51的正负温度控制程序

谁有18B20和51的正负温度控制程序。 温度设定在-30到+30之间, 采用C语言, 芯片:51. 感温:18B20。 可以发到我的信箱里:1239300456@qq.com 不胜感谢!…

查看全部问答∨

5色环电阻的读数

3842做的辅助电源上一个电阻烧了,该电阻导致整个辅助电源断电了。电阻是5色环的 红  红  银(颜色待定)   金银(颜色待定)   银银(颜色待定) 这个5个颜色顺序,但是如果按照这个顺序这个读数感觉不 ...…

查看全部问答∨

【TI视频分享】电源设计小贴士51:了解寄生电容器

大家看过电源设计小贴士49和50后觉得怎么样? 现在将会和大家分享电源设计小贴士51:了解寄生电容器。 输出电容器的阻抗有助于提高纹波和瞬态性能。随着电源频率升高,寄生问题的影响更大、更不应忽视。在20kHz附近,铝电解电容器的ESR大到足以主 ...…

查看全部问答∨
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved