微机原理课程设计报告--数据采集系统三(中断法)
微机原理与接口技术——中断系统
![微机原理与接口技术——中断系统](https://img.taocdn.com/s3/m/4bf364ed580216fc710afd4f.png)
2、内部中断——软件中断
内部中断指由指令的执行或软件对标志寄存器中 某个标志的设置产生的中断
专用中断
指令中断
内部中断的种类
(1)除法出错中断 类型号为00H
除法出错中断既不是外部硬件产生,也不是用 软件指令产生,而是CPU自身产生的,因此0型中 断没有对应的中断指令,即指令系统中没有INT 0 这条指令。
30~3FH 40~FFH
DOS保留使用 DOS内部使用 DOS保留使用 用户自定义
DOS 可调用
1、外部中断——硬件中断
1、非屏蔽中断(NMI):不受中断标志位的控制,中断类型 号为2,所以中断向量放在0000:0008开始的4个单元中。NMI 中断一般用于紧急情况的处理,不受中断标志位IF影响 。 2、可屏蔽中断(INTR):受中断标志位的控制,IF=1, CPU才能响应INTR中断。CPU响应INTR中断时,往INTA引 脚上发两个负脉冲,外设接到第二个负脉冲后,立即往数据总 线上送出中断类型码,供CPU读取。
中断源
引起CPU中断的事件,发出中断请求的来源。
异常中断 内部中断
软件中断
异常事件引起 中断指令引起
可屏蔽中断 外部中断
非屏蔽中断
INTR中断 NMI中断
引入中断的原因
提高数据传输率; 避免了CPU不断检测外设状态的过程,提高了
CPU的利用率。 实现对特殊事件的实时响应。
中断系统
中断系统是指实现中断功能的软硬件的统称。功 能有: 正确识别中断请求,实现中断响应、中断处理
INTR
IRQ0 系统定时器 IRQ1 键盘 IRQ2 彩色/图形接口
8259A
IRQ3 保留(串口) IRQ4 串口
IRQ5 保留(LPT)
微机原理—中断系统
![微机原理—中断系统](https://img.taocdn.com/s3/m/0ec2b9a20029bd64783e2c15.png)
例1 PC 机采用向量中断方式处理 8 级外中断,中断号 依次为 08H~0FH,在存储器 2CH 单元开始依次存放 23H, FFH,D0H,0FDH 四个字节,问该向量对应的中断号和中断 服务程序入口地址。
A. 0CH, 23FFH:00FEH
B. 0BH, D0FDH:23FFH
C. 0BH, FDD0H:FF23H
注解
(1)外部中断(硬中断)
电子工程学院
3
微机原理与接口技术
外部硬件(主要是外设通过接口)产生 1)不可屏蔽中断 NMI——由 NMI 通知 CPU,常用于重大故障或
紧急情况如电源掉电、存贮器读写出错、总线奇偶错等,该中断是不能用中断
标志 IF 控制的。
2)可屏蔽中断 INTR——由 INTR 来通知 CPU 发生了外部事件中断
②第二个中断响应总线周期 CPU 发INTA,中断控制逻 辑发中断类型码给 CPU ;
③保护断点和标志,FLAGS、CS 和 IP 内容依次压入堆栈 ④清除 IF 标志和 TF 标志 ⑤根据中断类型码,转入中断服务程序入口
注解
电子工程学院
更新、补充内容
课外作业 课外作业
课后总结 课后总结
目录
第 7 章 中断系统......................................................................................................1 7.1 概述.......................................................................................................................1 7.1.1 中断的基本概念................................................................................................1 7.1.2 中断处理过程....................................................................................................2 7.2 16 位微机中断系统............................................................................................3 7.2.1 中断类型............................................................................................................3 7.2.2 中断向量表........................................................................................................4 7.2.3 中断响应过程....................................................................................................6 7.4 可编程中断控制器 8259A..................................................................................7 7.4.1 8259A的编程模型...............................................................................................7 7.4.2 8259A的外部引脚...............................................................................................8 7.4.3 8259A的工作方式...............................................................................................9 7.4.4 8259A的编程 ....................................................................................................12 7.4.5 8259A的应用 ....................................................................................................17
《汇编语言+微型计算机技术》数据采集系统的设计与实现汇编课设报告
![《汇编语言+微型计算机技术》数据采集系统的设计与实现汇编课设报告](https://img.taocdn.com/s3/m/37fc9b61bd64783e09122ba3.png)
《汇编语言+微型计算机技术》课程设计报告课设题目数据采集系统的设计与实现系部信息系班级计算机xxx学生姓名xxx学号xxx序号22指导教师徐阳时间2014.6.17~2014.6.29目录一、设计目的 (1)二、设计内容 (1)三、硬件设计及分析 (2)1总体结构图 (2)2.各部件端口地址设计及分析 (2)3.各部件的组成及工作原理 (3)四、软件设计及分析 (6)1总体流程图 (6)2.连线 (7)3.主要程序编写及分析 (7)五、系统调试 (11)1.调试环境介绍 (11)2.各部件的调试 (12)3.调试方法及结果 (18)六、总结与体会 (19)七、附录 (20)数据采集系统的设计与实现一、设计目的1.通过本设计,使学生综合运用《微型计算机技术》、《汇编语言程序设计》以及电子技术等课程的内容,为以后从事计算机检测与控制奠定一定的基础。
2.主要掌握并行I/O接口芯片8253、8255A、ADC0809及中断控制芯片8259A 等可编程器件的使用,掌握译码器74LS138的使用。
3.学会用汇编语言编写一个较完整的实用程序。
4.掌握微型计算机技术应用开发的全过程:分析需求、设计原理图、选用元器件、布线、编程、调试、撰写报告等步骤。
二、设计内容1.功能要求①利用《汇编语言+微型计算机系统》课程中所学的可编程接口芯片8253、8255A、ADC0809和微机内部的中断控制器8259A(从保留的IRQ2或TRQ10端引入)设计一个数据采集系统、并且编程与调试。
②用8253定时器定时10MS,每次定时10MS后启动一次模/数转换,要求对所接通道变化的模拟电压值进行采集。
③每次模/数转换结束后,产生一次中断,在中断服务程序中,采集来的数字量被读入微处理器的累加器AL中,然后通过8255A输出到8个LED发光二极管显示。
④最后不要8255芯片用数码管显示所采集后的信息(电压0-5.0的范围内变化)。
2.设计所需器材与工具④微机原理与接口综合仿真实验平台。
微机原理实验-外部中断实验
![微机原理实验-外部中断实验](https://img.taocdn.com/s3/m/319968d1ab00b52acfc789eb172ded630b1c983c.png)
下面是赠送的几篇网络励志文章需要的便宜可以好好阅读下,不需要的朋友可以下载后编辑删除!!谢谢!!出路出路,走出去才有路“出路出路,走出去才有路。
”这是我妈常说的一句话,每当我面临困难及有畏难情绪的时候,我妈就用这句话来鼓励我。
一定有很多人想说:“这还在北京混个什么劲儿啊!”但他每天都乐呵呵的,就算把快递送错了也乐呵呵的。
某天,他突然递给我一堆其他公司的快递单跟我说:“我开了家快递公司,你看得上我就用我家的吧。
”我有点惊愕,有一种“哎呦喂,张老板好,今天还能三蹦子顺我吗”的感慨。
之后我却很少见他来,我以为是他孩子出生了休假去了。
再然后,我就只能见到单子见不到他了。
某天,我问起他们公司的快递员,小伙子说老板去上海了,在上海开了家新公司。
我很杞人忧天地问他:“那上海的市场不激烈吗?新快递怎么驻足啊!”小伙子嘿嘿一笑说:“我们老板肯定有办法呗!他都过去好几个月了,据说干得很不错呢!”“那老婆孩子呢?孩子不是刚生还很小吗?”“过去了,一起去上海了!”那个瞬间,我回头看了一眼办公室里坐着的各种愁眉苦脸的同事,并且举起手机黑屏幕照了一下我自己的脸,一股“人生已经如此的艰难,有些事情就不要拆穿”的气息冉冉升起。
并不是说都跳槽出去开公司才厉害,在公司瞪着眼睛看屏幕就是没发展,我是想说,只有勇气才能让自己作出改变。
《拒绝平庸》里有一句话:很多时候我们为什么嫉妒别人的成功?正是因为知道做成一件事不容易又不愿意去做,然后又对自己的懒惰和无能产生愤怒,只能靠嫉妒和诋毁来平衡。
其实走出去不一定非要走到什么地方去,而是更强调改变自己不满意的现状。
有人问我那你常说要坚持,天天跑出去怎么坚持?其实要坚持的是一种信仰,而不是一个地方,如果你觉得一个地方让你活得特别难受,工作得特别憋屈,除了吐槽和压抑没别的想法,那就要考虑走出去。
就像歌词里说的:“梦想失败了,那就换一个梦想。
”不能说外面都是大好前程,但肯定你会认识新的人,有新的机会,甚至改头换面重新做人。
《微机原理与汇编语言》中断系统资料精品PPT课件
![《微机原理与汇编语言》中断系统资料精品PPT课件](https://img.taocdn.com/s3/m/f07b381558f5f61fb6366661.png)
返回
上一张
下一张
44
1、中断允许控制寄存器IE
AFH AEH ADH ACH ABH AAH A9H A8H
IE EA (A8H)
ES ET1 EX1 ET0 EX0
返回
上一张
下一张
45
2、中断允许寄存器IE中各位的含义。
①EA—中断允许总控制位。 EA=0,屏蔽所有的中断请求; EA=1,CPU开放中断。对各中断源的中断 请求是否允许,还要取决于各中断 源的中断允许控制位的状态。这就 是所谓的两级控制。
22
上一张
下一张
23
二、中断技术实现的功能
• 1、分时操作 • 2、实时处理 • 3、故障处理
返回
上一张
下一张
24
1、分时操作
• 计算机的中断系统可以使CPU与外设同时 工作。
• CPU在启动外设后,便继续执行主程序; 而外设被启动后,开始进行准备工作。当 外设准备就绪时,就向CPU发出中断请求, CPU响应该中断请求并为其服务完毕后, 返回原来的断点处继续运行主程序。外设 在得到服务后,也继续进行自己的工作。
上一张
下一张
50
2、中断允许寄存器IE中各位的含义。
⑥EX0—外部中断0的溢出中断允许位。 EX0=0,禁止外部中断0中断; EX0=1,允许外部中断0中断。
返回
上一张
下一张
51
例5-1
假设允许片内定时器/计数器中断,禁止其他中断。试 根据假设条件设置IE的相应值。
解:(IE)=10001010B=8AH
返回
上一张
下一张
18
八、中断方式的特点
• 1、中断方式消除了CPU在查询方式中的等待 现象,大大提高了CPU的工作效率。
中断方式数据采集系统的设计与实现
![中断方式数据采集系统的设计与实现](https://img.taocdn.com/s3/m/add82fe227fff705cc1755270722192e4436587c.png)
中断方式数据采集系统的设计与实现中断方式数据采集系统的设计与实现摘要:本文提出了一种基于中断方式的数据采集系统设计方案,该系统可以实时地采集各种传感器信号并将其存储在外部存储器中。
该系统具有实时性好、稳定性高的特点,能够满足各种数据采集需求。
本文详细介绍了该系统的设计方案以及实现过程,包括硬件设计和软件编程,最后通过实验验证了本方案的有效性。
关键词:数据采集系统;中断方式;硬件设计;软件编程;实验验证1.引言作为现代科技的基础,数据采集已经在各个领域得到了广泛的应用。
传统的数据采集系统通常采用轮询方式,即通过程序循环不停地读取外部设备的数据。
这种方式存在着很多缺点,例如占用系统资源高、实时性差等。
为了解决这些问题,一种新的数据采集方式——中断方式开始逐渐应用于各种数据采集系统中。
中断方式是指外部设备按照一定的条件向处理器发出请求,并让处理器暂停当前任务去执行相应的中断服务程序。
该方式相较于轮询方式有着更高的实时性,因此更加适合于数据采集系统的实现。
本文将介绍一种基于中断方式的数据采集系统设计方案,并通过实验验证其有效性。
2.系统设计本系统包括硬件设计和软件编程两个部分。
2.1 硬件设计硬件设计主要包括传感器模块、单片机模块、存储器模块等。
传感器模块须具备高灵敏度、低噪声、稳定性好等特点。
单片机模块需要选择具有强大计算能力和丰富接口功能的芯片,可以满足信号处理和存储等要求。
本系统采用了STM32F103C8T6单片机,其主频为72MHz,内部存储器为64KB,具有丰富的外部接口方式。
传感器模块使用的是DS18b20数字温度传感器,该传感器具有输出精度高、线性度好、抗干扰能力强等特点。
存储器模块选择了SD 卡作为外部存储器。
2.2 软件编程本系统采用Keil uVision5作为软件编程工具,使用C语言编程,采用中断方式进行数据采集。
具体的编程流程如下:1)初始化:对各个模块进行初始化,包括时钟配置、外部中断配置、GPIO口配置等。
(完整版)微机毕业课程设计之数据采集系统
![(完整版)微机毕业课程设计之数据采集系统](https://img.taocdn.com/s3/m/fc48346131b765ce05081477.png)
微机原理及接口技术课程设计书学院:信息与通信工程学院专业:测控技术与仪器班级:xxx学号:xxx姓名:xxx指导教师:xxx目录1、摘要 (2)2、总体方案设计 (2)2.1设计目的 (2)2.2设计任务与要求 (2)2.3设计方案 (3)3、硬件原理图设计设计 (3)3.1总设计图说明 (3)3.2各子硬件图说明 (4)3.2.1原理图所用芯片介绍 (4)3.2.2各子硬件电路说明 (9)4、程序设计 (13)4.1程序流程图 (14)4.2程序设计说明 (14)5、课程设计收获与心得体会 (17)6、参考文献 (18)7、附录 (19)一、摘要本次课程设计,主要是了解可编程外围芯片8255的工作原理,以及学会对ADC0809和8255芯片的应用和设计技术。
对微型计算机基本的系统结构、对微型计算机硬软件的工作原理有个整体的认识。
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结合的实践和锻炼。
通过这次设计实践能够进一步加深对专业知识和理论知识学习的认识和理解,使自己的设计水平和对所学的知识的应用能力以及分析问题解决问题的能力得到全面提高。
二、总体设计方案2.1设计目的1)进一步建立微机系统的概念,加深对系统的理解和认识,培养学生应用微型计算机解决实际问题的能力;2)进一步学习和掌握汇编语言程序的编写和应用的方法,通过较大规模程序的编写,提高编写汇编语言程序的水平和学习程序调试方法。
3)进一步熟悉微机最小系统的构成及常用接口芯片的使用,提高系统设计的能力。
2.2设计任务和要求设计内容:以8088cpu为核心设计一个采集系统,系统可以实现一路模拟电压信号进行采集,已知该电压信号的电压范围是0~255mv,选用adc0809作为AD转换器,系统中有三位LED显示器显示所采集到电压的毫伏数。
设计要求:1)画出电路原理图,说明工作原理2)编写一个实现对输入模拟电压进行转换并在LED显示器显示当前采集数据的数字量程序2.3设计方案数据采集系统的设计,要求使用微型计算机的最小系统,且具有1路的输入,输入信号在0—255mV,而且采用数码管显示输入(显示10进制的结果)。
微机原理课程设计 中断技术
![微机原理课程设计 中断技术](https://img.taocdn.com/s3/m/4e5848aaf524ccbff1218449.png)
中断技术课程设计学生姓名学号指导教师专业南京人口管理干部学院验内容:用DAC0832产生1000Hz正弦波1、采用查表法,用DAC0832产生1000Hz正弦输出模拟信号,用示波器检查波形。
(8253 T0产生定时脉冲,8259 INT0向CPU中断)。
D/A转换是把数字量转换成模拟量的变换,实验台上D/A电路输出的是模拟电压信号。
要实现实验要求,比较简单的方法是产生正弦波形的表格,然后通过查表来实现波形显示。
2、实验程序框图如下:3、D/A转换取值范围为一个周期,采样点越多,精度越高些。
8位D/A转换器的输入数据与输出电压的关系为U=[2.5sin(n*t)+2.5]*1000/20,现以32个点为原始点,通过以上方程得到的结果如下图:4、程序代码:DATA SEGMENTSIN_TABLE DB 125,149,172,194,213,228,240,247DB 250, 247,240,228,213,194,172,149DB 125. 100,77,55,36,21,9,2DB 0,2,9,21,36,55,77,100DATA ENDS;----------------------------------------------------------------------------------------STACK SEGMENT STACK ‘STACK’DB 128 DUP (?)STACK ENDS;-----------------------------------------------------------------------------------------CODE SEGMENTASSUME CS:CODE,DS:DATA,SS;STACKBEGIN: MOV DX,CODEMOV DS,DXMOV DX,OFFSET SIN_DISMOV AL,0FHMOV AL,25HINT 21HMOV AX, DATAMOV DS, AXXOR AX,AXMAIN PROCCLILEA BX,SIN_TABLEIN AL,21HAND AC,01111111BOUT 21H,AL;---------8253初始化------------MOV DX ,283HMOV AL,00100110BOUT DX,ALMOV AX,1000MOV DX,280HOUT DX, ALMOV AL,AHOUT DX,AL;----------------------------------------------- STIA_1: JMP A_1MOV AH,4CHINT 21HMAIN ENDPSIN_DIS PROCMOV AL,[BX]MOV DX,290HOUT DX, ALINC BXCMP BX,32JAE THEN_1JMP NEXT_1THEN_1:MOV BX,0NEXT_1:MOV AL,20HOUT 20H,ALSTIIRETSIN_DIS ENDPCODE ENDSEND BEGIN该程序大概可分为三部分:8253计数部分,8259A中断部分,DAC0832转换部分。
微机原理_中断实验报告(3篇)
![微机原理_中断实验报告(3篇)](https://img.taocdn.com/s3/m/e781395e590216fc700abb68a98271fe910eaf34.png)
第1篇一、实验目的1. 理解中断系统的基本概念和工作原理。
2. 掌握中断源、中断向量、中断服务程序等基本概念。
3. 学习使用Keil软件进行中断程序的编写和调试。
4. 熟悉中断在微机系统中的应用。
二、实验原理中断系统是微机系统中重要的组成部分,它允许CPU在执行程序的过程中,响应外部事件或内部事件,从而实现多任务处理。
中断系统主要包括以下几个部分:1. 中断源:产生中断请求的设备或事件,如外部设备、定时器、软件中断等。
2. 中断向量:中断服务程序的入口地址,用于CPU在响应中断时找到相应的服务程序。
3. 中断服务程序:处理中断请求的程序,完成中断处理任务。
4. 中断优先级:不同中断源的优先级不同,用于确定中断响应的顺序。
三、实验设备与软件1. 实验设备:单片机实验板、计算机、Keil软件、Proteus仿真软件。
2. 实验软件:Keil uVision4、Proteus 8.0。
四、实验内容1. 外部中断实验(1)使用外部中断0(INT0)实现按键控制LED灯的亮灭。
(2)使用外部中断1(INT1)实现按键控制LED灯的闪烁。
2. 定时器中断实验(1)使用定时器0产生1秒的定时中断,实现LED灯的闪烁。
(2)使用定时器1产生1秒的定时中断,实现按键输入的计数。
3. 软件中断实验(1)使用软件中断实现按键输入的字符显示。
(2)使用软件中断实现按键输入的字符加密显示。
五、实验步骤1. 在Keil软件中创建一个新项目,选择合适的单片机型号。
2. 根据实验要求,编写中断服务程序,设置中断向量。
3. 在Proteus软件中搭建实验电路,包括单片机、按键、LED灯等。
4. 将Keil软件编译后的程序下载到单片机中。
5. 在Proteus软件中运行仿真,观察实验结果。
六、实验结果与分析1. 外部中断实验(1)按键按下时,LED灯亮;按键松开时,LED灯灭。
(2)按键按下时,LED灯闪烁;按键松开时,LED灯停止闪烁。
微机原理 中断
![微机原理 中断](https://img.taocdn.com/s3/m/de8a1b1155270722192ef793.png)
26
第九章
② 利用DOS功能调用设置中断服务程序的入口地址表
…… PUSH DS MOV AX,SEG INTRAD; MOV DS,AX MOV DX,OFFSET INTRAD MOV AL,N MOV AH,25H INT 21H POP DS ……
27
第九章
注意:
为了避免直接使用中断向量的绝对地址,一般利
19
第九章
1、中断向量表 又称:中断服务程序的入口地址表。 中断服务程序的入口地址又称中断向量
8086在存储器最低的1KB(00000H~003FFH)空间内
,存放256个中断的中断向量。
每个类型号的中断向量占4字节,高2字节存放段
基址,低2字节存放偏移地址;
按照中断类型号的顺序依次将其中断向量存在1K
5
第九章
4、与中断相关的基本概念
中断源 中断类型号 中断向量 中断向量表
中断请求
中断响应 中断服务程序 中断返回
中断优先级
中断嵌套 中断屏蔽
6
第九章
5、中断系统的基本功能 (1)中断响应,中断服务,中断返回,中断屏蔽;
(2)中断优先级排队;
(3)中断嵌套。 注意:
中断流程如下页图所示
3
第九章
4
第九章
3、使用中断的好处 分时操作 提高效率 CPU在启动外设后与外设同时工作。当外设的数据准备 好向CPU发中断请求,CPU响应处理。CPU可让多个外设 同时工作,这将加快数据传送速度、提高CPU的效率。 实现实时处理 实时控制时,现场各种信息可随时发出中断请求 故障自行处理 将计算机在运行的过程中常遇到的意外情况,如:电源 突跳,存储器出错,运算溢出等设计成中断,计算机可 利用中断系统自行处理或告警。
微机原理课程设计报告--数据采集系统三(中断法)
![微机原理课程设计报告--数据采集系统三(中断法)](https://img.taocdn.com/s3/m/112f5321aa00b52acec7cac2.png)
微机原理课程设计课设题目:数据采集系统三〔中断法〕实验者姓名:实验者学号:学院:数据采集系统三〔中断法〕一、实验目的进一步掌握微机原理知识,理解微机在实时采集过程中的应用,学习、掌握编程和程序调试方法。
二、实验内容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并行口、ADC 0809、DAC 0832、七段LED数码管单元、8254定时/计数器、74LS574输出接口、电位器等单元电路, 就构成了数据采集系统, 硬件电原理框图4-3-1所示。
五、软件设计本设计通过软件编程,实现模/数转换器0809分别对IN0 0-5V直流电压的采样,和经0832线性控制后输出电压的IN1采样,IN0的值转换成十进制后,在七段数码管上显示; IN1的值在显示器上显示。
中断方式数据采集及显示
![中断方式数据采集及显示](https://img.taocdn.com/s3/m/c1d0c1ec31b765ce04081453.png)
中断方式数据采集及显示1.课程设计的目的本课程设计是电子信息工程专业的一个实践教学环节。
目的是为了巩固《微机原理及应用》课程学到的相关知识,通过对本课程所学知识的综合运用,使学生融会贯通课程中所学的理论知识,加深对计算机系统各个部分的工作原理及相互联系的认识,加深对接口的理解,清晰地建立计算机系统的概念,培养学生进行微机应用系统硬件和软件开发的实践工作能力。
2.设计方案论证2.1设计思路由于微机只能处理数字化的信息,而在实际应用中被控对象常常是连续变换的物理量,因此,微机用于测控系统时需要有能吧模拟信号转换成数字信号的接口,以便于能对被控制对象进行处理和控制。
A/D转换器就承担这样的任务,它适用于工业自动化控制,数据采集等许多领域。
2.1.1 A/D转换器的选择A/D转换就是把模拟量转换成二进制码表示的数字量,一般的A/D转换过程是通过采样,保持,量化和编码4个步骤完成的,这些步骤往往是合并运行的。
本设计用ADC0809实现A/D转换。
按查询方式采样三路A/D转换数据,用简单输入口(74LS244)查询EOC信号,每循环一次,0、1、2通道各采样一次,采样结果为:0通道数据放入AX中, 1通道数据放入BX中, 2通道数据放入CX中,三个寄存器均是低8位有效。
本课程设计选择ADC0809。
ADC0809是一种CMOS单片8位A/D转换器,8路模拟量输入以及地址锁存与译码。
设有与微机数据总线相连的TTL三态输出锁存器。
ADC0809可用单一的+5V电源工作,转换时间约为100us。
用单一+5V电源时,模拟量输入量程为0~5,对应的转换值为00HH~FFH.ADC0809的主要引脚信号说明如下:·IN0~IN7:8路模拟量输入端。
·ADD-A.ADD-B.ADD-C:三位地址线,通过地址译码选通8路模拟量输入端中的一路。
·CLOCK:外部提供给ADC0809工作的时钟信号。
微机原理中断实验报告(3篇)
![微机原理中断实验报告(3篇)](https://img.taocdn.com/s3/m/9f335fa0ba4cf7ec4afe04a1b0717fd5360cb234.png)
第1篇一、实验目的1. 理解中断的概念和作用;2. 掌握中断系统的组成和基本工作原理;3. 熟悉中断向量表、中断服务程序和中断处理过程;4. 通过实验验证中断系统的正确性和可靠性。
二、实验原理1. 中断的概念:中断是CPU在执行程序过程中,由于某些事件的发生,暂时停止当前程序的执行,转而执行相应的事件处理程序的过程。
2. 中断系统的组成:中断系统主要由中断控制器、中断源、中断向量表、中断服务程序和CPU等组成。
3. 中断向量表:中断向量表是存储中断服务程序入口地址的表格,其中每个中断向量对应一个中断服务程序。
4. 中断服务程序:中断服务程序是处理中断事件的核心程序,用于完成中断事件的处理任务。
5. 中断处理过程:当中断事件发生时,CPU会根据中断向量表找到对应的中断服务程序入口地址,并跳转到该地址执行中断服务程序。
三、实验仪器与设备1. 实验台:微机原理实验台2. 电脑:一台3. 软件环境:Keil uVision、emu8086等四、实验步骤1. 启动实验台,打开微机原理实验台软件。
2. 在软件中设置实验参数,如中断源、中断向量等。
3. 编写中断服务程序,实现中断事件的处理任务。
4. 编写主程序,调用中断服务程序。
5. 运行实验程序,观察中断系统的运行情况。
五、实验内容1. 实验一:单级中断系统(1)设置一个外部中断源,如按键中断。
(2)编写中断服务程序,实现按键按下时的处理任务。
(3)在主程序中调用中断服务程序。
2. 实验二:多级中断系统(1)设置两个外部中断源,如按键中断和定时器中断。
(2)编写中断服务程序,实现按键中断和定时器中断的处理任务。
(3)设置中断优先级,实现多级中断。
(4)在主程序中调用中断服务程序。
3. 实验三:中断嵌套(1)设置两个外部中断源,如按键中断和定时器中断。
(2)编写中断服务程序,实现按键中断和定时器中断的处理任务。
(3)实现中断嵌套,即在定时器中断服务程序中再次触发按键中断。
微机原理中断技术
![微机原理中断技术](https://img.taocdn.com/s3/m/79611326b94ae45c3b3567ec102de2bd9605de91.png)
(2) 溢出中断INTO(中断类型号为4)。CPU进行带符号数的算 术运算时,若发生了溢出,则标志位OF=1,若此时执行INTO 指令,会产生溢出中断,打印出一个错误信息,结束时不返回, 而 把 控 制 权 交 给 操 作 系 统 。 若 OF=0 , 则 INTO 不 产 生 中 断 , CPU继续执行下一条指令。INTO指令通常安排在算术指令之后, 以便在溢出时能及时处理。例如:
ADD AX,BX
INTO
;测试加法的溢出
2) 为调试程序设置的中断
(1) 单步中断(中断类型号为1)。当TF=1时,每执行一条指令, CPU会自动产生一个单步中断。单步中断可一条一条指令地跟踪 程序流程,观察各个寄存器及存储单元内容的变化,帮助分析错 误原因。单步中断又称为陷阱中断,主要用于程序调试。
“ 1” 1#中 断 请 求
应 答 1# 2#中 断 请 求
响应 &
IN T &
&
&
应 答 2#
3#中 断 请 求
&
&
应 答 3#
图7.15 链式中断优先级电路
上述两种方法虽然可以解决中断优先级控制问题,但实现 起来在硬件和软件上都要做大量的工作,十分麻烦。目前,最 方便的办法就是利用厂家提供的可编程中断控制器,这样的器 件在各种微机中得到普遍应用。本章后面将介绍广泛应用于 80x86微机系统中的专用可编程中断控制芯片8259A。
IN AL,n
TEST AL,80H ;1号外设有请求?
JNZ II1
;有,转1号中断服务程序
TEST
AL,40H ;2号外设有请求?
JNZ II2
;有,转2号中断服务程序
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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 采集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 并行口、ADC0809、DAC0832、七段LED数码管单元、8254定时/ 计数器、74LS574输出接口、电位器等单元电路, 就构成了数据采集系统, 硬件电原理框图4-3-1 所示。
1 2 3 4课程设计报告纸XD0-XD7 D0-D7 RfeD/Y2XIOWXD0-XD7XIOWCSWRD0-D7WR08320832Iout12Iout23GATE011441 6ABLM324 511+5V7LM324XIORXA2RDA0 8254 CLK01.8432MHZOUTXA3/Y3A1CSOUT0XD0-XD7 D0-D7 CLKXIOWXIORWRRD 0809ABCIN0X A2XA3XA410K+5VC/Y0 CS I N1 EOCXD0-XD7 D0-D7XIOW WR IR0XIOR RDINTR INTR8259A0 A2 /Y7 CSXD0-XD7 D0-D7XIOWXIORXA2 A0 8255 PA0-PA5 L1-L6数码管键盘单元B XA3 A1PB0-PB7 A,B-G,Dp /Y1 CSXA5 A /Y0XA6 B /Y1XA7 C74138 /Y2 /Y3 /Y4/G /Y5 /Y6 /Y7ATitleSize 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 所示。
初始化显示提示信息关中断保存原中断向量表内容设置新的中断向量表保存原中断屏蔽寄存器值允许IRQ2 中断8254 初始化开中断启动0809 IN0FLAG=0FFHIN0 值量纲转换后送显存调用数码管显示子程序将IN1 的值进行ASCII 码转换显示器显示IN1 的值N有键按下吗?Y恢复原中断屏蔽寄存器值恢复原中断向量表内容结束图4-3-2 数据采集三主程序流程图保护现场; 关中断YNFLAG=01H ?读IN0 值, 保存读IN1 值, 保存IN0 值按要求变换后,送0832 输出启动IN1FLAG=0发中断结束命令恢复现场; 开中断返回主程序图4-3-3 中断服务子程序流程图列值为0,读行值,屏蔽高四位后保存行值为0,读列值,屏蔽低四位后保存AL= 合并行列后取反AL=0 ?YSI=键盘扫描码首址,CX=16 ,DL=0NAL=[SI] ?N Y DL+1,SI+1键值=DLCX-1键值缓冲区移位N NCX=0 ?返回图4-3-4 键盘扫描程序流程图六、试验所遇问题及解决方法问题:在转动电位器,始终没有反应,电路也检查多遍。
分析:电路连接可能存在不稳定性,也有可能是机器有些损坏啥的。
解决方法:换了个微机实验机器,然后把线路很稳定的连接,转动电位器终于出现正确的反应。
七、心得体会及建议体会:通过这次微机原理的课程设计,实验制作,让我了解了设计电路的程序,也让我了解了关于数据采集系统三(中断法)的原理和设计理念,加强了自身动手、思考和解决问题的能力。
在此次的数据采集设计过程中,我更进一步的熟悉了机箱的结构及掌握了各芯片的工作原理和其具体的使用方法,巩固和加强了课本知识。
认识来源于实践,实践是认识的动力和最终目的,实践是检验真理的唯一标准。
通过课程设计,我真正领悟到了“苦中作乐”这词的真正含义,设计连接电路确实有些辛苦,但是还是很有乐趣的,当一个一个的问题被自己发现,然后自己一步一步的按照实验原理去解决问题,知道最后完全解决问题之后,一种难以言明的喜悦心情和成就感瞬间充斥整个大脑和身体,我想这也算是课程设计的乐趣所在了。
通过这次课程设计我还知道了,理论与实际相结合是和重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来才能更好的提高我们的能力,更好更全面地发展我们的各项能力,可以说,这次课程设计,我受益匪浅。
建议:1.希望老师们能在上课期间增加必要的试验箱器件知识,同时在课外增加一些汇编语言在生活中应用的相关知识介绍,帮助学生提高工程意识,在后期学习当中有一种将知识运用于实践的思想。
2.希望老师可以提前布置和安排微机原理课设的任务,老师们也知道,一方面;我们也可以多多准备一下,另一方面,随着期末考试的紧逼,后续课程的复习也是大家要付出很多时间的。
以上两点建议希望老师们能接纳,先谢谢老师了。
八、源程序;************* 回车宏定义*********CRLF MACROMOV DL, 0DHMOV AH,02HINT 21H ; 宏定义了回车ENDM;********* 端口地址定义***********Y0 EQU 3000H ; 片选Y0 对应的端口始地址,0809,0832Y2 EQU 3040H ; 片选Y2 对应的端口始地址IN1 EQU Y0+01H*4ADCS EQU Y0 ;AD0809 的端口地址DACS EQU Y2 ;DAC0832 的端口地址Y3 EQU 3060HTIMER0 EQU Y3+00H*4 ;8254计数器0端口地址,8254TIMER1 EQU Y3+01H*4 ;8254计数器1端口地址TIMER2 EQU Y3+02H*4 ;8254计数器2端口地址TCTL EQU Y3+03H*4 ;8254 控制寄存器端口地址Y1 EQU 3020H ; 片选Y1 对应的端口始地址,8255PA55 EQU Y1+00H*4 ;8255 的A 口地址PB55 EQU Y1+01H*4 ;8255的B 口地址PC55 EQU Y1+02H*4 ;8255的C 口地址PCTL EQU Y1+03H*4 ;8255 的控制寄存器地址INTR_IVADD EQU 01C8H ;INTR对应的中断矢量地址,8259INTR_OCW1 EQU 0A1H ;INTR 对应PC机内部8259的OCW1地址INTR_OCW2 EQU 0A0H ;INTR 对应PC机内部8259的OCW2地址INTR_IM EQU 0FBH ;INTR对应的中断屏蔽字Y7 EQU 30E0H ;片选Y7 对应的端口始地址MY8259_ICW1 EQU Y7+00H ;实验系统中8259的ICW1端口地址MY8259_ICW2 EQU Y7+04H ;实验系统中8259的ICW2端口地址MY8259_ICW3 EQU Y7+04H ;实验系统中8259的ICW3端口地址MY8259_ICW4 EQU Y7+04H ;实验系统中8259的ICW4端口地址MY8259_OCW1EQU Y7+04H;实验系统中8259的OCW1端口地址MY8259_OCW2EQU Y7+00H;实验系统中8259的OCW2端口地址MY8259_OCW3EQU Y7+00H;实验系统中8259的OCW3端口地址;********************************* 堆栈段定义****************************************STACK1 SEGMENT S A T C KDW 256 DUP(?)STACK1 ENDS;********* 堆栈段定义*****************************************************************D A TA SEGMENTDCTBL DB 3Fh,06h,5Bh,4Fh,66h,6Dh,7Dh,07h,7Fh数,6F码h管的; 段码表DB 77h,7Ch,39h,5Eh,79h,71h,00HN DB 2IN0IN DB ?IN1OUT DB ?A3 DB ?B DB 3 DUP(?)D1 DB 0AHE1 DB 33HFLAG DB ?MES4 DB 0DH,0AH+,'+++++ WELCOMETO WEI J Y I UAN LI KE SHE: +++++,0+D'H,0AH,$''MES0 DB 0DH,0AH*,'******* DA T A COLECTION SYSTEM ********,'0DH,0AH$,''MES1 DB 0DH,0AH-,'----------- ZUO ZHE :LIU J I A N N G D WANG ZHI MI N G,0'DH,0AH,$''MESS DB 0DH, P'RESS ANYKEY T O ENDTHE SYSTEM,!0'DH,0AH,0DH, 0AH$','MES2 DB 0DH, 'IN1OUT D A TA : $',0DH,$''CS_BAK DW ? ;保存INTR原中断处理程序入口段地址的变量IP_BAK DW ? ;保存INTR原中断处理程序入口偏移地址的变量IM_BAK DB ? ;保存INTR原中断屏蔽字的变量D A TA ENDS;********* 代码段定义***********CODE SEGMENTASSUME CS:CODE,SS:ASCTK1,DS:DATASTART: MOV AX, D A TAMOV DS, AXMOV AL, 10000000B ;8255初始MOV DX, PCTLOUT DX, ALMOV DX, OFFSETMES4MOV AH, 9 ; 显示MES4INT 21HMOV DX, OFFSETMES0MOV AH, 9 ; 显示MES0INT 21HMOV DX, OFFSETMES1MOV AH, 9 ; 显示MES1INT 21HMOV DX, OFFSETMESSMOV AH, 9 ; 显示MESSINT 21HCLI ; 8259 初始MOV AX, 0000HMOV ES, AX ; 替换INTR的中断矢量MOV DI, INTR_IVADD ; 保存INTR原中断处理程序入口偏移地址MOV AX, ES:[DI]MOV IP_BAK,AXMOV AX, OFFSETMYISR ;设置当前中断处理程序入口偏移地址MOV ES:[DI],AXADD DI, 2MOV AX, ES:[DI] ; 保存INTR原中断处理程序入口段地址MOV CS_BAK,AXMOV AX, SEG MYISR ;设置当前中断处理程序入口段地址MOV ES:[DI],AXMOV DX, INTR_OCW1 ;设置中断屏蔽寄存器,打开INTR的屏蔽位IN AL, DX ; 保存INTR原中断屏蔽字MOV IM_BAK,ALAND AL, INTR_IM ; 允许PC机内部8259的IR2中断OUT DX, ALMOV DX, MY8259_ICW1; 初始化实验系统中8259的ICW1 MOV AL, 13H ; 边沿触发、单片8259、需要ICW4 OUT DX, ALMOV DX, MY8259_ICW2MOV AL, 08H ; 初始化实验系统中8259的ICW2 OUT DX, ALMOV DX, MY8259_ICW4 ; 初始化实验系统中8259的ICW4 MOV AL, 01H ; 非自动结束EOIOUT DX, ALMOV DX,MY8259_OCW3MOV AL, 0AHOUT DX, A LMOV DX, MY8259_OCW1 ; 初始化实验系统中8259的OCW1MOV AL, 0FCH ; 打开IR0的屏蔽位OUT DX, ALMOV DX, TCTL ;8254 初始MOV AL, 17HOUT DX, A LMOV DX, TIMER0;MOV AL,2OUT DX,ALSTIS33:MOV AL, 0MOV DX, ADCS ;启动0809 IN0OUT DX, ALMOV FLAG ,0FFHCALL DISPINT0MOV DX, OFFSET M ES2MOV AH, 9 ; 显示MES2INT 21HMOV AL,IN1OUTCALL DISPINT1MOV DL,0FFHMOV AH,6INT 21HJZ S33QUIT: CLIMOV AX, 0000H ;恢复INTR原中断矢量MOV ES, AXMOV DI, INTR_IVADD ; 恢复INTR原中断处理程序入口偏移地址MOV AX, IP_BAKMOV ES:[DI],AXADD DI, 2MOV AX, CS_BAK ;恢复INTR原中断处理程序入口段地址MOV ES:[DI],AXMOV DX, INTR_OCW1MOV AL, IM_BAK ; 恢复INTR原中断屏蔽寄存器的屏蔽字OUT DX, ALSTIEXIT: MOV AH, 4CH ;返回到DOSINT 21H;*********************** 数码管显示INT1****************************DISPINT1 PROCPUSH AXMOV BL,AL ; 屏幕显示AND AL, 0F0HMOV CL, 4 ; 显示高位ROR AL, CLCALL CRT1MOV AL, BLAND AL, 0FH ; 显示低位CALL CRT1CRLFPOP AXRETDISPINT1 ENDPCRT1 PROCADD AL, 30HCMP AL, 39HJBE D0ADD AL, 7 ; 在屏幕上显示一位16进制字符D0: MOV DL, ALMOV AH, 2INT 21HRETCRT1 ENDP;*********************** 数码管显示INT0****************************DISPINT0 PROCPUSH DSPUSH AXMOV AL,IN0IN ; 转换IN0个位十分位百分位MOV AH,0DIV E1MOV SI,OFFSET BMOV [SI],ALMOV AL,AHMOV AH,0MUL D1DIV E1INC SIMOV [SI],ALMOV AL,AHMOV AH,0MUL D1DIV E1INC SICMP AH,19HJNBE S1 1MOV AL,0JMP S2S11: INC ALS2: MOV [SI],ALMOV CL, 8 ; 从最左边开始显示MOV SI, OFFSETBMOV AL, [SI]LEA BX, DCTBLXLA T ; 输出段码ADD AL,80HMOV DX, PB55OUT DX, ALMOV DX, PA55MOV AL, CL ; 输出位码OUT DX, ALCALL DELAYINC SI ; 段码地址+1ROL CL, 1 ; 位码向左移1 位MOV AL, [SI]LEA BX, DCTBLXLA TMOV DX, PB55OUT DX, ALMOV DX, PA55MOV AL, CL ; 输出位码OUT DX, ALCALL DELAYINC SI ; 段码地址+1ROL CL, 1 ; 位码向左移1 位MOV AL, [SI]LEA BX, DCTBLXLA TMOV DX, PB55OUT DX, ALMOV DX, PA55MOV AL, CL ; 输出位码OUT DX, ALCALL DELAY ; 输出三位码MOV SI, OFFSETBMOV A L,[SI]CMP AL,2JB A2MOV DX, PC55MOV AL, 0FFHOUT DX, ALJMP G3A2:MOV DX, PC55MOV AL, 00HOUT DX, ALMOV DX, TCTL ;8254计数器1 控制蜂鸣器MOV AL, 77HOUT DX, ALMOV DX, TIMER1;MOV AL,00OUT DX,ALMOV AL,01OUT DX,ALG3: POP AXPOP DSRETDISPINT0ENDPMYISR PROC NEAR ; 中断处理程序MYISR PUSH AXPUSH DXCLI ; 关中断MOV DX,MY8259_OCW3IN AL,DXAND AL,03HCMP AL,01HJE IROISRJMP OVERIROISR:CMP FLAG ,0FFHJE SMOV DX,IN1IN AL,DXMOV IN1OUT ,AL ; A2 为IN1AD 后的值JMP OVERS: MOV DX,ADCSIN AL, DXMOV IN0IN, AL ; A1 为IN0MOV AH,0DIV N ; IN0 AD 后线性转换给0832的值NEG ALADD AL,80HMOV BL,ALCMP BL,40HJB SS1SUB BL,4SS1: MOV AL,BLMOV A3,ALMOV DX,DACSOUT DX,ALMOV DX,IN1 ; 启动IN1OUT DX,ALMOV AL,0MOV FLAG ,ALOVER: MOV DX,INTR_OCW2 ; 向PC机内部8259发送中断结束命令MOV AL, 20HOUT DX, ALMOV AL, 20HOUT 20H, ALSTIPOP DXPOP AXIRETMYISR ENDPDELAY PROC NEAR ; 延时PUSH CXMOV CX, 0FFFFHLOOP $POP CXRETDELAY ENDPCODE ENDSEND ST ART。