cs5460a c语言程序,CS5463程序,有图有程序,大虾来看看,欢迎拍砖!
= send_data<<1;
}
}
}
/**********************************************************************
*电流有效值采集函数
*********************************************************************
unsigned int get_IRMS(unsigned char cs5460_command)
{
unsigned char buf_I[3];
unsigned char j;
float IRMS;
unsigned int II_RMS_INT;
float G=1.0/2.0,temp=0.0;
Wait_DRDY_High();
cs5460_READ(cs5460_command);
buf_I[0] = rec_data[0];
buf_I[1] = rec_data[1];
buf_I[2] = rec_data[2];
Write_DRDY_LOW();
for(j=0;j<8;j++)
{
if(buf_I[0]&0x80)
temp+=G;
G=G/2.0;
buf_I[0]<<=1;
}
IRMS = 0.0464*((float)buf_I[0])-0.0114;
II_RMS_INT=(unsigned int)(IRMS*1000.0);
// IRMS = 11.9402*temp+0.0586;
return(II_RMS_INT);
} */
/***************************************************************
*电压有效值采集函数
**************************************************************
float get_VRMS(unsigned char cs5460_command)
{
unsigned char buf_U[3];
unsigned char j;
float VRMS;
float G=1.0/2.0,temp=0.0;
Wait_DRDY_High();
cs5460_READ(cs5460_command);
buf_U[0] = rec_data[0];
buf_U[1] = rec_data[1];
buf_U[2] = rec_data[2];
for(j=0;j<8;j++)
{
if(buf_U[0]&0x80)
temp+=G;
G=G/2.0;
buf_U[0]<<=1;
}
//VRMS = 536.59*temp+1.50;
VRMS = (22.831*temp-1.206)*44.0;
return(VRMS);
} */
/***************************************************************
*有功功率采集函数
**************************************************************
float get_PW(unsigned char cs5460_command)
{
unsigned char buf_PW[3];
unsigned char j;
float PW;
float G=1.0/2.0,temp=0.0;
Wait_DRDY_High();
cs5460_READ(cs5460_command);
buf_PW[0] = rec_data[0]&0x7f;
buf_PW[1] = rec_data[1];
buf_PW[2] = rec_data[2];
for(j=0;j<8;j++)
{
if(buf_PW[0]&0x80)
temp+=G;
G=G/2.0;
buf_PW[0]<<=1;
}
PW = 10350.0*temp+70.1383;
return(PW);
} */
/***************************************************
* 定时器中断
****************************************************/
void timer1() interrupt 1
{
TH0 = 0x3c;
TL0 = 0xb0;
tt++;
if(tt==0x14)
{
tt=0;
Wait_DRDY_High(); //等待电压转换完成
cs5460_READ(0x18); //上一周期电压有效值 //0 0 0 1 1 0 0 0 地址12
inode[zhilu].UU[0] = rec_data[0];
inode[zhilu].UU[1] = rec_data[1];
inode[zhilu].UU[2] = rec_data[2];
Wait_DRDY_High(); //等待电流转换完成
cs5460_READ(0x16);
inode[zhilu].II[0] = rec_data[0];
inode[zhilu].II[1] = rec_data[1];
inode[zhilu].II[2] = rec_data[2];
Wait_DRDY_High(); //等待能量转换完成
cs5460_READ(0x14); //上一周期能量值 //0 0 0 1 0 1 0 0 地址10
if((rec_data[0]&0x80)==0x80) //如果电能的最高位为1,则值是负数,需要对数据进行补码处理
{
inode[zhilu].PW[0] = (~rec_data[0]); //数据进行补码处理,负数的补码是反码加1
inode[zhilu].PW[1] = (~rec_data[1]);
inode[zhilu].PW[2] = (~rec_data[2])+0x01;
if(((inode[zhilu].PW[2]&0xff)==0x00)&&(inode[zhilu].PW[1]==0xff))//加1超限了
{
inode[zhilu].PW[1] =0x00;
inode[zhilu].PW[0]=inode[zhilu].PW[0]+0x01;
}
}
else
{
inode[zhilu].PW[0] = rec_data[0];
inode[zhilu].PW[1] = rec_data[1];
inode[zhilu].PW[2] = rec_data[2];
}
time2=1;
}
}
/******************************************************************************
*串口中断,中断号4
*******************************************************************************/
void timer0() interrupt 4
{
//定时器计数50000溢出一次
UU_COUNT++; //定时计数
RI=0;
buf=SBUF;
/****************************************************************************************
* 计数23,计时大约50ms
***************************************************
if(UU_COUNT==0x2d) //计数45,大约100ms
{
UU_COUNT=0;
UU_REC_COUNT++;//接收计数
}
/****************************************************************************************
* 计时2S时间到 将20组采集的电压有效值数据中去掉最大和最小值,剩下的取平均值
***************************************************************************************
if(UU_REC_COUNT==0x0a) //10 计时1s
{
UU_REC_COUNT=0;
Wait_DRDY_High(); //等待电压转换完成
cs5460_READ(0x18); //上一周期电压有效值 //0 0 0 1 1 0 0 0 地址12
inode[zhilu].UU[0] = rec_data[0];
inode[zhilu].UU[1] = rec_data[1];
inode[zhilu].UU[2] = rec_data[2];
Wait_DRDY_High(); //等待电流转换完成
cs5460_READ(0x16);
inode[zhilu].II[0] = rec_data[0];
inode[zhilu].II[1] = rec_data[1];
inode[zhilu].II[2] = rec_data[2];
/****************************************************************************************
* 电能采集,有功功率
****************************************************************************************
Wait_DRDY_High(); //等待能量转换完成
cs5460_READ(0x14); //上一周期能量值 //0 0 0 1 0 1 0 0 地址10
if((rec_data[0]&0x80)==0x80) //如果电能的最高位为1,则值是负数,需要对数据进行补码处理
{
inode[zhilu].PW[0] = (~rec_data[0]); //数据进行补码处理,负数的补码是反码加1
inode[zhilu].PW[1] = (~rec_data[1]);
inode[zhilu].PW[2] = (~rec_data[2])+0x01;
if(((inode[zhilu].PW[2]&0xff)==0x00)&&(inode[zhilu].PW[1]==0xff))//加1超限了
{
inode[zhilu].PW[1] =0x00;
inode[zhilu].PW[0]=inode[zhilu].PW[0]+0x01;
}
}
else
{
inode[zhilu].PW[0] = rec_data[0];
inode[zhilu].PW[1] = rec_data[1];
inode[zhilu].PW[2] = rec_data[2];
}
} */
time=1;
}
cs5460a c语言程序,CS5463程序,有图有程序,大虾来看看,欢迎拍砖!相关推荐
- 数字电压表单片机 c语言程序,单片机数字电压表(带仿真图C程序).docx
单片机数字电压表(带仿真图C程序) 基于51单片机数字电压表 本模块采用ADC0832模数转换芯片,LCD1602液晶显示,测量范围0-5V,精度误差0.01V 看了很多网上的课程设计或者毕业论文,得 ...
- 基于单片机c语言的豆浆机,基于单片机的智能豆浆机控制系统设计(附实物图,电路原理图,程序)...
基于单片机的智能豆浆机控制系统设计(附实物图,电路原理图,程序)(任务书,开题报告,中期检查表,毕业论文11800字) 摘要 由于市面上的豆浆机不具有长时间保温的功能,打浆完成后残渣很多,而且打浆用时 ...
- c语言课设报告时钟vc环境,C语言课程设计报告模拟时钟转动程序
C语言课程设计报告模拟时钟转动程序 课程设计报告题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 王蕾 学 号 课程设计地点 课程设计学时 指 导 教 师 ...
- 《C语言点滴》一第1章 程序猿 程序媛1.1 装备篇
本节书摘来自异步社区<C语言点滴>一书中的第1章,第1.1节,作者 赵岩,更多章节内容可以访问云栖社区"异步社区"公众号查看 第1章 程序猿 && 程序 ...
- c语言程序设计论文背单词系统,C语言课程设计-背单词系统(含程序)
C语言课程设计-背单词系统(含程序) 综合性程序设计报告 设计题目: 背单词系统 指导教师: XXX 班 级: 学 号: 设 计 者: XXX 成 绩: _______________ 设计时间: 年 ...
- C语言编程入门之--第一章初识程序
导读:计算机程序无时不刻的影响着人类的生活,现代社会已经离不开程序,程序的作用如此巨大,那么程序到底是什么呢?本章主要讨论程序的概念,唤起读者对程序的兴趣,同时对C语言程序与其它语言程序进行比较,说明 ...
- c语言编程模拟机械钟表行走,C语言课程设计报告-模拟时钟转动程序
1. 课程设计报告题 目 课 程 名 称 结构化程序设计课程设计 院 部 名 称 专 业 班 级 学 生 姓 名 王蕾 学 号 课程设计地点 课程设计学时 指 导 教 师 金陵科技学院教务处制 程序设 ...
- c语言课程设计作业五子棋,C语言课程设计-五子棋双人对战程序
C语言课程设计-五子棋双人对战程序 C语言课程设计-五子棋双人对战程序|c语言程序代码编程小程序设计|c语言课程设计报告课程案例 /* 本程序在Turbo C或Borland C下编译通过 ...
- dll文件是什么语言写的程序_易语言图文教学:写好了程序,如何配置程序名称、图标?内详...
引导语 通过前两篇图文,相信大家能制作出一个简单的易语言程序啦.今天是教大家怎样配置程序.说的再清楚些,就是给你的程序加个图标,改个进程名字,加上版本号,添加作者信息等等. 具体操作方法 打开一个已经 ...
- c语言程序在什么结束执行,c程序的执行是从什么开始到什么结束?
C程序的入口是main函数,一般来说只要是正常运行结束的都是从main函数的第一句话开始,最后一句结束. 例如:int main()//程序开始 { printf("Hello!\n&quo ...
最新文章
- TCP协议的服务器与客户端的程序设计(代码注释超详细)
- 2018计算机职称考试题,2018年职称计算机Powerpoint考试试题及答案
- 编译与部署dubbo管控平台dubbo-admin
- AI服务器的优势有哪些?人工智能服务器产品有哪些?
- 大数据分析:Java 下降,华为平均月薪高达 35K,分析 89 万招聘数据有这些发现!
- 搬家Testing.
- vb6实现union数据结构_数据结构与算法——并查集(不相交集合)
- android 摄像头参数,获取Android设备上的详细的摄像头信息
- JAVA.IO字符流
- 十个让你变成糟糕的程序员的行为
- FileZilla:425 Can't open data connection for transfer of解决办法
- OEL修改字符集失败 -bash: /root: is a directory
- python分段函数输入x的值求y的值,根据以下分段函数计算y的值,要求x的值由键盘输入,...
- java 给word加水印_java实现word文档转pdf,并添加水印
- 推荐下Python的IDE:PyScripter,Spyder以及使用心得分享
- linux fastQC 操作命令,Linux shell合并fastq测序数据/批量fastqc小脚本|merge|multiqc
- 80x86 汇编语言,大写变小写,小写变大写,数字原样输出
- MyBatis 02
- UT单元测试(一)——基础流程总结篇
- java-php-python-ssm原创网络文学管理系统计算机毕业设计
热门文章
- cef js返回c++的代码_CEF3开发者系列之JS与C++交互之简单介绍
- oracle自定义异常长度,Oracle自定义异常收集(二)
- 计算机没有鼠标用英语怎么说,鼠标用英语怎么说
- (转)JS事件循环和宏任务和微任务
- matlab产生过渡矩阵,浅谈向量空间和矩阵
- 逆发动机模型map图制作
- RGB YUV XYZ HSL CIE1976L*a*b* LCH的色彩空间图 色彩空间 转换公式
- 分布式任务调度框架设计与实现解读(1)
- CSR8811A12-ICXR-R双模数据传输模块 蓝牙芯片4.2
- 测绘航空摄影、摄影测量与遥感资质办理