基于51单片机的模数转换(AD)实验设计_第1页
基于51单片机的模数转换(AD)实验设计_第2页
基于51单片机的模数转换(AD)实验设计_第3页
基于51单片机的模数转换(AD)实验设计_第4页
基于51单片机的模数转换(AD)实验设计_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上 HEFEI UNIVERSITY单片机课程综述报告主 题 基于51单片机的模数转换(A/D)实验设计 姓 名 郭丽丽 专业 通信工程 学 号 班 级 11级通信(1)班 指导老师 汪济洲 2014 年 6 月 2 日专心-专注-专业目 录1.实验目的与要求1.1实验目的1. 掌握A/D转换与单片机的接口方法2. 了解A/D芯片ADC0809转换性能及编程方法3. 通过实验了解单片机如何进行数据采集1.2实验要求1. 采用查询法或中断法编程进行A/D采集;2. 采集05V范围的电压信号(以电位器模拟被测信号),使用4位串行数码管显示05V数值,小数点保留三位,实现简易

2、电压表功能。2.实验原理2.1电路原理图熟悉8051的输入输出端口的使用方法, 本实验的电路连接如图1所示。图1 连接电路2.2 Proteus7.4 软件简介Proteus是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路,该软件的特点是:实现了单片机仿真和SPICE电路仿真相结合。具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。支持主流单片机系统的仿真。

3、目前支持的单片机类型有:ARM7(LPC21xx)、 8051/52系列、AVR系列、PIC10/12/16/18系列、HC11系列以及多种外围芯片。提供软件调试功能。在硬件仿真系统中具有全速、单步、设置断点等调试功能,同时可以观察各个变量、寄存器等的当前状态,因此在该软件仿真系统中,也必须具有这些功能;同时支持第三方的软件编译和调试环境,如Keil C51 uVision2、MPLAB等软件。具有强大的原理图绘制功能。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大。其操作界面如下图所示:图2 Proteus操作页面2.模数转换(A/D)实验设计ADC0809简介AD

4、C0809是带有8位A/D转换器、8路多路开关以及微处理机兼容的控制逻辑的CMOS组件。它是逐次逼近式A/D转换器,可以和单片机直接接口。图3 ADC0809的内部逻辑结构图4 ADC0809芯片ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。ADC0809的内部逻辑结构:由下图可知,ADC0809由一个8路模拟开关、一个地址锁存与译码器、一个A/D转换器和一个三态输

5、出锁存器组成。多路开关可选通8个模拟通道,允许8路模拟量分时输入,共用A/D转换器进行转换。三态输出锁器用于锁存A/D转换完的数字量,当OE端为高电平时,才可以从三态输出锁存器取走转换完的数据。 图5ADC0809的内部逻辑结构ADC0809各脚功能如下:D7-D0:8位数字量输出引脚。IN0-IN7:8位模拟量输入引脚。VCC:+5V工作电压。GND:地。REF(+):参考电压正端。REF(-):参考电压负端。START:A/D转换启动信号输入端。ALE:地址锁存允许信号输入端。(以上两种信号用于启动A/D转换)EOC:转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平

6、。OE:输出允许控制端,用以打开三态数据输出锁存器。CLK:时钟信号输入端(一般为500KHz)。A、B、C:地址输入线。3、实验步骤1. Proteus软件中绘制单片机实验电路;2. 在Keil C软件中编制汇编或C程序,软件调试;3. 在Proteus中加载实验程序,观察并记录实验结果。 4、源程序代码#include <reg52.h>/*引脚定义*/sbit dis_ab=P30;sbit dis_clk=P31;sbit CLK=P34; sbit ST=P35; sbit EOC=P36; sbit OE=P37; /*7SEG-LED段码表*/Unsignedchar

7、code LedTab21=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x76,0x73,0x3e,0x00, 0x40;/*/unsigned char data num_1; /存储十六进制转化为两个单十六进制数的值unsigned char data num_2;unsigned char data num_3;unsigned char data num_4;void Delay(unsigned int x);void DispClk(void);void Displ

8、aySerial(unsigned char x);void ClearLed(unsigned char x);void HexToDec(unsigned int x);void main() unsigned long num; ST=0;OE=0; while(1) ST=1;/发高脉冲启动采样信号ST=0;doCLK=!CLK;/提供采样时钟信号,直到采样结束为止 while(!EOC);OE=1;num=P1;/读取采样值num=5000*num/255;/将0#FFH采样值转化为05V数值(05000)HexToDec(num);/将16进制数据,转换为10进制数据,以便于数码管

9、显示ClearLed(4);DisplaySerial(num_4);/依次从高位到低为显示采样电压值DisplaySerial(num_3);DisplaySerial(num_2);DisplaySerial(num_1);Delay(30000);/采样延时间隔,决定采样频率 /*延时子程序*/void Delay(unsigned int x)unsigned int j;for(j=0;j<x;j+);/*/功能:串行模拟时钟注意事项:用到delay.h中的延时子程序形参:无/*/void DispClk(void)dis_clk=1;Delay(1);dis_clk=0;De

10、lay(1);/*/功能:发送一个数字到串行LED上形参:unsigned char x:0-20/*/void DisplaySerial(unsigned char x)unsigned char i;unsigned char num_serial=LedTabx;for(i=0;i<8;i+)dis_ab=(bit)(num_serial&0x80);num_serial<<=1;DispClk();/*/功能:清串行LED显示形参:unsigned char x = 需要清显示的LED数/*/void ClearLed(unsigned char x)uns

11、igned char i;for(i=0;i<(x<<3);i+)DispClk();dis_ab=0;void HexToDec(unsigned int x) /十六进制转十进制num_1=x%10;/个位x=x/10;num_2=x%10;/十位x=x/10;num_3=x%10;x=x/10;num_4=x%10;5. 实验结果分析通过改变POT-LIN原件滑片的位置即可调整输入的物理模拟量,可以发现输出的数字信号即观察LED的显示效果的不同。通过实验,会发现:(1)当POT-LIN原件上的滑片位置位于参考图的上方时,LED会全亮;(2)当POT-LIN原件上的滑片位于最下方时,LED全暗;(3)当POT-LIN原件上的滑片位于上下之间的位置时,则会有其对应的LED显示效果。L

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论