#include <stc.h>
#include <intrins.h> /* use _nop_() function */
#include <absacc.h> /*extren I/O address function*/
/*串口参数*/
#define ID 0xaa //本机ID
char idata buf_rece; //接收到数据
char idata buf_send[4];//侍发送的数据
/*A/D采样参数*/
sbit CS=P2^7; //max197片选
sbit HBEN=P1^1; //读数据高|低字节选择
sbit INT=P1^0; //AD转换完成,低电平有效
unsigned int idata data12;//AD转换结果数据
unsigned int idata datach1;//channel1采集到的数据
unsigned int idata datach;
unsigned long idata an;
void scan(char channel);
void UartInit(void);
void binray_to_octoble(unsigned int number,char *p);
main()
{
UartInit();
while(1);
}
/*串口初始化*/
void UartInit(void) //9600bps@11.0592MHz
{
PCON &= 0x7F; //波特率不倍速 SMOD=0
SCON = 0x50; //8位数据,可变波特率
AUXR &= 0xBF; //定时器1时钟为Fosc/12,即12T
AUXR &= 0xFE; //串口1选择定时器1为波特率发生器
TMOD &= 0x0F; //清除定时器1模式位
TMOD |= 0x21; //设定定时器1为8位自动重装方式
TL1 = 0xFD; //设定定时初值
TH1 = 0xFD; //设定定时器重装值
ET1 = 0; //禁止定时器1中断
TR1 = 1; //启动定时器1
EA=1;
ES=1;
}
/*串口中断程序*/
void Uart_Interrupt(void) interrupt 4
{
int i;
int j;
RI=0;
buf_rece=SBUF;
an=0;
for(i=0;i<100;i++)
{
scan(buf_rece);
an=an+data12;
}
datach1=(unsigned int)(an/100);
datach=(unsigned int)((float)datach1*(float)5000/(float)4096);
binray_to_octoble(datach,buf_send);
EA=0;
for(j=0;j<4;j++)
{
SBUF=buf_send[j];
while(TI==0);TI=0;
}
EA=1;
}
/*max197采集数据*/
void scan(unsigned char channel)
{
unsigned char conword,low8,high4;
conword=0x40+channel;
//CS=0;
XBYTE[0x7fff]=conword;
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
_nop_();
if(INT==1);
else
{HBEN=0;
low8=XBYTE[0x7fff]; //读取低8位
HBEN=1;
high4=XBYTE[0x7fff]&0x0f; //读取高4位
// high4=0x0f;
// low8=0x9f;
//CS=1;
data12=high4*256+low8;
}
}
void binray_to_octoble(unsigned int number,char *p)
{
if(number>=1000)
{
*p=number/1000;
*(p+1)=number%1000/100;
*(p+2)=number%1000%100/10;
*(p+3)=number%1000%100%10;
}
else if(number>=100)
{
*p=0;
*(p+1)=number/100;
*(p+2)=number%100/10;
*(p+3)=number%100%10;
}
else if(number>=10)
{
*p=0;
*(p+1)=0;
*(p+2)=number/10;
*(p+3)=number%10;
}
else {
*p=0;
*(p+1)=0;
*(p+2)=0;
*(p+3)=(char)number;
}
}
acq.rar_stc90c58rd+
版权申诉
68 浏览量
2022-09-24
04:56:31
上传
评论
收藏 1KB RAR 举报
四散
- 粉丝: 49
- 资源: 1万+
最新资源
- 论文(最终)_20240430235101.pdf
- 基于python编写的Keras深度学习框架开发,利用卷积神经网络CNN,快速识别图片并进行分类
- 最全空间计量实证方法(空间杜宾模型和检验以及结果解释文档).txt
- 5uonly.apk
- 蓝桥杯Python组的历年真题
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 2023-04-06-项目笔记 - 第一百十九阶段 - 4.4.2.117全局变量的作用域-117 -2024.04.30
- 前端开发技术实验报告:内含4四实验&实验报告
- Highlight Plus v20.0.1
- 林周瑜-论文.docx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
评论0