课程设计报告纸
数据采集系统三(中断法)
一、实验目的
进一步掌握微机原理知识,了解微机在实时采集过程中的应用,学习、
掌握编程 和程序调试方法。
二、实验内容
1、用中断法,将 ADC 0809 通道 0外接 0 ~ 5V 电压,转换成数字量后,在七段 LED 数码管上,以小数点后两位(几十毫伏)的精度,显示其模拟电压的十进值; 0809 通道 0 的数字量以线性控制方式送 DAC0832 输出,当通道 0的电压为 5V时,0832的OUT 为 0V, 当 通道 0的电压为 0时,0832的OUT 为2.5V;此模拟电压再送到 ADC 0809 通道 1,转换后 的数字量在 CRT 上以十六进制显示。
2、ADC 0809 的 CLK 脉冲,由定时器 8254的 OUT0 提供;ADC 0809 的 EOC 信号, 用作 8259 中断请求信号。
3 、要有较好的人机对话界面;控制程序的运行。
三、总体设计
1 、ADC 0809的 IN0 采集电位器 0 — 5V 电压,IN1 采集 0832 输出的模拟量。
2 、 DAC 0832将 ADC 0809的 IN0 数字量后重新转换成模拟量输出。 3 、8259用于检测 ADC 0809转换是否结束和向 CPU发送 INTR信号 4 、 8255 为七段 LED数码管显示提供显示驱动信息。 5 、七段 LED 数码管显示 ADC 0809的 IN0 的值。 6 、8254提供 ADC 0809的采样时钟脉冲。
7、有良好的人—机对话界面。系统运行时,显示主菜单,开始数据采集 , 在数据采 集时 , 主键盘有键按下 , 退出返回 DOD 系统。
四、硬件设计
因采用了 PC机和微机实验箱 , 硬件电路设计相对比较简单 , 主要利用
微机实验箱 上的 8255并行口、ADC0 809、DAC0 832、七段 LED数码管单元、 8254定时/ 计数器、74LS574 输出接口、电位器等单元电路 , 就构成了数据采集系统 , 硬件电原理框图 4-3-1 所示。
- 1 -
1
2
Rfe
00883
WR D0-D7 WR RD A0 A1 CS D0-D7
Iout12 Iout23 GATE0
3
课程设计报告纸
4
XD0-XD7
/Y2
XIOW
XD0-XD7
XIOW XIOR
XA2 XA3 /Y3 XD0-XD7
XIOW
XIOR
/Y0 XD0-XD7
XIOW XIOR INTR /Y7 XD0-XD7
4 322
6 75 1B LM324 +5V 8254
CLK0 OUT0 CLK
XA2
XA3
C XA4 IN0 IN1
1.8432MHZ OUT 10K
WR RD CS D0-D7 WR RD NTR CS D0-D7 WR RD A0 A1 CS
+5V
0809
EOC
IR0
8259
A0
XIOW XIOR
XA2 XA3
/Y1 XA5
XA6 XA7
PA0-PA5 L1-L6
8255
PB0-PB7
A,B-G,Dp
数码管
键盘单元
74138
/Y0 /Y1 /Y2 /Y3 /Y4 /Y5 /Y6 /Y7
Title
Size Number
1 2
Da
File8-Jan-2011 te:
f :
4 3
D:\\protel
-2-99se\\Library\\Sch\\syD.dradwbn B
y :
Revision
Sheet- 2 -o
课程设计报告纸
五、软件设计
本设计通过软件编程,实现模 /数转换器 0809 分别对 IN0 0-5V 直流电压的采样 ,和
经 0832 线性控制后输出电压的 IN1 采样,IN0 的值转换成十进制后 , 在七段数码管上显示 ; IN1 的值在显示器上显示。 CPU 根据 IN0 的值,使八位发光二极管根据题目的要求,指示 相应的范围。
1、设计思想 数据采集系统分成四个功能模块,分别是主程序模块、量纲转换模块、数码管显示 模块、中断服务子程序模块。
(1) 主程序模块 根据题目要求,采用中断方式实现数据采集 ,因此可把读取 IN0 的值并保存 ,和此数 字量经线性控制后送给 0832输出, 作为 0809 IN1 的模拟电压和 IN1的启动、读取以及 IN0 的 BCD码转换 , 放在中断服务子程序模块中完成。 所以,在主程序模块上主要实现启动 0809 IN0、显示模块的调用、和中断结束部分程序。
(2) 键盘扫描模块 设置键盘扫描模块,采用行列反转发,先 PC4-PC7输出低电
平,然后读入 PC0-PC3.
再让 PC0-PC3输出低电平,读入 PC4-PC7.合并扫描值,获得按键值。
(3) 量纲转换模块 量纲转换模块在中断服务程序内完成,只要将 IN0 的数字量分别除以 51, 商存入显 示 IN0 的个位存储单元 ; 余数乘以十,再除以 51, 商存入十分位存储单元 ; 余数再乘以十, 除以 51, 若余数大于 25,则商加 1, 小于 25 则舍去, 这样就达到四舍五入的精度 , 再把 商存入百分位存储单元 ; 以供七段数码管显示时调用, BCD码转换模块可参考图 10 所示的 流程图。
(4) 数码管显示模块 数码管显示模块比较简单,自编程序可参考实验指导书图 1-6 所示的流程图,也可 参考实验 8255 并行口中的显示模块,应注意的是在显示个位时 , 要加上小数点的显示, 这可以在查表获取个位段码后,再加上 80H来实现, 注意每一位显示后要适当延迟时间。 (5) 中断服务子程序模块
考虑到 0832的输出是 0809 IN1 的输入,因此,为防止在执行中断服务子程序时,二 次进入中断服务子程序 , 故在进入中断服务子程序后 ,应关闭中断 ,而在退出中断前开中断, 以便下次中断进入。中断服务子程序模块主要完成对 IN0 数据的读取和保存,对 IN1 的启 动和读取,对 IN0 数据的 BCD 转换等任务。
1、 程序流程图 数据采集三主程序流程图如图 4-3-2 所示 ; 中断服务子程序如图 4-3-3 所示。数码 管显示子程序流程图如图 3-4-7 所示,键盘扫描流程图
如图 4-3-4 所示。
- 3 -