基于AT89C51单片机的数据采集系统及频谱分析电路(3)

2019-04-08 19:06

精品毕业论文

图2.7复位电路连接方式图

这是AT89C51单片机主控部分的接法,其中P3.1到P3.7与A/D转换芯片相连,做控制口。在A/D部分已经详细介绍了连法。P2.0-P2.3是四位数码显示管的控制端。P2.5和P2.6是按键的控制端。P0.0-P0.7是显示的数据输出端与四位数码管的A-G相连。

图2.8按键的控制端

这个是简单的按键部分,P2.4按键选通转换那一路,执行的方式是按一下显示下一路,按0-7路的方式循环。

精品毕业论文

3.数据采集软件设计

3.1系统模块层次图

模拟信号

A/D模块

图3.1系统模块层次图 显示模块 主控电路 按键模块 3.2程序流程

开始

初始化

开始A/D转换 调用数据处理子程序

调用显示子程序

否 If(K) 是 地址++

地址小于8

结束 图3. 程序流程图

3.3程序源代码

#include

精品毕业论文

#include

#define uchar unsigned char #define uint unsigned int //#define input P1 //#define TT P0 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 P07=P0^7;

uchar t1[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; 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=5000;i>0;i--); }

/********A/D转换程序********/ uchar AD() {

uchar dat; if(!EOC) {

START=1; START=0; }

精品毕业论文

while(!EOC); START=1; START=0; dat=input; return dat; }

/********加地址,选择模拟通道*******/ 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; temp1/=10; bb=temp1; temp1/=10; cc=temp1; dd=temp1/10;

P2=0xf1; P0=t1[dd]; delay1();

P2=0xf2; P0=t1[cc]; delay1();

P2=0xf4;

P0=t1[bb]&0X7F; delay1();

P2=0xf8; P0=t1[aa]; delay1();

精品毕业论文

}

/*****电压显示转温度显示函数*****/ void c_u(int aa) {

aa=aa*15.4*5*10/255; display(aa); }

/*****主程序****/ void main(void) {

uchar rr,tt; TMOD=0x02; TR0=1; ET0=1; IT0=1; EX0=1; EA=1; tt=0; while(1) {

get_add(tt); AD(); rr=input; c_u(rr); if(!K1) {

while(!K1); tt++;tt=tt%8; } } }

/****中断时钟脉冲*****/ void timer() interrupt 1 {

CLK=~CLK; }


基于AT89C51单片机的数据采集系统及频谱分析电路(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:空气中PM2.5问题的研究

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: