单片机原理及系统课程设计-基于单片机的多路数据采集adc0809

上传人:aa****6 文档编号:33605344 上传时间:2018-02-16 格式:DOC 页数:15 大小:4.58MB
返回 下载 相关 举报
单片机原理及系统课程设计-基于单片机的多路数据采集adc0809_第1页
第1页 / 共15页
单片机原理及系统课程设计-基于单片机的多路数据采集adc0809_第2页
第2页 / 共15页
单片机原理及系统课程设计-基于单片机的多路数据采集adc0809_第3页
第3页 / 共15页
单片机原理及系统课程设计-基于单片机的多路数据采集adc0809_第4页
第4页 / 共15页
单片机原理及系统课程设计-基于单片机的多路数据采集adc0809_第5页
第5页 / 共15页
点击查看更多>>
资源描述

《单片机原理及系统课程设计-基于单片机的多路数据采集adc0809》由会员分享,可在线阅读,更多相关《单片机原理及系统课程设计-基于单片机的多路数据采集adc0809(15页珍藏版)》请在金锄头文库上搜索。

1、 单片机原理及系统课程设计专 业: 自动化 班 级: 自动化 姓 名: 学 号: 指导教师: 2015 年 12 月 29 日评语:考勤 10 分 守纪 10 分 过程 30 分 设计报告 30 分 答辩 20 分 总成绩(100)单片机原理及系统课程设报告1基于单片机的多路数据采集 1 引言通过一个学期的学习,我认为要学好单片机这门课程,不仅要认真学习课本知识,更重要的是要学会通过实践巩固学到的知识,本次课设中我们设计制作的题目是基于单片机的多路数据采集系统设计。1.1 设计背景随着时代的进步和发展,单片机技术已经普及到我们生活,工作,科研,各个领域,已经成为一种比较成熟的技术,本文将介绍一

2、种基于单片机控制的数据采集。本设计使用简便,功能丰富。本设计控制芯片采用的是 STC89C51,AD 转换采用 ADC0809 芯片,显示采用的是四位共阴极数码管。关键字:STC89C51、ADC0809 、8 路电压采集。2.1 系统设计方案在电量的测量中,电压、电流和频率是最基本的三个被测量,其中电压量的测量最为经常。而且随着电子技术的发展,更是经常需要测量高精度的电压,所以数字电压表就成为一种必不可少的测量仪器。本次设计主要由三个模块组成:A/D 转换模块,数据处理模块及显示模块。A/D 转换主要由芯片 ADC0809 来完成,它负责把采集到的模拟量转换为相应的数字量在传送到数据处理模块

3、。数据处理则由芯片 STC89C51 来完成,其负责把 ADC0809 传送来的数字量经过一定的数据处理,产生相应的显示码送到显示模块进行显示;此外它还控制着 ADC0809 芯片工作。单片机原理及系统课程设报告22.2 总体设计方案8路 电 压 输 入 AD转 换 51单片机按 键 切 换电 压 显 示蜂 鸣 器8路 led灯图 1 系统原理总框图3 硬件设计3.1晶振电路晶体振荡器,简称晶振,它可以等效成一个电容和一个电阻并联再串联一个电容的二端网络。晶振有一个重要的参数,那就是负载电容值,选择与负载电容值相等的并联电容,就可以得到晶振标称的谐振频率。图 2 晶振电路3.2 P0 口上拉电

4、阻图 3 九排上拉电阻本次设计中九位排阻在依次连接单片机 P0 口各引脚的同时并依序连接数码管各引脚(上拉电阻 VCC 端接单片机 VCC 端)。上拉电阻既能为单片机提供部分电压能力,同时也能起到预防线路中电流过大的作用。3.3 8 路电压输入模块 单片机原理及系统课程设报告3电位器是可变电阻器的一种。通常是由电阻体与转动或滑动系统组成,即靠一个动触点在电阻体上移动,获得部分电压输出。电位器的作用即是调节电压(含直流电压与信号电压和电流的大小)。图 5 8 路电压输入电路3.4 显示模块四位数码管是一种半导体发光器件,其基本单元是发光二极管。本次设计用的是 4 位共阴数码管,其内部结构如图 6

5、。图 6 四位数码管内部结构图3.5 AD 转换模块本设计中 AD 转换采用 ADC0809A 芯片。ADC0809 是美国国家半导体公司生产的 CMOS 工艺 8 通道,8 位逐次逼近式 A/D 模数转换器。其内部有一个 8 通道多路开关,它可以根据地址码锁存译码后的信号,只选通 8 路模拟输入信号中的一个进行 A/D 转换。该芯片具有以下特性:1)8 路输入通道,8 位 A/D 转换器,即分辨率为 8 位;2)具有转换起停控制端;3)转换时间为 100s(时钟为 640kHz 时),130s(时钟为 500kHz 时) ;4)单个+5V 电源供电;5)模拟输入电压范围 0+5V,不需零点和

6、满刻度校准;单片机原理及系统课程设报告4图 7 ADC0809 引脚图 ADC0809 芯片有 28 条引脚,采用双列直插式封装,其芯片引脚图如图 7 所示。下面说明各引脚功能。(1)IN0IN7:8 路模拟量输入端。(2)D0D7:8 位数字量输出端。D0D7 均为三态缓冲输出形式,可以和单片机的数据线直接相连。D0 为最低位,D7 为最高位。(3)A、B、C:3 位地址输入线,A 为低地址,C 为高地址,用于选通 8 路模拟输入中的一路。(4)ALE:地址锁存允许信号,输入高电平有效。对应 ALE 上跳沿,A、B、C 地址状态送入地址锁存器中。(5)START:A/D 转换启动脉冲输入端,

7、输入一个正脉冲(至少 100ns 宽)使其启动(脉冲上升沿使 0809 复位,下降沿启动 A/D 转换) 。(6)EOC:A/D 转换结束信号输出,当 A/D 转换结束时,此端输出一个高电平,转换期间一直为低电平。(7)OE:数据输出允许信号,输入高电平有效。当 A/D 转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。(8)CLK:时钟脉冲输入端,要求时钟频率不高于 640KHZ。ADC0809 的内部没有时钟电路,所需时钟信号由外界提供,因此有时钟信号引脚。(9)VREF(+) 、VREF(-):基准电压。用来与输入的模拟信号进行比较,作为逐次逼近的基准。A/D 转换后得到的

8、数据应及时传送给单片机进行处理。数据传送的关键问题是如何确认 A/D 转换的完成,因为只有确认完成后,才能进行传送。为此可采用如下方式。A/D 转换芯片有表明转换完成的状态信号, ADC0809的 EOC 端。因此可以用查询方式,查询 EOC 的状态,可确认转换是否完成,并接着进行数据传送。单片机原理及系统课程设报告53.6 八路 led 灯显示根据输入通道选择点亮对应的 led 灯。3.7 实物调试图4 软件设计 4.1 Proteus 软件仿真对抢答器电路图的 Proteus 软件仿真主要是由我完成的,在实际电路设计中,需要先通过仿真软件测试电路以及编译的程序,检查外围电路设计是否合理,软

9、件编译是否正确,以及软件和硬件电路能否正常配合工作,能否准确的实现所设计的功能。如果测试通过,电路仿真没有问题能完全实现功能的话就可以实际的做板子的焊接工作了。我选择了常用的单片机仿真软件 proteus7.0 以及keil 进行仿真。4.1.1 仿真开始点击开始仿真便出现上图界面,此时数码管上显示的是第一个滑动变阻器上的电压,对应第一个滑动变阻器下面那个 LED 灯也为亮的状态。这时为手动模式,当按一下按键,检测通道便切换为第二路,同时数码管显示和 LED 指示都发生相应变化,结果如图 8 所示。单片机原理及系统课程设报告6图 8 仿真开始图 9 手动切换输入通道4.1.2 设置自动或者手动

10、采集方式如图 8 所示,长按下进入自动采集并显示状态。每隔 3s,跳到下一个采集通道。单片机原理及系统课程设报告7图 10 按下开关进入自动采集状态 4.2 程序流程图根据模块的划分原则,将该程序划分初始化模块,A/D 转换子程序和显示子程序,这三个程序模块构成了整个系统软件的主程序。程序主框图如图 11 所示。开 始初 始 化调 用 AD转 换 程序调 用 数 据 处 理程 序调 用 显 示 程 序图 11 程序设计流程图A/D 转换流程图,如图 12 所示。单片机原理及系统课程设报告8开 始初 始 化启 动 A/D转 换A/D转 换 结束 ?OE端 置 位 进 行数 据 存 储结 束是否图

11、 12 A/D 转换流程图按键切换流程图,如图 13 所示。按 键 按 下 ?蜂 鸣 器 响 延 时是按 键 按 下 ?Key_press+Key_press=0Key_press不 小 于 200TR1取 反采 集 下 一 个 通 道是是否否否开 始图 13 按键切换流程图单片机原理及系统课程设报告9总 结在本次设计多路数据采集的课设过程中,我们利用 AT89C51 单片机及ADC0809 芯片,利用单片机的定时器/计数器定时和计数的原理输出需要的时钟信号,利用 Proteus 和 Keil 软件设计出实验电路,并且完成了电路板的焊接工作,将件和硬件结合在一起完成了课设的任务。在本次课设中,

12、我意识到将理论知识与实践相结合的重要性,对于单片机这样的课程,仅仅通过了解课本上的知识是远远不够的,我通过查资料和搜集有关文献,培养了自学能力,通过利用软件仿真和焊接电路,在很大程度上提高了我的动手能力。我们在课设的过程中,遇到了很多问题,比如我在硬件电路的搭建过程中错把共阴极数码管接成了共阳极数码管,使得数码管无法正常显示,通过查看数码管的资料,我修改了显示程序,调试出正确的结果,类似的问题出现了很多,通过一一排查,终于完成了课设任务,结果表明,有付出必有收获,把握重点、攻克难关,活学活用对于牢固的掌握知识,是非常有用的。在此次课设中,我学到了很多,也通过不断纠正自己的错误,意识到自身的不足

13、,我对知识的掌握还没有实现深层次的理解记忆,我相信这些教训都为我以后的学习奠定了良好的基础,并且在以后的学习中我要有耐心,不能急功近利。 参 考 文 献1 王思明,张金敏,苟军年.单片机原理及应用系统设计M.北京: 人民邮电出版社,2008.2 冯育长,邹小兵.单片机系统设计与实例指导M. 西安:西安电子科技大学出版社 ,2004.单片机原理及系统课程设报告10附录 A 源程序程序如下:#include /头文件定义#define uchar unsigned char /宏定义#define uint unsigned intsbit P07=P07; /控制数码管/0809 控制端口定义s

14、bit OE=P32;sbit EOC=P31;sbit ST=P30;sbit CLK=P33; /时钟定义sbit A_AD=P22;sbit B_AD=P21;sbit C_AD=P20;sbit Wei1=P24;sbit Wei2=P25;sbit Wei3=P26;sbit Wei4=P27;sbit Hc138_C=P34;sbit Hc138_B=P35;sbit Hc138_A=P36;sbit Mode_Key=P37;sbit Beep=P23;/共阴数码管段码定义 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, Vuchar code table11=0x3

15、f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x3e;float Ad_Value,V_Value;uchar VOL_Vlaue3;uchar ch_change=0xf0; /通道选择变量 0xf0-0xf7,8 路选择void delayms(uint xms)uint i,j;for(i=xms;i0;i-)for(j=110;j0;j-);void Timer_Init()单片机原理及系统课程设报告11TMOD=0x11; /T0:16 位计数 T1:16 位计数TH0=(65536-200)/256; /定时器用于输出的时钟TL0=(65536-200)%256;TH1=(65536-50000)/256;TL1=(65536-50000)%256;EA=1;ET0=1;ET1=1;TR0=1; / TR1=1; float Get_0809_Ad( uchar CH ) /CH:0xf0-0xf7,对应 8 个通道ST=0; /启动 AD 转换OE=0;ST=1;switch (CH)case 0xf0: C_AD=0;B_AD=0;A_AD=0;break;case 0xf1: C_AD=0;B_AD=0;A_AD=1;break;case 0

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号