第三篇 基于Mini51板和ADC0809的多路数据采集系统设计

合集下载

CPLD控制ADC0809实现多路数据采集

CPLD控制ADC0809实现多路数据采集

CPLD控制ADC0809实现多路数据采集随着数字化生活的到来,数据采集系统在日常生活中的应用越来越显着。

模拟信号和数字信号之间的转换已成为计算机控制系统中不可缺少的环节。

较传统数据采集率高、组成形式灵活等特点。

数据采集系统具有极强的通用性,可广泛应用于军事、工业生产、科学研究和日常生活中。

随着计算机的普及数据采集系统在日常生活中的应用越来越显着。

由于基于DSP芯片的高速电子器件成本和制作工艺以及高密集的技术含量,使得高速数据采集卡的价格昂贵。

而复杂可编程逻辑器件(CPLD)能够将大量的逻辑功能集成于一个单片集成电路中,以其时钟频率高、内部延时小、速度快、效率高、组成形式灵活等特点在高速数据采集方面有着单片机和DSP无法比拟的优势。

本文为大家介绍CPLD控制ADC0809实现多路数据采集。

系统的构架及工作原理采用一片CPLD作为逻辑控制单元。

CPLD负责采用通道的巡回、工作时钟的产生和ADC0809的数据采集。

A/D转换器采用的是ADC0809,ADC0809是CMOS单片型逐次逼近式A/D转换器,它具有转换速度快、分辨率高、功耗低以及价格便宜等优点,被广泛地应用与微电脑的接口设计上。

它有8个模拟量输入通道IN[0..7],芯片内由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。

ADC0809通过ALE,START,EOC,OE,Da-ta[0..7],ADDA,ADDB,ADDC,CLK 信号与CPLD相连。

如图1所示。

其中:ALE:为地址锁存允许输入线,高电平有效。

当ALE为高电平时,地址锁存与译码器ADDA、ADDB、ADDC三条地址线的地址信号进行锁存,经译码后被选中的通道模拟量进转换器进行转换。

ADDA、ADDB和ADDB为地址输入线,用于选通IN0-IN7上的一路模拟输入量。

START:启动A/D转换控制引脚,电平下降沿有效。

Data[0..7]:AD转换数据输出。

基于单片机的多路数据采集ADC0809

基于单片机的多路数据采集ADC0809

基于单片机的多路数据采集ADC0809单片机原理及系统课程设计专 业: 自动化班 级: 自动化姓 名:学 号:指导教师: 评语:考勤10分守纪10分 过程30分 设计报告30分 答辩20分 总成绩(100)2015年12月29日基于单片机的多路数据采集1 引言通过一个学期的学习,我认为要学好单片机这门课程,不仅要认真学习课本知识,更重要的是要学会通过实践巩固学到的知识,本次课设中我们设计制作的题目是基于单片机的多路数据采集系统设计。

1.1 设计背景随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一种基于单片机控制的数据采集。

本设计使用简便,功能丰富。

本设计控制芯片采用的是STC89C51,AD转换采用ADC0809芯片,显示采用的是四位共阴极数码管。

关键字:STC89C51、ADC0809、8路电压采集。

2.1 系统设计方案在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。

而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。

本次设计主要由三个模块组成:A/D转换模块,数据处理模块及显示模块。

A/D转换主要由芯片ADC0809来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块。

数据处理则由芯片STC89C51来完成,其负责把ADC0809传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外它还控制着ADC0809芯片工作。

2.2 总体设计方案8路电压输入AD转换51单片机按键切换电压显示蜂鸣器8路led灯图1 系统原理总框图3硬件设计3.1晶振电路晶体振荡器,简称晶振,它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。

晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。

基于单片机的多路数据采集系统设计毕业论文

基于单片机的多路数据采集系统设计毕业论文

基于单片机的多路数据采集系统设计毕业论文————————————————————————————————作者:————————————————————————————————日期:基于单片机的多路数据采集系统设计The Design Of Multi—channel Data Acquisition SystemBased On SCM摘要本文介绍了基于单片机的数据采集的硬件设计和软件设计,数据采集系统是模拟域与数字域之间必不可少的纽带,它的存在具有着非常重要的作用.本文介绍的重点是数据采集系统,而该系统硬件部分的重心在于单片机。

数据采集与通信控制采用了模块化的设计,数据采集与通信控制采用了单片机AT89S52来实现,硬件部分是以单片机为核心,还包括A/D模数转换模块,显示模块,和串行接口部分。

该系统从机负责数据采集并应答主机的命令。

8路被测电压通过模数转换器ADC0809进行模数转换,实现对采集到的数据进行模拟量到数字量的转换,并将转换后的数据通过串行口MAX232传输到上位机,由上位机负责数据的接受、处理和显示,并用LED数码显示器来显示所采集的结果.软件部分应用VC++编写控制软件,对数据采集系统、模数转换系统、数据显示、数据通信等程序进行了设计.关键词:数据采集 89C52单片机 ADC0809 MAX232AbstractThis article describes the hardware design and software design of the data on which based on signal—chip microcomputer 。

The data collection system is the link between the digital domain and analog domain. It has an very important function。

基于单片机的多路数据采集与控制系统课程设计报告.doc

基于单片机的多路数据采集与控制系统课程设计报告.doc

基于单片机的多路数据采集与控制系统课程设计报告单片机多路数据采集与控制系统课程设计报告首先,设计目的是利用单片机原理及其应用等课程知识,根据课题要求设计和调试软硬件系统,加深对课程知识的理解,将所学的相对零碎的知识系统化,比较系统学习和开发单片机应用系统的基本步骤和方法,从而在一定程度上提高学生的应用知识能力、设计能力、调试能力和报告写作能力。

二、8051单片机设计数据采集控制系统的设计要求,基本要求如下:基本零件:1.假设8路信号都是0~5V电压信号,可以采集8路数据。

2.采集的数据可以通过液晶显示器以[通道号]电压值的格式显示,如[01] 4.5。

3.采集模式可通过键盘设置:单点采集、多通道测量、采集时间间隔。

4.具有异常数据、声音和晶体爆炸功能:第一路数据可以设置正常数据的上限值和下限值,当采集的数据异常时,发出报警信号。

选择为函数:1.异常数据音乐报警。

2.可输出8路顺序控制信号,每路顺序控制信号设置一位。

顺序控制流程如下:步骤1步骤2步骤3步骤4步骤5步骤6步骤7步骤8延迟3秒延迟3秒延迟6秒延迟1秒延迟1秒延迟1秒延迟1秒延迟6秒第三,总体设计选择了单片机和模数转换芯片相结合的方式来实现这一设计。

使用的基本组件有:AT89C52单片机、ADC0809模数转换芯片、液晶显示器、按键、电容、电阻、晶体振荡器等。

数字电压测量电路由模数转换、数据处理和显示控制组成。

模数转换由集成电路ADC0809完成。

ADC0809有8个模拟输入端口和地址线(23~-首先,设计目的是利用单片机原理及其应用等课程知识,根据课题要求设计和调试软硬件系统,加深对课程知识的理解,将学到的相对零碎的知识系统化,比较系统学习和开发单片机应用系统的基本步骤和方法,在一定程度上提高学生的应用知识能力、设计能力、调试能力和报告写作能力。

二、8051单片机设计数据采集控制系统的设计要求,基本要求如下:基本零件:1.假设8路信号都是0~5V电压信号,可以采集8路数据。

基于51单片机的多路电压采集系统的设计proteus仿真

基于51单片机的多路电压采集系统的设计proteus仿真

基于51单片机的多路数据采集器一、摘要:用51单片机控制ADC0808将模拟信号(0~0.5V)转换成数值量(0~255),再控制LED数码管以十六进制实时显示出来。

ADC0808为模/数(A/D)转换器。

在Proteus软件上实现电路设计和程序设计,并进行实时交互仿真。

本设计采用了以单片机为开发平台,控制系采用AT89C52单片机,A/D转换采用ADC0808。

系统除能确保实现要求的功能外,还可以方便进行8路其它A/D转换量的测量。

万用板经过排版、布线、焊接、调试等工作后基于51单片机的简易电压表成形。

关键字:51单片机ADC0808 LED数码显示二、设计要求1、用51单片机作为控制器,来控制ADC0808将模拟信号转换成数值量(0—255);2、可准确测量0—0.5V电压,最小分辨率2mV;3、测量误差小于5%;4、用51单片机控制两位数码管显示实时测量电压的16进制数值量;5、单片机采用中断工作方式;6、在Proteus软件上实现多路电压的测量的电路和程序设计,并进行实时仿真;三、功能创新(1) 在Proteus软件上实现了8路电压的测量设计,并仿真成功,且在万用板上焊接、调试成功;(2) 设计一个外部开关通过中断方式来选择任意一路的电压测量,并用单片机控制一位数码管显示路数;(3)通过编程实现直接在LED数码管上显示测量电压值,并精确到1mV;(4) 设计一个由LED灯和蜂鸣器组成的报警电路,当被测电压超过测量范围时,报警电路实现报警;四、硬件电路设计1、系统设计框图根据设计要求与思路,在Proteus软件上设计和仿真该系统的设计方案。

硬件电路由6个部分组成,即单片机电路、复位电路、4位LED显示电路、A/D转换电路和键盘及报警电路、放大电路。

系统设计框图如下:图1 系统框图2、单片机系统电路本次设计选择Atmel公司生产的AT89C52作为控制芯片。

AT89系列与MCS-51系列单片机相比有两大优势:第一,片内程序存储器采用闪速存储器,使程序的写入更加方便;第二,提供了更小尺寸的芯片,使整个电路体积更小。

ADC0809与51单片机接口电路及应用程序

ADC0809与51单片机接口电路及应用程序

ADC0809与51单片机接口电路及应用程序最近研究了下ADC0809这个芯片,做了个电路,和大家分享电路原理图如下:500)this.width=500;" border=0>说明:D0~D7接51单片机的P2口(P2.0~P2.7)ADIN1和ADIN2为通道IN0和IN1的电压模拟量输入(0~5V)应用程序如下:#include"reg52.h"#define uchar unsigned charsbit ST=P1^0;sbit EOC=P1^1;sbit OE=P1^2;sbit CLK=P1^3;sbit ADDCS=P1^4;uchar AD_DATA[2]; //保存IN0和IN1经AD转换后的数据/**********延时函数************/void delay(uchar i){uchar j;while(i--){for(j=125;j>0;j--);}}/*********系统初始化***********/void init(){EA = 1; //开总中断TMOD = 0x02; //设定定时器T0工作方式 TH0=216; //利用T0中断产生CLK信号 TL0=216;TR0=1; //启动定时器T0ET0=1;ST=0;OE=0;}/***********T0中断服务程序************/void t0(void) interrupt 1 using 0{CLK=~CLK;}/***********AD转换函数**********/void AD(){ST=0;ADDCS=0; //选择通道IN0delay(10);ST=1; //启动AD转换delay(10);ST=0;while(0==EOC);OE=1;AD_DATA[0]=P2;OE=0;ST=0;ADDCS=1; //选择通道IN1 delay(10);ST=1; //启动AD转换delay(10);ST=0;while(0==EOC);OE=1;AD_DATA[1]=P2;OE=0;}/*****************主函数**************/。

基于51单片机的ADC0809多路测量

clk=0;
IT0=1;
TR0=1;
while(1)
{
clk=~clk;P1=ad_data0;
}
}
void int0(void)interrupt 0 using 0
{
switch(channel)
{
case 0:
{ channel+=1;
ad_data0=IN0;
IN1=0; //启动下一次AD转换
TL0=(65535-46083)%256;
count++;
if(count==2)
{ count=0;
IN0=0;//1s后再次启动下一轮AD转换
}
}
}break;
case 4:
{ channel+=1;
ad_data4=IN4;
IN5=0; //启动下一次AD转换
}break;
case 5:
{ channel+=1;
ad_data5=IN5;
IN6=0;
}break;
case 6:
{ channel+=1;
ad_data6=IN6;
IN7=0; //启动下一次AD转换
buf5[time]=ad_data5;
buf6[time]=ad_data6;
buf7[time]=ad_data7;
time++; if(time>=20) time=0;
}break;
default:break;
}
}
void time0()interrupt 1 using 0
{
TH0=(65535-46083)/256;

毕业设计(论文)基于51单片机的多路温度采集控制系统设计

基于51单片机的多路温度采集控制系统设计言:随着现代信息技术的飞速发展,温度测量控制系统在工业、农业及人们的日常生活中扮演着一个越来越重要的角色,它对人们的生活具有很大的影响,所以温度采集控制系统的设计与研究有十分重要的意义。

本次设计的目的在于学习基于51单片机的多路温度采集控制系统设计的基本流程。

本设计采用单片机作为数据处理与控制单元,为了进行数据处理,单片机控制数字温度传感器,把温度信号通过单总线从数字温度传感器传递到单片机上。

单片机数据处理之后,发出控制信息改变报警和控制执行模块的状态,同时将当前温度信息发送到LED进行显示。

本系统可以实现多路温度信号采集与显示,可以使用按键来设置温度限定值,通过进行温度数据的运算处理,发出控制信号达到控制蜂鸣器和继电器的目的。

我所采用的控制芯片为AT89c51,此芯片功能较为强大,能够满足设计要求。

通过对电路的设计,对芯片的外围扩展,来达到对某一车间温度的控制和调节功能。

关键词:温度多路温度采集驱动电路正文:1、温度控制器电路设计本电路由89C51单片机温度传感器、模数转换器ADC0809、窜入并出移位寄存器74LS164、数码管、和LED显示电路等组成。

由热敏电阻温度传感器测量环境温度,将其电压值送入ADC0809的IN0通道进行模数转换,转换所得的数字量由数据端D7-D0输出到89C51的P0口,经软件处理后将测量的温度值经单片机的RXD端窜行输出到74LS164,经74LS164 窜并转换后,输出到数码管的7个显示段,用数字形式显示出当前的温度值。

89C51的P2.0、P2.1、P2.2分别接入ADC0809通道地址选择端A、B、C,因此ADC0809的IN0通道的地址为F0FFH。

输出驱动控制信号由p1.0输出,4个LED为状态指示,其中,LED1为输出驱动指示,LED2为温度正常指示,LED3为高于上限温度指示,LED4为低于下限温度指示。

当温度高于上限温度值时,有p1.0输出驱动信号,驱动外设电路工作,同时LED1亮、LED2灭、LED3亮、LED4灭。

基于ADC0809芯片的简单采集系统方案设计书

在电子工程、通信工程、自动控制、遥测控制、测量仪器、仪表和计算机等技术领域,经常需要用到各种各样的信号波形发生器。

随着集成电路的迅速发展,用集成电路可很方便地构成各种信号波形发生器。

用集成电路实现的信号波形发生器与其它信号波形发生器相比,其波形质量、幅度和频率稳定性等性能指标,都有了很大的提高。

波形发生器也称函数发生器,作为实验信号源,是现今各种电子电路实验设计应用中必不可少的仪器设备之一。

目前,市场上常见的波形发生器多为纯硬件的搭接而成,且波形种类有限,多为锯齿波,正弦波,方波,三角波等波形。

信号发生器是一种常用的信号源,广泛用于电子电路、自动控制系统和教案实验等领域,目前使用的信号发生器大部分是模拟电路组成的,体积大、可靠性差、准确度低、并且用于低频时,其RC要很大,大电阻,大电容在制造上有困难,参数准确度难以保证,漏电损耗大。

本文介绍一种利用AT89C51单片机构成的信号发生器,可产生方波、三角波、锯齿波、正弦波和脉冲信号等多种波形,其频率可用程序改变,并可根据需要选择单极性或双极性输出。

此信号发生器电路,结构紧凑,价格低廉,性能优越。

本文介绍其硬件系统和软件系统的设计方法。

第二章硬件电路设计本设计是简易低频信号发生器,它能输出锯齿波、方波、三角波及正弦波等四种基本波形。

输出的每一种波形有四种可选频率,或频率可调。

由AT89C51、DAC0832芯片、运算放大器和外接少量的元件制作一个简易但是优质的波形发生器,8位的AT89C51单片机作为主控制已经完全可以满足这次设计的要求。

这个方案的优点是这些芯片都是我们学习过的知识,当然除了学已即用外更加关键的是这样的设计性能稳定、价格低、性能高、体积小、耗电少,在低频范围内稳定性好、操作方便等特点。

图2.1 硬件电路框图2.1 MCS-51单片机的内部结构典型的MCS-51单片机芯片集成了以下几个基本组成部分。

1 一个8位的CPU2 128B或256B单元内数据存储器(RAM)单片机的时钟信号通常用两种电路形式得到:内部振荡和外部振荡方式。

51单片机加CPLD驱动ADC0809的多路数据采集系统

1. 启动AD转换
ADC0809 启动受 START、ALE 和 ADDR 信号控制,
一、ADC0809
ADC0809 是 8 位 A/D 转换器、8 路多路开关以及 微处理机兼容的控制逻辑的 CMOS 组件。它是逐次逼 近式 A/D 转换器,容易和单片机总线模式接口。图 1 是 ADC0809 芯片的实物图和引脚图。
51MCU 有与之对应的控制时序,当 MCU 执行指 令 MOVX @DPTR,A 时,将产生如图 3 所示的时序波形 图,P0 口分时复用,分别送出低 8 位地址 addrL 和数 据 data,P2 口送出高八位地址 addrH,并且在 t0 时刻, P3.6(WR)送出低脉冲信号。
通过比较图 2 图、3 波形图,如果将 Wr 信号取反, 就可以得到满足 ADC0809 启动所需的 ALE(START) 信号,从 P0 送出的 data 为其提供 ADDR 通道选择地址。
30 2011. 03
IN3 1 IN4 2 IN5 3 IN6 4 IN7 5 START 6 EOC 7 2-5 8 OE 9 CLOCK 10 VCC 11 VREF(+) 12 GND 13 2-7 14
28 IN2 27 IN1 26 IN0 25 ADD A 24 ADD B 23 ADD C 22 ALE 21 2-1MSB 20 2-2 19 2-3 18 2-4 17 2-8LSB 16 VREF(-) 15 2-6
IN7 5
32 2011. 03
图7 0809与Mini51板接口电路图
单片机制作
MCU
三、程序设计
多路数据采集系统主程序流程图如图 11 所示,外
部中断流程图如图 12 所示。
在 keil 中创建工程,主 C51 程序解读如下。 #include "STC89C51RC.H"//STC 单片机头文件,相当与一 般 51 的 reg51.h #include <absacc.h> #include <stdio.h> #include "STCEEPROM.H"//STC 单片机 EEPROM 读写头文件 // 根据单片机地址译码电路定义单片机扩展地址 #define SEG1 XBYTE[0xffec]// 数码管地址 #define SEG2 XBYTE[0xffed] #define SEG3 XBYTE[0xffee] #define SEG4 XBYTE[0xffef] #define ADC XBYTE[0xffe0]//ADC 地址 #define CH_BYTE EEPROM52// 预定义通道地址在 EEPROM 中存放地址,与单片机型号有关,详细在 STCEEPROM.H 中定义 sbit KEY_UP = P3^5;// 按键端口定义 sbit KEY_DN = P3^4; char CH;// 通道变量,0 ~ 7 unsigned char ledmap[]= // 共阳 LED 数码管译码表 { 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, //0;1;2;3;4;5;6;7;8;9; 0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10,
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1、ADC0809
ADC0809 是 8 位 A/D 转换器、8 路多路开关以及微处理机兼容的控制逻辑的 CMOS 组件。它是逐次 逼近式 A/D 转换器,容易和单片机总线模式接口。图 1 是 ADC0809 芯片的实物图和引脚图。
图 1 ADC0809 芯片实物图和引脚图 IN0~IN7:8路模拟量输入; A、B、C:3位通道选择地址输入,不同组合选择八路模拟量输入; ALE:地址锁存信号,在 ALE 的上升沿,将 A、B、C 上的通道地址锁存到内部的地址锁存器; D0~D7:八位数据输出线,A/D 转换结果由这8根线传送给单片机; OE:允许输出信号。当 OE=1 时,即为高电平,允许输出锁存器输出数据; START:启动信号输入端,START 为正脉冲,其上升沿清除 0809 内部各寄存器,其下降沿启动一次 A/D 转换; EOC:转换完成信号,当 EOC 上升为高电平时,表明内部 A/D 转换已完成; CLK:时钟输入信号,0809 的时钟频率范围在 10~1200kHz,典型值为 640kHz。
t0 START ALE ADDR EOC t1
图 2 ADC0809 启动转换 与之对应的单片机控制时序设计,当单片机工作在总线模式,执行指令 MOV A,#55H MOV DPTR,#1234H MOVX @DPTR,A 对应 C51 代码 unsigned char xdata WR_ADDR _at_ 0x1234;//定义 WR_ADDR 的绝对地址为 1234H WR_ADDR = 0x55;//将数据 55H 写入 WR_ADDR 中 将产生如图 3 所示时序波形图,P0 口分时复用,分别送出低 8 位地址(0x34)和数据(0x55) ,P2 口 送出高八位地址(0x12) ,并且在 t0 时刻,P3.6(WR)送出低电平有效写信号。
ET0/P3.4 1 2 ET1/P3.5 1 2
图 9 按键电路 显示直接使用 Mini51 板上 4 只数码管,效果如图 10 所示,第一只数码管显示 ADC 通道信息,后面 三只数码管显示对应 ADC 结果,以 0~5V 电压测量为例,单位为伏特(V) 。
P34 P35
图 10 数码显示效果图
通道选择
Dn键
通道CH+1 If(CH>7)CH=0
通道CH-1 If(CH<0)CH=7
保存通道信息到EEPROM 再次启动ADC
图 11 多路数据采集系统主流程图
Int0中断入口 读取ADC 结果及通道信息送显 启动ADC 返回
图 12 外部中断流程图 在 keil 中创建工程,主 c 程序解读如下。 #include "STC89C51RC.H"//STC 单片机头文件,相当与一般 51 的 reg51.h #include <absacc.h> #include <stdio.h> #include "STCEEPROM.H"//STC 单片机 EEPROM 读写头文件 //根据单片机地址译码电路定义单片机扩展地址 #define SEG1 XBYTE[0xffec]//数码管地址 #define SEG2 XBYTE[0xffed] #define SEG3 XBYTE[0xffee] #define SEG4 XBYTE[0xffef] #define ADC XBYTE[0xffe0]//ADC 地址 #define CH_BYTE EEPROM52//预定义通道地址在 EEPROM 中存放地址,与单片机型号有关,详细在
第 1 页 共 7 页
湖北·黄石·湖北师范学院电工电子实验教学示范中心·田开坤·tkiakun@
2、ADC0809 控制时序分析与接口电路设计
2.1 启动 AD 转换 0809 启动受 START、ALE 和 ADDR 信号控制,时序波形图如图 2 所示,在 t0 时刻,ALE 上升沿完成 地址锁存(选择通道) ,START 上升沿将清除内部数据寄存器,可以由 ALE 上升沿同时完成,所以一般把 ALE 和 START 信号合并使用。t1 时刻,START 下降沿启动一次 AD 转换,在转换过程中,EOC 始终保持 低电平。
图 8 CPLD 内部部分电路图 这里 CPLD 内部电路不包涵地址锁存及译码电路和数码管驱动电路,该部分电路请读者参考本连载第 二篇。 2.4 输入按键输出显示电路 按键直接使用 Mini51 板上两只按键,直接通过单片机 P3.4、P3.5 输入,一个实现通道递增选择,一 个实现通道递减选择,电路如图 9 所示。
第 4 页 共 7 页
湖北·黄石·湖北师范学院电工电子实验教学示范中心·田开坤·tkiakun@
3、程序设计
多路数据采集系统主程序流程图如图 11 所示,外部中断流程图如图 12 所示。
上电开始 Int0中断初始化 数码显示初始化 从EEPROM读取ADC通道信息 首次启动ADC
Up键
t0 P3.7(Rd) P0 P2 0x34 0x12 data
图 5 单片机总线读时序图 2.3 接口电路设计 分析了 0809 时序和单片机时序图后, 设计如图 6 所示的电路结构图, CPLD 除了完成单片机地址锁存, 译码,主要负责完成信号时序匹配,同时驱动数码管显示,通过分频单片机 ALE 信号给 0809 提供时钟。
ADD A ADD B ADD C ALE START EOC OE CLK
图 7 0809 与 Mini51 板接口电路图
第 3 页 共 7 页
湖北·黄石·湖北师范学院电工电子实验教学示范中心·田开坤·tkiakun@
CPLD 内部电路如图 8 所示,单片机 ALE 经过 8 分频(22.1184M/6/8=460K)提供 0809 工作时钟,统 一编址 Y0 与 WR、 RD 或非后接 0809 的 ALE+START 和 OE 信号, 0809 的转换结束 EOC 取反后送单片机 外部中断 INT0。
湖北·黄石·湖北师范学院电工电子实验教学示范中心·田开坤·tkiakun@
第三篇 基于 Mini51 板和 ADC0809 的多路数据采集系统设计
本篇将介绍 Mini51 板与 ADC0809 器件的接口设计,实现 4 位数码管显示,采集通道可以自由选择的 多路数据采集系统,实现 Mini51 板与 0809 完美结合。将通过本篇继续深入讲解 CPLD 与单片机总线接口 设计,通过分析 0809 控制时序和单片机总线时序设计独特的接口电路,突破教科书上 0809 与单片机经典 接口设计。最后将详细解读程序代码,给出完整设计方案。
U1 11 13 15 16 17 2 3 4 5 6 .0/AD0 P0.1/AD1 P0.2/AD2 P0.3/AD3 P0.4/AD4 P0.5/AD5 P0.6/AD6 P0.7/AD7 P3.7/RD P3.6/WR ALE P2.7/A15 P2.0/A8 P2.1/A9 14 43 42 41 40 39 38 37 36 19 18 33 31 24 25 P00 P01 P02 P03 P04 P05 P06 P07 41 9 17 18 19 20 21 24 25 26 44 2 43 1 4 5 U2 IO IO IO IO IO IO IO IO IO IO Global OE Ded.Input Global Clk Global Clear IO IO EPM7064SLC44 IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO IO 40 39 37 36 34 33 31 29 28 27 16 14 12 11 8 6 VCC 11 12 16 13 VCC REF+ REFGND P00 25 P01 24 P02 23 22 6 7 9 10 U3 ADC0809 D0 D1 D2 D3 D4 D5 D6 D7 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 17 14 15 8 18 19 20 21 26 27 28 1 2 3 4 5 P00 P01 P02 P03 P04 P05 P06 P07 VCC R1 10K P3.0/RxD P3.1/TxD P3.3/INT1 P3.4/T0 P3.5/T1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2.6/A14
第 5 页 共 7 页
湖北·黄石·湖北师范学院电工电子实验教学示范中心·田开坤·tkiakun@
STCEEPROM.H 中定义 sbit KEY_UP = P3^5;//按键端口定义 sbit KEY_DN = P3^4; char CH;//通道变量,0~7 unsigned char ledmap[]= //共阳 LED 数码管译码表 { 0xc0,0xf9,0xa4,0xb0,0x99, 0x92,0x82,0xf8,0x80,0x90, 0x40,0x79,0x24,0x30,0x19, 0x12,0x02,0x78,0x00,0x10, }; extern void ext_int0_init(void);//外部中断函数申明 extern void delay(unsigned int);//通用延时函数申明
图 6 多路数据采集系统电路结构图 图 7 所示为 0809 与单片机接口电路图,单片机 P0 口作为数据总线,直接接 0809 数据输出端 D, P0 口低 3bit 同时接 0809 通道选择地址端 A、B、C,而其它控制信号通过 CPLD 实现时序匹配,其中 0809 工作驱动时钟 CLK 由单片机 ALE 信号经 CPLD 内部 8 分频提供。
图 4 0809 转换结束时序图 与之对应的单片机控制时序设计,当单片机工作在总线模式,执行指令
第 2 页 共 7 页
湖北·黄石·湖北师范学院电工电子实验教学示范中心·田开坤·tkiakun@
相关文档
最新文档