0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

CS5532-PIC程序代码解析

2oON_changxuemc 来源:未知 作者:易水寒 2017-12-22 10:19 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

CS5532-PIC源程序代码(已经调试验证)

//-------------------------------------------------------

void mcu_out8bit(unsigned char add_dat1)

{

unsigned char ad_loop,bak_data,bak_dat;

bak_data = add_dat1 ;

ad_loop = 8 ;

while( ad_loop > 0 )

{

bak_dat = bak_data & 0x80 ;

if ( bak_dat == 0x00 ) cs_di = 0 ;//data=0

else if ( bak_dat == 0x80 ) cs_di = 1 ;//data=1

//---------------------------------------

// clk

cs_clk = 1 ;

Nop() ;

Nop();

Nop();

cs_clk = 0 ;

//---------------------------------------

ad_loop = ad_loop - 1 ;

bak_data = bak_data << 1 ;

}

cs_di = 0 ;

}

//-------------------------------------------------------

void mcu_out32bit(unsigned long add_dat2)

{

unsigned char ad_loop ;

unsigned long bak_data,bak_dat ;

bak_data = add_dat2 ;

ad_loop = 32 ;

while( ad_loop > 0 )

{

bak_dat = bak_data & 0x80000000 ;

if ( bak_dat == 0x00 ) cs_di = 0 ;//data=0

else cs_di = 1 ;//data=1

//---------------------------------------

// clk

cs_clk = 1 ;

Nop() ;

Nop();

Nop();

cs_clk = 0 ;

//---------------------------------------

ad_loop = ad_loop - 1 ;

bak_data = bak_data << 1 ;

}

cs_di = 0 ;

}

//-------------------------------------------------------

void mcu_in8bit( )

{

unsigned char ad_loop,bak_data;

ad_loop = 8 ;

while( ad_loop > 0 )

{

bak_data = bak_data << 1 ;

bak_data = bak_data & 0xfe ; // data = 0

//---------------------------------------

// clk

if( cs_do == 1 ) bak_data = bak_data + 1 ; //data=1

cs_clk = 1 ;

Nop();

Nop() ;

Nop();

cs_clk = 0 ;

//---------------------------------------

ad_loop = ad_loop - 1 ;

}

ad_dat1 = bak_data ;

}

//-------------------------------------------------------

void mcu_in32bit( )

{

unsigned char ad_loop ;

unsigned long bak_data ;

ad_loop = 32 ;

while( ad_loop > 0 )

{

bak_data = bak_data << 1 ;

bak_data = bak_data & 0xfffffffe ; // data = 0

//---------------------------------------

// clk

if( cs_do == 1 ) bak_data = bak_data + 1 ; //data=1

cs_clk = 1 ;

Nop() ;

Nop() ;

Nop();

cs_clk = 0 ;

//---------------------------------------

ad_loop = ad_loop - 1 ;

}

ad_dat2 = bak_data ;

}

//------------------------------------------------------------------------

void write_register( )

{

cs_clk = 0 ;

cs_cs = 0 ;

//-------------------------

mcu_out8bit(cs_command) ;

mcu_out32bit(cs_regs) ;

//-----------------------

// cs_cs = 1 ;

}

//--------------------------------------------------------------------------

void read_register( )

{

cs_clk = 0 ;

cs_cs = 0 ;

//-------------------------

mcu_out8bit(cs_command) ;

delay( 50 ) ;

mcu_in32bit( ) ;

//-------------------------

cs_regs = ad_dat2 ;

// cs_cs = 1 ;

}www.dgzj.com

//--------------------------------------------------------

void sync( )

{

unsigned char reset_loop ;

reset_loop = 15 ;

while ( reset_loop > 0 )

{

mcu_out8bit(0xff) ;

reset_loop = reset_loop - 1 ;

}

mcu_out8bit(0xfe) ;

}

//-------------------------------------------------------

//CS5531/32/33/34 不具有上电复位功能,要

//初始化模数转换器,必须执行软件复位,软件复

//位可通过串口初始化序列对串口复位实现。通过

//发送15 个字节的SYNC1(0xFFH),然后发送1

//个字节的SYNC0(0XFEH)可将串口复位成命

//令模式。

void ad_reset( )

{

cs_clk = 0 ;

cs_cs = 0 ;

//--------------------

// 1.复位部分

sync( ) ;

//--------------------------------------------------

// 写 配置寄存器

mcu_out8bit(0x03) ;

delay_ms(25) ;

//------------------------------

mcu_out8bit(0x03);

//------------------------------

mcu_out8bit(0x02);

//------------------------------

mcu_out8bit(0x00);

//------------------------------

mcu_out8bit(0x00);

//------------------------------

mcu_out8bit(0x00);

//------------------------------

// ad_dat1=0x05; // 写 通道 设置 寄存器

// 120 hz 0x00000000

// 60 hz 0x00800080

mcu_out8bit(0x05);

//------------------------------

mcu_out8bit(0x00);

//------------------------------

mcu_out8bit(0x00);

//------------------------------

mcu_out8bit(0x00);

//------------------------------

mcu_out8bit(0x00);

//------------------------------

// ad_dat1=0xc0; //启动转换

mcu_out8bit(0xc0);

//------------------------------

// ad_csb(1); //cs=1

cs_do = 1 ;

}

//-----------------------------------------------------------------

// 24bit ad

//-----------------------------------------------------

// reae result

void adc_result( )

{

unsigned char k_d1,k_d2,k_d3,k_d4,k_d5 ;

unsigned long d_data1 ;

cs_clk = 0 ;

//-------------------------

while ( cs_do == 1 )

{ }

//----------------------------

mcu_in8bit( ) ;

k_d1 = ad_dat1 ;

mcu_in8bit( ) ;

k_d2 = ad_dat1 ;

mcu_in8bit( ) ;

k_d3 = ad_dat1 ;

mcu_in8bit( ) ;

k_d4 = ad_dat1 ;

mcu_in8bit( ) ;

k_d5 = ad_dat1 ;

while ( cs_do == 0 )

{ }

//-------------------------------------

d_data1 = k_d2 ;

d_data1 = ( d_data1 << 8 ) + k_d3 ;

d_data1 = ( d_data1 << 8 ) + k_d4 ;

//-------------------------------------

d_data = d_data1 << 8 ;

//------------------------------

}


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • PIC
    PIC
    +关注

    关注

    8

    文章

    512

    浏览量

    91209

原文标题:CS5532程序代码

文章出处:【微信号:changxuemcu,微信公众号:畅学单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    深入解析PIC24FJ256GB210系列16位闪存微控制器

    深入解析PIC24FJ256GB210系列16位闪存微控制器 在电子工程领域,微控制器扮演着至关重要的角色。今天,我们将深入探讨Microchip公司的PIC24FJ256GB210系列16位闪存
    的头像 发表于 04-08 18:25 1059次阅读

    PIC18FXX20系列闪存微控制器编程全解析

    PIC18FXX20系列闪存微控制器编程全解析 在电子设计领域,微控制器的编程是一项基础且关键的工作。今天我们聚焦Microchip的PIC18FXX20系列闪存微控制器,深入探讨其编程规范和相关
    的头像 发表于 04-08 10:55 209次阅读

    深入解析Microchip PIC16F8X系列微控制器

    深入解析Microchip PIC16F8X系列微控制器 在电子工程领域,微控制器是众多项目的核心组件,其性能和特性直接影响着整个系统的表现。今天,我们将深入探讨Microchip的PIC
    的头像 发表于 04-08 09:10 584次阅读

    PIC16C5X系列8位CMOS微控制器:技术解析与应用指南

    PIC16C5X系列8位CMOS微控制器:技术解析与应用指南 在电子设计领域,选择一款合适的微控制器对于项目的成功至关重要。Microchip Technology的PIC16C5X系列8位CMOS
    的头像 发表于 04-07 15:05 208次阅读

    低成本电能计量芯片CS5466:特性、原理与应用解析

    低成本电能计量芯片CS5466:特性、原理与应用解析 在电子工程师的日常工作中,电能计量是一个常见且重要的任务。CIRRUS LOGIC推出的CS5466芯片,为低成本的功率/能量测量提供了一个优秀
    的头像 发表于 03-26 18:20 1067次阅读

    SGM5532 双低噪声运算放大器:性能与应用解析

    SGM5532 双低噪声运算放大器:性能与应用解析 引言 在电子设计领域,运算放大器是一种极为关键的元件,广泛应用于各种电路中。SGMICRO 推出的 SGM5532 双低噪声运算放大器,凭借其出色
    的头像 发表于 03-09 14:40 220次阅读

    SGM5532L双路低噪声运算放大器:高性能与应用全解析

    SGM5532L双路低噪声运算放大器:高性能与应用全解析 在电子设计领域,运算放大器是不可或缺的基础元件,其性能的优劣直接影响到整个电路的表现。今天我们就来深入探讨SGMICRO推出
    的头像 发表于 03-09 14:40 229次阅读

    深入解析LTC5532:高精度RF探测器的卓越之选

    深入解析LTC5532:高精度RF探测器的卓越之选 在当今的射频(RF)应用领域,对于高精度、宽频带的RF探测器需求日益增长。Linear Technology公司的LTC5532就是一款备受瞩目
    的头像 发表于 02-26 17:05 610次阅读

    深入解析Microchip PIC16F872微控制器

    深入解析Microchip PIC16F872微控制器 在电子工程师的日常工作中,微控制器的选择和应用至关重要。今天,我们就来深入探讨一下Microchip的PIC16F872这款28引脚、8位
    的头像 发表于 02-05 15:20 298次阅读

    为Wi-Fi通讯和USB蓝牙通信控制设计并支持大型程序代码的指纹芯片-P1032BF1

    指纹芯片 - P1032BF1是一款基于ARM Cortex-M3的单片机,专为Wi-Fi /蓝牙通信控制而设计;能够实现指纹的图像采集、特征提取、特征比对,可应用于智能锁;支持大型程序代码和拥有大型嵌入式SRAM,也可用于一般的MCU应用。
    的头像 发表于 01-27 09:46 305次阅读
    为Wi-Fi通讯和USB蓝牙通信控制设计并支持大型<b class='flag-5'>程序代码</b>的指纹芯片-P1032BF1

    CS1256 测相位角或者相位差的demo

    CS1256 测相位角或者相位差的demo。 包括电路图和 demo C程序代码。我用的stmF103,GD32F103,类似的就行。 谢谢 25q@163.com
    发表于 12-19 16:01

    JEPSUN HCT6801与CS5532的参数比对研究

    在精密测量与数据采集系统中,模数转换器(ADC)的性能直接影响系统的整体精度与稳定性。JEPSUN HCT6801与CS5532均为高精度Σ-Δ型ADC,广泛应用于工业控制、仪器仪表、传感器信号调理
    的头像 发表于 12-18 17:51 728次阅读
    JEPSUN HCT6801与<b class='flag-5'>CS5532</b>的参数比对研究

    当ICE_DAT引脚和ICE_CLK引脚在应用程序代码中配置为备用功能时,是否会导致编程失败?

    当ICE_DAT引脚和ICE_CLK引脚在应用程序代码中配置为备用功能时,是否会导致编程失败?
    发表于 08-25 06:55

    嵌入式系统中,FLASH 中的程序代码必须搬到 RAM 中运行吗?

    嵌入式系统里,FLASH 中的程序代码并非必须搬到 RAM 中运行,这得由硬件配置、实际性能需求和应用场景共同决定。就像很多低端单片机,无论是依赖片内 Flash 还是外挂的 SPI NOR
    的头像 发表于 08-06 10:19 1529次阅读
    嵌入式系统中,FLASH 中的<b class='flag-5'>程序代码</b>必须搬到 RAM 中运行吗?

    请问如何创建在 RAM 区域完全独立运行的闪存驱动程序代码

    我在开发闪存驱动程序代码时遇到了一个问题。我将准备好的HEX文件写入指定的RAM区域,并尝试使用指针调用,但调用失败,无法正常擦除或写入。对于flash的操作代码已经通过了单独的测试,为了使其更加
    发表于 07-25 07:33