MCS-51单片机实验讲义 下载本文

硬件实验十四 A/D转换实验

一、实验要求

利用实验板上的ADC0809做A/D转换器,实验板上的电位器提供模拟量输入,编制程序,将模拟量转换成二进制数字量,用8255的PA口输出到发光二极管显示。

二、实验目的

1、 掌握A/D转换与单片机的接口方法。 2、 了解A/D芯片ADC0809转换性能及编程。 3、 通过实验了解单片机如何进行数据采集。

三、实验电路及连线

电位器

CS0

- 42 -

连线 1 2 3 4 5 6 7 8 9 10 11 12 连接孔1 IN0 AD_CS EOC 8255_CS PA0 PA1 PA2 PA3 PA4 PA5 PA6 PA7 连接孔2 电位器输出 CS0 INT0 CS1 L0 L1 L2 L3 L4 L5 L6 L7

四、实验说明

A/D转换器大致有三类:一是双积分A/D转换器,优点是精度高,抗干扰性好;价格便宜,但速度慢;二是逐次逼近A/D转换器,精度,速度,价格适中;三是并行A/D转换器,速度快,价格也昂贵。

实验用的ADC0809属第二类,是八位A/D转换器。每采集一次一般需100us。本程序是用延时查询方式读入A/D转换结果,也可以用中断方式读入结果,在中断方式下,A/D转换结束后会自动产生EOC信号,将其与CPU的外部中断相接,有兴趣的同学可以试试编程用中断方式读回A/D结果.

五、实验框图

开始 初始化 启动A/D 否 A/D转换完 数据输出 清读数标志

主程序框图

- 43 -

硬件实验十五 外部中断(急救车与交通灯)

一、实验要求

本实验模拟交通信号灯控制,一般情况下正常显示,有急救车到达时,两个方向交通信号灯全红,以便让急救车通过。设急救车通过路口时间为10秒,急救车通过后,交通恢复正常,本实验用单次脉冲申请外部中断,表示有急救车通过。

二、实验目的

1、学习外部中断技术的基本使用方法。 2、学习中断处理程序的编程方法。

三、实验电路及连线

单次脉冲 LED0、LED1、LED2分别表示南北方向红、黄、绿灯 LED3、LED4、LED5分别表示东西方向红、黄、绿灯 连线 1 2 3 4 5 6 7 8 连接孔1 8255_CS PA0 PA1 PA2 PA3 PA4 PA5 单脉冲输出 连接孔2 CS0 L0 L1 L2 L3 L4 L5 EINT(96) 连线 1 2 3 4 5 6 7 连接孔1 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 单脉冲输出 连接孔2 L0 L1 L2 L3 L4 L5 INT0(51)

四、实验说明

中断服务程序的关键是:

1、保护进入中断时的状态,并在退出中断之前恢复进入时的状态。

2、必须在中断程序中设定是否允许中断重入,即设置EXO位。

本例中使用了INTO中断,一般中断程序进入时应保护PSW,ACC以及中断程序使用但

- 44 -

非其专用的寄存器。本例的中断程序保护了PSW,ACC等三个寄存器并且在退出前恢复了这三个寄存器。另外中断程序中涉及到关键数据的设置时应关中断,即设置时不允许重入。本例中没有涉及这种情况。

对于8051CPU 外部中断由INTO(P32)端接入。中断信号由单次脉冲发生器产生。 对中断的处理可参见硬件实验十一

本实验提供了用单片机的I/O端口控制交通信号灯的方法。

五、实验框图

主程序框图 外部中断子程序框图 状态4南北红灯,东西绿灯闪转黄灯 状态3南北红灯,东西绿灯 中断返回 状态2南北绿灯闪转黄灯,东西红灯 恢复现场 状态1南北绿灯,东西红灯 延时10秒 初始状态东西 南北都是红灯 东西,南北都亮红灯 开外中断 保护现场 开始 外部中断入口 - 45 -