北京理工大学微机原理实验报告四_第1页
北京理工大学微机原理实验报告四_第2页
北京理工大学微机原理实验报告四_第3页
北京理工大学微机原理实验报告四_第4页
北京理工大学微机原理实验报告四_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、处京理工大爭本科实验报告实验名称:A/D和D/A转换课程名称:实验时间:任课教师:实验地点:实验教师:实验类型:原理验证综合设计自主创新学生姓名:学号/班级:组号:学院:同组搭档:专业:成绩:信息与电子学院实验四A/D和D/A转换实验目的1、了解A/D转换的基本原理,掌握ADC0809的使用方法。2、了解D/A转换的基本原理,掌握DAC0832芯片的使用方法。3、了解直流电机控制的基本方法。二、实验内容与步骤(一) A/D转换部分1、接线:C$ /0809搖Y3 10地址INO 0S09接0-5VEOC接总爼的IRQ2、实验电路原理图下图通过实验台左下角电位器RW1输出05 V直流电压送入 A

2、DC0809通道O(INO),利用debug的输出命令启动A /D转换器,输入命令读取转换结果,验证输入电压与转换后数字 的关系。启动IN0开始转换:Out 298H读取转换结果:In 298Hi 2rr1 3rr1 92827r e f ( + J UCCGNDCLOCK IsI hl-21N-1i hieADD-C ADD-B ADD-AEOCALE START I M 021EOC1234567822222222IQWCS?4LS02S:ETor298H29FHU9 ADC08033、用万用表测量 CLOCK、ADD-C、ADD-B、ADD-A 在实验系统上如何联系的。数)。5、 考虑如

3、果采用IN7输入的电压,启动开始转换和读取转换结果的地址应该是多少。6、按查询方式采集 IN0输入的电压,软硬件如何实现。编程方案1、ADC0809 的 IN0 口地址为 298H。2、INO单极性输入电压与转换后数字的关系为:Ukef/256其中Ui为输入电压,UREF为参考电压,这里的参考电压为+5V电源。3、一次A/D转换的程序可以为MOV DX, PortOUT DX,AL ;启动转换;延时IN AL,DX ;读取转换结果放在 AL中(二) D/A转换部分1、接线:CS /0832 接 Y2 /IO 地址用万用表测量WR2和XFER在实验系统上如何联系的。2、 实验电路原理如图 2,

4、DAC0832采用单缓冲方式,具有单双极性输出端(图中的Ua、 Ub),利用debug输出命令(Out 290数据)输出数据给DAC0832用万用表测量单极性输出端Ua及双极性输出端 Ub的电压,验证数字与电压之间的线性关系。3、 编程产生以下波形(从Ub输出,用示波器观察)(1)锯齿波(2)正弦波答CQaOS07CIW11Ua编程方案1、8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:Ua =Dm2562S6-(UREF表示参考电压,N表示数据),这里的参考电压为+5V电源。2、产生锯齿波只须将输出到DAC0832的数据由0循环递增。产生正弦波可根据正弦函数建一

5、个下弦数字量表,取值范围为一个周期,表中数据个数在16个以上。3、流程图:SI持向;嶽农址盘也皮I:吐a时用1何址収出止技 我尬做辽QAC0832CL-.U1阳4正縈波图3碼齿波(三)直流电机转速控制1、按图5线路接线:CS /0832接 Y2 /IO 地址UB /0832接直流电机DJCS /8255接 Y1 /IO 地址PC7PC0 /8255接 K7K0 /逻辑电平开关2、编程利用DAC0832输出一串脉冲,经放大后驱动小直流电机,利用开关K0K5控制改变输出脉冲的电平及持续时间,达到使电机加速,减速之目的。*5V390H-297H阳5 f流电机控制黑的SFH实验原理简述小直流电机的转速

6、是由反Ub输出脉冲的占空比来决定的,正向占空比越大转速越快,之越慢。见图6例:闾6脉冲的占它比在本实验中,模拟量输出Ub为双极性,当输入数字量小于80H时输出为负,输入等于80H时为0V,输入大于80H时输出为正。因而本实验中,DAC0832输入数字量只有2个(80H和FFH),通过不同的延迟时间达到改变小电机转速的目的。程序框图 刚 1.编程方案通过给DAC0832输入80H时,Ub为0V,给DAC0832输入FFH时,Ub为5V,来控制加给小电机的脉冲电平,通过控制两段延迟时间,来控制占空比。例如,我们给两段延迟系 数都为0400h,来得到占空比接近于 1的脉冲。三、实验代码及注释1、AD

7、转换DATA SEGMENTINTOB DW 2 DUPIMR DB ?P_AD DW 298HTAB DB 0123456789ABCDEFDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC PARMOV AX,DATAMOV DS,AXCLI;关闭中断为修改中断向量表准备PUSH ES;保护ES和BX中的向量,防止程序出错PUSH BXMOV AH,35H;量表的中断类型号MOV AL,0BH;步都是为了保护原有的 0B 中断INT 21HMOV INT0B,ESMOV INT0B+2,BXPOP BXPOP ESPUSH DS;PUS

8、H DXMOV DX,OFFSET ADPRO读取OB中断向量。35H是INT21H中读取中断向使用的是0B中断,所以就读取 0B中断,以上两将得到的中断向量储存起来,方便后面的恢复保护原有的DS和DXPUSH BXMOV BX,SEG ADPRO ;segMOVDS,BX;POPBXMOVAX,25OBH是段地址将段地址给 DSINT 21HPOP DXPOP DSIN AL,21H;从 8259 中读取屏蔽字MOV IMR,AL;AND AL,OF7H将读取的屏蔽字储存起来,为了后面的恢复OUT 21H,AL;将新的屏蔽字写入到 8259 中NEXT: MOV DX,P_ADMOV AL,

9、OOUT DX,AL;输出到 adO8O9PUSH CX;延时等待AD转换,并检测是否有按键MOV CX,1OO;循环 1OO 次LOOP $POP CXMOV AH,1INT 16HJZ NEXTCLIJ关闭中断MOVAL,IMR ;将之前的 8259 的屏蔽字恢复OUT21H,AL ;将原屏蔽字输出到 8259 中PUSHDXPUSHDSMOVDX,INT0B ;将原有的0B中断向量的段地址恢复到DS中MOVDS,DXMOVDX,INT0B+2 ;将原有的 0B 中断向量的偏移量恢复到DX中MOVAX,250BH ;和之前一样,写入 0B中断向量表INT21HPOP DSPOP DXMOV

10、 AX,4C00H ; 结束程序INT 21HMAIN ENDPADPRO PROC FARPUSH AX读入AD转换结果PUSH DXMOV DX,P_AD IN AL,DXLEA BX,TABMOV AH,0PUSH AXSHR AX,AND AX,0FH;MOV SI,AX;MOV DL,BX+SIMOV AH,2 ;INT 21HPOP AXAND AL,0FH;MOV SI,AX;MOV DL,BX+SIMOV AH,2INT 21H将对应的字母的 ASCII 的码值给 DL 显示 16 进制的高位的字母表示后面与高位的显示一样MOV DL,0DH ; 输出回车MOV AH,2INT

11、 21HMOV DL,0AH ; 输出换行MOV AH,2INT 21HMOV DX,50DELAY:MOV CX,0LOOP $DEC DXCMP DX,0JNZ DELAYMOVAL,20HOUT20H,ALPOPDXPOPAXIRET延时的时间是 50*65536 个指令周期与之前的延时相同中断子程序结尾要告知 8259,中断子程序结束了ADPRO ENDPCODE ENDSEND MAIN2、DA转换DATA segmentPORT8255 EQU 288hDAPROT DW 290HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PRO

12、C FARMOV AX,DATAMOV DS,AXMOV DX,PORT8255+3MOV AL,10001001BOUT DX,ALNEXT:MOV DX,DAPROTMOV AL,80HOUT DX,ALMOV AH,1INT 16HJNZ DONE;有输入则DA转换结束MOV DX,PORT8255+2IN AL,DX;读入PC0-PC7的状态MOV AH,0;使AH的高位置0,方便与BX进行加减运算MOV BX,400HADD AX,AX ; 将输入的数扩大 4 倍ADD AX,AXPUSH AXSUB BX,AX ;占空比为1,贝U 0V延时为0,所以相减GOSUB:MOV CX,0

13、LOOP $;本指令跳转到本指令起到延时作用CMP BX,0JNZ GOSUBMOV DXQAPROT; 是 0832 输出 +5V 的电压MOV AL,0FFHOUT DX,AL ;输出到 0832POP AX得到之前进行了 4 倍扩大后的 8255C 口的值GOADD:DONE:ADD BX,AXMOV CX,0LOOP $CMP BX,0JNZ GOADDJMP NEXT作为延时控制使用与之前对于 0V 输出的操作延时一样继续下一次的 DA转换过程MOV AH,4CHINT 21HMAINENDPCODEENDSEND MAIN3、DA转换之锯齿波DATA SEGMENTDAPROT D

14、W 290HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARMOVAX,DATAMOVDS,AXMOVDX,DAPROTMOVAL,0用于转换的DA的数字大小NEXT: OUT DX,AL向DA送数据每次加 5ADD AL,5CMP AL,255JNE GOMOV AL,0GO:MOV CX,50000 ; 延时 50000 个指令周期LOOP $MOV AH,1INT 16HJZ NEXTMOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN4、DA转换之正弦波DATA SEGMENTDAPROT

15、 DW 290HSIN_DATA DB 80H,96H,0AEH,0C5H,0D8H,0E9H,0F5H,0FDHDB 0FFH,0FDH,0F5H,0E9H,0D8H,0C5H,0AEH,96HDB 80H,66H,4EH,38H,25H,15H,09H,04HDB 00H,04H,09H,15H,25H,38H,4EH,66HDATA ENDSCODE SEGMENTASSUME CS:CODE,DS:DATAMAIN PROC FARMOVAX,DATAMOVDS,AXMOVDX,DAPROTBEGIN: MOV BH,32LEASI,SIN_DATANEXT: MOV AL,SIOUTDX,ALINCSIDECBHMOVCX,10000LOOP$CMPBH,0JZBEGINMOVAH,1INT 16HJZ NEXTMOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN四、实验结果1、实验时,转动旋钮,观察程序运行时数字的变化,并用万用表检测板子的电压值。 当数字为16进制的B6即2进制的182时,电压值为3.49V。3.

温馨提示

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

评论

0/150

提交评论