设计一个8088/8086的微机系统并写出微机代码,用于监控报警,具备如下功能: 存储系统要求: 32KB的RAM(6264),16KB的EEPROM(9864); 2系统使用1片8259、1片8253和1片8255实现主要功能: 1台设备监控8个点,设备启动信号为3个时钟周期的脉冲信号,某个点为异常时,输出电平为高,1个异常报警灯;3 系统对监控设备1秒钟检查一次; 如果检查到8点中任意一个异常 (一次只有1个点异常),完成以下操作:(1)将异常信号点以ASCII形式存储在RAM和ROM中,如第2个点异常,记为32H;(2) 报警灯闪烁,1秒灭,1秒亮; 警报解除按键1个,按下后,解除报警灯闪烁。

时间: 2024-03-30 15:40:54 浏览: 22
这是一个相当复杂的问题,需要考虑硬件和软件两个方面。下面是一个简单的设计和代码实现。 硬件设计: 1. 主板采用8088/8086微处理器,具有32KB的RAM(6264)和16KB的EEPROM(9864)。 2. 使用1片8259芯片进行中断控制,1片8253芯片进行定时器控制,1片8255芯片进行输入输出控制。 3. 设备监控8个点,使用3个时钟周期的脉冲信号启动,如果任意一个点异常,输出电平为高,触发异常报警灯。 4. 系统每秒钟检查一次监控设备,如果检测到任意一个异常点,采取以下操作。 5. 将异常信号点以ASCII形式存储在RAM和ROM中,如第2个点异常,记为32H。 6. 报警灯闪烁,1秒灭,1秒亮。 7. 设计一个按键,用于解除报警灯闪烁。 软件设计: 1. 初始化系统,包括RAM和ROM的初始化,8259、8253和8255的初始化,以及定时器的设置。 2. 设计一个中断服务程序,用于处理异常报警和按键中断。 3. 设计一个定时器中断服务程序,用于每秒钟检查监控设备。 4. 在主程序中,使用循环语句不断地检查RAM中存储的异常信号点,如果有异常信号点,触发报警灯闪烁。 5. 在按键中断服务程序中,解除报警灯闪烁。 下面是一个简单的代码实现,仅供参考。 ``` ; 定义RAM和ROM的起始地址 RAM_START equ 0h ROM_START equ 8000h ; 定义中断服务程序入口地址 INT_VECTOR equ 0h ; 定义8259、8253和8255的端口地址 INTERRUPT_CTRL equ 20h TIMER_CTRL equ 40h IO_CTRL equ 60h ; 定义监控设备端口地址和异常报警灯端口地址 DEVICE_PORT equ IO_CTRL+0 ALARM_PORT equ IO_CTRL+1 ; 定义异常报警灯的闪烁时间 BLINK_TIME equ 500 ; 单位为毫秒 org INT_VECTOR ; 中断服务程序入口地址 INTERRUPT_PROC: ; 中断服务程序 ; 处理异常报警 cmp byte ptr [RAM_START], 0 ; 如果RAM中有异常信号点 jz KEY_INT ; 跳转到按键中断服务程序 ; 触发报警灯闪烁 mov al, 1 ; 将1写入异常报警灯端口 out ALARM_PORT, al ; 异常报警灯亮起 mov cx, BLINK_TIME ; 等待一段时间 call DELAY mov al, 0 ; 将0写入异常报警灯端口 out ALARM_PORT, al ; 异常报警灯熄灭 mov cx, BLINK_TIME ; 等待一段时间 call DELAY jmp KEY_INT ; 跳转到按键中断服务程序 KEY_INT: ; 按键中断服务程序 ; 处理解除报警 mov al, 0 ; 将0写入异常报警灯端口 out ALARM_PORT, al ; 异常报警灯熄灭 ret ; 返回主程序 DELAY: ; 等待一段时间的子程序 push cx ; 保存cx寄存器 push dx ; 保存dx寄存器 mov dx, 3 ; 设置dx寄存器的值 DELAY_LOOP: mov cx, 1000 ; 设置cx寄存器的值 DELAY_LOOP1: loop DELAY_LOOP1 ; 循环等待 dec dx ; dx寄存器减1 jnz DELAY_LOOP ; 如果dx寄存器不为0,继续等待 pop dx ; 恢复dx寄存器 pop cx ; 恢复cx寄存器 ret ; 返回主程序 MAIN: ; 主程序 ; 初始化RAM和ROM mov ax, RAM_START ; 设置ax寄存器的值 mov es, ax ; 设置es寄存器的值 xor di, di ; 设置di寄存器的值 mov cx, 8000h ; 设置cx寄存器的值 mov al, 0 ; 设置al寄存器的值 rep stosb ; 清空RAM mov ax, ROM_START ; 设置ax寄存器的值 mov es, ax ; 设置es寄存器的值 xor di, di ; 设置di寄存器的值 mov cx, 4000h ; 设置cx寄存器的值 mov al, 0 ; 设置al寄存器的值 rep stosb ; 清空ROM ; 初始化8259、8253和8255 mov al, 13h ; 设置8259的端口A out INTERRUPT_CTRL+1, al mov al, 90h ; 设置8259的端口B out INTERRUPT_CTRL+1, al mov al, 34h ; 设置8253的控制字 out TIMER_CTRL, al mov al, 35h ; 设置8253的计数器初值 out TIMER_CTRL+3, al mov al, 4Eh ; 设置8253的计数器次值 out TIMER_CTRL+3, al mov al, 80h ; 设置8255的控制字 out IO_CTRL+2, al ; 设置定时器中断 cli ; 关中断 mov al, 34h ; 设置8253的控制字 out TIMER_CTRL, al mov al, 35h ; 设置8253的计数器初值 out TIMER_CTRL+3, al mov al, 4Eh ; 设置8253的计数器次值 out TIMER_CTRL+3, al mov al, 0Bh ; 设置8259的端口A out INTERRUPT_CTRL+1, al mov al, 1 ; 设置8259的端口B out INTERRUPT_CTRL+1, al sti ; 开中断 ; 循环检查监控设备 LOOP: mov al, [DEVICE_PORT] ; 读取监控设备的输入电平 and al, 0FFh ; 将读取到的电平值转换为字节 cmp al, 0FFh ; 判断是否有异常信号点 jz LOOP ; 如果没有异常信号点,继续循环 ; 存储异常信号点 mov byte ptr [RAM_START], al ; 存储到RAM mov byte ptr es:[DI], al ; 存储到ROM inc di ; 更新DI指针 mov byte ptr es:[DI], 0 ; 存储到ROM inc di ; 更新DI指针 ; 触发报警灯闪烁 int 08h ; 触发中断服务程序 jmp LOOP ; 继续循环 ret ; 返回操作系统 ```

相关推荐

最新推荐

recommend-type

一套非常全面的视频监控系统施工方案

主要包括:结合高清监控系统设计方案作配套的深化设计,编制高清监控系统实施计划,并提出相关的配合要求。根据总体方案,对高清监控系统工程的技术设计作必要的补充。并提出相关的实施技术要求。 《城市道路设计...
recommend-type

微机原理及应用课程设计,设计交通灯控制系统

(1)编程使灯按交通灯变化规律亮灭,要求进行周期性重复控制,规则如下: (a)南北路口的绿灯、东西路口的红灯同时亮20秒; (b)南北路口的黄灯闪烁3秒,同时东西路口的红灯闪3秒; (c)南北路口的红灯、东西路口的...
recommend-type

微机原理课程设计门铃报警系统 源代码.doc

用STAR ES598PCI单板开发机设计一套门铃报警系统: 实现密码修改,铃声设置与选择,密码开门等功能,程序为汇编语言
recommend-type

检测与报警系统微机原理课程设计

设计并开发能检测模拟信号,并能产生报警信号的系统。其具体要求是:能对输入的0—5V的模拟电压信号进行检测。能判断所检测的信号是否越界。若信号越界则进行声(PC机扬声器)、光(发光二极管)报警。说明:其界...
recommend-type

嵌入式系统/ARM技术中的单总线数字温度传感器原理及应用

摘要: 介绍了单总线原理及单总线数字式温度传感器DS1820的工作原理、结构,并给出了用DS1820和89C52 单片机构成的单线多点温度测控系统的硬件应用电路及软件框图。 关键词:单总线; 数字温度传感器; 多点温度测控...
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

MATLAB柱状图在信号处理中的应用:可视化信号特征和频谱分析

![matlab画柱状图](https://img-blog.csdnimg.cn/3f32348f1c9c4481a6f5931993732f97.png) # 1. MATLAB柱状图概述** MATLAB柱状图是一种图形化工具,用于可视化数据中不同类别或组的分布情况。它通过绘制垂直条形来表示每个类别或组中的数据值。柱状图在信号处理中广泛用于可视化信号特征和进行频谱分析。 柱状图的优点在于其简单易懂,能够直观地展示数据分布。在信号处理中,柱状图可以帮助工程师识别信号中的模式、趋势和异常情况,从而为信号分析和处理提供有价值的见解。 # 2. 柱状图在信号处理中的应用 柱状图在信号处理
recommend-type

用Spring boot和vue写一个登录注册界面

好的,这是一个比较常见的技术问题,我可以为您提供一些参考资料和思路。首先,您可以使用Spring Boot作为后端框架来处理用户认证和注册的逻辑,比如使用Spring Security实现用户登录认证。同时,您还需要设计相应的数据模型和数据库表结构来存储用户信息。在前端方面,您可以使用Vue.js作为框架来构建登录注册页面,使用Axios来发起API请求并和后端进行交互。当然,在实现过程中,还需要考虑一些具体细节,比如数据校验、安全性和用户体验等方面。希望这些信息能够帮助到您。
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。