北理工微机实验四

上传人:豆*** 文档编号:123636016 上传时间:2022-07-22 格式:DOCX 页数:15 大小:247.55KB
收藏 版权申诉 举报 下载
北理工微机实验四_第1页
第1页 / 共15页
北理工微机实验四_第2页
第2页 / 共15页
北理工微机实验四_第3页
第3页 / 共15页
资源描述:

《北理工微机实验四》由会员分享,可在线阅读,更多相关《北理工微机实验四(15页珍藏版)》请在装配图网上搜索。

1、实验4 A/D和D/A转换一、实验目的1理解A/D转换的基本原理,掌握ADC0809芯片的使用措施。2理解D/A转换的基本原理,掌握DAC0832芯片的使用措施。3理解直流电机控制的基本措施。二、实验内容与环节(一)A/D转换部分1. 接线:CS /0809 接 Y3 /IO地址IN0 /0809接05V /直流信号EOC接总线的IRQ2. 实验电路原理图如图1.通过实验台左下角电位器RW1输出0 5V 直流电压送入 ADC0809通道0(IN0),运用 debug 的输出命令启动 A/D 转换器,输入命令读取转换成果,验证输入电压与转换后数字的关系。启动IN0开始转换:OUT 298H读取转

2、换成果:IN 298H图1 模数转换电路3. 用万用表测量 CLOCK、ADD-C、ADD-B、ADD-A 在实验系统上如何联系的?4. 编程按中断方式采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。5. 考虑如果采用IN7输入的电压,启动开始转换和读取转换成果的地址应当是多少?6. 按查询方式采集IN0输入的电压,软硬件如何实现? 编程提示1. ADC0809的IN0口地址为298H.2. IN0 单极性输入电压与转换后的数字的关系为:其中,为输入电压,为参照电压,这里的参照电压为+5V电源。3. 一次A/D 转换的程序可觉得:MOV DX , portOUT DX , A

3、L;延时IN AL , DX(二)D/A转换部分1. 接线:CS /0832接Y2 /IO地址用万用表测量WR2和XFER在实验系统上如何联系的?2. 实验电路原理如图2所示:图2 DAC0832电路原理图DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub),运用debug输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua及双极性输出端Ub的电压,验证数字与电压之间的线性关系。3. 编程产生如下波形(从Ub输出,用示波器观测) (1)锯齿波 (2)正弦波 编程提示1. 8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系

4、为:(UREF表达参照电压,N表达数数据),这里的参照电压为PC机的+5V电源。2. 产生锯齿波只须将输出到DAC0832的数据由0循环递增。产生正弦波可根据正弦函数建一种下弦数字量表,取值范畴为一种周期,表中数据个数在16个以上。3. 参照流程图设计(三)直流电机转速控制1. 按图5线路接线:图5 直流电机连线在实验时,我们对实验进行了改善,考虑到拿8255去做,只有开关的几种状态,因此我们使用ADC0809对电位器的采样值来控制电机转速,从而实现了电机速度的持续可调。CS /0832接Y2 /IO 地址UB /0832接直流电机DJCS /0809 接 Y3 /IO地址IN0 /0809接

5、05V /直流信号EOC接总线的IRQ三、程序代码及注释3.1 ADC0809程序;ADC0809DATAS SEGMENT;数据段PORT_ADC EQU 298HSPACE DB 13,$INT_SEG DW ?;保存中断向量段基址的变量 INT_OFF DW ?;保存中断向量偏移量的变量INT_SOR DB ?;定义保存中断屏蔽字的变量DATAS ENDSSTACKS SEGMENT;堆栈段 STA DB 256 dup(?)TOPEQU SIZE STASTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSMAIN PRO

6、C FAR;主函数 MOV AX,DATAS MOV DS,AX MOV AX,STACKS MOV SS,AX MOV SP,TOP;建立堆栈指针 ;初始化0B号中断向量 PUSH ESPUSH BX;保护 MOV AL,0BH;指定中断号,0BH相应IRQ3MOV AH,35H;取该中断向量INT 21HMOV INT_SEG,ES;保存向量段基址MOV INT_OFF,BX;保存向量偏移地址CLI;中断容许标志位清零POP BXPOP ES;填写中断向量表PUSH DSMOV AX,SEG INTPMOV DS,AX;中断服务程序入口段基址送DSMOV DX,OFFSET INTP;中断

7、服务程序入口偏移量送DXMOV AL,0BH;IRQ3中断类型号MOV AH 25H;功能号INT 21HPOP DS IN AL,21HMOV INT_SOR,AL;保存原中断屏蔽字AND AL,11110111B;开放IRQ3的中断祈求OUT 21H,ALSTI;开中断 LO:MOV DX,PORT_ADCOUT DX,AL ;启动ADHLTMOV CX, 0FFFFHLOOP $ JMP LOEND_PRO:MOV AX,INT_SEG;恢复中断向量MOV DS,AXMOV DX,INT_OFFMOV AL,0BHMOV AH,25HINT 21HMOV AL,INT_SOROUT 21

8、H,ALSTIMOV AH,4CHINT 21H ;结束程序MAIN ENDPINTP PROCMOV DX,PORT_ADCIN AL,DX;读ADC数据CALL DISPLAY ;显示;OUT DX,AL ;启动下一次ADC转换MOV AL,20H;EOI结束OUT 20H,ALIRETINTP ENDPDISPLAY PROCMOV AH,0MOV CL,4SHL AX,CL;AH中高4bitSHR AL,CL;AL中低4bitPUSH AXMOV AL,AHCMP AL,10;AL10JB DISP1JMP DISP2DISP1: ;显示高4bitADD AL,30H;30H-39HM

9、OV DL,AL ;显示MOV AH,2 INT 21H JMP DISP_NEXTDISP2:SUB AL,10ADD AL,41H;41H-AMOV DL,AL;显示MOV AH,2INT 21HDISP_NEXT:POP AXCMP AL,10JB DISP3JMP DISP4DISP3: ADD AL,30H;0-9MOV DL,AL ;显示MOV AH,2 INT 21H JMP DISP_ENDDISP4:SUB AL,10ADD AL,41HMOV DL,ALMOV AH,2INT 21HDISP_END:MOV DL,48H;显示MOV AH,2INT 21HLEA DX,SP

10、ACE ;回车换行 MOV AH,9 INT 21H RETDISPLAY ENDP CODES ENDS END MAIN 3.2 DAC0832程序;DAC0832DATAS SEGMENT;数据段PORT_DACEQU 290HLEN DB 32DATA_SIN DB 80h, 96h, 0aeh, 0c5h, 0d8h, 0e9h, 0f5h,0fdh;正弦表 DB 0ffh,0fdh,0f5h,0e9h,0d8h,0c5h,0aeh,96h DB 80h,66h,4eh,38h,25h,15h,09h,04h DB 00h,04h,09h,15h,25h,38h,4eh,66hDAT

11、A_JUCHI DB 0H,1H,2H,3H,4H,5H,6H,7H;锯齿波 DB 8H,9H,0AH,0BH,0CH,0DH,0EH,0FH DB 10H,0FH,0EH,0DH,0CH,0BH,0AH,9H DB 8H,7H,6H,5H,4H,3H,2H,1HDATAS ENDSSTACKS SEGMENT;堆栈段 STA DB 256 dup(?)TOPEQU SIZE STASTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSMAIN PROC FAR;主函数 MOV AX,DATAS MOV DS,AX MOV AX,

12、STACKS MOV SS,AX MOV SP,TOP;建立堆栈指针MOV DX,PORT_DACINIT_LO: MOV BH,LEN ;LEA SI,DATA_SIN LEA SI,DATA_JUCHISEND_LO: MOV AL,SI MOV CL,3 SHL AL,CL OUT DX,AL ;向DA送数据 INC SI DEC BH CMP BH,0 ;一种周期已完毕 JZ INIT_LO MOV AH,1 ;检测按键 INT 16H JZ SEND_LO MOV AH,4CH;结束 INT 21HMAIN ENDPCODES ENDS END MAIN3.3 运用AD采样值调速直流

13、电机(PWM);PWM_motorDATAS SEGMENT;数据段PORT_ADC EQU 298HPORT_DACEQU 290HDUTY DB 0 ;保存AD采样数据SPACE DB 13,$INT_SEG DW ? ;保存中断向量段基址的变量 INT_OFF DW ?;保存中断向量偏移量的变量INT_SOR DB ?;定义保存中断屏蔽字的变量DATAS ENDSSTACKS SEGMENT;堆栈段 STA DB 256 dup(?)TOPEQU SIZE STASTACKS ENDSCODES SEGMENT ASSUME CS:CODES,DS:DATAS,SS:STACKSMAIN

14、 PROC FAR;主函数 MOV AX,DATAS MOV DS,AX MOV AX,STACKS MOV SS,AX MOV SP,TOP;建立堆栈指针 PUSH ES ;初始化0B号中断向量PUSH BX;保护 MOV AL,0BH;指定中断号,0BH相应IRQ3MOV AH,35H;取该中断向量INT 21HMOV INT_SEG,ES;保存向量段基址MOV INT_OFF,BX;保存向量偏移地址CLI;中断容许标志位清零POP BXPOP ES;填写中断向量表PUSH DSMOV AX,SEG INTPMOV DS,AX;中断服务程序入口段基址送DSMOV DX,OFFSET INT

15、P;中断服务程序入口偏移量送DXMOV AL,0BH;IRQ3中断类型号MOV AH,25H;功能号INT 21HPOP DS IN AL,21HMOV INT_SOR,AL;保存原中断屏蔽字AND AL,11110111B;开放IRQ3的中断祈求OUT 21H,ALSTI ;开中断 MOV DX,PORT_ADCOUT DX,AL ;启动ADMOV BL, 0LO: MOV AL, 0FFHMOV AH, DUTY;AND AH, (0FFH - 111B)CMP BL, AHJB SKIP_ZEROMOV AL, 128SKIP_ZERO:MOV DX,PORT_DAC OUT DX,AL

16、 ;向DA送数 INC BL ;MOV CX,10 ;延时 ;LOOP $ JMP LOEND_PRO:MOV AX,INT_SEG;恢复中断向量MOV DS,AXMOV DX,INT_OFFMOV AL,0BHMOV AH,25HINT 21HMOV AL,INT_SOROUT 21H,ALSTIMOV AH,4CHINT 21H ;结束程序MAIN ENDPINTP PROCPUSH DXPUSH CXPUSH AXMOV DX,PORT_ADCIN AL,DX;读ADC数据MOV DUTY, AL;SAVE THE SAMPLED DUTYCALL DISPLAY ;显示MOV DX,P

17、ORT_ADCOUT DX,AL ;启动下一次ADC转换MOV AL,20H;EOI结束OUT 20H,ALPOP AXPOP CXPOP DXIRETINTP ENDPDISPLAY PROCMOV AH,0MOV CL,4SHL AX,CL;AH中高4bitSHR AL,CL;AL中低4bitPUSH AXMOV AL,AHCMP AL,10;AL10JB DISP1JMP DISP2DISP1: ;显示高4bitADD AL,30H;30H-39HMOV DL,AL ;显示MOV AH,2 INT 21H JMP DISP_NEXTDISP2:SUB AL,10ADD AL,41H;41

18、H-AMOV DL,AL;显示MOV AH,2INT 21HDISP_NEXT:POP AXCMP AL,10JB DISP3JMP DISP4DISP3: ADD AL,30H;0-9MOV DL,AL ;显示MOV AH,2 INT 21H JMP DISP_ENDDISP4:SUB AL,10ADD AL,41HMOV DL,ALMOV AH,2INT 21HDISP_END:MOV DL,48H;显示MOV AH,2INT 21HLEA DX,SPACE ;回车换行 MOV AH,9 INT 21H RETDISPLAY ENDP CODES ENDS END MAIN四、实验成果及分

19、析1)对ADC0809芯片进行对的连线,然后用实验板上的逻辑笔测量 CLOCK、ADD-C、ADD-B、ADD-A,发现其电平均为低电平,因此在实验系统上这三条线均为低电平,选中的是ADC0809的通道IN0.运营ADC0809的中断程序,拧动电位器,以16进制,显示AD转换的成果:采样值以16进制显示,如图,此时显示为5EH.2)运营DAC0832的程序,将示波器接在Ub脚,在示波器上可以看到完整的正弦波。然后将正弦表换成锯齿波表,可以在示波器上看到锯齿波,除此之外,我们还做了三角波和PWM波的输出,为如下的直流电机调速做准备。示波器的输出波形如下图所示:3)直流电机在实验时,我们对实验进行

20、了改善,考虑到拿8255去做,只有开关的几种状态,因此我们使用ADC0809对电位器的采样值来控制电机转速,从而实现了电机速度的持续可调。我们通过拧动电位器来变化ADC的采样值,通过ADC的采样值(0255)来控制输出PWM波形的占空比。五、心得体会在本次实验的内容为对ADC0809和DAC0832的编程,以及直流电机的调速控制,整体上来说,实验比较简朴,进行比较顺利。 在ADC0809中断程序设计中,遇到了某些问题,运营程序后发现屏幕上并没有显示任何字符。对程序进行分析和调试,推测也许发生的问题,一方面判断与否进入中断,检查中断初始化和写中断向量表的程序段,均未发现问题,在中断服务程序里设立

21、断点,然后运营程序,发现程序在断点处停止,经检查发现,中断服务程序中忘掉发送EOI结束符,改正后AD的中断程序运营正常,将字符以16进制显示。在DAC0832的实验里,用Matlab生成一种32个数据的正弦表,然后根据DDS的基本原理将正弦表输出,在示波器上可以看到正弦波。至于锯齿波,我们开始想的是,运用一种计数器CX将计数值递增,然后递减,输出即可。后来发现输出的锯齿波沉没在噪声里,分析因素为信噪比太低,因此对每个输出的数据AL进行左移4位操作,相称于对其进行放大,从而得到了较好的锯齿波的波形,之后我们分别进行了三角波和方波的输出,并且可以产生占空比可调的PWM波,从而对直流电机进行控制。在进行直流电机实验时,我们没有拘泥于讲义,考虑到拿8255去做,只有开关的几种状态,因此我们使用ADC0809对电位器的采样值来控制电机转速,从而实现了电机速度的持续可调,我们通过电机调速的程序成功的将ADC和DAC的控制集中到了一种程序中,更好的理解了AD和DA的工作过程,深化了课上所学的理论基本。

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!