Pixiv - KiraraShss
实验四 A/D转换实验
738 字
4 分钟
实验四 A/D转换实验
实验四 A/D转换实验
1. 实验内容
基础+扩展部分
编写实验程序,将 ADC 单元中提供的 0V~5V 信号源作为 ADC0809 的模拟输入量,进行 A/D 转换,转换结果通过 8 位 LED 进行显示。分别使用延时等待、查询和中断三种方式实现本实验的实验内容。
2. 实验原理
-
延时方式:又名等待方式、定时采样方式,即向A/D转换器发出启动命令后,进行软件延时(等待),经过等待后读A/D转换数据。
-
查询方式:向A/D转换器发出启动命令后,查询EOC状态。若EOC=1,则表示A/D转换已经结束,可以读结果;若EOC=0,则说明A/D转换正在进行中,应继续查询,直到EOC=1为止。
-
中断方式:向A/D转换器发出启动命令后,主程序可转去执行其他任务,一旦A/D转换结束,EOC由0变为1产生一个上升沿作为中断信号,在中断处理中读出A/D转换结果。

3. 连线

ABC口连接系统总线 XA1-XA3(本实验中使用IN0,即000,因此也可以直接接地)
EOC口需先经过机箱左侧的转换单元,再接到8255A口的PA7上。
8255连线见实验一
4. 实验代码
(1) 延时方式:
P8255A EQU 0600HP8255B EQU 0602HP8255C EQU 0604HP8255MODE EQU 0606H
ADC0809A EQU 0640H
CODE SEGMENT ASSUME CS:CODESTART: MOV DX, P8255MODE MOV AL, 80H OUT DX, ALMAIN: MOV DX, ADC0809A OUT DX, AL ;启动A/D转换 CALL DELAY ;延时一段时间等待转换结果 IN AL, DX ;读A/D转换结果 MOV DX, P8255B OUT DX, AL ;输出到LED上 JMP MAIN
DELAY: MOV CX, 0FFFFH LOOP $ RET
CODE ENDS END START(2) 查询方式:
P8255A EQU 0600HP8255B EQU 0602HP8255C EQU 0604HP8255MODE EQU 0606H
ADC0809A EQU 0640H
CODE SEGMENT ASSUME CS:CODESTART: MOV DX, P8255MODE MOV AL, 90H OUT DX, ALMAIN: MOV DX, ADC0809A OUT DX, AL ;启动A/D转换JUDGE: MOV DX, P8255A IN AL, DX ;读EOC CMP AL, 80H ;判断EOC是否为高电平 JNZ JUDGE ;若不为高则继续查询等待
MOV DX, ADC0809A IN AL, DX ;读A/D转换结果 MOV DX, P8255B OUT DX, AL ;输出到LED上 CALL DELAY JMP MAIN
DELAY: PUSH CX MOV CX, 0FFFH LOOP $ POP CX RET
CODE ENDS END START(3) 中断方式
P8255A EQU 0600HP8255B EQU 0602HP8255C EQU 0604HP8255MODE EQU 0606H
ADC0809A EQU 0640HADC0809B EQU 0642H
CODE SEGMENT ASSUME CS:CODESTART: MOV DX, P8255MODE MOV AL, 90H OUT DX, AL
LEA AX, MIR6 MOV SI, 0038H MOV [ES:SI], AX MOV AX, CS MOV SI, 003AH MOV [ES:SI], AX
CLI MOV AL, 11H OUT 20H, AL MOV AL, 08H OUT 21H, AL MOV AL, 04H OUT 21H, AL MOV AL, 07H OUT 21H, AL MOV AL, 2FH OUT 21H, AL STI
MAIN: CLI ;MOV DX, ADC0809B ;MOV AL, 01H OUT DX, AL MOV DX, ADC0809A OUT DX, AL ;启动A/D转换 CALL DELAY STI JMP MAIN
MIR6: ;检测到EOC上升沿,进入中断 MOV DX, ADC0809A IN AL, DX ;读A/D转换结果 MOV DX, P8255B OUT DX, AL ;输出到LED上 IRET
DELAY: PUSH CX MOV CX, 0FFFH LOOP $ POP CX RET
CODE ENDS END START文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
相关文章 智能推荐
1
实验五 D/A转换实验
微机实验 实验五 D/A转换实验1. 实验内容基础部分 编写程序,产生周期的锯齿波、矩形波、三角波和阶梯波,经 D/A 转换,显示在软件模拟示波器上。要求:每种波形的周期数、阶梯波的阶梯数可通过参数设置。 扩展部分 在软件模拟示波器上显示锯齿波、矩形波、三角波和阶梯波,并使用单脉冲开关KK1在四种波形间进行切换。 2. 实验原理
2
实验八 数码管显示实验
微机实验 实验八 数码管显示实验1. 实验内容基础部分 用一片 8255 接口芯片的 A 口和 B 口分别连接数码管段码接口(ABCDEFG、Dp)和位码接口(X1~X6)。编写程序实现以下两种显示方式: 使六位数码管从右到左逐位显示移动的数字 0 到 9,即数字 0 从最右端移动到最左端,数字 1 从最右端移动到最左端,….,
3
实验一 8255并行接口实验
微机实验 实验一 8255并行接口实验1. 实验内容基础部分编写一个基本输入输出程序,使8255的A口为输入,B口为输出,完成拨动开关到数据灯的数据传输。要求:数据灯的显示随开关动态变化。拓展部分在基础实验上增加如下功能: 若开关 K7~K0 均为高电平,则程序退出。 当 K0 为高电平时,数据灯高4位亮; 当 K0 为低电平时
4
实验二 存储器扩展实验
微机实验 实验二 存储器扩展实验1. 实验内容基础部分 编写实验程序,将 0000H~000FH(16个十六位的数据)写入SRAM从 8000:0000H 起始的一段空间中,并通过系统命令查看该存储空间,检查写入数据是否正确。 要求:分别按规则字、非规则字和字节三种方式将数据写入存储器,并观察实验结果。 拓展部分 编写程序实现如
5
实验三 8259中断优先级实验
微机实验 实验三 8259中断优先级实验1. 实验内容基础部分 编写中断实验程序: 主程序通过 8255 的 PB 口输出 0FFH,使数据灯 D0~D7 全亮; IR6中断服务程序使绿灯亮(红灯灭),延时一段时间后返回主程序; IR7中断服务程序使红灯亮(绿灯灭),延时一段时间后返回主程序。 要求: 按单脉冲开关 KK1:响应
随机文章 随机推荐