1、微型计算机原理与接口技术实验报告班 级 : 学 号 : 姓 名 : 指导老师 : 朱亚萍 实验名称 : A/D转换实验 D/A转换实验(一) D/A转换实验(二) 2015年12月30日A/D转换实验实验一 A/D转换实验一、实验目的 了解模/数转换基本原理,掌握ADC0809的使用方法。二、实验内容 利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。三、实验接线图 图 1-1四、编程指南 1. ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D
2、采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:10MOV DX, ADPORTOUT DX, AL;ADC0809端口地址;发CS和WR信号并送通道地址2. 用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果:MOV DX, ADPORT3. 循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。IN AL, DX;ADC0809端口地址五、实验程序框图 图 1-2六、实验步骤 1. 断电连接导线, 将0809 CS4插孔连到译码输出FF80H插孔,将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(05V)插孔,8MHZT;2. 在PC机
3、和实验系统联机状态下,新建实验程序,编辑完成后进行保存(保存后缀为.asm文件);3. 编译下载;4. 全速运行,运行程序;5. 按RST键退出。七、实验程序DATA SEGMENTBUF DB 6 DUP(0)DATA1: DB 0c0h,0f9h,0a4h,0b0h,99h, DB 92h,82h,0f8h,80h,90h, DB 88h,83h,0c6h,0a1h,86h, DB 8eh,0ffh,0ch,89h,0deh, DB 0c7h,8ch,0f3h,0bfh,8fhDATA ENDSCODE SEGMENTASSUME CS: CODE,DS: DATA ADC EQU 0FF
4、80H; ADC0809端口地址PA EQU 0FF20HPB EQU 0FF21HPC EQU 0FF22HMAIN PROC FARSTART: MOV AX, DATA MOV DS, AX MOV ES, AXADC_S:MOV AX, 00H MOV DX, ADC OUT DX, AL MOV CX, 0500HDELAY:LOOP DELAYMOV DX, ADPORT IN AL, DX CALL CONVERS CALL DISP JMP ADC_SMAIN ENDPCONVERS PROC NEARMOV AH, AL AND AL, 0FH MOV BX, OFFSET
5、BUF MOV BX+5, AL MOV AL, AH AND AL, 0F0H MOV CL, 04H SHR AL, CL MOV BX+4, AL RETCONVERS ENDPDISP PROC NEARMOV AL, 0FFH MOV DX, PA OUT DX, AL MOV CL, 0DFH MOV BX, OFFSET BUFDIS1: MOV AL, BX MOV AH, 00H PUSH BX MOV BX, OFFSET DATA1 ADD BX, AX MOV AL, BX;字位口;字形口;键入口;启动转换;延时等待转换完成;读取转换结果;调用数据处理子函数;调用显示子
6、函数;循环;截取低四位;放入BUF截取高四位;将高四位值右移至低四位;放入BUF;显示子程序POP BX MOV DX, PB OUT DX, AL MOV AL, CL MOV DX, PA OUT DX, AL PUSH CXDIS2: MOV CX, 00A0H LOOP $ POP CX CMP CL, 0FEH JZ LX1 INC BX ROR CL, 1 JMP DIS1LX1: MOV AL, 0FFH MOV DX, PB OUT DX, AL RETDISP ENDPCODE ENDSEND MAIN八、实验结果调节电位器,ADC0809能够实时测量电位器电压并在数码管上显
7、示。九、实验中遇到的问题及解决方式问题:编程完成后,数码管显示乱码。解决:暂未解决,但是更换实验平台后,重新用另一台电脑编译下载能够成功显示。D/A转换实验(一)实验二D/A转换实验(一)一、实验目的 了解数/模转换的基本原理,掌握DAC0832芯片的使用方法。二、实验内容 利用0832通过D/A转换交替产生方波和锯齿波。三、实验接线图 图 2-1四、编程指南 1.首先须由CS片选信号确定量DAC寄存器的端口地址,然后锁存一个数据通过0832输出,典型程序如下:MOV DX,DAPORTMOV AL,DATAOUT DX,AL;0832口地址;输出数据到08322. 产生波形信号的周期由延时常
8、数确定。五、实验程序框图 图 2-2六、实验步骤 1.断电连接导线, 0832片选信号CS5插孔和译码输出FF80H插孔相连。2. 在PC机和实验系统联机状态下,新建实验程序,编辑完成后进行保存(保存后缀为.asm文件);3. 编译下载;4. 全速运行,运行程序。七、实验程序CODE SEGMENTASSUME CS:CODEMAIN PROC FARSTART: MOV CX, 4FANG: PUSH CXMOV DX, 0FF80HMOV AL, 00HOUT DX, ALCALL DELAYMOV DX, 0FF80HNOT ALOUT DX, ALCALL DELAYPOP CX;循环
9、显示4次方波;压入堆栈,保护循环次数; 0832口地址;首先输出方波低电平部分;延时;取反输出方波高电平部分;延时;弹出方波次数LOOP FANGMOV CX, 03FCHMOV DX, 0FF80HMOV AL, 00HJUCHI: OUT DX, AL INC ALLOOP JUCHIJMP STARTMAIN ENDPDELAY PROC NEAR MOV CX, 0100H DELAY1:LOOP DELAY1RETDELAY ENDPCODE ENDSEND MAIN;循环;锯齿波循环显示4次; 0832口地址;锯齿波初值;加1;循环;显示完成,重新开始;延时函数八、实验结果图 2-
10、3九、实验中遇到的问题及解决方式问题:程序运行时,发现显示四个方波但是只显示3个锯齿波。解决:忘记了在结束方波输出循环后将AX=00H,导致少输出一个锯齿波。D/A转换实验(二)实验三D/A转换实验(二)一、实验目的 进一步掌握数/模转换的基本原理。二、实验内容 通过0832D/A转换输出一个从0V开始逐渐升至5V,再从5V降至0V的可变电压输出。三、实验接线图 图 3-1四、编程指南 1.首先须由CS片选信号确定量DAC寄存器的端口地址,然后锁存一个数据通过0832输出,典型程序如下:MOV DX,DAPORTMOV AL,DATAOUT DX,AL;0832口地址;输出数据到08322.
11、产生波形信号的周期由延时常数确定。五、实验程序框图 图 2-2六、实验步骤 1.断电连接导线, 0832片选信号CS5插孔和译码输出FF80H插孔相连。2. 在PC机和实验系统联机状态下,新建实验程序,编辑完成后进行保存(保存后缀为.asm文件);3. 编译下载;4. 全速运行,运行程序。七、实验程序CODE SEGMENTASSUME CS:CODEMAIN PROC FARSTART: MOV DX, 0FF80H MOV AL, 00HUP: OUT DX, AL INC ALCMP AL, 0FFHJNZ UPDOWN: OUT DX, ALDEC AL CMP AL, 00H JNZ DOWN; 0832口地址;三角波初值;输出到0832;数据加1;是否到上限;判断;输出到0832;数据减1;是否到下限;判断JMP UPCODE ENDSEND MAIN;开始执行下一周期八、实验结果图 2-3D/A转换实验(二)