单片机课程设计项目(五)_数字电压表_第1页
单片机课程设计项目(五)_数字电压表_第2页
单片机课程设计项目(五)_数字电压表_第3页
单片机课程设计项目(五)_数字电压表_第4页
单片机课程设计项目(五)_数字电压表_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

1、基于8051单片机的数字电压表的设计与仿真,设计目的: 1.掌握a/d、d/a转换与单片机接口连接的方法; 2.了解a/d芯片adc0809、d/a芯片dac0832的转换性能及编程方法; 3.通过实验了解单片机扩展a/d、d/a转换芯片的方法,学会和掌握用单片机进行数据采集,单片机课程设计项目(五,设计要求: 将实验箱dj598上的adc0809作为a/d转换器,用实验箱上的电位器提供模拟量输入,编制程序,将模拟量转换成数字量,在利用dac0832 d/a数模转换器输出,通过数码管显示出结果,构成一个简易数字电压表。 设计内容: 使用adc0809的0通道(in0),进行05v直流电压的a/

2、d转换,并通过dac0832输出相似的电压值。 0通道的电压输入由实验箱模拟量产生模块的电位器调整,电压测试点为aout1。顺时针旋转,电压增大,最大5v;逆时针旋转电压减小,最小为0v。将dac0832得aout 的输出接数字电压表,使dac0832的输出电压为05v。实验中采用延时方式或查询方式等待a/d转换结果。 a/d、d/a 介绍,实验电路: 1.单片机与adc0809实验接线图,2.单片机与dac0832实验接线图,参考程序1: ; 对adc0809的0通道(in0)进行a/d转换, ; 并把转换结果通过dac0832输出。 ; 采用延时方式等待a/d转换结束,电压输入值由电位器调

3、整。 org 0000h dac0832 equ 0ff90h adc0809_0 equ 0ff80h ljmp strat org 0100h start: mov sp,#60h mov a,#81h mov dptr,#0ff23h movx dptr,a ;初始化显示缓冲区 mov 7eh,#00h mov 7dh,#08h mov 7ch,#00h mov 7bh,#09h mov 7ah,#10h mov 79h,#10h,lo18:lcall ssee ;显示a/d转换的结果 mov dptr,#adc0809_0 mov a,#00h movx dptr,a ;启动a/d转换

4、 mov r7,#0ah delay:nop ;延时100s,等待a/d转换结束 nop nop djnz r7,delay nop ;读取a/d转换的结果 movx a,dptr nop ;可在此处设置断点,观察累加器a中 mov dptr,#dac0832 movx dptr, a nop ;将结果写入dac0832转换成电压输出,可测量输出点aout ;可在此设置断点,比较aout1和aout得值是否相同 mov r0,#79h lcall ptds ; 送累加器a中a/d转换的值到显示缓冲区 sjmp lo18,org 05d0h ptds:mov r1,a ;拆送累加器a中a/d转换

5、的值显示缓冲区 acall ptds1 mov a,r1 swap a ptds1:anl a,#0fh mov r0,a inc r0 ret org 0d50h ;显示a/d转换的值子程序 ssee:setb rs1 ;切换工作区 mov r5,#05h sse2:mov 30h,#20h mov 31h,#7eh mov r7,#06h sse1:mov r1,#20h mov a,30h cpl a movx r1,a ;字位送入 mov r0,31h mov a,r0,mov dptr,#ddff movc a,a+dptr ;取字形代码 mov r1,#21h movx r1,a

6、;字形送入 mov a,30h rr a ;右移 mov 30h,a dec 31h mov a,#0ffh movx r1,a ; 关显示 djnz r7,sse1 ; 六位显示完了吗? djnz r5,sse2 ; 5次显示完了吗? clr rs1 ret ;0f字符字型代码表 ddff:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h db 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0ch,89h,0deh end,参考程序2: ; 对adc0809的0通道(in0)进行a/d转换, ; 并把转换结果通过dac0832输出

7、。 ; 采用查询方式等待a/d转换结束,电压输入值由电位器调整。 org 0000h dac0832 equ 0ff90h adc0809_0 equ 0ff80h adc_end bit p3.2 ;adc0809的eoc 通过反向与p3.2(int0)连接 ljmp strat org 0100h start: mov sp,#60h mov p2,#0ffh mov a,#81h mov dptr,#0ff23h movx dptr,a mov 7eh,#00h mov 7dh,#08h mov 7ch,#00h mov 7bh,#09h mov 7ah,#10h mov 79h,#10

8、h ;显示缓冲区初值,lo18:lcall ssee ;显示 mov dptr,#adc0809_0 mov a,#00h movx dptr,a ;启动a/d转换 wait:nop jb adc_end,wait ;查询等待a/d转换结束 nop movx a,dptr nop ;可在此处设置断点,观察累加器a中a/d转换的值 mov dptr,#dac0832 movx dptr, a nop ;将结果写入dac0832转换成电压输出,可测量输出点aout ;可在此设置断点,比较aout1和aout得值是否相同 mov r0,#79h lcall ptds sjmp lo18,org 05

9、d0h ptds:mov r1,a ;拆累加器a中a/d转换的值送显示缓冲区 acall ptds1 mov a,r1 swap a ptds1:anl a,#0fh mov r0,a inc r0 ret org 0d50h ;显示a/d转换的值子程序 ssee:setb rs1 ;换工作区 mov r5,#05h sse2:mov 30h,#20h mov 31h,#7eh mov r7,#06h sse1:mov r1,#20h mov a,30h cpl a movx r1,a ;字位送入 mov r0,31h mov a,r0,mov dptr,#ddff movc a,a+dptr

10、 ; 取字形代码 mov r1,#21h movx r1,a ; 字形送入 mov a,30h rr a ; 右移 mov 30h,a dec 31h mov a,#0ffh movx r1,a ; 关显示 djnz r7,sse1 ; 六位显示完了吗? djnz r5,sse2 ; 5次显示完了吗? clr rs1 ret ;0f字符字型代码表 ddff:db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h db 88h,83h,0c6h,0a1h,86h,8eh,0ffh,0ch,89h,0deh end,d/a转换器介绍,1 d/a转换器及其接口

11、电路的一般特点 数模转换器是一种将数字信号转换成模拟信号的器件,为计算机系统的数字信号和模拟环境的连续信号之间提供了一种接口。 数模转换器的输出是由数字输入和参考源vref组合进行控制的。大多数常用的数模转换器的数字输入是二进制或bcd码形式的,输出可以是电流也可以是电压,而多数是电流。因而,在多数电路中,数模转换器的输出需要用运算放大器组成的电流一电压转换器将电流输出转换成电压输出,2数模转换器接口电路的一般特点 根据数模转换器输入口是否有锁存器可将其分为两类。 (1)内部无锁存器 如dac800(8位)、ad7520(10位)、ad7521(12位)。它们的结构简单,内部不带锁存器。这一类

12、数/模转换器,最适合与单片微机 80c51的 p1、p2等具有输出锁存功能的i/o口直接接口。但是当它们与p0口相接口时,则需在其输入端增加锁存器。 (2)内部带锁存器 目前应用的数模转换器,不仅具有数据锁存器,有的还提供地址译码电路,有些包含双重,甚至多重的数据缓冲结构,如 dac0832、dac1230、ad7542以及 ad7549等。这种类型的数/模转换器以高于8位(如12位)的居多。这类数/模转换器以与80c51中的p0口相接口较为适合,附图1 dac0832逻辑结构图,附图2 dac 0832的引脚,附图3 dac0832单缓冲方式的接口电路,附图4 dac0832双缓冲方式的接口

13、电路,a/d转换器介绍,模数转换器a/d是一种用来将连续的模拟信号转换成适合于数字处理的二进制数的器件,是一个将模拟信号值编制成对应的二进制码的编码器。与此对应,数模转换器则是一个解码器。 由于模拟量时间上连续,数字量离散,所以转换时在时轴上的规定点对模拟信号采样,一般步骤为: 常用的模数转换器有:计数式a/d转换器、双积分式a/d转换器、逐位比较式a/d转换器及并行直接比较式a/d转换器、/a/d转换器等几种,采样,保持,量化,编码,一个完整的模数转换器应该包含这样一些输入、输出信号: .模拟输入信号vin和参考电压vref; .数字输出信号; .启动转换信号; .转换完成(结束)信号或者“

14、忙”信号,输出; .数据输出允许信号,输入。 单片微机对a/d转换的控制一般分为三个过程: 单片微机通过控制口发出启动转换信号,命令模数转换器开始转换。 单片微机通过状态口读入a/d转换器的状态,判断它是否转换结束。 一旦转换结束,cpu发出数据输出允许信号,读入转换完成的数据,adc0809是采用cmos工艺制成的8位8通道逐次逼近式模数转换器,可实现对8路模拟信号分时进行a/d转换,其转换时间为100s左右。可用单一电源供电,此时模拟电压输入范围为05v,无需调零和满刻度调整。分辨率为8位。非调整误差为1lsb。三态锁存输出。低功耗为15mw。采用28脚dip封装, adc0809的内部逻辑结构 adc08

温馨提示

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

评论

0/150

提交评论