1、 微机原理与接口技术课程设计微机原理与接口技术课程设计 数据采集数据采集 二零一三年一月八号 一、任务要求 对一路温度、一路压力信号进行巡回数据采集,并把 A/D 转换后的结果在实 验机的数码管上显示出来。采集到的数据超过规定的限值时,使发光二极管发光 报警。 二、硬件连线 本程序实现两路数据采集:一路采集温度信号,一路采集压力信号。对每一 路信号要连续采集 8 次,然后把 8 次 A/D 转化后的平均值显示在数码管上。左 边三位显示压力值,右边三位显示温度值。 (1)拨码开关:将拨码开关 SW2 拨上。表示将 GAL20V8 的地址输入 A-5 接至 系统地址线 A5;A-6 接至地址线 A
2、6;A-7 接至地址线 A7。 (2)压力实验模块的“压力输出”端接至 ADC0809 的输入端 IN0,温度实验模 块的“温度输出”端接至 ADC0809 的输入端 IN1。 (3) 0809 的 EOC 的输出端与 8259 的 IRQ0 端相连, 0809 的 CS 连 CS8 (3E0H) 。 (4) 8259 的片选 CS-1 连地址输出 CS6 (3A0H) , 8259 的 INT1 连总线输入 INTR, 8259 模块的 INT-A 连总线的 INTA,8259 的 SP/1 连+5V。 (5)8253 的片选 CS 连地址输出端 CS1(300H) ,8253 的 A0、A
3、1 分别连地址 总线的 A2、A3,8253 的 GATE0 连+5V,8253 的 CLK0 连 74LS393 分频输出的 47K 输出端, 8253 的 OUT0 连到任一发光二极管上; 8253 的 GATE1 连+5V, 8253 的 CLK1 连 74LS393 分频输出的 47K 输出端,8253 的 OUT1 连到温度实验模块 的“占空比输入”端。 (6)8255 并行模块下方的 4 个片选信号 CS-1、CS-2、CS-3 和 CS-4 分别与地址 译码输出模块的对应引脚(实验箱中部的 CS-1、CS-2、CS-3 和 CS-4)连接。 (7)74 系列模块中开放的 3 根输
4、出信号和 4 根输入信号对键盘进行控制。键盘 的行信号 Q_0、Q_1、Q_2、Q_3 分别与开放的输入信号 Q0、Q1、Q2、Q3 相连, 键盘的列信号 P_0 和开放的输出信号 P0 相连,片选信号 CS2 接 CS4(360H) 。 如按上述连线, 则 8255 的 A 口、 B 口、 C 口和控制口地址分别是 200H、 204H、 208H、20CH;8259 的奇地址是 3A8H,偶地址是 3A0H。 三、流程图 主程序模块: 中断服务程序模块: 初始化 设置中断向量 开中断 启动 0809 通道 IN0 测试报警标志 Alarmflag=0? Y 求平均值 转化为 BCD 码 显
5、示采集的压力值 A A 启动 0809 通道 IN1 测试报警标志 Alarmflag=0? Y 求平均值 转化为 BCD 码 显示采集的温度值 有键按下? Y 返回 DOS N 报警(LED 亮) N N 报警(LED 亮) 四、代码实现 1、8255 模块: 显示温度值、压力值; 2、8253 模块: (1)输出负脉冲控制 LED 灯亮,即报警; (2)8253 的 OUT1 作为“占空比输入” 。 3、8259 模块: 实现中断服务程序,即进行压力和温度的数据采集。 4、74 系列模块: 实现数据采集的停止; 中断服务程序 保护现场 读采样值 存入 buffer 缓冲区 比较采样值 是否
6、超限? Y 报警标志 alarmflag 置 1 发中断结束命令 恢复现场 中断返回 N 采样次数小 于 8? N Y 启动下一次转换 5、A/D 转换模块: 实现温度、压力模拟信号向数字信号的转换。 源代码如下: .486p data segment use16 at 0 org 1000h alarmflag db ? max db ? pbai db ? pshi db ? pge db ? tbai db ? tshi db ? tge db ? pbuffer db 8 dup(?) tbuffer db 8 dup(?) times db ? chu db ? count db ? stackp equ 1100h data ends code segment use16 assume cs:code,ds:data,ss:data org 1500h beg:jmp start sevencod db 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H db 80H,90H,88H,83H,0C6H,0A1H,86H,8EH s