ImageVerifierCode 换一换
格式:DOCX , 页数:14 ,大小:125.48KB ,
资源ID:774063      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-774063.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(ADC0809转换及DS18B20实验.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

ADC0809转换及DS18B20实验.docx

1、ADC0809转换及DS18B20实验实验九 A/D转换实验 DS18B20实验(二选一)一、实验预习1. 熟悉51单片机与A/D转换器的接口设计。2. 熟悉ADC0809芯片的时序。3. 熟悉DS18B20芯片的时序。实验预习问题:1. ADC0809转换器的转换频率上限是多少?答:时钟频率为64KHZ,转换时间为10us。2. 基于51单片机的ADC0809转换电路如何设计?见下图3. DS18B20的优缺点有哪些?优点:适应电压范围更宽,电压范围:3.05.5V,在寄生电源方式下可由数据线供电;独特的单线接口方式,DS18B20 在与微处理器连接时仅需要一条口线即可实现微处理器与DS18

2、B20 的双向通讯;简单的多点分布应用;无需外部器件,全部传感元件及转换电路集成在形如一只三极管的集成电路内;零待机功耗;用户可定义的非易失性温度报警设置;负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作;具有极强的抗干扰纠错能力;缺点:温度范围只能在-55度到+125度之间;编程比较复杂。(书面预习,写在实验报告上)二、实验目的1掌握A/D转换芯片ADC0809与单片机的接口方法。 2了解A/D转换芯片ADC0809转换性能及编程方法。3通过实验了解单片机如何进行数据采集。4. 通过实验了解传感器的优缺点。三、演示实验嵌入式系统演示实验演示实验关注点:嵌入式系统与51单片机系统

3、的异同点。四、实验内容选择A/D转换实验的实验内容:A/D转换器大致分有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近式A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。实验用ADC0809属第二类,是8位A/D转换器。每采集一次一般需100s。 自制实验开发板布局如上图所示。 单片机部分最小系统电路原理图如下。图中P3P6为单排针,将单片机的P0P3口引出。ADC0809部分电路原理如下图。图中74373锁存器锁存地址信号,选择ADC0809通道,7474D触发器对ALE信号2分频,给ADC0809做CLK信号。7402为

4、与非门芯片。注意以上电路原理图网络标号的用法。仔细阅读原理图,了解A/D转换芯片ADC0809转换性能及编程方法。采用ADC0809,由电位器提供模拟量输入。编写程序,将模拟量转换成数字量,并通过HD7279的LED显示转换结果。(HD7279程序以.h文件的形式给出)(利用中断来判断EOC)#include#include#include#define uchar unsigned char#define uint unsigned int/各数字的数码管段码(共阴)uchar code DSY_CODE=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7

5、f,0x6f;sbit CLK=P13; /时钟信号sbit ST=P12; /启动信号sbit EOC=P11; /转换结束信号sbit OE=P10; /输出使能uint d;/延时void DelayMS(uint ms) uchar i; while(ms-) for(i=0;i120;i+);/显示转换结果void Display_Result(uint d) P2=0xfe; /第 4 个数码管显示个位数 P0=DSY_CODEd%10; DelayMS(5); P2=0xfd; /第 3 个数码管显示十位数 P0=DSY_CODEd%100/10; DelayMS(5); P2=

6、0xfb; /第 2 个数码管显示百位数 P0=DSY_CODEd/100+128; DelayMS(5);/主程序void main() TMOD=0x02; /T1 工作模式 2 TH0=0x14; TL0=0x00; IE=0x82; TR0=1; P1=0x3f; /选择 ADC0809 的通道 3(0111)(P1.4P1.6) while(1) ST=0; ST=1; ST=0; /启动 A/D 转换 while(EOC=0); OE=1; d=P3; d=d*100/51; Display_Result(d); OE=0; /等待转换完成 OE=1; /T0 定时器中断给 ADC

7、0808 提供时钟信号void Timer0_INT() interrupt 1 CLK=CLK;仿真图形:选择BS18B20 实验的实验内容:DS18B20是广泛使用的数字温度传感器,测温范围-55+125。采用独特的一线制接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现双向通讯,支持多点组网功能。DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路(常见的三引脚封装)内。仔细阅读DS18B20的芯片资料,设计其与单片机的接口电路图,完成焊接,编写程序,完成温度测量功能,并通过HD7279的LED显示测量结果。(HD7279程序已.h

8、文件的形式给出)五、实验步骤选择A/D转换实验的实验步骤:1编写ADC0809程序,编译排除语法错误,接仿真器调试,可采用延时、中断、查询任何一种方法读取AD转换结果,利用变量观察窗口观察转换结果(必须在程序停止运行才可观察)。2将转换结果显示在LED数码管上,利用hd7279.h头文件,直接调用write_hd7279函数就可将转换结果显示在LED上。3在完成以上第二步的基础上,设基准电压为5V,将转换结果量化为电压值显示在实验板LED上,如实际电压为4.32V,显示432即可。选择BS18B20 实验的实验步骤:1. 阅读BS18B20芯片资料,完成电路设计与焊接。2. 编写BS18B20

9、程序,编译排除语法错误,接仿真器调试,利用变量观察窗口观察当前温度(必须在程序停止运行才可观察)。3. 在完成以上第二步的基础上,将温度结果显示在实验板LED上。少HD7279函数,可以自加2句write话#include#include#define disp_data P0#define comm P2#define uchar unsigned char#define uint unsigned intuchar disp6; /*/*DS18B20程序*/*/sbit DQ=P37;bit F;/*-精确延时5us子程序-*/ void delay5(uchar n) do _nop_

10、(); _nop_(); _nop_(); n-; while(n); /*-初始化函数-*/void init_ds18b20(void)/ uchar x=0; DQ =1; delay5(10); DQ =0; delay5(120); DQ =1; delay5(16); delay5(80);/*-读取一字节函数-*/uchar readbyte(void) uchar i=0; uchar date=0; for (i=8;i0;i-) DQ =0; delay5(1); DQ =1; /15微秒内拉释放总线 date=1; if(DQ) date|=0x80; delay5(11

11、); return(date);/*-写一字节函数-*/void writebyte(uchar dat) uchar i=0; for(i=8;i0;i-) DQ =0; DQ =dat&0x01;/写1 在15微秒内拉低 delay5(12); /写0 拉低60微秒 DQ = 1; dat=1; delay5(5); /*-读取温度函数-*/uint readtemp(void) uchar a,b; uint temp; float tt; init_ds18b20(); writebyte(0xCC); /跳过读序号列号的操作 writebyte(0x44); /启动温度转换 init

12、_ds18b20(); writebyte(0xCC); writebyte(0xBE); /读取温度寄存器 a=readbyte(); b=readbyte(); if(b&0xf8) temp=b; temp=8; temp|=a; temp=temp; temp+=1; F=1; /温度为负值 else temp=b; temp=8; temp=temp|a; F=0; /温度为正值 tt=temp*0.0625*10+0.5; return(tt);/*/*DS18B20程序end*/*/共阳极数码管0-9显示uchar code table=0xc0,0xf9,0xa4,0xb0,0

13、x99,0x92,0x82,0xf8,0x80,0x90,/*/0x9c,0xbf,0xff; /delay :1ms /o, - , 灭 /crystal:12MHzvoid delay_1ms(uchar m) uchar a,b,c; for(a=m;a!=0;a-) for(b=2;b!=0;b-) for(c=248;c!=0;c-); void convert(void) uint temp; temp=readtemp(); if(F) disp0=12; /温度为负值 disp1=11; disp2=temp/100; disp3=temp/10%10; else disp0=12; /温度为正值 disp1=temp/1000; disp2=temp/100%10; disp3=temp/10%10; disp4=10; /显示C void display(void) uchar i,temp; temp=0x01; for(i=0;i5;i+) disp_data=tabledispi; comm=temp; delay_1ms(2); comm=0x0; temp=1; void main() delay_1ms(200); while(1) convert(); display(); delay_1ms(20); 仿真图形:

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2