8086 综合实验 洗衣机程序设计
微机接口 综合实验 二, 实验内容: 设计一种自动洗衣机的程序控制器,在启动后先进水,等到达高水位后,启动洗衣马达转动4min,如在洗衣过程中发现水位低于高水位,则停止洗衣马达转动并报警,并在水位到达高水位后再次启动马达。洗衣结束后则启动排水开关,待水位到达低水位后,则启动脱水马达,转动2min。如此重复三次,要求在每一动作之间有2s的间隔。 高水位,低水位为水位传感器,用两个开关模拟,当水位高于高水位或低于低水位时,两个开关的状态分别为0 。启动开关用一个开关表示。进水、排水、洗衣马达、脱水马达及报警分别用一个发光二极管表示。本实验只需用可编程并行接口电路的A口。其硬件接口如下图所示。也可采用可编程逻辑器件进行设计。 在这个“8086 综合实验 洗衣机程序设计”中,我们主要学习的是如何使用8086微处理器以及相关的接口技术来设计一个自动洗衣机的控制器。实验目的是掌握可编程并行接口电路在具体控制过程中的应用。实验内容涉及到一系列的逻辑操作,包括对水位传感器的检测、马达的控制以及报警系统的触发。 1. **系统硬件接口**:洗衣机程序控制器使用了可编程并行接口电路的A口,通常这指的是8255芯片。此外,高水位和低水位由两个模拟开关表示,启动开关、进水、排水、洗衣马达、脱水马达和报警状态通过发光二极管显示。整个系统可以通过硬件电原理图进一步了解其内部连接。 2. **程序设计**:程序使用汇编语言(ASM)编写,主要流程如下: - 初始化:设置8255的工作方式,使A口作为输出,B口作为输入。 - 循环检测:主循环首先检测启动开关,如果未启动则等待;启动后,进水灯亮,直到检测到高水位。 - 洗衣过程:高水位达到后,洗衣马达开始工作,同时点亮洗衣灯,持续4分钟。在此期间,程序会不断检测水位,若发现水位低于高水位,停止马达并触发报警灯。 - 水位恢复与报警解除:当水位再次到达高水位,马达重新启动,直至洗衣结束。 - 排水与脱水:洗衣结束后,排水灯亮,开始排水,等待水位达到低水位。之后,脱水马达启动,脱水2分钟。这个过程同样会在低水位时结束。 - 重复执行:以上步骤重复三次,每次动作间有2秒的间隔。 3. **控制逻辑**:通过8086的输入/输出操作(IN和OUT指令),读取或设置8255的端口状态,实现对各个功能的控制。例如,使用IN指令读取水位传感器的状态,用OUT指令控制马达和LED的状态。 4. **延时处理**:为了模拟实际的物理过程,程序中包含延时子程序(DELAY PROC NEAR),通过循环检测键盘输入来实现一定的延迟时间。 5. **数据结构与内存管理**:实验中使用了栈段(STACK SEGMENT)和数据段(DATA SEGMENT)来存储程序的局部变量和数据。代码段(CODE SEGMENT)用于存放程序的指令。 通过这个实验,学生能够深入理解8086微处理器的I/O操作、中断系统以及可编程接口的使用,同时强化了汇编语言编程和硬件接口设计的能力。
剩余8页未读,继续阅读
- wangsuyu_12013-12-17感觉对于文字的描述少了些,要是多点文字就好了。
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助