微机实验及课程设计——数模与模数转换
- 格式:doc
- 大小:275.00 KB
- 文档页数:8
实验报告课程名称微机接口与汇编语言实验项目实验五数/模转换器和模/数转换器实验实验仪器 TPC-USB通用微机接口实验系统系别计算机学院专业班级/学号学生姓名实验日期 2013.12.19成绩指导教师胡信裕实验五数/模转换器和模/数转换器实验一、实验目的1. 了解数/模转换器的基本原理,掌握DAC0832芯片的使用方法。
2. 了解模/数转换器的基本原理,掌握ADC0809的使用方法。
二.实验设备1.PC微机系统一套2.TPC-USB通用微机接口实验系统一套三.实验要求1.实验前要作好充分准备,包括程序框图、源程序清单、调试步骤、测试方法、对运行结果的分析等。
2.熟悉与实验有关的系统软件(如编辑程序、汇编程序、连接程序和调试程序等)使用方法。
在程序调试过程中,有意识地了解并掌握TPC-USB通用微机接口实验系统的软硬件环境及使用,掌握程序的调试及运行的方法技巧。
3.实验前仔细阅读理解教材相关章节的相关内容,实验时必须携带教材及实验讲义。
四.实验内容及步骤(一)数/模转换器实验1.实验电路原理如图:DAC0832采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub),编程产生以下锯齿波(从Ua和Ub输出,用示波器观察)参考电路图2. 8位D/A转换器DAC0832的口地址为290H,输入数据与输出电压的关系为:(UREF表示参考电压,N表示数数据),这里的参考电压为PC机的+5V电源。
3. 产生锯齿波只须将输出到DAC0832的数据由0循环递增。
4. 参考流程图:参考流程图(二)模/数转换器1. 实验电路原理图如图。
将(一)的DAC的输出Ua,送入ADC0809通道1(IN1)。
连接参考电路图2. 编程采集IN1输入的电压,在屏幕上显示出转换后的数据(用16进制数)。
3. ADC0809的IN0口地址为298H,IN1口地址为299H。
4. IN0单极性输入电压与转换后数字的关系为:其中Ui为输入电压,UREF为参考电压,这里的参考电压为PC机的+5V电源。
东南大学《微机实验及课程设计》实验报告实验八数模与模数转换姓名:学号:专业:实验室:计算机硬件技术实验时间: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方波:正弦波:。
实验报告实验项目名称: D/A、A/D转换实验同组人:实验时间:实验室:指导教师:一、实验目的:(l)学习外部接口的应用。
ADC0809、DAC0832的工作方式,输入/输出方式的应用。
(2)熟悉Proteus软件电路设计和Keil软件程序调试方法。
重点:ADC0809、DAC0832的工作方式二、实验顶备知识:(l)AT89S51与ADC、DAC接口的连接,ADC0809、DAC0832的基本原理。
(2)Proteus软件应用,Keil软件程序调试应用。
三、实验内容㈠利用DAC0832转换器输出锯齿波、三角波、方波和正弦波。
1、设计要求:以DAC0832转换器和AT89C52单片机设计仿真电路,该电路能在虚拟示波器上显示出锯齿波、三角波、方波和正弦波,并能用虚拟电压表显示输出电压值,要求电压范围为0~15V且周期约为510ms。
2、仿真电路原理图元器件选取:①AT89C52:单片机;②RES、RX8:电阻、8排阻;③CRYSTAL:晶振;④CAP、CAP-ELEC:电容、电解电容;⑤DAC0832:D/A转换器;⑥LM358N:运算放大器。
图6-1 电路原理图void TransformData4(uchar c0832data4){*((uchar xdata*)DAC0832Addr4)=c0832data4;}void Uart_Init( void ){SCON=0x52;TMOD=0x21;TCON=0x69;TH1=0xf3;}void Delay(){uint i;for (i=0;i<250;i++) ;}㈡ ADC0809电压模/数转换1、设计要求:以AT89C52单片机为核心设计ADC0809模数转换仿真电路,模拟电压输入由可变电位器提供。
输入电压范围0~,经ADC0809转换成对应的0~255通过数码管显示。
2、仿真电路原理图元器件选取:① AT89C52:单片机;②RES:电阻;③CRYSTAL:12MHz晶振;④CAP、CAP-ELEC:电容、电解电容;⑤7SEG-MPX4-CC:4位七段共阴极数码管;⑥74LS02、74LS04、74LS74、74LS373︰或非门、反相位、D触发器、地址锁存器;⑦POT-LIN:变阻器;⑧ADC0809:8位A/D转换器。
数模转换器和模数转换器实验报告材料一、实验目的1.学习和掌握数模转换器和模数转换器的原理和工作方式;2.了解数模转换器和模数转换器在各种应用领域的具体应用;3.掌握数模转换器和模数转换器的实际测量方法和数据处理。
二、实验器材和原理1.数模转换器(DAC):将数字信号转换为模拟信号。
它可以将二进制数字信号转换为连续的模拟信号,并且可以根据控制信号的不同而输出不同的电压或电流;2.模数转换器(ADC):将模拟信号转换为数字信号。
它能够实时取样模拟信号,并将其转换为对应的数字信号;3.示波器:用于观测和显示信号波形;4.信号发生器:用于产生输入信号。
三、实验过程1.数模转换器实验:(1)将示波器的X轴连接到数模转换器的数字输入端,Y轴连接到模拟输出端;(2)通过示波器上的控制按钮,调整示波器显示的方式,使其能够显示数模转换器输出的模拟信号波形;(3)使用信号发生器产生不同频率的正弦信号,并通过数模转换器将其转换为模拟信号;(4)观察和记录示波器上显示的模拟信号波形,并进行分析和比较。
2.模数转换器实验:(1)将信号发生器的输出连接到模数转换器的模拟输入端;(2)调整信号发生器的频率和幅度,产生不同的模拟信号;(3)将模拟信号输入到模数转换器中,并观察和记录模数转换器输出的数字信号;(4)使用示波器观测和记录模数转换器输出的数字信号波形,并进行分析和比较。
四、实验结果和数据处理1.数模转换器实验结果:根据示波器显示的模拟信号波形,可以观察到数模转换器能够将输入的数字信号转换为连续的模拟信号,并且输出的模拟信号的波形与输入信号的波形一致。
2.模数转换器实验结果:根据示波器显示的数字信号波形,可以观察到模数转换器能够将输入的模拟信号实时取样并转换为对应的数字信号。
对于不同频率和幅度的输入信号,模数转换器能够正确地输出对应的数字信号。
五、实验结论数模转换器和模数转换器是将数字信号和模拟信号相互转换的重要器件。
电路数模转换与模数转换理解模拟与数字信号的转换在现代电子技术中,模拟信号和数字信号的转换是非常重要的。
模拟信号是连续变化的,它可以应用于音频、视频和传感器等领域。
而数字信号是离散的,能够以二进制形式表示,广泛应用于计算机和通信系统。
为了实现模拟和数字信号之间的转换,人们发展了数模转换和模数转换技术。
1. 数模转换数模转换是将数字信号转换为模拟信号的过程。
在这个过程中,将离散的数字信号转换为连续变化的模拟信号。
数模转换器(DAC)是实现这一转换的关键设备。
数模转换的基本原理是根据数字信号的大小,控制输出信号的幅度。
数模转换器内部存储有一系列的数字值,通过选择合适的数字值,即可获得所需的输出模拟信号。
数模转换器通常包括采样和保持电路、数字/模拟转换电路和滤波电路。
2. 模数转换模数转换是将模拟信号转换为数字信号的过程。
在这个过程中,将连续变化的模拟信号转换为离散的二进制数字信号。
模数转换器(ADC)是实现这一转换的关键设备。
模数转换的基本原理是通过对模拟信号进行采样和量化,再将采样和量化数据编码为二进制形式。
模数转换器通常包括滤波电路、采样电路、量化电路和编码电路。
3. 模拟与数字信号的转换应用模拟与数字信号的转换应用广泛,下面以音频和通信领域为例进行讨论。
3.1 音频领域在音频领域,模拟与数字信号的转换被广泛应用于音频播放和录制设备中。
通过ADC将声音转换为数字信号后,可以方便地进行数字处理和存储。
而通过DAC将数字信号转换为模拟信号后,可以驱动扬声器产生声音。
3.2 通信领域在通信领域,模拟与数字信号的转换被广泛应用于调制解调器和通信系统中。
调制解调器通过模数转换将模拟信号转换为数字信号用于传输,再通过数模转换将数字信号转换为模拟信号用于接收。
这种方式可以有效地提高通信系统的抗干扰性能和信息传输速率。
总结:电路中的数模转换和模数转换是实现模拟与数字信号转换的重要技术。
数模转换器和模数转换器在音频、通信等领域具有广泛的应用。
数模模数转换实验报告一、实验目的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 转换,其主要原理为:将一待转换的模拟信号与一个推测信号进行比较,根据推测信号是大于还是小于输入信号来决定增大还是减少该推测信号,以便向模拟输入逼近。
【实验三】数/模、模/数转换实验一、实验目的:了解数/模、模/数转换的基本原理,掌握ADC0809和DAC0832芯片的使用方法。
二、实验任务:在实验箱上设计并连接ADC0809 芯片的接线,按中断方式(利用EOC 发中断申请)对单通道模拟量进行A/D 转换。
A/D 转换结果送入PC 机后,再由PC 机送至DAC0832 进行D/A 转换,结果送至双踪示波器,与原信号进行对比观察。
模拟信号源:由电位器中心抽头可以得到一个可调节的直流电压。
电位器一端接地,另一端接+5V。
三、实验电路:四、程序清单:;ADC.ASMDA TA SEGMENTMESG3 DB 'START! HE HE !'DB 0DH,0AH,'$'OLD0A DD ?DA TA ENDSSSEG SEGMENT PARA STACK 'STACK'DB 256 DUP(?)SSEG ENDSCODE SEGMENTASSUME CS:CODE,DS:DATA,SS:SSEGBEGIN PROC FARPUSH DSMOV AX,0PUSH AXMOV AX,DATAMOV DS,AXCLICALL I8259 ;8259初始化CALL RD0A ;读旧向量CALL WR0A ;写新向量MOV DX,OFFSET MESG3MOV AH,09HINT 21HSTI ;开中断MOV DX,230HMOV AL,0 ;送初值OUT DX,AL ;激活AD WAIT_IN:MOV AH,1H ;有键输入INT 16HJZ W AIT_INEXIT_DOS: ;退出CALL RESETRETBEGIN ENDP;------------------------------------------------------- ;以下是中断服务程序,执行AD DA转换功能SERVICE PROC FARPUSH DSPUSH AX ;保护现场MOV DX,230H ;从230端口读IN AL,DX ;模拟量MOV DX,228H ;将转换结果送OUT DX,AL ;228 229端口MOV DX,229HOUT DX,ALMOV DX,230H ;重新送新值给MOV AL,0 ;230端口,等待OUT DX,AL ;下一次的输入QUIT:MOV AL,20H ;送EOC中断OUT 20H,AL ;结束命令POP AXPOP DSIRETSERVICE ENDP;------------------------------------------------------- I8259 PROCIN AL,21HAND AL,11111011BOUT 21H,ALIN AL,0A1HAND AL,11111101BOUT 0A1H,ALRETI8259 ENDP;------------------------------------------------------- RD0A PROCMOV AX,350AHINT 21HMOV WORD PTR OLD0A,BXMOV WORD PTR OLD0A+2,ESRETRD0A ENDP;------------------------------------------------------ WR0A PROCPUSH DSMOV DX,OFFSET SERVICEMOV AX,SEG SERVICEMOV DS,AXMOV AX,250AHINT 21HPOP DSRETWR0A ENDP;------------------------------------------------------- RESET PROCPUSH DSMOV DX,WORD PTR OLD0AMOV DS,WORD PTR OLD0A+2MOV AX,250AHINT 21HIN AL,0A1HOR AL,00000010B OUT 0A1H,AL POP DSRETRESET ENDP;------------------------------------------------------CODE ENDSEND BEGIN五.实验分析:我决的本次实验特别简单,好象比前两次的简单多了。
东南大学
《微机实验及课程设计》
实验报告
实验八数模与模数转换
姓名:学号:
专业:实验室:计算机硬件技术实验时间: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—BCFF
TPC设备输入输出范围: B800—B87F
接口芯片内存范围: FDC00000—FDCFFFFF
(二)、DAC 实验电路原理如图1所示,DAC0832 采用单缓冲方式,具有单双极性输入端(图中的Ua、Ub)。
进入DEBUG 调试,输出命令(O 290 数据)输出数据给DAC0832,用万用表测量单极性输出端Ua 及双极性输出端Ub 的电压,验证数字与电压之间的线性关系。
实验现象:进入DEBUG调试,输出命令O B810 FF,用示波器观察单极性输出端Ua的电压,为从接地的0跳至大约-5V。
输出命令O B810 80,用示波器观察,电压跳至大约原来的一半。
同样,观察双极性输出端Ub的电压,输出数值的模与单极性的相同,符号相反。
可得出结论:数字与电压之间存在线性关系。
(三)、分别编程产生锯齿波、正弦波电压波形(从Ub 输出,用示波器观察)。
1)锯齿波参考程序见0832_sawtooth.asm
主要程序片段如下:
lll: mov al,cl
out dx,al
inc cl ;cl 加1
inc cl
inc cl
inc cl
inc cl
inc cl
inc cl
push dx
mov ah,06h ;判断是否有键按下
mov dl,0ffh
int 21h
pop dx
jz lll ;若无则转LLL
mov ah,4ch ;返回DOS
int 21h
程序分析:此片段中存在push dx 和pop dx两条指令,为了不影响地址的值,因为在判断是否有键按下时,使用了dl的空间,改变了里面的值,所以需要保存地址的值,进行入栈出栈。
产生锯齿波的原因是每显示一次值加7,当加到256时,即cl=1111时,向ch进位,cl又从0开始计数,于是产生锯齿波。
2)正弦波参考程序见0832_sinewave.asm
主要程序片段如下:
ll: mov si,offset sin ;置正弦波数据的偏移地址为SI
mov bh,32 ;一组输出32 个数据
lll: mov al,[si] ;将数据输出到D/A 转换器
mov dx,io0832a
out dx,al
mov ah,06h
mov dl,0ffh
int 21h
jne exit
mov cx,1
delay:
loop delay ;延时
inc si ;取下一个数据
dec bh
jnz lll ;若未取完32 个数据则转lll
jmp ll
程序分析:此程序是将一个周期的数据存入一个数组中,再周期性地重复地取值,画出正弦波。
本程序加了一个延时,注意了时序问题。
(四) ADC 实验电路原理图如图2,通过实验台左下角电位器RW1 输出0~5V直流电压送入ADC0809通道0(IN0),利用debug 的输出命令启动A/D转换器,输入命令读取转换结果,检查硬件是否正常,验证输入电压与转换后数字的关系。
启动IN0 开始转换: O 0C818 0;读取转换结果: I 0C818。
调试:连接好电路后,输入指令:O B818 0 ; I B818,观察显示的结果。
再转动电位器,再重复输入命令,观察显示的结果,发现输出的值会随着电位器的变化而变化。
用示波器读取输入的电压值,观察大致
满足关系:。
(五)编程采集IN0 输入的电压,在屏幕上显示出转换后的数据(用16 进制数)。
参考程序见0809_io.asm
程序分析:送值至转换器转换与前面分析相同,主要是如何将转换的值显示在显示屏上。
in al,dx ;从A/D 转换器输入数据
分别显示高四位与低四位:
mov bl,al ;将AL 保存到BL
mov cl,4
shr al,cl ;将AL 右移四位,使AL只保持高四位的值
call disp ;调显示子程序显示其高四位
mov al,bl
and al,0fh ;进行与运算,只保留低四位的值,高位为0
call disp ;调显示子程序显示其低四位
调用显示子程序:
mov dl,al
cmp dl,9 ;比较DL 是否>9
jle ddd ;若不大于则为'0'~'9',加30h 为其ASCII 码
add dl,7 ;否则为'A'~'F',再加7
ddd: add dl,30h ;显示
mov ah,02
int 21h
此程序加了回车符程序,用02号功能实现,赋给DL于20H,显示回车。
同样也有判断是否有键按下的程序,用到DX入栈出栈的方法。
实验现象:观察到旋动电位器,会使显示在显示屏上的值不断改变。
(六) 将JP3 的1、2 短接,使IN1 处于双极性工作方式,并给IN1 输入一个低频交流信号(幅度为±5V),编程采集这个信号数据并在屏幕上显示波形。
参考程序见0809_crt.asm
没有用IN1,仍用IN0,可看到如下现象:
程序分析:送值至转换器转换与前面分析相同,主要是如何将转换的值以图像方式显示在显示屏上。
以CX的值为横坐标,以DX的值为纵坐标。
在读入数值前加入延时,是考虑到时序问题。
in al,dx ;读入数据
mov ah,0
mov dx,368 ;dx 为纵坐标
sub dx,ax
此程序片段的效果是:绘点的纵坐标会随着输入数据的变化而变化。
下面的片段是对横坐标的处理:
cmp cx,639 ;一行是否满
jz start ;是则转start
inc cx ;继续画点
实验现象:旋转电位器会发现显示在屏幕上的线会上下移动。
因为采样的时间间隔太短,致使显示的是一条直线,没有明显的上下波动。
四.提高与创新研究
在最后一个实验中,由于采样时间短,手动的速度无法与采样时间相比,且没有给IN1输入低频交流信号,所以无法看到完整波形,需要加大采样时间。
将IN1连接一个8253起分频作用,让显示器显示该方波。
在延时程序中加入如下形式的延时:
ZZZ: mov cx,0
ZZ: loop ZZ
dec bx
jne ZZZ
实验现象:观察到显示屏上显示该方波。
并且显示速度较慢。
五.分析与总结
1、具体实验分析见各部分的调试实验分析。
2、硬件是基础,做实验时要首先检查硬件设备是否可用,保证后续实验的可检测性。
3、在实验中应不要带电接线、插拔芯片;插拔接线时轻微转动,便于插拔。
4、在实验中学会使用示波器、万用表、逻辑笔观察、测量。