欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > DOC文档下载  

    北京XX大学微机原理实验报告四.doc

    • 资源ID:4038186       资源大小:1.01MB        全文页数:14页
    • 资源格式: DOC        下载积分:16金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要16金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    北京XX大学微机原理实验报告四.doc

    本科实验报告 实验名称: A/D和D/A转换 课程名称:实验时间:任课教师:实验地点:实验教师:实验类型: 原理验证 综合设计 自主创新学生姓名:学号/班级:组 号:学 院:同组搭档:专 业:成 绩: 实验四 A/D和D/A转换一、 实验目的1、了解A/D 转换的基本原理,掌握ADC0809 的使用方法。2、了解D/A 转换的基本原理,掌握DAC0832 芯片的使用方法。3、了解直流电机控制的基本方法。二、 实验内容与步骤(一)A/D 转换部分1、接线:2、实验电路原理图下图通过实验台左下角电位器RW1 输出05直流电压送入ADC0809 通道0(IN0),利用debug 的输出命令启动/转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。启动IN0开始转换: Out 298H读取转换结果: In 298H3、用万用表测量 CLOCK、ADD-C、ADD-B、ADD-A 在实验系统上如何联系的。4、编程按中断方式采集 IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。5、考虑如果采用 IN7 输入的电压,启动开始转换和读取转换结果的地址应该是多少。6、按查询方式采集 IN0 输入的电压,软硬件如何实现。编程方案1、ADC0809 的IN0 口地址为298H。2、IN0 单极性输入电压与转换后数字的关系为: 其中Ui 为输入电压,UREF 为参考电压,这里的参考电压为电源。3、一次A/D 转换的程序可以为MOV DX, PortOUT DX,AL ;启动转换;延时IN AL,DX ;读取转换结果放在AL 中(二) D/A 转换部分1、接线:CS /0832 接 Y2 /IO 地址用万用表测量 WR2 和XFER 在实验系统上如何联系的。2、实验电路原理如图2,DAC0832 采用单缓冲方式,具有单双极性输出端(图中的Ua、Ub),利用debug 输出命令(Out 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。3、编程产生以下波形(从Ub 输出,用示波器观察)(1)锯齿波(2)正弦波 编程方案1、8 位D/A 转换器DAC0832 的口地址为290H,输入数据与输出电压的关系为: (UREF 表示参考电压,N 表示数据),这里的参考电压为电源。2、产生锯齿波只须将输出到DAC0832 的数据由0 循环递增。产生正弦波可根据正弦函数建一个下弦数字量表,取值范围为一个周期,表中数据个数在16 个以上。3、流程图: (三) 直流电机转速控制1、按图 5 线路接线:CS /0832 接 Y2 /IO 地址UB /0832 接 直流电机DJCS /8255 接 Y1 /IO 地址PC7PC0 /8255 接 K7K0 /逻辑电平开关2、编程利用DAC0832 输出一串脉冲,经放大后驱动小直流电机,利用开关K0K5 控制改变输出脉冲的电平及持续时间,达到使电机加速,减速之目的。 实验原理简述小直流电机的转速是由 Ub 输出脉冲的占空比来决定的,正向占空比越大转速越快,反之越慢。见图6 例: 在本实验中,模拟量输出 Ub 为双极性,当输入数字量小于80H 时输出为负,输入等于80H 时为0V,输入大于80H 时输出为正。因而本实验中,DAC0832 输入数字量只有2 个(80H和FFH),通过不同的延迟时间达到改变小电机转速的目的。程序框图 编程方案通过给 DAC0832 输入80H 时,Ub 为0V,给DAC0832 输入FFH 时,Ub 为5V,来控制加给小电机的脉冲电平,通过控制两段延迟时间,来控制占空比。例如,我们给两段延迟系数都为0400h,来得到占空比接近于1 的脉冲。 三、实验代码及注释1、AD转换DATA SEGMENTINT0B DW 2 DUP(?)IMR DB ?P_AD DW 298HTAB DB '0123456789ABCDEF'DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN PROC PAR MOV AX,DATA MOV DS,AX CLI ;关闭中断为修改中断向量表准备 PUSH ES ;保护ES和BX中的向量,防止程序出错 PUSH BX MOV AH,35H ;读取0B中断向量。35H是INT21H中读取中断向量表的中断类型号 MOV AL,0BH ;使用的是0B中断,所以就读取0B中断,以上两步都是为了保护原有的0B中断 INT 21H MOV INT0B,ES ;将得到的中断向量储存起来,方便后面的恢复 MOV INT0B+2,BX POP BX POP ES PUSH DS ;保护原有的DS和DX PUSH DX MOV DX,OFFSET ADPRO PUSH BX MOV BX,SEG ADPRO ;seg是段地址 MOV DS,BX ;将段地址给DS POP BX MOV AX,250BH INT 21H POP DX POP DS IN AL,21H ;从8259中读取屏蔽字 MOV IMR,AL ;将读取的屏蔽字储存起来,为了后面的恢复 AND AL,0F7H OUT 21H,AL ;将新的屏蔽字写入到8259中 NEXT: MOV DX,P_AD MOV AL,0 OUT DX,AL ;输出到ad0809 PUSH CX ;延时等待AD转换,并检测是否有按键 MOV CX,100 ;循环100次 LOOP $ POP CX STI ;开中断,进行AD转换 MOV AH,1 INT 16H JZ NEXT CLI ;关闭中断 MOV AL,IMR ;将之前的8259的屏蔽字恢复 OUT 21H,AL ;将原屏蔽字输出到8259中 PUSH DX PUSH DS MOV DX,INT0B ;将原有的0B中断向量的段地址恢复到DS中 MOV DS,DX MOV DX,INT0B+2 ;将原有的0B中断向量的偏移量恢复到DX中 MOV AX,250BH ;和之前一样,写入0B中断向量表 INT 21H POP DS POP DX MOV AX,4C00H ;结束程序 INT 21H MAIN ENDP ADPRO PROC FAR PUSH AX PUSH DX MOV DX,P_AD ;读入AD转换结果 IN AL,DX LEA BX,TAB MOV AH,0 PUSH AX SHR AX, AND AX,0FH; MOV SI,AX; MOV DL,BX+SI ;将对应的字母的ASCII的码值给DL MOV AH,2 ;显示16进制的高位的字母表示 INT 21H POP AX AND AL,0FH; MOV SI,AX; ;后面与高位的显示一样 MOV DL,BX+SI MOV AH,2 INT 21H MOV DL,0DH ;输出回车 MOV AH,2 INT 21H MOV DL,0AH ;输出换行 MOV AH,2 INT 21H MOV DX,50 DELAY: ;延时的时间是50*65536个指令周期 MOV CX,0 LOOP $ ;与之前的延时相同 DEC DX CMP DX,0 JNZ DELAY MOV AL,20H ;中断子程序结尾要告知8259,中断子程序结束了 OUT 20H,AL POP DX POP AX IRET ADPRO ENDPCODE ENDS END MAIN 2、DA转换DATA segment PORT8255 EQU 288h DAPROT DW 290HDATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV DX,PORT8255+3 MOV AL,10001001BOUT DX,ALNEXT:MOV DX,DAPROT MOV AL,80HOUT DX,ALMOV AH,1INT 16HJNZ DONE ;有输入则DA转换结束MOV DX,PORT8255+2 IN AL,DX ;读入PC0-PC7的状态MOV AH,0 ;使AH的高位置0,方便与BX进行加减运算MOV BX,400HADD AX,AX ;将输入的数扩大4倍ADD AX,AX PUSH AXSUB BX,AX ;占空比为1,则0V延时为0,所以相减GOSUB: MOV CX,0 LOOP $ ;本指令跳转到本指令起到延时作用CMP BX,0JNZ GOSUBMOV DX,DAPROT ;是0832输出+5V的电压MOV AL,0FFH OUT DX,AL ;输出到0832MOV BX,0H ;为输出+5V的延时准备POP AX ;得到之前进行了4倍扩大后的8255C口的值ADD BX,AX ;作为延时控制使用GOADD:MOV CX,0 ;与之前对于0V输出的操作延时一样LOOP $CMP BX,0JNZ GOADDJMP NEXT ;继续下一次的DA转换过程DONE:MOV AH,4CHINT 21HMAIN ENDPCODE ENDS END MAIN 3、DA转换之锯齿波DATA SEGMENTDAPROT DW 290HDATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV DX,DAPROT MOV AL,0 ;用于转换的DA的数字大小 NEXT: OUT DX,AL ;向DA送数据 ADD AL,5 ;每次加5 CMP AL,255 JNE GO MOV AL,0GO: MOV CX,50000 ;延时50000个指令周期 LOOP $ MOV AH,1 INT 16H JZ NEXT MOV AH,4CH INT 21HMAIN ENDPCODE ENDS END MAIN4、DA转换之正弦波DATA SEGMENTDAPROT DW 290HSIN_DATA 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,66H DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATAMAIN PROC FAR MOV AX,DATA MOV DS,AX MOV DX,DAPROT BEGIN: MOV BH,32 LEA SI,SIN_DATA NEXT: MOV AL,SI OUT DX,AL INC SI DEC BH MOV CX,10000 LOOP $ CMP BH,0 JZ BEGIN MOV AH,1 INT 16H JZ NEXT MOV AH,4CH INT 21HMAIN ENDPCODE ENDS END MAIN四、实验结果1、实验时,转动旋钮,观察程序运行时数字的变化,并用万用表检测板子的电压值。当数字为16进制的B6即2进制的182时,电压值为3.49V。3.49×256÷5=178.688,与182基本相同。当数字为16进制的32即2进制的50时,电压值为0.96V。0.96×256÷5=49.152,与50基本相同。2、DA转换时,示波器上显示出的锯齿波和正弦波的图形分别如下: 五、实验心得与体会这次实验是关于模/数转换的,在以前的基础上,又借助了示波器和万用表来测量实验数据及结果。通过这次实验,我了解了A/D、D/A 转换的基本原理,掌握了ADC0809 、DAC0832芯片的使用方法,了解直流电机控制的基本方法。

    注意事项

    本文(北京XX大学微机原理实验报告四.doc)为本站会员(牧羊曲112)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开