微机原理数模转换实验
微机实验报告 模数转换器
实验报告——模/数转换器专业:材料物理;姓名:曾瑞;学号:2011301230019一、实验目的了解模/数转换的基本原理,掌握ADC0809的使用方法。
二、实验内容1、实验电路原理图如图11.1。
通过实验台左下角电位器RW1输出0~5V直流电压送入ADC0809通道0(IN0),利用debug的输出命令启动A/D转换器,输入命令读取转换结果,验证输入电压与转换后数字的关系。
启动IN0开始转换: Out 0298 0读取转换结果: In 0298图11.1 模数转换电路2、编程采集IN0输入的电压,在屏幕上显示出转换后的数据(用16进制数)。
三、程序的流程图有键按下吗?开 始开 始N延 时Y N启动A/D转换读入转换后数据所读数据赋给BL 将数据右移四位调显示子程序显示其高四位从BL中取出数据和0FH相与调显示子程序显示其低四位将AL赋给DL DL大于9吗?DL加7DL加30H显示ASC码为DL的字符结 束Y 结 束(A) 主程序 (B ) 显示子程序四、源程序;FILENAME ZDR.ASM STACK SEGMENT DW 100 DUP(?) STACK ENDS CODE SEGMENTASSUME CS:CODE,SS:STACK MAIN PROCSTART : MOV DX,0C818H MOV AL,56HOUT DX,AL ;启动A/D 转换 MOV CX,0FFFFHDELAY: LOOP DELAY ;延时IN AL,DX ;读取转换结果存放于AL 中 MOV BL,ALMOV CL,4SHR AL,CL ;右移四位 CALL DISP ;显示高四位MOV AL,BL AND AL,0FHCALL DISP ;显示低四位MOV AH,2MOV DL,48HINT 21H ;输出’H’MOV AH,2MOV DL,0DHINT 21H ;回车MOV AH,2MOV DL,0AHINT 21H ;换行MOV DL,0FFHMOV AH,6INT 21H ;检测键盘是否有输入JZ START ;无输入则跳转MOV AH,4CHINT 21H ;返回到DOSMAIN ENDPDISP PROCMOV DL,ALCMP DL,9JLE NEXT ;小于等于9则跳转ADD DL,7 ;DL加7NEXT: ADD DL,30H ;字符的ASCII码MOV AH,2INT 21H ;显示字符RETDISP ENDPCODE ENDSEND START五、实验结果及分析(1)实验结果如下:00H 00H 00H···43H 43H 43H···50H 50H 50H···FFH FFH FFH···发现,随着滑动变阻器的滑动,显示的数值不断增大,最终增大到FFH,产生的原因是阻值的变化使得输入电压变大,因而显示数增大;(2)从上结果可以看出,其结果是一长串的数字,有很多的是重复的,很不简洁,其原因在于没有对相邻的数字进行比较。
北航微机原理5 模数转换
微机原理实验报告模数转换一、实验名称模/数转换二、实验目的了解模/数转换的原理,掌握ADC0809的使用方法。
三、实验内容将温度传感器输出端连至ADC0809IN0端;编写程序对IN0通道的模拟量进行模/数转换;将模/数转换得到的数字量换算成温度值显示在微机屏幕上。
四、程序流程图及波形图:(见末页)五、实验结论:符合预期,屏幕上显示经换算后的温度值。
六、实验心得模/数转换实验相对先前作的数/模转换实验在程序编写上要复杂一点,但在编写程序的过程中,感觉思路更为清晰,而且接线更为容易,因而总体来说难度并不大。
这次上机实验虽然非常简单,但很显然这种实验性质的模/数转换是非常肤浅和基本的。
模/数转换这一过程在生产实践中被广泛使用,作为工科学生的我们也不能仅仅满足于能调通这样的小程序,而是应该在这次实验的基础上,看一些深入介绍模/数转换的书籍,尝试去编写一些更复杂的程序,实现一些更复杂的功能。
我想通过这些额外的学习,我一定能从中得到更多的锻炼、提高自己的能力和素养。
七、实验程序:inadress equ0EF00H-280H+298HSTACK SEGMENT STACKDB 100 DUP (?)STACK ENDSDATA S EGMENTSTR DB 100 DUP(?)DATA E NDSCODE SEGMENTASSUME CS:CODE, DS:DATA, SS:STACKDELAY PROCMOV BX, 100MOV CX, 0AGN: LOOP AGNDEC BXJNZ AGNRETDELAY ENDPMAIN PROCMOV AX, DATAMOV DS, AXMOV DX, inadressMOV AL,0OUT DX, ALCALL DELAYAGN1: IN AL, DXMOV BL, ALMOV CX, 8 AGN2: MOV DL, BLMOV CL, 4SHR DL, CLCMP DL, 9JBE NEXT1ADD DL, 7NEXT1: ADD DL, 30HMOV AH, 2INT 21HMOV DL, BLAND DL, 0FHCMP DL, 9JBE NEXT2ADD DL, 7 NEXT2: ADD DL, 30MOV AH, 2INT 21HNEXT3: MOV DL, 0FFHMOV AH, 6INT 21HJZ NEXT3JMP AGN2MOV AH, 4CHINT 21H MAIN ENDP CODEENDS END MAIN流程图:启动IN0 A/D 转换延迟(100微秒以上)读入数字量以16进制显示数字量是否有按键按下退出否是显示高4位显示低4位显示‘H ’显示‘ ’。
微机实验及课程设计——数模与模数转换
东南大学《微机实验及课程设计》实验报告实验八数模与模数转换姓名:学号:专业:实验室:计算机硬件技术实验时间:2010年06月1日报告时间:2010年06月2日评定成绩:审阅教师:一. 实验目的与内容1)了解数/模转换器的基本原理,掌握DAC0832 芯片的使用方法;2)了解模/数转换器的基本原理,掌握ADC0809 芯片的使用方法。
二. 基本实验原理(1)D/A 转换① 8 位D/A 转换器DAC0832 的口位置为290H,输入数据与输出电压的关系为:(UREF 表示参考电压,N 表示数数据),这里的参考电压为PC 机的+5V 电源。
②产生锯齿波只须将输出到DAC0832 的数据由0 循环递增,产生正弦波可根据正弦函数建一个下弦数字量表,取值范围为一个周期,表中数据个数在16 个以上。
电路连接如下图所示:图1产生锯齿波和正弦波的程序流程图如下所示:(2)A/D 转换① ADC0809 的IN0 口位置为298H,IN1 口位置为299H。
② IN0 单极性输入电压与转换后数字的关系为:其中Ui 为输入电压,UREF 为参考电压,这里的参考电压为PC 机的+5V 电源。
③一次A/D 转换的程序可以为:MOV DX,口位置OUT DX,AL ;启动转换;延时IN AL,DX ;读取转换结果放在AL 中电路连接如下图所示:图2 程序流程图(含子程序流程图)如下所示:(3)A/D转换曲线绘制流程图如下所示:三. 方案实现与测试(一)、获取TPC 扩展卡 I/O 和存储基位置直接在windows 下利用控制面板查看占用的存储和中断资源,可知:TPC设备内存范围: FDDFF000—FDDFF0FF接口芯片输入输出范围: BC00—BCFFTPC设备输入输出范围: B800—B87F接口芯片内存范围: FDC00000—FDCFFFFF(二)、DAC 实验电路原理如图1所示,DAC0832 采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。
微机原理-数码转换实验报告
微机原理-数码转换实验报告-CAL-FENGHAI.-(YICAI)-Company One1实验九数码转换一、实验目的1、掌握计算机常用数据编码之间的相互转换方法。
2、进一步熟悉DEBUG软件的使用方法。
二、实验内容1、ACSII码转换为非压缩型BCD码2、BCD码转换为二进制码3、十六进制数转换为ASCII码三、实验1、ACSII码转换为非压缩型BCD码DATA SEGMENT PARA 'DATA'DATA1 DB 8 DUP()DATA2 DB 8 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATASTART: MOV AX,SEG DATA1MOV DS,AXMOV DX,DATAMOV AH,0AHINT 21HLEA SI,DATA1MOV CL,[SI+1]LEA DI,DATA2ADD SI, 2CHK: MOV AL,[SI+2]CMP AL, '0'JB L01CMP AL, '9'JA L01SUB AL,30HMOV BL,ALMOV [DI], BLINC SIINC DIDEC CXJNZ CHKL01: MOV BL, 0FFHLOOP CHKMOV AH,4CH INT 21H CODE ENDSEND START2、BCD码转换为二进制码DATA SEGMENTBCD DB 1,2,3,4,5A DWDATA ENDSSTACK SEGMENT PARA STACK''STACK''STAPN DW 50 DUP()STACK ENDSCODE SEGMENTMAIN PROC FARASSUME DS:DATA,CS:CODE,SS:STACKSTART:MOV AX,DATAMOV DS,AXMOV AX,STACKMOV SS,AXCALL CONVERTMOV A,BXRETMAIN ENDPCONVERT PROC NEARPUSH SIPUSH CXPUSH AXMOV SI,4L1:MOV AL,BCD[SI]CBWXCHG AX, BXMOV CX,10DMUL CXXCHG AX,BXADD BX,AXDEC SIJNZ L1POP AXPOP CXPOP SIEXIT:MOV AH,4CH INT 21H CONVERT ENDP CODE ENDSEND START3、十六进制数转换为ASCII码DATA SEGMENTDATA1 DW 2010HDATA2 DB 4 DUP()DATA ENDSSTACKS SEGMENT PARA STACK 'STACK'STACKS ENDSCODES SEGMENTASSUME SS:STACKS,CS:CODESASSUME DS:DATASSTART: MOV AX, DATAMOV DS, AXLEA SI, DATA1MOV AX, [SI]MOV CL, 12SHR AX, CLMOV BL, ALCALL ASCMOV DATA2, BLCALL XSMOV AX, [SI]MOV CL, 8SHR AX, CLAND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+1, BLCALL XSMOV AX, [SI]MOV CL, 4SHR AX, CLAND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+2, BLCALL XSMOV AX, [SI]AND AX, 000FHMOV BL, ALCALL ASCMOV DATA2+3, BLCALL XSMOV AH, 4CHINT 21HASC PROCCMP BL, 0AH JC LPADD BL, 07H LP: ADD BL, 30H RETASC ENDPXS PROCMOV DL, BL MOV AH, 02H INT 21HRETXS ENDPCODE ENDSEND START4、六进制数转换为十进制DATAS SEGMENTSTRING1 DB 0DH,0AH,'$'STRING2 DB 0DH,0AH,'$'DATAS ENDSSTACKS SEGMENTSTACKS ENDSCODES SEGMENTASSUME CS:CODES,DS:DATAS,SS:STACKSSTART:MOV AX,DATASMOV DS,AXMOV DX,OFFSET STRING1MOV AH,9INT 21HMOV CL,10HMOV BX,0NEWCHAR:MOV AH,1INT 21HSUB AL,30HJB DISPCBWXCHG AX,BXMOV CH,0MUL CXXCHG AX,BXADD BX,AXJNC NEWCHARDISP:MOV DX,OFFSET STRING2MOV AH,9INT 21HMOV CX,10000AGAIN:MOV DX,0MOV AX,BXDIV CXMOV BX,DXMOV DL,ALADD DL,30HCMP DL,39HJLE NEXTADD DL,7H NEXT:MOV AH,2INT 21HMOV DX,0MOV AX,CXMOV CX,10DIV CXMOV CX,AXCMP CX,0JNZ AGAINMOV AH,4CH INT 21H CODES ENDS END START5、十进制转换成七段码DATA SEGMENTDATA1 DB 3,4TABLE DB 23H,56H,42H,75H,00H,24H,67H,39H,20H DATA2 DB 2 DUP()DATA ENDSCODE SEGMENTASSUME CS:CODE, DS:DATA ST: MOV DI, OFFSET BUFDAMOV CL, 80HMOV BX, OFFSET TABLE DISI: MOV BL, [DI+0]MOV AX, BXXLATMOV DX, PORTSEGOUT DX, ALMOV AL, CLMOV DX, PORTBITOUT DX, ALPUSH CXMOV CX, 30HDELAY: LOOP DELAYPOP CXCMP CL, 20HJZ QUITINC DISHR CL, 1JMP DISIQUITCODE ENDSEND ST。
微机实验及课程设计——数模与模数转换
东南大学《微机实验及课程设计》实验报告实验八数模与模数转换姓名:学号:专业:实验室:计算机硬件技术实验时间:2010年06月1日报告时间:2010年06月2日评定成绩:审阅教师:一. 实验目的与内容1)了解数/模转换器的基本原理,掌握DAC0832 芯片的使用方法;2)了解模/数转换器的基本原理,掌握ADC0809 芯片的使用方法。
二. 基本实验原理(1)D/A 转换① 8 位D/A 转换器DAC0832 的口地址为290H,输入数据与输出电压的关系为:(UREF 表示参考电压,N 表示数数据),这里的参考电压为PC 机的+5V 电源。
②产生锯齿波只须将输出到DAC0832 的数据由0 循环递增,产生正弦波可根据正弦函数建一个下弦数字量表,取值范围为一个周期,表中数据个数在16 个以上。
电路连接如下图所示:图1产生锯齿波和正弦波的程序流程图如下所示:(2)A/D 转换① ADC0809 的IN0 口地址为298H,IN1 口地址为299H。
② IN0 单极性输入电压与转换后数字的关系为:其中Ui 为输入电压,UREF 为参考电压,这里的参考电压为PC 机的+5V 电源。
③一次A/D 转换的程序可以为:MOV DX,口地址OUT DX,AL ;启动转换;延时IN AL,DX ;读取转换结果放在AL 中电路连接如下图所示:图2 程序流程图(含子程序流程图)如下所示:(3)A/D转换曲线绘制流程图如下所示:三. 方案实现与测试(一)、获取TPC 扩展卡 I/O 和存储基地址直接在windows 下利用控制面板查看占用的存储和中断资源,可知:TPC设备内存范围: FDDFF000—FDDFF0FF接口芯片输入输出范围: BC00—BCFFTPC设备输入输出范围: B800—B87F接口芯片内存范围: FDC00000—FDCFFFFF(二)、DAC 实验电路原理如图1所示,DAC0832 采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。
北航微机 原理 数模转换
微机原理实验报告数模转换一、实验名称数/模转换二、实验目的了解数/模转换的原理,学习数/模转换芯片的使用方法,掌握利用数/模转换芯片产生方波及正弦波的方法。
三、实验内容在数据段中存放好对应于方波和正弦波的数字量,正弦波要求20个值。
编写程序将数据段中的数字量送到DAC0832的输出端产生方波和正弦波。
四、程序流程图及波形图:(见末页)五、实验结论:符合预期,输出端输出的数据加载到虚拟示波器后显示方波和正弦波。
六、实验心得这次实验无论是从程序编写到硬件连线,都是比较容易的。
在实验过程中,我也进行得十分顺利,很快就得到了实验结果。
但实验过程中的一个环节还是给了我一些启示。
实验过程中有一个步骤是要在输出端测输出电压。
刚开始我测试数据的时候发现万用表测出的数据跳动非常大,无法获得稳定的电压值。
我开始认为是连线接触不良导致的这种情况,于是重新连了一次线,但发现问题仍然存在。
我又重新检查了一下程序,并回忆老师上课讲过的一些实验中会遇到的问题,我突然想到是因为程序中少了一段延时程序才导致输出电压无法测出。
再加入了一个延时子程序后果然顺利的得到了稳定的电压值。
这次实验我最大的收获就是明白了理论如何转化成正确的实践成果。
老师课堂上并没有讲过输出要延时一段时间,但是具体实践却要求我们必须这样做才能获得正确的结果。
这就需要我们自己具备这种分析问题,并结合实际情况改进理论指导的能力。
七、实验程序:方波:inadress equ 0EF00H-280H+290HSTACK SEGMENT STACKDB 100 DUP (?)STACK ENDSDATA SEGMENTDATA ENDSCODE SEGMENTASSUME CS:CODE, DS: DATA, SS:STACKDELAY PROCMOV CX, 0MOV BX, 8000 NEXT: LOOP NEXTDEC BXJNZ NEXTRETDELAY ENDPMAIN PROCAGN: MOV AX, DATAMOV DS, AXMOV AL, 0MOV DX, inadressOUT DX, ALCALL DELAYMOV AL, 0FFHOUT DX, ALCALL DELAYMOV DL, 0FFHMOV AH, 6INT 21HJZ AGNMOV AH, 4CHINT 21HMAIN ENDPCODE ENDSEND MAIN正弦波:inadress equ 0EF00H-280H+290HSTACK SEGMENT stackDB 100 DUP (?)STACK ENDSDATA SEGMENTSTR DB 128, 168, 203, 232, 250, 255, 250, 232, 203, 168, 128, 88, 53, 24, 6, 0, 6, 24, 53, 88DATA ENDSCODE SEGMENTASSUME CS:CODE, DS: DATA, SS:STACKDELAY PROCMOV CX, 0MOV BX, 8000NEXT: LOOP NEXTDEC BXJNZ NEXTRETDELAY ENDPMAIN PROCMOV AX, DATAMOV DS, AXMOV DX, inadressNEXT1: MOV SI, OFFSET STRMOV BX, 0NEXT2: MOV AL, [SI]OUT DX, ALCALL DELAYINC SIINC BXCMP BX, 20JE NEXT1MOV DL, 0FFHMOV AH, 6INT 21HJZ NEXT2MOV AH, 4CHINT 21H MAIN ENDPCODE ENDSEND MAIN流程图:方波开始将方波数字量存入数据段将I/O 端口地址送入DX 寄存器 将该数字量输出至I/O 端口,并调用延时子程序 将数据段中第二个方波数字量放入AL 寄存器中 初始化N 返回DOS将数据段中第一个方波数字量放入AL 寄存器中 将第一位数字量偏移地址存入SI 寄存器 检查是否有键按下 将该数字量输出至I/O 端口,并调用延时子程序Y正弦波:开始将正弦波数字量存入数据段 将I/O 端口地址送入DX 寄存器 将该数字量输出至I/O 端口,并调用延时子程序 SI 和BX 寄存器的值自加初始化N检查是否有键按下返回DOSY 将数据段中第一个正弦波数字量放入AL 寄存器中将第一位数字量偏移地址存入SI 寄存器,BX 寄存器置零 BX 和20是否相等比较BX 和20的大小Y N方波:正弦波:。
微机原理实验之模数转换器ADC0809的使用
微机原理实验之模数转换器ADC0809的使用2011年05月18日星期三 10:04实验器材:模数转换器0809,8255(作为显示结果用的),实验台线路。
实验目的:貌似比较简单,就是知道ADC0809可以进行模数转换,了解一下它的地址分配,以及如何实现片选的,不知到同学们是否达到了这个目的,貌似很多人接好线,看看可以运行就撤退了。
实验内容:用ADC0809把滑动变阻器限制的电压转化成某个范围内的数字量并通过8255显示在发光二极管上。
实验步骤:一、接线。
1.ADC0809的接线。
从左上角引过滑动变阻器限制的输入电压连接到ADC0809的输入端I0上。
系统0.5M时钟频率发生器连接到ADC0809的CLK上,作为其工作的时钟信号。
将三条地址选择线A,B,C分别接到系统的A0,A1,A2上。
74LS138的210h~217h接到ADC0809A 的CS端。
(这里其实是两个门电路的公共输入端,起到了片选的效果)。
2.8255的接线。
CS端接到74LS138的200h~207h上,把A口与8个发光二极管对应相连。
二、程序。
code segmentassume cs:codestart:;init 8255 A output at mode 0mov dx,203hmov al,80hout dx,allp:;activate ADC0809mov dx,210hout dx,al;if you connect A,B,C with A0,A1,A2,al内容无所谓,but if 连D0,D1,D2,here al must be 0;delay 100us to wait for 0809 conversionmov cx,100del:loop del;display the outcome with 8255in al,dxmov dx,200hout dx,aljmp lpcode endsend start三、操作及结果。
微机原理实验报告--数模转换
微机原理实验报告实验题目:数/模转换器DAC0832系部:电子与信息工程系学生姓名:专业班级:学号:指导教师:2013.12.30一. 实验目的1.掌握D/A转换原理;2.熟悉D/A芯片接口设计方法;3.掌握DAC0832芯片的使用方法。
二. 实验设备1.PC微机一台;2.TD-PIT实验装置一台;3.示波器一台。
三. 实验要求用DAC0832设计一个D/A转换接口电路,采用单缓冲工作方式,产生方波、三角波、锯齿波和正弦波。
四.实验原理1.DAC3802的结构及性能(1)输入/输出信号。
D7-D为8位数据输入线;IOUT1为DAC电流输出1,I OUT2为DAC电流输出2,IOUT1和IOUT2之和为一常量;RFB为反馈信号输入端,反馈电阻在芯片内。
(2)控制信号。
ILE为允许输入锁存信号;WR1和WR2分别为锁存输入数据信号和锁存输入寄存器到DAC寄存器的写信号;XFER为传送控制信号;CS为片选信号。
(3)电源。
VCC 为主电源,电压范围为+5V到+15V;VREF为参考输入电压,范围为-10V到+10V。
DAC0832管脚及其内部结构框图2.工作方式外部五个控制信号:ILE,CS,WR1,WR2,XFER连接方式的不同,可工作于多种方式:直通方式,单缓冲方式,双缓冲方式(1)直通方式ILE接高、CS、WR1、WR2、XFER接地,两级寄存器均直通;(2)单缓冲方式两级寄存器一个受控,一个直通;(3)双缓冲方式两级寄存器均受控。
0832为电流输出型D/A ,要得模拟电压,必需外加转换电路(运放)。
五. 实验内容1.硬件电路图:2.软件程序设计(1)产生方波stack segment stack 'stack'dw 32 dup(?)stack endscode segmentbegin proc farassume ss:stack,cs:codepush dssub ax,axpush axMOV DX,0D800H;片选信号输入地址MOV AL,0NEXT:OUT DX,ALMOV DX,0D800HOUT DX,ALLOOP $;延时NOT AL;求反,由高电平转为低电平或有低电平转为高电平 PUSH AX;保护数据MOV AH,11INT 21HCMP AL,0;有按键退出POP AXJZ NEXTretbegin endpcode endsend begin(2)产生三角波stack segment stack 'stack'dw 32 dup(?)stack endsdata segmentdata endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axMOV DX,0D800HMOV AL,0NEXT:OUT DX,ALCALL DELAY;调用延时CMP AL,0FFHJNE NEXT;自增至15NEXT1:OUT DX,ALCALL DELAY;调用延时DEC ALCMP AL,0JNE NEXT1PUSH AXMOV AH,11INT 21HCMP AL,0POP AXJZ NEXT;自减至0retbegin endpDELAY PROCPUSH CXMOV CX,10000LOOP $POP CXRETDELAY ENDP;延时子程序code endsend begin(3)产生锯齿波stack segment stack 'stack' dw 32 dup(?)stack endscode segmentbegin proc farassume ss:stack,cs:code push dssub ax,axpush axMOV DX,0D800HMOV AL,0UP:OUT DX,ALINC ALPUSH AX;保护数据MOV AH,11INT 21HCMP AL,0JZ UP;循环从0自增至15retbegin endpcode endsend begin(4)产生正弦波stack segment stack 'stack'dw 32 dup(?)stack endsdata segmentDATA DB7FH,87H,8FH,97H,9FH,0A6H,0AEH,0B5H,0BCH,0C3H,0CAH,0D0H,0D6H,0DCH,0E1H,0E6H,0EBH,0EFH,0F2H,0F6H,0F8H,0FAH,0FCH,0FDH,0FEH,0FFH,0FEH,0FDH,0FCH,0FAH,0F8H,0F6H,0F2H,0EFH,0EBH,0E6H,0E1H,0DCH,0D6H,0D0H,0CAH,0C3H,0BCH,0B5H,0AEH,0A6H,9FH,97H,8FH,87H,7FH,77H,6FH,67H,5FH,58H,50H,49H,42H,3BH,34H,2EH,28H,22H,1DH,18H,13H,0FH,0CH,8H,6H,4H,2H,1H,0,0,0,1H,2H,4H,6H,8H,0CH,0FH,13H,18H,1DH,22H,28H,2EH,34H,38H,42H,49H,50H,58H,5FH,67H,6FH,77H;建表,在正弦波一个周期内均匀采样100个点,用matlab将每点的值转换为相应的波形数字量(该处用16进制数表示)data endscode segmentbegin proc farassume ss:stack,cs:code,ds:datapush dssub ax,axpush axmov ax,datamov ds,axAG:MOV SI,OFFSET DATA;将表DATA放入SI中MOV DX,0D800HMOV BX,0NEXT:MOV AL,BYTE PTR[SI]OUT DX,ALCALL DELAY;调用延时INC BXINC SICMP BX,100JE AGPUSH AX;保护数据MOV AH,11CMP AL,0POP AXJZ NEXT;循环100次将表中的值输出 retbegin endpDELAY PROCPUSH CXMOV CX,10000LOOP $POP CXRETDELAY ENDP;延时子程序code endsend begin六. 实验结果用示波器观测波形,截图如下:1.方波2.三角波3.锯齿波4.正弦波七. 实验总结在本次实验中,首先自己在课外将实验原理充分掌握,提前画好电路图,并思考软件部分的代码核心,进入实验室后,进行电路连接及与软件的连调。
数模模数转换实验报告
数模模数转换实验报告一、实验目的1、了解数模和模数转换电路的接口方法及相应程序设计方法。
2、了解数模和模数转换电路芯片的性能和工作时序。
二、实验条件1、DOS操作系统平台2、数模转换芯片DAC0832和模数转换器ADC0809芯片。
三、实验原理1、数模转换:(1)微机处理的数据都是数字信号,而实际的执行电路很多都是模拟的。
因此微机的处理结果又常常需要转换为模拟信号去驱动相应的执行单元,实现对被控对象的控制。
这种把数字量转换为模拟量的设备称为数模转换器(DAC),简称D/A。
(2)实验中所用的数模转换芯片是DAC0832,它是由输入寄存器、DAC 寄存器和D/A 转换器组成的CMOS 器件。
其特点是片内包含两个独立的8 位寄存器,因而具有二次缓冲功能,可以将被转换的数据预先存在DAC 寄存器中,同时又采集下一组数据,这就可以根据需要快速修改DAC0832 的输出。
2、模数转换:(1)在工程实时控制中,经常要把检测到的连续变化的模拟信号,如温度、压力、速度等转换为离散的数字量,才能输入计算机进行处理。
实现模拟量到数字量转换的设备就是模数转换器(ADC),简称A/D。
(2)模数转换芯片的工作过程大体分为三个阶段:首先要启动模数转换过程。
其次,由于转换过程需要时间,不能立即得到结果,所以需要等待一段时间。
一般模数转换芯片会有一条专门的信号线表示转换是否结束。
微机可以将这条信号线作为中断请求信号,用中断的方式得到转换结束的消息,也可以对这条信号线进行查询,还可以采用固定延时进行等待(因为这类芯片转换时间是固定的,事先可以知道)。
最后,当判断转换已经结束的时候,微机就可以从模数转换芯片中读出转换结果。
(3)实验采用的是8 路8 位模数转换器ADC0809 芯片。
ADC0809 采用逐次比较的方式进行A/D 转换,其主要原理为:将一待转换的模拟信号与一个推测信号进行比较,根据推测信号是大于还是小于输入信号来决定增大还是减少该推测信号,以便向模拟输入逼近。
微机原理与接口实验 4.5 数模转换-DAC0832 赖晓铮
JMPR RB; JC ADDR;
JCR RB;
(RB)PC IF CF=1, ADDRPC IF CF=1, (RB)PC IF ZF=1, ADDRPC IF ZF=1, (RB)PC IF SF=1, ADDRPC IF SF=1, (RB)PC
0001 0001
0001
RB 0/0
ADDI RA, IMM; (RA) +IMMRA SUB RA, RB; SUBI RA, IMM; AND RA, RB; (RA)-(RB)RA (RA)-IMMRA (RA)∧(RB)RA
ANDI RA, IMM; (RA)∧IMMRA OR RA. RB; ORI RA, IMM; XOR RA, RB; (RA)∨(RB)RA (RA)∨IMMRA (RA)⊕(RB)RA
五、算术逻辑运算指令:
汇编语言格式 ADD RA, RB; 功能 (RA) +(RB)RA I7 I6 I5 I4 1101 1101 1100 1100 1110 1110 1111 1111 1011 1011 I3 I2 RA RA IMM RA RA IMM RA RA IMM RA RA IMM RA RA IMM I1 I0 RB 0/0 RB 0/0 RB 0/0 RB 0/0 RB 0/0
XORI RA, IMM; (RA)⊕IMMRA
微程序版“CPU+DAC0832”电路图
初始化过程
1) 时钟信号CLK接手动开关MANUAL,启动仿真,使能复位信号 #RESET=0; 2) 手动按钮MANUAL开关“010”,然后令信号#RESET=1.
注:初始化完成后,若时钟信号CLK继续接开关MANUAL,则CPU进入手动模式, 手动MANUAL开关,生成时钟信号CLK,程序单步执行;若时钟信号CLK接 信号源AUTO-CLK(主频10Hz),则CPU进入自动模式,程序自动运行, 直到HLT指令的“断点”处暂停。
微机原理与接口技术 AD模数转换实验(0809)
微机原理与接口技术实验报告学院:信息数理学院学生姓名:专业班级:学号:实验名称:A/D模数转换实验(0809)2016 ~ 2017 学年第一学期第8 次实验实验日期:2019-5-26 指导老师:成绩:批阅老师:一、实验目的1、掌握A/D转换的连接方法。
2、了解A/D转换芯片0809的编程方法。
二、实验设备PROTEUS教学实验系统(8086)三、实验原理本实验采用ADC0809 做A/D转换实验。
ADC0809是一种8路模拟输入、8位数字输出的逐次逼近法A/D器件,转换时间约100us,转换精度为土1/512,适用于多路数据采集系统。
ADC0809片内有三态输出的数据锁存器,故可以与8088微机总线直接接口。
ADC0809的CLK信号接CLK=2.385MHZ,基准电压Vref(+)接Vcc。
- -般在实际应用系统中应该精确+5V,以提高转换精度,ADC0809片选信号0809CS和/IOW、/IOR经逻辑组合后,去控制ADC0809的ALE、START、ENABLE信号。
ADC0809的转换结束信号EOC未接,如果以中断方式实现数据采集,需将E0C信号线接至中断控制器8259A的中断源输入通道。
本实验以延时方式等待A/D转换结束,ADC0809的通道号选择线ADD一A、ADD一B、ADD-C接系统数据线的低3位,因此ADC0809的8个通道值地址分别为00H、01H、02H、 03H、 04H、05H、06H、07H。
调节电位器W1,以改变模拟电压值,显示器上会不断显示新的A/D转换结果。
用ADC0809做A/D转换,其模拟量与数字量对应关系的典型值为+5V- FFH, 2.5V- 80H,OV- 00H。
图1 程序流程图四、实验内容4.1硬件设计图3 系统硬件电路原理图软件设计程序代码及分析CODE SEGMENTASSUME CS:CODEAD0809 E QU 0E002HOUT373 EQU 8000HSTART: MOV AL,00HMOV DX,AD0809OUT DX,ALNOPIN AL,DXMOV DX,OUT373OUT DX,ALMOV CX,10HLOOP $JMP STARTCODE ENDSEND START五、实验结果分析程序运行后,ADC0809从外部电路中测量电压值并转换为数字量,当CPU 发出读取请求后将测量值送到数据总线上;CPU定期查询当前的电压值,并将电压值显示在LED灯组上,运行结果如图4所示:图4 运行结果1改变滑动变阻器电阻值后,测量的电压值也随之改变,如图5所示图5 运行结果2总结通过本次实验掌握了ADC0809 接口电路与微机的硬件电路连接方法、A/DADC0809接口电路的程序设计和调试方法、加深理解逐次逼近法模数转换器的特征和工作原理以及掌握ADC0809的接口方法,以及A/D输入程序的设计和调试方法。
微机原理 实验五 AD转换实验
实验五 A/D转换实验一、实验目的了解模/数转换基本原理,掌握ADC0809的使用方法;掌握定时数据采集程序的编制方法。
二、实验内容1、A/D转换实验利用实验系统上电位器提供的可调电压作为0809模拟信号的输入,编制程序,将模拟量转换为数字量,通过数码管显示出来。
(1)实验接线图图6-1(2)编程指南ADC0809的START端为A/D转换启动信号,ALE端为通道选择地址的锁存信号,实验电路中将其相连,以便同时锁存通道地址并开始A/D采样转换,其输入控制信号为CS和WR,故启动A/D转换只须如下两条指令:MOV DX,ADPORT ;ADC0809端口地址OUT DX,AL ;发CS和WR信号并送通道地址用延时方式等待A/D转换结果,使用下述指令读取A/D转换结果。
MOV DX,ADPORT ;ADC0809端口地址IN AL,DX循环不断采样A/D转换的结果,边采样边显示A/D转换后的数字量。
(3)实验程序框图(4)实验步骤①将0809 CS4插孔连到译码输出FF80H插孔、连JX6→JX17。
②将通道0模拟量输入端IN0连电位器W1的中心插头AOUT1(0-5V)插孔,8MHZ→T。
③运行实验程序如在PC机和实验系统联机状态下,运行该实验程序,可用鼠标左键单击菜单栏“文件”或工具栏“打开图标”,弹出“打开文件”的对话框,然后打开598K8ASM文件夹,点击H0809.ASM文件,单击“确定”即可装入A/D转换实验源文件,再单击工具栏中编译装载,即可完成源文件自动编译、装载目标代码功能,再单击“调试”中“R运行”或工具图标运行,即开始运行程序。
如果在没有PC机的情况下,则在8086K系统显示监控提示符“P.”时,用户段地址固定为0000(省略输入),按SCAL键,输入起始偏移地址1000,按EXEC键,在系统上显示“0809 XX”。
“XX”表示输入模拟量转换后的数字量。
④调节电位器Wl, 显示器上会不断显示新的转换结果。
微机原理实验报告_5
《微机原理与接口技术》实验报告实验名称:数模(D /A)转换学院:信息科学技术学院专业:电子信息工程班级:2009级理科实验班学号:20091613310032姓名:姬晓鹏2011年12月20日一、实验目的1、熟悉DAC0832数模转换器的特性和接口方法。
2、掌握D/A输出程序的设计和调试方法。
二、实验原理1、DAC0832的结构DAC0832是用先进的CMOS工艺制成的双列直插式单片8位D/A转换器。
它可以直接和8088CPU相接口。
它采用二次缓冲方式(有两个写信号WR1、WR2),这样可以在输出的同时,采集下一个数字量,以提高转换速度。
而更重要的是能够在多个转换器同时工作时,有可能同时输出模拟量。
它的主要技术参数如下:分辨率为8位,电流建立时间为1μs,单一电源5V-15V直流供电,可双缓冲、单缓冲或直接数据输入。
2、DAC0832引脚功能✧DI0-DI7:数据输入线,TTL电平,有效时间应大于90ns(否则锁存的数据会出错)。
✧ILE:数据锁存允许控制信号输入线,高电平有效。
✧/CS:片选信号输入线,低电平有效。
✧/WR1:输入锁存器写选通输入线,负脉冲有效(脉宽应大于500ns)。
当/CS为“0”、ILE为“1”、/WR1为“0”时,DI0-DI7状态被锁存到输入锁存器。
✧/XFER:数据传输控制信号输入线,低电平有效。
✧/WR2:DAC寄存器写选通输入线,负脉冲有效(脉宽应大于500ns)。
当/XFER为“0”且/WR2有效时,输入锁存器的状态被传送到DAC寄存器中。
✧Iout1:电流输出线,当输入为全1时Iout1最大。
✧Iout2:电流输出线,其值和Iout1值之和为一常数。
✧Rfb:反馈信号输入线,改变Rfb端外接电容器值可调整转换满量程精度。
✧Vcc:电源电压线,Vcc范围为+5V~+15V。
✧VREF:基准电压输入线,VREF范围为-10V~+10V。
✧AGND:模拟地。
✧DGND:数字地。
数码转换实验报告材料微机原理
实验九数码转换一、实验目的1、掌握计算机常用数据编码之间的相互转换方法。
2、进一步熟悉DEBUG软件的使用方法。
二、实验内容1. ACSII码转换为非压缩型BCD码编写并调试正确的汇编语言源程序,使之实现:设从键盘输入一串十进制数,存入DATA1单元中,按回车停止键盘输入。
将其转换成非压缩型(非组合型) BCD码后,再存入DATA2开始的单元中。
若输入的不是十进制数,则相应单元中存放FFH。
调试程序,用D命令检查执行结果。
2. BCD码转换为二进制码编写并调试正确的汇编语言源程序,使之将一个16位存储单元中存放的4位BCD码DATA1,转换成二进制数存入DATA2字单元中。
调试程序,用D命令检查执行结果。
3. 十六进制数转换为ASCII码编写并调试正确的汇编语言源程序,使之将内存DATA1字单元中存放的4位十六进制数,转换为ASCⅡ码后分别存入DATA2为起始地址的4个单元中,低位数存在低地址的字节中,并在屏幕上显示出来。
三、实验预习1. 复习材料中有关计算机数据编码部分的内容。
2. 按要求编写程序。
四、实验步骤1. 编辑源文件,经汇编连接产生EXE文件。
2. 用DEBUG调试、检查、修改程序。
五、实验内容1. ACSII码转换为非压缩型BCD码STACK SEGMENT PARA STACK 'STACK'DB 256 DUP(?) ; 为堆栈段留出256个字节单位STACK ENDSDATA SEGMENT PARA 'DATA' ;定义数据段DATA1 DB 32 ; 缓冲区最大长度DB ?DB 32 DUP(?)DATA2 DB 32 DUP(?)DATA ENDSCODE SEGMENT ; 定义代码段ASSUME SS:STACKASSUME CS:CODEASSUME DS:DATASTART: MOV AX,DATAMOV DS,AXLEA DX,DATA1 ; 规定:DX存放输入字符串的缓冲区首地址MOV AH,0AHINT 21H ; 字符串输入 AL=键入的ASCII码LEA SI,DATA1LEA DI,DATA2 ; DI存放DATA2首地址INC SIMOV CL,[SI] ; 取输入字符串长度INC SI ; 指向第一个输入字符LP1: MOV AL,[SI]SUB AL,30H ; 输入的字符存为ASCII码,将其转换成十进制数CMP AL,0 ; 若AL<0(AL-0<0),跳转到LP2JL LP2CMP AL,9 ; 若AL>9(AL-9>0),跳转到LP2JG LP2MOV BL,AL ; 将AL->BLMOV [DI],BL ; 将结果存到DATA2开始的单元中INC DIINC SIDEC CLJMP LP1LP2: MOV AL,0FFH ; 若输入的不是十进制数,在相应的单元存放FFH; 以字母开头的十六进制数前面需加'0' MOV BL,AL ; 将AL->BLMOV [DI],BLINC DIINC SIDEC CL CL=CL-1JNZ LP1 ; CL=0,执行LP3中的语句LP3: MOV AH,4CH INT 21HCODE ENDSEND START2. BCD码转换为二进制码DATA SEGMENTDATA1 DW 2497HDATA2 DW ?DATA ENDSCODE SEGMENTASSUME SS:STACK,CS:CODE,DS:DATASTART: MOV AX,DATAMOV DS,AXXOR BX,BX ; 累加单元清0(BX=0)MOV SI,0AH ; 设置乘数10MOV CL,4 ; 指4位BCD码MOV CH,3 ; 循环次数=3MOV AX,DATA1 ; 取十进制数LP: ROL AX,CL ; 取数字MOV DI,AX ; 保存当前AX值AND AX,0FH ; 屏蔽高位ADD AX,BX ; 累加MUL SIMOV BX,AXMOV AX,DIDEC CH ; 循环次数减1JNZ LP ; 以上完成循环三次ROL AX,CL ; 取个位数字AND AX,0FH ; 屏蔽高位ADD AX,BX ; 进行累加,直接将最后的累加结果放到AX中MOV DATA2,AXMOV AH,4CHINT 21HCODE ENDSEND START3. 十六进制数转换为ACSII码STACK SEGMENTDB 256 DUP(?)STACK ENDSDATA SEGMENTDATA1 DB 24H,06DHDATA2 DB 4 DUP(?) ; 存放ASCII码JUMP DB 4 DUP(?) ; 4位十六进制数分别存放在DATA3的4个字节中DATA ENDSCODE SEGMENTASSUME SS:STACK,DS:DATA,CS:CODESTART: MOV AX,DATAMOV DS,AXLEA SI,DATA1LEA DI,JUMPMOV CL,2 ; 循环2次,取两次两位十六进制数LP0: MOV AL,[SI] ; 取2位十六进制数AND AL,0F0H ; 低四位为零ROR AL,4 ; 右移4位相当于除以16MOV [DI],AL ; 高位数存放在高地址字节中INC DIMOV AL,[SI] ; 取2位十六进制数AND AL,0FH ; 高四位为零MOV [DI],AL ; 低位数存放在低地址字节中INC SIINC DIDEC CLJNZ LP0LEA SI,JUMP ; SI=JUMP的首地址偏移量LEA DI,DATA2 ; DI=DATA2的首地址偏移量MOV CL,4 ; 因为是四位十六进制数,所以设置为循环4次LP1: MOV AL,[SI] ; 取JUMP中的十六进制数CMP AL,9JG LP3 ; 若AL>9(AL-9>0),跳转到LP3ADD AL,30H ; 0~9H+30H=ASCIIJMP LP3LP2: ADD AL,37H ; A~FH+30H=ASCIILP3: MOV [DI],AL ; 将ASCII码依次存入DATA2中INC DIINC SIDEC CLJNZ LP1MOV AH,09HINT 21HMOV DX,OFFSET DATA2MOV AH,09HINT 21HMOV AH,4CHINT 21HCODE ENDSEND START六、实验习题与思考1. 编程实现:从键盘上输入两位十六进制数,转换成十进制数后显示在屏幕上。
微机数模转换实验报告
微机数模转换实验报告实验目的本实验旨在探究微机数模转换的原理和应用,并通过实际操作,掌握利用微机进行数模转换的方法。
实验背景在微机系统中,数字信号与模拟信号之间的转换是非常常见的操作。
其中,数字信号是指由离散值组成的信号,而模拟信号是连续变化的信号。
将数字信号转换为模拟信号的过程称为数模转换,而将模拟信号转换为数字信号的过程称为模数转换。
实验原理微机数模转换的原理是利用数模转换芯片将数字信号转换为模拟信号。
常见的数模转换芯片有DAC(数模转换器)和PWM(脉宽调制器)。
DAC是一种能将数字信号转换为模拟信号的电子元件。
它通过将一系列数字量映射到一系列连续变化的模拟信号,实现信号的转换。
DAC的输入可以是多位的数字信号,输出是一个连续的模拟电压信号或电流信号。
PWM是一种通过改变信号的脉冲宽度来实现模拟信号的转换的电子元件。
它的原理是通过改变周期相同的脉冲信号的脉冲宽度,从而改变信号的平均值,实现模拟信号的转换。
实验步骤1. 准备工作:选取适当的数模转换芯片,并准备好相关的电路连接材料。
2. 按照电路图连接相关电路。
根据使用的芯片类型不同,连接方式也会有所区别。
可以借助数字信号发生器和示波器进行连接测试,确保连接正确。
3. 编写控制程序。
根据芯片使用的控制方式,编写相应的控制程序。
使用汇编语言或C语言编写的程序,通过微机控制芯片的工作。
4. 调试程序。
将程序下载到微机上,通过调试工具进行运行。
可以通过示波器观察输出信号是否正确。
5. 进行实验。
根据实验要求,输入相应的数字信号,观察模拟信号的输出情况。
6. 记录实验结果。
记录实验参数、实验过程和实验结果,包括输入数字信号和输出模拟信号的对应关系。
实验结果经过实验,我们成功实现了微机数模转换的功能。
通过调整输入的数字信号,我们观察到模拟信号的输出随之改变。
在实验过程中,我们发现芯片的选择和电路的连接非常关键,正确的连接方式和合适的芯片可以确保实验的顺利进行。
数模转换实验
太原师范学院 实 验 报 告Experimentation Report of Taiyuan teachers College系 部 计算机系 年 级 0903 课 程 微机原理姓 名 XXX 同组者 无 日 期 2011.6.7项 目 D/A 转换实验一、实验要求编写程序,使D/A 转换模块循环输出三角波和锯齿波。
二、实验目的1.掌握DAC0832芯片的性能、使用方法及对应硬件电路。
2.了解D/A 转换的基本原理。
三、实验说明D/A 转换是量转化成模拟量的过程,本实验输出为模拟电压信号,本次实验生成的波形较为简单,有兴趣者可试编程序生成各种波形,如方波,正弦波等,也可与键盘显示模块结合起来,构成一个简单的波形发生器,通过键盘输入各种参数,如频率,振幅(小于+5V ),方波的占空比等。
四、实验内容使用配套软件编译运行程序。
代码如下: CODE SEGMENT ASSUME CS:CODE,DS:code,SS:codeSTART: p ush cs报 告 内 容一、 实验目的 四、实验方法二、 实验原理 五、实验记录及数据处理三、 实验仪器及材料 六、误差分析及讨论20091541XX太原师范学院实验报告续页pop dsBG: NOPMOV DX,208H ;锯齿波MOV AL,00HMOV CX,07ffHBB: OUT DX,ALADD AL,01CMP AL,00HJNZ BBLOOP BBNOPMOV AL,00HMOV CX,07ffHEE: OUT DX,ALADD AL,01HCMP AL,0FFHJNE EEFF: OUT DX,ALSUB AL,01HCMP AL,00HJNE FFLOOP EEJMP BGCODE ENDSEND START五、实验电路连接。
微机原理实验——数模转换报告
学号:38152115 姓名:张亚婷 实验日期:2010年12月28日一、实验名称:数模转换二、实验目的:了解数模转换的原理,学习数模转换芯片的使用方法,掌握利用数模转换芯片产生方波或正弦波的方法。
三、实验内容:① 在数据段中存放好对应能够产生方波或正弦波的数字量,正弦波要求20个值。
② 编写程序将数据段中的数字量送到DA0832的输出端产生方波或正弦波。
四、实验原理图:电路中DA0832采用单缓冲方式,具有单、双极性输出端(图示中分别为Ua 、Ub )。
五、实验流程图:NOYESNOYESD7D0...WR1CS XFER WR2Vref ILE-+Rf Iout 1Iout 2Ua +5V DB 290H~298H IOW -+20K 20K 10K Ub (-5~0V)(-5~+5V)定义数据段,将正弦波对应的数字量存入将20个数字量依次取出,在输出端输出有键按下用电压表测量电压值并记录有键按下 返回DOS六、实验结论:在电路输出Ub端,使用电压表测量其电压值并记录,记录20个值之后使用模拟波形将测量值导入,结果图如下:七、实验心得感想:这次硬件实验,主要的心得有:硬件外部连线部分比较主要,实验时将外部电路开启更是重要,在本次试验中,开始由于忽略了外部电路,浪费了不少时间;其次,在实验中要注意实际操作与理论的差别,比如实验编程中要用到的实际地址,要据计算机的实际情况来查找确定。
附:程序清单STACK SEGMENT STACKDB 100 DUP(?)STACK ENDSDA TA SEGMENTX DB 0,255Y DB 128,168,203,232,250,255,250,232,203,168,128,88,53,24,6,0,6,24,53,88DA TA ENDSCODE SEGMENTASSUME CS:CODE,DS:DA TA,SS:STACKMAIN PROCMOV AX,DATAMOV DS,AXNEXT1:MOV SI,OFFSET YMOV CX,20NEXT:MOV AL,[SI]MOV DX,0EF00H-280H+290HOUT DX,ALMOV AH,1INT 21HINC SILOOP NEXTMOV AH,6MOV DL,0FFHINT 21HJZ NEXT1MOV AH,4CHINT 21HMAIN ENDPCODE ENDSEND MAIN。
模数数模转换实验报告
微机与接口技术实验51.采用查表法,用DAC0809产生100Hz正弦输出模拟信号,用示波器检查波形。
(8253 T0产生定时脉冲,8259 INT0向CPU中断)。
分析:定时器对4Mhz信号4000分频,产生1000hz的中断,在中断服务程序里查表法进行数模转换(表中预先存有10个数),输出的模拟值符合正弦规律,且频率正好100hz。
源程序:ICW1 equ 00010011b ; 单片8259, 上升沿中断, 要写ICW4ICW2 equ 00100000b ; 中断号为20HICW4 equ 00000001b ; 工作在8086/88 方式OCW1 equ 11111110b ; 只响应INT0 中断CS8259A equ 09000h ; 8259地址CS8259B equ 09001hCONTROL equ 08003hCOUNT0 equ 08000hdac0832 equ 0a000hdata segmentnum db 6,52,128, 203, 249, 249, 203, 128, 52, 6;十个点进行正弦逼近data endscode segmentassume cs:code,ds:datainit8259 proc near ;8259的初始化子程序mov dx, CS8259Amov al, ICW1out dx, almov dx, CS8259Bmov al, ICW2out dx, almov al, ICW4out dx, almov al, OCW1out dx, alretinit8259 endpinit8253 proc near ;8253的初始化子程序mov al, 34h ; 通道0,方式2mov dx, CONTROLout dx, almov ax,4000 ;4000分频mov dx, COUNT0out dx, almov al,ahout dx, alretinit8253 endpint0 proc near ;0号中断的服务程序push axpush dxcmp si, 10 ;如果指针过了一个周期的数,就要返回到第一个重新来jnz goonmov si,offset numgoon:mov al,[si]inc almov dx,dac0832 ;将数字输入数模转换,成为模拟量输出out dx,alinc simov dx, CS8259Amov al, 20h ; 中断服务程序结束指令out dx, alpop dxpop axiretint0 endpstart: clicall init8259call init8253;将中断服务程序的入口地址写入mov ax, 0mov ds, axmov bx, 4*ICW2 ; 中断号mov ax, codeshl ax, 4 ; x 16add ax, offset Int0 ; 中断入口地址(段地址为0)mov [bx], axmov ax, 0inc bxinc bxmov [bx], ax ; 代码段地址为0mov ax,datamov ds,axmov si,offset numstiwait:jmp wait ;等待中断code endsend start2.设计ADC0832模数采样程序,对电位器输出电压采样,并用发光二极管显示采样值。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
北京航空航天大学
自动控制原理
实验报告
数/模转换
院系:宇航学院
探测制导与控制技术
班级:1 2 1 5 1 4
学号:12151059
姓名:张立新
数/模转换实验
一、实验目的
了解数/模转换的原理,学习数/模转换芯片的使用方法,掌握利用数/模转换芯片产生方波及正弦波的方法。
二、实验内容
在数据段中存放好对应于产生方波和正弦波的数字量,正弦波要求20个值。
编写程序将数据段中的数字量送到DAC0832的输出端产生方波和正弦波。
三、实验原理图
四、程序流程图
五、实验结论
符合预期,输出端能够在虚拟示波器上输出方波和正弦波。
六、实验程序
方波:
PORT EQU 0EF00H-280H+290H STACK SEGMENT STACK
DW 100 DUP(?)
STACK ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK MAIN PROC
NEXT: MOV DX,PORT
MOV AL,0
OUT DX,AL
CALL DELAY
MOV AL,0FFH
OUT DX,AL
CALL DELAY
MOV DL,0FFH
MOV AH,6
INT 21H
JZ NEXT
MOV AH,4CH
INT 21H
MAIN ENDP
DELAY PROC
PUSH BX
PUSH CX
MOV BX,10000
MOV CX,0
NEXT2:LOOP NEXT2
DEC BX
JNZ NEXT2
POP CX
POP BX
RET
DELAY ENDP
CODE ENDS
END MAIN
正弦波
PORTA EQU 0EF00H-280H+290H
STACK SEGMENT STACK
DW 100 DUP(?)
STACK ENDS
DATA SEGMENT
VAL DB 128,163,203,232,250,255,250,232,203,168 DB 128,88,53,24,6,0,6,24,53,88
DATA ENDS
CODE SEGMENT
ASSUME CS:CODE,SS:STACK,DS:DATA
MAIN PROC
MOV AX,DATA
MOV DS,AX
NEXT2: MOV DX,PORTA
MOV SI,OFFSET VAL
MOV CX,20
NEXT1: MOV AL,[SI]
OUT DX,AL
INC SI
MOV AH,1
INT 21H
CMP AL,0DH
JE EXIT
LOOP NEXT1
JMP NEXT2 EXIT: M OV AH,4CH
INT 21H MAIN ENDP CODE ENDS
END MAIN。