标题:
基于51单片机的模拟数据采集器仿真与程序
[打印本页]
作者:
秋名山车神
时间:
2018-1-9 15:25
标题:
基于51单片机的模拟数据采集器仿真与程序
模拟数据采集器仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
0.png
(17.17 KB, 下载次数: 70)
下载附件
2018-1-9 15:48 上传
0.png
(11.58 KB, 下载次数: 50)
下载附件
2018-1-9 15:48 上传
单片机源程序如下:
/*模拟数据采集器*/
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define input P1
#define TT P0
#define c 0.01 //设置一阶惯性数字滤波值//
sbit START=P3^4;
sbit CLK=P3^5;
sbit OE=P3^6;
sbit EOC=P3^7;
sbit E=P3^0;
sbit AA=P3^1;
sbit BB=P3^2;
sbit CC=P3^3;
sbit K1=P2^4;
sbit K2=P2^5;
sbit P07=P0^7;
uchar t1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //数码管0-9//
uchar a,b;
void delay1();
void display(uint temp1);
/*******延时1*******/
void delay1(void)
{
for(a=248;a>0;a--);
for(b=248;b>0;b--);
}
/*******延时2*******/
void delay2()
{
int i;
for(i=1000;i>0;i--);
}
/*void delay3()
{
int j;
for(j=5000;j>0;j--);
}
/***延时3*****/
/******A/D转换程序*******/
uchar AD()
{
uchar date;
if(!EOC)
{
START=1;
START=0;
}
while(!EOC);
START=1;
START=0;
date=input;
return date;
}
char date;
char new_date;
char filter()
{
char new_date;
return 0.01*date+(1-0.01)*new_date;
}
/*******加地址,选择模拟通道*******/
void get_add(uchar add)
{
CC=add/4;
BB=add%4/2;
AA=add%2;
delay2();
}
/*******动态扫描程序*******/
void display(uint temp1)
{
uint aa,bb,cc,dd;
aa=temp1%10;
temp1/=10;
bb=temp1%10;
temp1/=10;
cc=temp1%10;
dd=temp1/10;
P2=0xf1;
P0=t1[dd];
delay2();
P2=0xf2;
P0=t1[cc];
delay2();
P2=0xf4;
P0=t1[bb]&0X7F;
delay2();
P2=0xf8;
P0=t1[aa];
delay2();
}
/*******电压显示转温度显示函数*******/
void c_u(float aa)
{
uchar i;
aa=aa*15.4*5*10/255;
for(i=0;i<10;i++)
display(aa);
}
/*******主程序*******/
void main(void)
{
uchar rr,tt;
bit temp=0;
TMOD=0x02; //定时器0工作在2模式
TR0=1;// 定时器0启动控制位
ET0=1; //定时器0的中断允许开关
IT0=1; //外部中断0触发方式选择位,为1边沿触发
EX0=1;//允许外部中断0申请中断
EA=1;
tt=0;
while(1)
{
if(!K2)
{
while(!K2);
temp=~temp;
}
if(temp)
{
get_add(tt);
AD();
rr=input;
filter();//一阶惯性数字滤波
c_u(rr);
if(!K1)
{
while(!K1);
tt++;
tt=tt%8;
}
}
if(!temp)
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
模拟数据采集器.zip
(87.13 KB, 下载次数: 108)
2018-1-9 15:25 上传
点击文件名下载附件
程序和仿真
下载积分: 黑币 -5
作者:
蒲123
时间:
2024-3-23 23:34
请问下面那个计数器是用来干什么的
作者:
蒲123
时间:
2024-3-23 23:34
楼主可以讲解一下这个电路吗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1