实验七 DA与AD转换.docx_第1页
实验七 DA与AD转换.docx_第2页
实验七 DA与AD转换.docx_第3页
实验七 DA与AD转换.docx_第4页
实验七 DA与AD转换.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

实验七 D/A与A/D转换 专业:微电子学 姓名:【实验目的】1学习D/A转换的基本原理和D/A转换芯片DAC0832的性能及编程方法。2了解单片机系统中扩展D/A转换芯片的基本方法。3学习A/D芯片ADC0809的转换性能及编程方法。4了解A/D转换芯片与写单片机的接口方法。5通过实验掌握单片机进行数据采集的方法。【实验原理】1. D/A 转换是把数字量转换成模拟量的变换,从D/A 输出的是模拟信号。实验程序一是通过在D/A的输入端送入有一定规律的数字量,在输出端产生锯齿波、三角波、正弦波的波形,通过示波器观察来直观地了解D/A的转换功能。产生锯齿波、三角波只需由A存放的数字量(送入D/A的输入寄存器)的增减来控制;要产生正弦波,较简单的方法是造一张正弦数字量的表,取值范围为一个周期,采样点愈多,精度愈高。如果电压幅值为M,D/A 转换器的位数是N 位,那么其精度计算公式为:M/(2N-1)。图6-1 D/A转换逻辑例如,D/A转换器的位数是8位,电压幅值为5V,则转换精度为,5/(28-1)= 0.0196(V)在EL-8051-III实验台上DAC0832与单片机的连接图6-1所示。由图可以看出,输入寄存器占偶地址端口(A00),DAC 寄存器占较高的奇地址端口(A0=1)。两个寄存器均对数据独立进行锁存。要把一个数据通过0832输出,要经两次锁存。典型的程序如下:MOV DPTR, #PORTMOV A , #DATAMOVX DPTR,AINC DPTRMOVX DPTR,A其中,第二次写入是一个虚拟写的过程,其目的是产生一个/WR信号,启动D/A。2A/D转换是把模拟量转变为数字量的变换。A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好,价格便宜,但速度慢;二是逐次逼近法A/D转换器,精度、速度、价格适中;三是并行A/D转换器,速度快,价格也昂贵。本实验用的是ADC0809属逐次逼近法A/D转换器,是八位的A/D转换器。每采集一次需100us。实验电路如下图:图6-2 A/D转换逻辑ADC0809 的START 端为A/D转换启动信号,ALE 端为通道选择地址的锁存信号。实验电路中将二者相连,以便同时锁存通道地址并开始A/D采样转换,故启动A/D转换只需两条指令:MOV DPTR, #PORTMOVX DPTR,AA中是什么内容是不重要的,这是一次虚拟写,其目的是产生一个/WR信号。A/D 转换期间脚(A/D 转换结束信号输出端口)为低电平,一旦转换结束时输出高电平。如果我们把脚接至一个反相器的输入端,反相器的输出端就得到一个负跳变的触发信号,它正好可以用来作为8051的外中断源的边缘触发信号。在一个数据转换完毕后,我们向ENABLE 脚送一个高电平,用以打开三态数据锁存器,就可以读出数据,因此可以使用如下指令读取A/D转换结果:MOV DPTR, #PORTMOV A, DPTR【实验内容】1 利用DAC0832编程产生锯齿波、三角波、正弦波。三种波形轮流显示。连线方法:0832的CS0832接CS0。输出DAOUT接示波器探头,示波器探头地线接实验板地线。程序清单见61.。2A/D转换实验:用中断方法来读取AN0的输入模拟电压,通过口输出到LED上显示。运行程序后,读出LED上显示的数据(灯亮表示1,化为十六进制数)。用万用表测量AN0 的输入模拟电压,与读出的LED 上显示的数据进行比较。连线方法:,1、0809的片选信号CS0809接CS0。2、电位器的输出信号AN0 接ADC0809的ADIN0。3、EOC接CPU板的INT0。4、P1.01.7连1。程序清单见62.。用查电位法作上述测量,调节电位器的值进行连续不断地测量(数据不用存储),测量的数据在数码管上显示(两位16 进制数)。编写程序上机运行。然后,修改程序用中断法再作测量,再运行程序。【实验程序与实验现象】程序一实验程序及注释:;D61.asmORG 4000HLJMP MAINORG 401BHLJMP DELAYPORT EQU 0CFA0HORG 4100HMAIN: MOV TMOD, #10H ; 定时器1工作在定时方式,方式1SETB EASETB ET1MOV TL1, #0AFHMOV TH1, #3CH ; 置定时0.1的初值SETB TR1DISP: MOV R1, #50HLCALL PRG1 ; 调用产生锯齿波子程序MOV R1, #50HLCALL PRG2 ; 调用产生三角波子程序MOV R1, #50HLCALL PRG3 ; 调用产生正弦波子程序LJMP DISPDELAY: CLR TR1 ; 中断服务程序MOV TL1, #0AFHMOV TH1, #3CHDEC R1SETB TR1RETI;PRG1: MOV A, #00H ; 产生锯齿波子程序开始.LOOP: MOV DPTR, #PORT ; 输入寄存器端口地址#PORTMOVX DPTR, A ; 送出数据INC DPTR ; 寄存器端口地址#PORT+1MOVX DPTR, A ; 启动转换INC A ; 数据加1CJNE R1, #00H, LOOP ; 计数值减到00H了么?RET ; 没有则继续产生锯齿波.;PRG2: MOV A, #00H ; 产生三角波子程序LP1: MOV DPTR, #PORT ; 上升部分MOVX DPTR,AINC DPTRMOVX DPTR,AINC ACJNE A, #0FFH, LP1MOV R2,ALP2: MOV DPTR, #PORT ; 下降部分MOV A, R2MOVX DPTR,AINC DPTRMOVX DPTR,ADJNZ R2, LP2CJNE R1, #00H, LP1RETPRG3: MOV R2, #02H ; 产生正弦波子程序MOV R4, #0FFH ; 一个正弦周期的数据个数SJMP SUBDATALP3: MOV DPTR, #PORTMOVX DPTR,AINC DPTRMOVX DPTR,AINC R2DJNZ R4, SUBDATAMOV R4, #0FFHMOV R2, #02HCJNE R1, #00H, SUBDATARETSUBDATA: MOV A, R2MOVC A,A+PCSJMP LP3DATA0: ; 产生正弦波的数据(256 个)DB 80H,83H,86H,89H,8DH,90H,93H,96HDB 99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB 0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB 0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB 0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB 0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB 0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDHDB 0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB 0FFH,0FFH,0FFH,0FFH,0FFH,0FFH,0FEH,0FDHDB 0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB 0F5H,0F4H,0F2H,0F1H,0EFH,0EEH,0ECH,0EAHDB 0E9H,0E7H,0E5H,0E3H,0E1H,0DEH,0DDH,0DAHDB 0D8H,0D6H,0D4H,0D1H,0CFH,0CCH,0CAH,0C7HDB 0C5H,0C2H,0BFH,0BCH,0BAH,0B7H,0B4H,0B1HDB 0AEH,0ABH,0A8H,0A5H,0A2H,9FH,9CH,99HDB 96H,93H,90H,8DH,89H,86H,83H,80HDB 80H,7CH,79H,76H,72H,6FH,6CH,69HDB 66H,63H,60H,5DH,5AH,57H,55H,51HDB 4EH,4CH,48H,45H,43H,40H,3DH,3AHDB 38H,35H,33H,30H,2EH,2BH,29H,27HDB 25H,22H,20H,1EH,1CH,1AH,18H,16HDB 15H,13H,11H,10H,0EH,0DH,0BH,0AHDB 09H,8H,7H,6H,5H,4H,3H,2HDB 02H,1H,0H,0H,0H,0H,0H,0HDB 00H,0H,0H,0H,0H,0H,1H,2HDB 02H,3H,4H,5H,6H,7H,8H,9HDB 0AH,0BH,0DH,0EH,10H,11H,13H,15HDB 16H,18H,1AH,1CH,1EH,20H,22H,25HDB 27H,29H,2BH,2EH,30H,33H,35H,38HDB 3AH,3DH,40H,43H,45H,48H,4CH,4EHDB 51H,51H,55H,57H,5AH,5DH,60H,63HDB 69H,6CH,6FH,72H,76H,79H,7CH,80HEND实验结果记录: 连接示波器后,在示波器上轮流显示锯齿波、三角波、正弦波三中波形。实验分析:实验结果与实验要求完全符合。实验达到预期效果,实验成功。程序二:实验程序与注释:;D62.ASMORG 4000H ;设置程序起始地址LJMP MAIN ;跳转到MAINORG 4003H ;设置中断端口地址LJMP INTX0 ;跳转到中断程序INTX0PORT EQU 0CFA0H ;将PORT等值为0CFA0HORG 4050H ;设置主程序起始地址MAIN: MOV R0, #50H ;将50H送到R0MOV P3, #0FFH ;将FFH送P3SETB EA ;将EA置一SETB EX0 ;将EX0置一SETB IT0 ;将IT0置一START: MOV DPTR, #PORT;将PORT值送DPTR单元MOV A, #0 ;将0送到累加器AMOVX DPTR, A ;将累加器A的值送DPTR指向的单元ACALL DEL ;调用子程序DELSJMP START ;跳转到STARTINTX0: CLR EA ;将EA单元清零MOVX A,DPTR ;将DPTR指向的单元的值送累加器A,取出转换的数据CPL A ;将累加器A的值取反MOV P1,A ;将累加器A的值送P1MOV R0, A ;将累加器A的值送R0寄存器指向的单元SETB EA ;将EA单元置一EXIT: RETI ;返回;DEL: MOV R7, #15 ;将十进制数15送R7,实现1.5秒延迟DEL1: MOV R6, #130 ;将十进制数130送R6DEL2: MOV R5, #200 ;将十进制数200送R5DEL3: DJNZ R5, DEL3 ;令R5减一,若减一后不为零,跳转到DEL3DJNZ R6, DEL2 ;令R6减一,若减一后不为零,跳转到DEL2DJNZ R7, DEL1 ;令R7减一,若减一后不为零,跳转到DEL1RET ;返回程序END ;程序结束实验结果:旋转控制模拟电压大小的旋钮,8个LED灯的亮暗会变化,表示相应的模拟电压值。其中部分结果如下: 序号12345LED显示0000000000111110010011101001110011011000相应电平/V01.2151.5283.0584.233万用表读数/v0.0051.2131.5363.0014.255实验偏差-0.18%0.46%1.88%0.52程序三:实验程序: ORG 4000H LJMP MAIN ORG 4003H LJMP INTX0 ORG 400BH LJMP T0INT ORG 4070HPORT1 EQU 0CFA0HPORT2 EQU 0CFA8HMAIN: ACALL START2 MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H MOV 56H,#00H MOV 57H,#00H MOV TMOD,#01H MOV TH0,#0F6H MOV TL0,#3CH SETB EA SETB EX0 SETB ET0 SETB IT0 SETB PX0 SETB TR0 START: MOV DPTR,#PORT1 MOVX DPTR,A ACALL DELAY SJMP STARTINTX0: PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#PORT1 MOVX A,DPTR ACALL GET_CHAR POP DPL POP DPH POP ACC RETI GET_CHAR:MOV 52H,A ACALL CHANGE MOV 51H,A MOV A,52H SWAP A ACALL CHANGE MOV 52H,A RET CHANGE:MOV DPTR,#TABLE ANL A,#0FH MOVC A,A+DPTR RETTABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H DB 7FH,6FH,77H,7CH,39H,5EH,79H,71H T0INT:MOV TH0,#0F6H MOV TL0,#3CH PUSH ACC PUSH DPH PUSH DPL MOV DPTR,#PORT2 MOV P1,#0FFH MOV A,R0 MOVX DPTR,A INC R0 MOV P1,R1 MOV A,R1 RL A MOV R1,A DJNZ R2,RETURN ACALL START2RETURN:POP DPL POP DPH POP ACC RETI START2:MOV R1,#11111110B MOV R2,#6 MOV R0,#51H RET DELAY: MOV R7,#5DE1: MOV R6,#200DE2: MOV R5,#7EHDE3: DJNZ R5,DE3 DJNZ R6,DE2 DJNZ R7,DE1 RET END实验结果: 旋转控制模拟电压大小的旋钮,最右边的两个LED会用16进制数显示相应的模拟电压值。序号1234数码管显示7E49152D对应电压值/V2.4891.4310.4120.882万用表读数/V2.4071.4200.4030.875对于实验内容三,用中断法修改程序如下:ORG 4000H LJMP MAIN ORG 400BH LJMP T0INT ORG 4070HPORT1 EQU 0CFA0HPORT2 EQU 0CFA8HMAIN: ACALL START2 MOV 53H,#00H MOV 54H,#00H MOV 55H,#00H MOV 56H,#00H MOV 57H,#00H MOV TMOD,#01H MOV TH0,#0F6H MOV TL0,#3CH SETB EA SETB ET0 SETB TR0 START: MOV DPTR,#PORT1 MOV

温馨提示

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

评论

0/150

提交评论