微机原理课程设计报告--数据采集系统三(中断法)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

微机原理课程设计

课设题目:数据采集系统三(中断法)实验者姓名:

实验者学号:

学院:

数据采集系统三(中断法)

一、实验目的

进一步掌握微机原理知识,了解微机在实时采集过程中的应用,学习、掌握编程

和程序调试方法。

二、实验内容

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 采集083

2 输出的模拟量。

2 、DAC 0832将ADC 0809的IN0 数字量后重新转换成模拟量输出。

3 、8259用于检测ADC 0809转换是否结束和向CPU发送INTR信号

4 、825

5 为七段LED数码管显示提供显示驱动信息。

5 、七段LED数码管显示ADC 0809的IN0 的值。

6 、8254提供ADC 0809的采样时钟脉冲。

7、有良好的人—机对话界面。系统运行时,显示主菜单,开始数据采集, 在数据采集时, 主键盘有键按下, 退出返回DOD 系统。

四、硬件设计

因采用了PC机和微机实验箱, 硬件电路设计相对比较简单, 主要利用微机实验箱上的8255 并行口、ADC0809、DAC0832、七段LED数码管单元、8254定时/ 计数器、74LS574

输出接口、电位器等单元电路, 就构成了数据采集系统, 硬件电原理框图4-3-1 所示。

1 2 3 4

课程设计报告纸XD0-XD7 D0-D7 Rfe

D

/Y2

XIOW

XD0-

XD7

XIOW

CS

WR

D0-D7

WR

0832

0832

Iout12

Iout23

GATE0

1

1

4

4

1 6

A

B

LM324 5

1

1

+5V

7

LM324

XIOR

XA2

RD

A0 8254 CLK0

1.8432MHZ

OUT

XA3

/Y3

A1

CS

OUT0

XD0-XD7 D0-D7 CLK

XIOW

XIOR

WR

RD 0809

A

B

C

IN0

X A2

XA3

XA4

10K

+5V

C

/Y0 CS I N1 EOC

XD0-XD7 D0-D7

XIOW WR IR0

XIOR RD

INTR INTR

8259

A0 A2 /Y7 CS

XD0-XD7 D0-D7

XIOW

XIOR

XA2 A0 8255 PA0-PA5 L1-L6

数码管

键盘单元

B XA3 A1

PB0-PB7 A,B-G,Dp /Y1 CS

XA5 A /Y0

XA6 B /Y1

XA7 C

74138 /Y2 /Y3 /Y4

/G /Y5 /Y6 /Y7

A

Title

Size Number Revision

五、软件设计

本设计通过软件编程,实现模/ 数转换器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 所示。

相关文档
最新文档