中山大学左明老师单片机实验七_第1页
中山大学左明老师单片机实验七_第2页
中山大学左明老师单片机实验七_第3页
中山大学左明老师单片机实验七_第4页
中山大学左明老师单片机实验七_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、实验七 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的转换功能。要把一个数据通过0832输出,要经过两次锁存。典型的程序如下:MOVDPTR,#POR

2、TMOVA,#DATAMOVXDPTR,AINCDPTRMOVXDPTR,A2、A/D转换是把模拟量转换成数字量的变换。启动A/D采样转换只需要两条指令:MOVDPTR,#PORTMOVXDPTR,A三、实验内容内容一:利用DAC0832编程产生锯齿波、三角波、正弦波。三种波形轮流显示一、连线方法:0832的CS0832接CS0。输出DAOUT接示波器探头,示波器探头地线接实验板地线二、代码;D61.ASMORG4000HLJMPMAINORG401BHLJMPDELAYPORTEQU0CFA0HORG4100HMAIN:MOVTMOD,#10HSETBEASETBET1MOVTL1,#0AF

3、HMOVTH1,#3CHSETBTR1DISP:MOVR1,#50HLCALLPRG1MOVR1,#50HLCALLPRG2MOVR1,#50HLCALLPRG3LJMPDISPDELAY:CLRTR1MOVTL1,#0AFHMOVTH1,#3CHDECR1SETBTR1RETIPRG1:MOVA,#00HLOOP:MOVDPTR,#PORTMOVXDPTR,AINCDPTRMOVXDPTR,AINCACJNER1,#00H,LOOPRETPRG2:MOVA,#00HLP1:MOVDPTR,#PORTMOVXDPTR,AINCDPTRMOVXDPTR,AINC ACJNEA,#0FFH,LP1

4、MOVR2,ALP2:MOVDPTR,#PORTMOVA,R2MOVXDPTR,AINCDPTRMOVXDPTR,ADJNZR2,LP2CJNER1,#00H,LP1RETPRG3:MOVR2,#02HMOVR4,#0FFHSJMPSUBDATALP3:MOVDPTR,#PORTMOVXDPTR,AINCDPTRMOVXDPTR,AINCR2DJNZR4,SUBDATAMOVR4,#0FFHMOVR2,#02HCJNER1,#00H,SUBDATARETSUBDATA:MOVA,R2MOVCA,A+PCSJMPLP3DATA0:DB80H,83H,86H,89H,8DH,90H,93H,96H

5、DB99H,9CH,9FH,0A2H,0A5H,0A8H,0ABH,0AEHDB0B1H,0B4H,0B7H,0BAH,0BCH,0BFH,0C2H,0C5HDB0C7H,0CAH,0CCH,0CFH,0D1H,0D4H,0D6H,0D8HDB0DAH,0DDH,0DFH,0E1H,0E3H,0E5H,0E7H,0E9HDB0EAH,0ECH,0EEH,0EFH,0F1H,0F2H,0F4H,0F5HDB0F6H,0F7H,0F8H,0F9H,0FAH,0FBH,0FCH,0FDHDB0FDH,0FEH,0FFH,0FFH,0FFH,0FFH,0FFH,0FFHDB0FFH,0FFH,0FFH

6、,0FFH,0FFH,0FFH,0FEH,0FDHDB0FDH,0FCH,0FBH,0FAH,0F9H,0F8H,0F7H,0F6HDB 0F5H,0F4H,0F2H,0F1H,0EFH, 0EEH,0ECH,0EAH DB 0E9H,0E7H,0E5H,0E3H,0E1H, 0DEH,0DDH,0DAH DB0D8H,0D6H,0D4H,0D1H,0CFH, 0CCH,0CAH,0C7H DB 0C5H,0C2H,0BFH,0BCH,0BAH, 0B7H,0B4H,0B1H DB 0AEH,0ABH,0A8H,0A5H,0A2H, 9FH, 9CH, 99H DB 96H, 93H, 90H

7、, 8DH,89H, 86H, 83H, 80H DB 80H, 7CH, 79H, 78H,72H, 6FH, 6CH, 69H DB 66H, 63H, 60H, 5DH, 5AH, 57H, 55H, 51H DB 4EH, 4CH, 48H, 45H, 43H, 40H, 3DH, 3AH DB 38H, 35H, 33H, 30H, 2EH, 2BH, 29H, 27H DB 25H, 22H, 20H, 1EH, 1CH, 1AH, 18H, 16H DB 15H, 13H, 11H, 10H, 0EH, 0DH, 0BH, 0AH DB 09H, 08H, 07H, 06H, 0

8、5H, 04H, 03H, 02H DB 02H, 01H, 00H, 00H, 00H, 00H, 00H, 00H DB 00H, 00H, 00H, 00H, 00H, 00H, 01H, 02H DB 02H, 03H, 04H, 05H, 06H, 07H, 08H, 09H DB 0AH, 0BH, 0DH, 0EH, 10H, 11H, 13H, 15H DB 16H, 18H, 1AH, 1CH, 1EH, 20H, 22H, 25H DB 27H, 29H, 2BH, 2EH, 30H, 33H, 35H, 38H DB 3AH, 3DH, 40H, 43H, 45H, 48

9、H, 4CH, 4EH DB 51H, 55H, 57H, 5AH, 5DH, 60H, 63H, 66H DB 69H, 6CH, 6FH, 72H, 76H, 79H, 7CH, 80HEND三、现象及分析接通电路后示波器上依次显示锯齿波、三角波、正弦波图形如下:4.998V4.998V4.998V2.508V内容二:用中断方法来读取AN0的输入模拟电压,通过P1口输出到LED上显示。一、 接线方法:1、0809的片选信号CS0809接CS02、电位器的输出信号AN0接ADC0809的ADIN03、EOC接CPU的INT04、P10-P1.7连L1-L8二、代码分析;D62.ASMORG4

10、000HLJMPMAINORG4003H;外中断0的中断向量LJMPINTX0PORTEQU0CFA0HORG4050HMAIN:MOVR0,#50H;存数RAM的地址MOVP3,#0FFHSETBEASETBEX0SETBIT0START:MOVDPTR,#PORTMOVA, #0MOVXDPTR,A;启动ADC0809开始转换ACALLDELSJMPSTARTINTX0:CLREA;中断服务程序MOVXA,DPTR;取出转换的数据CPLAMOVP1,AMOVR0,A;存储数据SETBEAEXIT:RETI;从中断返回DEL:MOVR7,#15DEL1:MOVR6,#130;延时一段时间DE

11、L2:MOVR5,#200DEL3:DJNZR5,DEL3DJNZR6,DEL2DJNZR7,DEL1RETEND三、现象及分析通过旋转电位器,可以看到LED灯的亮灭不断改变,若将其转换为十进制,则抽取了部分数据如下表LED显示730311002002012557156表示电压0.13720.5880.60761.963.923.93964.9980.13723.0576电位器电压0137058806081963923945000143058四、结论通过比对上核定有格,可以看出A/D测出的电压基本与实际电压相符内容三:用EOC电位法作上述测量一、 前期连接:1、 P1口的P1.0P1.5与数码

12、管的输入:LED1LED6相连;2、 74LS273的0007与LEDALEDDP相连,片选信号与CS1相连3、 0809的片选信号CS0809接CS0,EOC接CPU的P3.0二、代码分析PORTADEQU0CFA0HPORTEQU0CFA8HORG4000HMOV30H,#01H;选把3036H处存好数值,#10H表示数码管MOV31H,#01H;不显示MOV32H,#10HMOV33H,#10HMOV34H,#10HMOV35H,#10HMOV36H,#10HMOVB,#36HMOVR0,#30HMOVP3,#0FFHMAIN:;*显示模块开始PUSHACCPUSHPSWANLPSW,#

13、0C7HORLPSW,#10HDISPLAY:;显示模块MOVB,#36HNOPDS1:MOVR0,B;R0赋予要显示的最后一个数据地址MOVR4,#60H;扫描需要显示60次MOVR2,#20H;位码的初值DS2:MOVA,R0;A里面暂存RAM里的数据ACALLTABLE;取段码MOVDPTR,#PORT;送段码的入口地址MOVXDPTR,A;送段码MOVA,R2;读位码CPLA;取反MOVP1,A;送位码MOVR3,#0FFH;适当延时DEL:NOPDJNZR3,DEL;判断地是否结束CLRC;清CMOVA,R2RRCAMOVR2,A;右移位码DECR0MOVA,R0CJNEA,#30H

14、,DS2;若没有显示到足够的码,则继续扫描MOVR0,B;重新赋给R0要显示的最后一个数的地址MOVR2,#20H;重新赋给R2显示的位码DJNZR4,DS2;扫描60次完毕MOVR4,#60HJMPNONUM;显示程序完,准备退出显示程序TABLE:INCA;算上RET一个字节MOVCA,A+PCRETDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00HNONUM:POPPSWPOPACC;*显示模块结束START:MOVDPTR,#PORTADMOVA, #0MOVXDPTR,A;启动AD0809开始转换

15、LOP:MOVA,P3;读取P3口的值CJNEA,#0FFH,LOP;如果没有转换完,则继续等待MOVXA,DPTR;取出转换的数据MOVB,#10H;准备把高四位与低四位分开DIVAB;A存储低四位,B存储高四位MOV32H,A;低四位存入32H中MOV31H,B;高四位存入31H中JMPMAIN;跳回程序开始,准备显示31H与32H中的值END三、现象及分析当旋转电位器时,数码管上显示ADC所读到的数,其中最大为FE,最小为00,如果将ADC所读取的数放到LED上显示,可以明显感觉到转换的速度要比内容二中用中断法要快很多四、结论用中断查询法可以使程序更加简洁,在程序不大时,其响应的速度还比

16、中断法更快。内容四:用中断法再作测量一、 前期连接:1、 P1口的P1.0P1.5与数码管的输入:LED1LED6相连;2、 74LS273的0007与LEDALEDDP相连,片选信号与CS1相连3、0809的片选信号CS0809接CS0,EOC接CPU的INT0二、代码分析PORTADEQU0CFA0HPORTEQU0CFA8HORG4000HORG4000HLJMPMAINORG4003H;外中断0的中断向量LJMPINTX0ORG4050HMOV30H,#01H;选把3036H处存好数值,#10H表示数码管MOV31H,#01H;不显示MOV32H,#10HMOV33H,#10HMOV3

17、4H,#10HMOV35H,#10HMOV36H,#10HMOVB,#36HMOVR0,#30HMOVP3,#0FFHMAIN:;*显示模块开始PUSHACCPUSHPSWANLPSW,#0C7HORLPSW,#10HDISPLAY:;显示模块MOVB,#36HNOPDS1:MOVR0,B;R0赋予要显示的最后一个数据地址MOVR4,#60H;扫描需要显示60次MOVR2,#20H;位码的初值DS2:MOVA,R0;A里面暂存RAM里的数据ACALLTABLE;取段码MOVDPTR,#PORT;送段码的入口地址MOVXDPTR,A;送段码MOVA,R2;读位码CPLA;取反MOVP1,A;送位

18、码MOVR3,#0FFH;适当延时DEL:NOPDJNZR3,DEL;判断地是否结束CLRC;清CMOVA,R2RRCAMOVR2,A;右移位码DECR0MOVA,R0CJNEA,#30H,DS2;若没有显示到足够的码,则继续扫描MOVR0,B;重新赋给R0要显示的最后一个数的地址MOVR2,#20H;重新赋给R2显示的位码DJNZR4,DS2;扫描60次完毕MOVR4,#60HJMPNONUM;显示程序完,准备退出显示程序TABLE:INCA;算上RET一个字节MOVCA,A+PCRETDB3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7CH,39H,5EH,79H,71H,00HNONUM:POPPSWPOPACC;*显示模块结束START:MOVP3,#0FFHSETBEASETBEX0SETBIT0START:MOVDPTR,#PORTMOVA, #0MOVXDPTR,A;启动ADC0809开始转换ACALLDELSJMPMAININTX0:CLREA;中断服务程序MOVXA,DPTR;取出转换的数据MOVXA,DPTR;取出转

温馨提示

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

评论

0/150

提交评论