/******************** 新创电子007 ***************
* File Name : MAIN.h
* Author :
* Version : Keil uVision4
* Date First Issued : 24/01/2017
* Description : public header file
*免责声明: 1.此程序为TM7705演示程序,仅作参考之用。
2.如有直接使用本例程程序造成经济损失的,本公司不承担任何责任
*******************************************************/
#include<STC15F2K60S2.h>
#include<usart.h>
#include<intrins.h>
#include <TM7705.h>
#define ENABLE_ISP 0x83
#define uint unsigned int
#define uchar unsigned char
sbit P1_3=P1^3;
uchar TimeN=0,BZ=1,sbuf[2]={0,0},Step=0;
xdata uchar uart_buf1[60],uart_buf2[60],S1=0,SBZ1=0,Slen1=0,send_buf[50];
uchar ChaoShi1=0,Address=0xfe;
uint ADis[4]={0,0,0,0}; //ADC实时值
unsigned long mV=0,mA=0; //采集电压和电流值
void Delay1(uint ms)
{
uint i;
while(ms--)
{
for(i=1;i<(uint)(8*143-2);i++)
;
}
}
void Init() //定时器初始化
{
TMOD=0x01;
ET0=1; //T0内部中断 允许
TH0=0xec; //5MS延时
TL0=0x78;
EA=1; //开启总中断
TR0=1; //启动定时器0
}
void GetAD()
{
uchar temp1,temp2;
uint temp;
float Dis1=2498.000000,Dis2=65535.000000,Dis3=0.000000;
//基准电压值 万用表测量
if(Step==0)
{
write_byte_TM7705(1,0x10); //通道1(0 0 0 1 0 0 0 0),写通讯寄存器下一步写设置寄存器
write_byte_TM7705(1,0x44); //写入设置寄存器(0 1 0 0 0 1 0 0),自校准模式0 1,1倍增益0 0 0,单极性B/U=1,buf串联设置为0,FSYNC=0
Step=2;
}
if(Step==1)
{
write_byte_TM7705(1,0x11); //通道1(0 0 0 1 0 0 0 0),写通讯寄存器下一步写设置寄存器
write_byte_TM7705(1,0x44); //写入设置寄存器(0 1 0 0 0 0 0 0),自校准模式0 1,16倍增益0 0 0,双极性B/U=0,buf串联设置为0,FSYNC=0;
Step=3;
}
if(P1_3==0)
{
if(Step==2)
{
write_byte_TM7705(1,0x38); //读通道1
temp1=read_byte_TM7705(1); //先读高位
temp2=read_byte_TM7705(1); //再读低位
temp=temp1*256+temp2;
Dis3=Dis1/Dis2;
Dis3=temp*Dis3;
mV=Dis3*500; //电压值换算,输入电压0-1.25V 运放放大倍数2(电位器100K时),程序做了除2处理
Step=1;
}
if(Step==3)
{
write_byte_TM7705(1,0x39); //读通道2
temp1=read_byte_TM7705(1); //先读高位
temp2=read_byte_TM7705(1); //再读低位
temp=temp1*256+temp2;
Dis3=Dis1/Dis2;
Dis3=temp*Dis3;
mA=Dis3*10; //电流值换算,输入电电流0-20mA
Step=0;
}
}
}
void main()
{
uchar i;
P1M1=0;P0M0=0;
Delay1(50);
Init();
InitCom1();
delay_nms(50);
TM7705_init(1);
delay_nms(50);
UARTSendByte1(Address);
//WDT_CONTR=0x34;//启动看门狗
while(1)
{
// WDT_CONTR|=0x10;//清看门狗
GetAD(); //ADC 通道1和通道2轮流采集,采集频率50HZ
if(BZ==1) //每1秒主动上传采集结果
{
BZ=0;
UARTSendByte1(mV/1000000+'0');
UARTSendByte1(mV%1000000/100000+'0');
UARTSendByte1(mV%100000/10000+'0');
UARTSendByte1(mV%10000/1000+'0');
UARTSendByte1('.');
UARTSendByte1(mV%1000/100+'0');
UARTSendByte1(mV%100/10+'0');
UARTSendByte1(mV%10+'0');
UARTSendByte1('m');
UARTSendByte1('V');
UARTSendByte1(' ');
UARTSendByte1(mA/1000000+'0');
UARTSendByte1(mA%1000000/100000+'0');
UARTSendByte1(mA%100000/10000+'0');
UARTSendByte1(mA%10000/1000+'0');
UARTSendByte1('.');
UARTSendByte1(mA%1000/100+'0');
UARTSendByte1(mA%100/10+'0');
UARTSendByte1(mA%10+'0');
UARTSendByte1('m');
UARTSendByte1('A');
UARTSendByte1('\n');
}
if(SBZ1==1)
{
for(i=0;i<uart_buf2[3];i++)
{
uart_buf1[i]=uart_buf2[i];
}
SBZ1=0;
}//SBZ1
}//while
}//main
void int2() interrupt 1 // 时钟中断 0
{
TH0=0xdc; //约5ms
TL0=0x00;
TimeN++;
ChaoShi1++;
if(ChaoShi1>5) //数据接收超时
{
S1=0;
ChaoShi1=0;
}
if(TimeN>=200)
{
TimeN=0;
BZ=1;
}
// if(TimeN==1) LED_DY=0; //电源指示灯闪烁
// if(TimeN==8) LED_DY=1; //电源指示灯闪烁
}
void UART_Interrupt_Receive(void) interrupt 4 //串口1
{
if(RI==1)
{
RI=0;
uart_buf2[S1]=SBUF;
S1++;
ChaoShi1=0;
}else{TI=0;}
if(S1==1) //数据包头
{
if(uart_buf2[0]!=0xff) S1=0;
}
if(S1==2) //数据包头
{
if(uart_buf2[1]!=0x5c) S1=0;
if(uart_buf2[1]==0xff) {S1=1;uart_buf2[0]=uart_buf2[1];}
}
if(S1==3) //设备地址
{
if(uart_buf2[2]!=Address) S1=0;
if(uart_buf2[2]==0xff){S1=1;uart_buf2[0]=uart_buf2[2];}
}
if(S1==4) //数据长度
{
if(uart_buf2[3]>50){S1=0;Slen1=0;}
else Slen1=uart_buf2[3];
if(uart_buf2[3]==0xFF){S1=1;uart_buf2[0]=uart_buf2[3];Slen1=0;}
}
if(S1>=Slen1&&S1>6)
{S1=0;SBZ1=1;Slen1=0;} //S1接收字节计数,SBZ1串口1接收完成标志 1完成 0未完成,Slen数据长度
if(S1>51) //缓冲区溢出
{
S1=0;Slen1=0;
}
}
TM7707.rar
1星 需积分: 50 36 浏览量
2021-02-05
13:12:16
上传
评论 1
收藏 62KB RAR 举报
YTJR
- 粉丝: 3
- 资源: 13
最新资源
- apk.tw_LineLite_v8a_v.2.17.1_sign.apk
- Elasticsearch实战:构建高效搜索系统的秘诀.zip
- HTML+CSS+JS网页设计:从入门到精通.zip
- 数据库课程设计:从理论到实践的全面指南.zip
- Python闭包:深入理解与应用场景解析.zip
- Win64OpenSSL-3-3-0.exe
- 课高分程设计-基于C++实现的民航飞行与地图简易管理系统-南京航空航天大学
- 航天器遥测数据故障检测系统python源码+文档说明+数据库(课程设计)
- 北京航空航天大学操作系统课设+ppt+实验报告
- 基于Vue+Echarts实现风力发电机中传感器的数据展示监控可视化系统+源代码+文档说明(高分课程设计)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论2